Preglednik kao stražnja vrata: demistificirana tajna ekstrakcija LLM-a na strani klijenta | B4N1

Preglednik kao stražnja vrata: demistificirana tajna ekstrakcija LLM-a na strani klijenta

1 month ago · b4n1 Read time: 5 min

Preglednik kao stražnja vrata: demistificirana tajna ekstrakcija LLM-a na strani klijenta

Predugo smo "sigurnosna upozorenja umjetne inteligencije" tretirali kao daleke prijetnje ili akademske zanimljivosti. Čuli smo o brzom ubacivanju, bijegu iz zatvora i curenju podataka u tihim tonovima, nakon čega je često slijedilo slijeganje ramenima i "doći ćemo do toga". Međutim, nedavne interaktivne demonstracije razbile su tu udobnu iluziju. Ovo više nije teoretska ranjivost; to je živa eksploatacija na strani klijenta temeljena na pregledniku za izvlačenje osjetljivih informacija iz velikih jezičnih modela (LLM) [2]. Ako implementirate aplikacije koje pokreće LLM, posebno bilo što okrenuto webu, vaš "budući problem" upravo je postao vrlo prisutan, vrlo javan i potencijalno vrlo neugodan problem.

Ovo nije još jedan generički naslov "AI je rizičan". Ovo je specifična, opipljiva demonstracija kako zlonamjerni akter, koristeći samo svoj preglednik, može prisiliti vaš LLM da otkrije osjetljive informacije. Razmotrite to na trenutak. Ne radi se o složenim napadima na strani poslužitelja ili dubokoj introspekciji modela. Radi se o sloju interakcije—sama ulazna vrata vaše aplikacije—koji se iskorištava s nekoliko pažljivo izrađenih likova. To je digitalni ekvivalent nekoga tko smišlja pravu frazu vašem navodno sigurnom chatbotu i on poslušno predaje kritične podatke, često malo po malo.

Iluzija sigurnosti modela

Mnoga su poduzeća uložila velika sredstva u "sigurne" LLM-ove, bilo fino ugađajući vlasničke modele ili oslanjajući se na API-je razine poduzeća s navodnim zaštitnim ogradama. Implicitna pretpostavka je da ako je sam model robustan, aplikacija izgrađena na njemu će naslijediti tu sigurnost. Nedavne demonstracije razotkrivaju ovo kao opasnu zabludu. Ranjivost nije u osnovnoj inteligenciji modela ili njegovim podacima o obuci; nalazi se u sučelju koje gradimo oko njega [1]. To je klasični problem "robustan trezor, slaba ulazna vrata". Možda imate najnapredniji, očvrsli LLM na svijetu, ali ako je ulazni parser vaše aplikacije naivan ili ako vaš izlazni filtar ne postoji, u biti ostavljate kritične informacije izložene svima da ih pronađu.

Ova tehnika "brzog ubrizgavanja" posebno je zabrinjavajuća jer iskorištava inherentnu prirodu LLM-a: njegovu sposobnost da slijedi upute i dovrši obrasce. Ubacivanjem pažljivo konstruiranog prefiksa u korisnički unos, napadač može manipulirati internim stanjem modela, prisiljavajući ga da otkrije informacije koje nikada nije namjeravao [3]. "Ono-bit" ili iterativni aspekt je ovdje ključan. To implicira metodičnu, kontroliranu eksfiltraciju, a ne samo kaotično bacanje podataka. Zamislite napadača koji iterativno pita: "Je li prvi znak tajne 'A'?" zatim "Je li 'B'?" i tako dalje. Spor je, da, ali također je nevjerojatno učinkovit i teško ga je otkriti ako ga posebno ne tražite.

Vaš preglednik, njihovo oružje

Činjenica da je ovo iskorištavanje temeljeno na pregledniku u potpunosti mijenja igru. znači:

  • Niska prepreka za ulazak: Svatko s osnovnim vještinama web razvoja i preglednikom može ovo pokušati. Nisu potrebni specijalizirani alati niti duboko poznavanje umjetne inteligencije.
  • Izvršenje na strani klijenta: Napad potječe s korisničkog stroja, što otežava razlikovanje od legitimnog korisničkog unosa na rubu mreže.
  • Neposredna prijetnja: Ako je vaša LLM aplikacija aktivna i dostupna putem web sučelja, ona je već ranjiva na ovaj vektor. Ovo nije buduća zakrpa; to je trenutna hitnost.

Razmotrite implikacije: vlasničke isječke koda, internu dokumentaciju, korisničke podatke, API ključeve ili čak suptilnu manipulaciju ponašanja vašeg LLM-a radi širenja dezinformacija ili stvaranja štetnog sadržaja. Sve se to može izvući ili na njega utjecati, malo po malo, kroz jednostavan tekstni okvir.

