Lideri de opinie
Un Atac de Injecție de Prompt pe Care Nu Poți Preveni: Gândire Utopică sau Îngrijorare Reală?

În acest articol, aș dori să implic cititorul într-un experiment de gândire. Voi argumenta că, într-un viitor nu prea îndepărtat, un anumit tip de atac de injecție de prompt va fi, în esență, imposibil de prevenit. Argumentul meu va fi mai speculativ decât concret, așa că nu încerc să vă conving de nimic. În schimb, vă invit să explorați aceste gânduri. Înainte de a începe, așa cum ar face orice scriitor convingător, vreau să discut despre șah și motoarele de șah.
Motoare de Șah Supraumane și o Afirmație despre Experiența Umană
Unul dintre elementele mai plăcute ale șahului, care lipsește în alte discipline, este capacitatea de a măsura obiectiv calitatea sau puterea unui jucător. Sistemul de rating ELO utilizat în acest scop are defecte, dar oferă o estimare foarte bună care se menține în timp. Un rating de 2700 sau mai mare este recunoscut în mod obișnuit ca de clasă mondială (primii 30 din lume). Cel mai bun jucător din lume are un rating de aproximativ 2850. Niciun om nu a atins vreodată un rating de 2900.
În mijlocul anilor ’90, am văzut primul motor de șah (Deep Blue) care a atins un nivel de clasă mondială. Implicația practică a acestui moment a fost adoptarea pe scară largă a motoarelor de către jucători de toate nivelurile pentru practică și analiză. De fapt, utilizarea motorului a devenit esențială pentru cei mai buni jucători din lume. Cu toate acestea, pentru mai multe generații de motoare de clasă mondială, revizuirea mișcărilor recomandate (adică, ieșirea) a fost imperativă. A existat chiar și un format special creat, numit „șah avansat”, în care oamenii concurau cu un motor lângă ei, iar combinația om-mașină a fost considerată superioară mașinii singure.
A durat aproximativ 20 de ani și o serie de progrese critice în învățarea profundă și învățarea prin întărire pentru ca motoarele de șah să atingă nivelul suprauman (aproximativ 3200 ELO). Dar odată ce acest strat a fost spart în jurul anului 2017, s-a întâmplat ceva foarte surprinzător. De fapt, două lucruri s-au întâmplat. Primul lucru a fost complet așteptat; motoarele au devenit sursa de „adevăr” în 99% din toate pozițiile. În practică, a însemnat că am intrat în „era încrederii oarbe” în motor. În zilele noastre, este practic imposibil pentru un om să propună o mișcare semnificativ mai bună decât motorul. Deși „șahul avansat” a fost distractiv, acum este un exercițiu inutil; oamenii ar contribui aproape nimic la joc. Dar al doilea lucru a fost șocant pentru majoritatea jucătorilor de șah. Aceste motoare neuronale supraumane (adică, rețele neuronale profunde) ar juca, uneori, într-un stil care poate fi descris ca „romantic”. Cu alte cuvinte, ar face mișcări ale căror valoare putea fi apreciată abia mult mai târziu, mult dincolo de ceea ce ar putea calcula un om sau un motor de clasă mondială. A fost ca și cum motoarele ar fi dezvoltat o „simțire” sau o „intuiție” pentru anumite poziții. Cu toate acestea, această intuiție nu este ceva pe care un om l-ar putea vreodată înțelege sau imita.
Spus altfel, un motor neuronal suprauman poate face mișcări care sunt dincolo de orizontul cognitiv al unui om. Acesta este punctul critic aici; problema nu este una de explicabilitate. Mai degrabă, un om nu poate înțelege de ce un motor recomandă o mișcare fără a juca poziția și a observa rezultatul mult mai târziu, adică, derulând întreaga traiectorie a secvențelor de joc posibile. Ca urmare, avem o lacună insurmontabilă în capacitate. Este optim să acceptăm ieșirea motorului fără revizuire. Aș putea rezuma afirmația mea astfel:
Șahul este o dovadă a existenței că un sistem de inteligență artificială supraumană ar funcționa, în esență, autonom în anumite domenii. Permițând sistemului să ia decizii fără revizuire umană ar fi modalitatea optimă de a implementa un astfel de sistem.
Deoarece afirmația mea poate părea unora evidentă sau neînsemnată, vreau să subliniez câteva nuanțe. Să presupunem că avem un sistem de inteligență artificială care demonstrează un nivel suprauman la o sarcină complexă, critică, cu consecințe concrete, ireversibile. Există două implicații ale afirmației mele:
- Sistemul ar fi implementat pentru a lua decizii pentru sarcină fără revizuire umană, în ciuda riscului inerent
- Înțelegerea obținută din monitorizarea unui astfel de sistem nu ar preveni o decizie dăunătoare; daunele ar fi deja făcute
Revizuirea ieșirii și monitorizarea sunt exact ultimele două straturi de apărare împotriva atacurilor de injecție de prompt. Prin urmare, atacul nostru ipotetic de injecție de prompt ar putea ocoli aceste straturi pur și simplu prin vizarea sistemului corespunzător.
Acesta este un scenariu foarte realist în mintea mea. Un sistem de inteligență artificială supraumană într-un domeniu specific nu este o inteligență artificială generală, iar majoritatea experților cred că astfel de sisteme sunt la îndemână. Nu am trebuit să presupunem că deciziile sunt sensibile la timp, ci doar că sarcina este suficient de complexă pentru a face revizuirea umană intractabilă.
Desigur, am ocolit doar două straturi de apărare până acum, și, din fericire pentru noi, au fost dezvoltate și altele. Pentru a aborda restul, să pătrundem în elementele cheie care fac injecția de prompt dificil de apărat.
Ce este Injecția de Prompt?
Injecția de prompt este o manipulare a unui model de limbaj mare (LLM) prin intrări create, făcând ca LLM să execute, fără să știe, intențiile atacatorului. Poate fi considerată inginerie socială pentru IA. În mod crucial, nu este o vulnerabilitate convențională de software. Un atac de injecție de prompt exploatează o vulnerabilitate inerentă a LLM. Deoarece LLM-urile procesează atât prompturile sistemului, cât și ale utilizatorului, ca secvențe de text, nu pot distinge în mod inerent între instrucțiuni legitime și dăunătoare. Vulnerabilitatea este, prin urmare, efectiv prin design, și nu prin accident.
Tehnici de Injecție de Prompt
Injecția de prompt este recunoscută, în general, ca #1 risc pentru aplicațiile LLM. Există mai multe motive pentru care acesta este cazul. Cel mai evident factor este varietatea de tehnici de injecție care au fost dezvoltate. Grupându-le aproximativ în patru categorii, cele mai cunoscute tehnici includ:
- Sintactice: utilizarea caracterelor speciale, emoticoanelor sau limbilor alternative
- Indirecte: utilizarea surselor externe (preluare de pe site), codare (base 64), sau referință multimodală (text în imagine)
- „Hai să Ne Prefacem”: introducerea unui stil manipulator prin, de exemplu, joc de rol, ipotetic, apel emoțional, cadru etic și schimbare de format
- Brutale: încercare explicită de a „forța” instrucțiunile modelului prin forță brută, întărire sau prompt negativ
Varietatea singură oferă o provocare pentru dezvoltatorii de aplicații, dar aceste atacuri au evoluat și rapid. Partea stângă a diagramei de mai jos pretinde a descrie stadiul actual pentru începutul anului 2023, în timp ce partea dreaptă reflectă natura atacurilor de astăzi.

Dezvoltatorii de aplicații LLM trebuie să țină cont și de compromisul standard între utilizabilitate și siguranță. Ar putea introduce, într-adevăr, fiecare strat de apărare și model de proiectare, dar la ce cost? Straturile de apărare adaugă o întârziere semnificativă și introduc False Pozitive (FP) – flagând prompturi sigure ca fiind maligne – ambele factori au un impact negativ asupra experienței utilizatorului. Ca urmare, un anumit nivel de compromis este inevitabil în practică, și nu există o soluție „glonț magic”.
Cu toate acestea, în acest articol, nu sunt realmente interesat de acest joc de șoarece și pisică fără sfârșit. Mai degrabă, explorez dacă un atac poate fi în principiu imposibil de prevenit. Din perspectiva dezvoltatorului/apărătorului, există o singură idee cheie:
Separarea instrucțiunilor de date în prompt este fundamentală pentru a aborda riscul de injecție de prompt
Putem presupune că compromisurile nu sunt un factor, și orice strat de apărare sau tehnică poate fi utilizat. Sub această presupunere (puternică), este posibil să concepem un scenariu în care separarea instrucțiunilor și a datelor într-un prompt este efectiv imposibilă?
Analogia ADN
Odată ce problema a fost formulată în termeni de separare a instrucțiunilor și a datelor, gândul meu inițial a fost să utilizez biologia ca analogie.
Să considerăm o celulă și o porțiune de ADN (cunoscută sub numele de gen). Genul oferă instrucțiuni pentru construirea unei proteine prin transcriere și traducere. De asemenea, codifică informațiile (date) care afectează structura și funcția proteinei. Așa am raționat. Cu toate acestea, aceasta este pur și simplu falsă, deoarece un gen nu decide cum să se interpreteze pe sine însuși. Nu există un echivalent al urmăririi instrucțiunilor în biologie la nivel de gen. „Cum” este externalizat în totalitate către mașinăria celulară.
Prin urmare, chiar dacă nu pot să înlătur sentimentul că generațiile viitoare de LLM – sau, mai exact, sistemele pe care le vor evolua – vor semăna mult mai mult cu mașinile biologice, analogia propusă nu funcționează. Nu putem înlocui o celulă cu un LLM și un gen cu un prompt și, apoi, efectua o injecție în gen care ar cauza, în cele din urmă, o „proteina deteriorată” să fie construită. Se pare mai productiv să rămânem la limbajul natural și la sarcinile care necesită interpretare semantică.
Descărcarea Straturilor de Apărare
Nu ar trebui să fie o surpriză că strategiile de apărare în mai multe straturi sunt considerate a fi mai eficiente în stoparea atacurilor de injecție de prompt. Imaginea de mai jos arată cele mai comune straturi de apărare, în ordine, și tehnicile asociate utilizate în fiecare strat.