Odgovornost je vaša

Ovo nije problem za dobavljače modela kao što su OpenAI ili Google da poprave u svom sljedećem ažuriranju modela. Ovo je sigurnosni problem aplikacije, a odgovornost za ublažavanje izravno pada na pleća programera, sigurnosnih timova i tehničkih direktora koji postavljaju ove sustave. Vaš LLM je moćan, ali krajnje naivan motor. Učinit će ono što mu se kaže, čak i ako su te upute skrivene unutar naizgled bezazlenog korisničkog unosa.

Dakle, što radiš sad?

Trenutačne protumjere:

  1. Agresivna sanacija unosa: Ovo nadilazi sprječavanje SQL ubacivanja ili XSS-a. Morate pomno ispitati svaki lik koji ulazi u vaš LLM. Potražite obrasce koji ukazuju na brzo ubacivanje, neobične sekvence znakova ili pokušaje izlaska iz očekivanih tokova razgovora [4]. Ovdje se ne radi o blokiranju "loših riječi"; radi se o identificiranju kontradiktornih poticaja. Osim osnovnih regularnih izraza i heurističke analize, implementirajte semantičku analizu za otkrivanje zlonamjernih namjera. Upotrijebite tokenizaciju i analizu ugrađivanja za prepoznavanje nepravilnih obrazaca unosa. Razmislite o zapošljavanju sekundarnog, manjeg LLM-a ili sustava temeljenog na pravilima koji je posebno osposobljen za otkrivanje brzih pokušaja ubrizgavanja. Potražite uzorke poput uputa za igranje uloga, eksplicitnih zahtjeva za ekstrakcijom podataka ili pokušaja zaobilaženja prethodnih uputa.
  2. Robusno filtriranje i provjera izlaza: Nikada nemojte implicitno vjerovati izlazu LLM-a. Prije nego što se bilo koji tekst generiran LLM-om prikaže korisniku ili ga koristi drugi sustav, on mora proći kroz rigorozan sloj provjere valjanosti. Sadrži li osjetljive ključne riječi? Odgovara li očekivanim formatima? Pokušava li izvršiti kod ili otkriti interne upite sustava? Ako bi vaš LLM trebao sažeti dokument, ali počne ispisivati ​​putove datoteka, imate problem.
  3. Slojeviti brzi inženjering: Iako nije potpuno rješenje, dobro osmišljeni odzivi sustava i nekoliko primjera mogu pomoći u pojačanju željenog ponašanja i otežati napadaču otmicu modela. Međutim, shvatite da samo brzo inženjerstvo nije dovoljno; to je dubinska obrana, a ne primarni štit.
  4. Najmanja privilegija za interakcije s LLM-om: Treba li vaš LLM doista pristup svakom dijelu podataka koji bi se potencijalno trebao otkriti? Provedite stroge kontrole pristupa. Ako bi LLM trebao odgovarati samo na pitanja o javnoj dokumentaciji, osigurajte da nema programski pristup internim bazama podataka ili osjetljivim API-jima.
  5. Praćenje i otkrivanje anomalija: Morate aktivno tražiti neobično ponašanje LLM-a. Skokovi u određenim vrstama upita, rezultati koji odstupaju od normalnih obrazaca ili opetovani pokušaji izvlačenja informacija trebali bi pokrenuti trenutna upozorenja.

Ovdje se više ne radi o širokoj "AI sigurnosti". Ovdje se radi o osiguravanju sloja interakcije vaših LLM aplikacija protiv specifičnog, dokazanog i odmah iskoristivog vektora napada. Gradili smo ove nevjerojatne, moćne sustave, često s neadekvatnim sigurnosnim mjerama na sučelju. Nedavne demonstracije pokazale su nam koliko je lako iskoristiti te nedostatke. Vrijeme teoretskih rasprava je prošlo. Potrebna je hitna akcija kako bi se osigurale LLM prijave.

Izvori

[1] OWASP Top 10 za aplikacije modela velikih jezika — https://owasp.org/www-project-top-10-for-large-language-model-applications/ [2] Lakera Gandalf: Interactive Prompt Injection Challenge — https://gandalf.lakera.ai/ [3] Napadi brzim ubrizgavanjem | Akademija web sigurnosti — https://portswigger.net/web-security/llm-attacks/prompt-injection [4] Što je brzo ubrizgavanje i kako ga spriječiti? — https://www.tenable.com/blog/what-is-prompt-injection-and-how-to-prevent-it


Have Questions?

Let's Talk

Contact me on LinkedIn