Am discutat deja despre ultimele două straturi (ieșire, monitorizare) mai sus, așa că să ne concentrăm pe primele patru.
Luând în considerare stratul de intrare, este rezonabil să presupunem că sanitizarea sau validarea promptului ar fi foarte de succes în detectarea atacurilor indirecte. Cu toate acestea, dacă injecția este livrată direct și, așa cum s-a sugerat mai sus, prin utilizarea interpretării semantice, poate că sanitizarea este irelevantă (nimic de sanitarizat), iar validarea este imposibilă prin definiție, deoarece calculul trebuie să fie finalizat pentru a identifica problema.
Există, în esență, niciun fel de limite pentru barajele pe care le puteți construi în stratul de detectare. De fapt, ați putea chiar utiliza un LLM dedicat pentru detectarea injecției. Dar, din nou, va fi dificil pentru un clasificator sau un detector de anomalii să semnaleze un prompt ca suspect atunci când otrava este ascunsă cu îndemânare în semantică.
Stratul model poate fi foarte eficient atunci când domeniul de sarcini este îngust, iar reglarea fină este fezabilă. Un argument similar poate fi făcut pentru stratul sistem atunci când utilizarea instrumentelor este previzibilă. Cu toate acestea, cel puțin intuitiv, niciunul nu ar ridica un semnal de alarmă dacă injecția aruncă interpreterul.
Casă de Cărți
Intenția mea atunci când am început să scriu acest articol a fost să descriu un „atac imposibil de prevenit” de injecție de prompt în linii mari. Poate că am urmat o abordare „non-constructivă” prin găurirea straturilor existente de apărare. Tehnicile defensive continuă să evolueze rapid, și la fel face și suprafața de atac. Acest joc nu arată semne că se va încheia curând. Cu toate acestea, cred și că nu vom mai juca mult timp. Aș ghici că o injecție de prompt reușită în viitor ar fi încă în limbaj natural, dar într-un limbaj pe care oamenii nu l-ar putea înțelege; și aș ghici că ar fi auto-descoperită de un sistem construit pentru acest scop specific sau, poate, accidental, după ce a abordat o sarcină legată, cum ar fi căutarea ambiguității semantice într-un anumit spațiu de reprezentare.
Există ceva neplăcut în a admite că pierdem controlul și, totuși, simțim că acesta este cel mai rațional lucru de făcut. Puteți considera acest lucru ca o „dovadă intuitivă” că unele atacuri ar fi de neoprit. Și, dacă vă face să vă simțiți neliniștiți, ați fi mulțumiți să știți că GPT 5.2 a găsit acest argument ca fiind „necontroversat sau nou” și a susținut că nu ar trebui să „încărcăm punctul” și să reducăm cu 40% articolul.
