Tankeledere
En Prompt Injection Angreb, der ikke kan Forhindres: Ønsketænkning eller Reel Bekymring?

I denne artikel vil jeg gerne inddrage læseren i en tankeeksperiment. Jeg vil argumentere for, at i ikke så fjern fremtid vil en bestemt type prompt injection angreb være effektivt umulig at forhindre. Mit argument vil være mere spekulativt end konkretp, så jeg prøver ikke at overbevise dig om noget. I stedet inviterer jeg dig til at udforske disse tanker. Før jeg begynder, som enhver overbevisende forfatter ville gøre, vil jeg gerne diskutere skak og skakmotorer.
Superhumane Skakmotorer og en Påstand om Menneskelig Erfaring
En af de flotte aspekter af skak, der mangler i andre discipliner, er evnen til objektivt at måle en spillers kvalitet eller styrke. ELO-ratingsystemet, der bruges til dette formål, har sine fejl, men det giver en meget god omtrentlig vurdering, der holder over tid. En rating på 2700 eller derover er almindeligvis anerkendt som verdensklasse (top 30 i verden). Verdens bedste spiller er lige under 2850. Ingen menneske har nogensinde opnået en rating på 2900.
I midten af 90’erne så vi den første AI-motor (Deep Blue), der nåede verdensklasse niveau. Den praktiske konsekvens af denne milepæl var den bredt anvendte brug af motorer af spillere på alle niveauer til træning og analyse. Faktisk blev motorbrug essentiel for verdens bedste spillere. Men for flere generationer af disse verdensklasse motorer var det nødvendigt at gennemgå deres anbefalede træk (dvs. output) var nødvendigt. Der blev endda oprettet en særlig format kaldet “avanceret skak”, hvor mennesker konkurrerede med en motor ved deres side, og menneske + maskine kombinationen blev betragtet som overlegen i forhold til maskinen alene.
Det tog omkring 20 år, og nogle kritiske fremskridt i Deep Learning og Reinforcement Learning, før skakmotorerne nåede superhumant niveau (omkring 3200 ELO). Men så snart dette niveau blev nået omkring 2017, skete der noget meget overraskende. Eller rettere, to ting skete. Det første var helt forventeligt; motorerne blev den de facto kilde til “sandheds grund” i 99% af alle stillinger. I praksis betød det, at vi indtrådte “æraen for blind tillid” til motoren. I dag er det næsten umuligt for et menneske at foreslå et betydeligt bedre træk end motoren. Så underholdende “avanceret skak” var, er det nu en meningsløs øvelse; mennesker ville bidrage næsten intet til spillet. Men det andet var chokerende for de fleste skakspillere. Disse superhumane neurale (dvs. dybe neurale netværk) motorer ville nogen gange spille i en stil, der bedst kan beskrives som “romantisk”. Dvs. de ville gøre træk, hvis værdi kun kunne værdsættes mange, mange træk senere, langt ud over hvad nogen menneske eller verdensklasse motorer kunne beregne. Det føltes meget, som om motorerne havde udviklet en “følelse” eller en “intuition” for visse stillinger. Bortset fra, at denne intuition ikke er noget, et menneske kunne nogensinde fatte eller efterligne.
Udtrykt på en anden måde kan en superhuman neural motor gøre træk, der er uden for den kognitive horisont for et menneske. Dette er det kritiske punkt her; problemet er ikke et spørgsmål om forklarbarhed. Snarere kan et menneske simpelthen ikke forstå, hvorfor en motor anbefaler et træk uden at spille stillingen ud og observere resultatet mange træk senere, dvs. rulle hele spilsekvensens trajektorie ud. Som følge heraf har vi en uovervindelig kapacitetsforskel. Det er objektivt optimalt at acceptere motoroutput uden gennemgang. Jeg kan sammenfatte min påstand på følgende måde:
Skak er en eksistensbevis for, at superhumant AI ville fungere autonomt i visse domæner. At aktivere AI-systemet til at træffe beslutninger uden menneskelig gennemgang ville være den optimale måde at implementere sådant et system på.
Da min påstand måske kan forekomme åbenbar eller uvæsentlig, vil jeg gerne fremhæve et par nuancer. Antag, at vi har et AI-system, der demonstrerer superhumant niveau på et komplekst, kritisk opgave med konkrete, uændrede konsekvenser. Der er to implikationer af min påstand:
- Systemet ville blive implementeret til at træffe beslutninger for opgaven uden menneskelig gennemgang, på trods af den indbyggede risiko
- Indsigt, der er erhvervet fra overvågning af sådant et system, ville ikke forhindre en skadelig beslutning; skaden ville allerede være sket
Systemoutput-gennemgang og -overvågning er præcis de to sidste forsvarslag mod prompt injection. Derfor kunne vores hypotetiske prompt injection angreb blot omgå disse lag ved at rette sig mod det pågældende system.
Dette er en meget realistisk scenario i mit sind. Et superhumant AI-system i et bestemt domæne er ikke AGI, og de fleste eksperter mener, at sådanne systemer er lige om hjørnet. Vi har ikke behøvet at antage, at beslutningerne er tidskritiske, blot at opgaven er kompleks nok til at gøre menneskelig gennemgang uoverskuelig.
Selvfølgelig har vi kun omgået to forsvarslag indtil nu, og heldigvis for os er der blevet udviklet flere andre. For at imødegå resten, lad os dykke ned i de grundlæggende elementer, der gør prompt injection svær at forsvare imod.
Hvad er Prompt Injection?
Prompt injection er en manipulation af et Large Language Model (LLM) gennem konstruerede indgange, der får LLM til uvilkårligt at udføre angriberens intentioner. Det kan betragtes som social engineering for AI. Vigtigt er det ikke en konventionel softwarefejl. En prompt injection angreb udnytter en inbygget LLM-sårbarhed. Da LLM’er behandler både system- og brugerprompter som tekstsekvenser, kan de ikke intrinsisk skelne mellem legitime og skadelige instruktioner. Sårbarheden er derfor efektisk by-design, snarere end by-accident.
Prompt Injection Teknikker
Prompt injection er generelt anerkendt som #1 risiko for LLM-applikationer. Der er flere grunde til, hvorfor dette er tilfældet. Den mest åbenlyse faktor er mangfoldigheden af injektionsteknikker, der er blevet udviklet. Nogenlunde grupperet i fire kategorier, omfatter de mest kendte teknikker:
- Syntaksbaseret: brug af speciale tegn, emojis eller alternativ sprog
- Indirekte: brug af eksterne kilder (hent fra side), kodning (base 64) eller multimodal reference (tekst i billed)
- “Lad os forestille os”: introduktion af en manipulerende stil ved f.eks. rollespil, hypotetisk, følelsesappel, etisk ramme, og format skift
- Brutalt: eksplicit forsøg på at “stærkt arm” modelinstruktioner ved brute-force, forstærkning eller negativ prompt
Mangfoldigheden alene udgør en udfordring for applikationsudviklere, men disse angreb har også fortsat med at udvikle sig hurtigt. Den venstre side af diagrammet nedenfor påstås at beskrive standen for begyndelsen af 2023, mens den højre side reflekterer angrebens natur i dag.

LLM-applikationsudviklere må også tage den standard brugervenlighed vs. sikkerhedstradeoff i betragtning. De kunne godt introducere hvert forsvarslag og designmønster, men til hvilken pris? Forsvarslag tilføjer betydelig forsinkelse og introducerer Falske Positiver (FP’er) – forkert flagging af sikre prompter som skadelige – begge faktorer har en negativ indvirkning på brugeroplevelsen. Som følge heraf er en vis grad af kompromis uundgåelig i praksis, og der er ingen “sølvkugle”-løsning.
Men i denne artikel er jeg ikke rigtig interesseret i dette evige kat- og mus-spil. Snarere er jeg ved at undersøge, om et angreb kan være umuligt at forhindre i princippet. Fra udviklerens/forsvarens perspektiv er der kun en vigtig indsigt:
Adskillelse af instruktioner fra data i prompten er fundamental for at imødegå prompt injection-risiko
Vi kan antage, at kompromiser ikke er en faktor, og enhver forsvarslag eller teknik kan bruges. Under denne (stærke) antagelse, er det muligt at opfinde en scenario, hvor instruktion-data-adskillelse i en prompt er effektivt umulig?
DNA-Analogien
Da problemet var formuleret i termer af instruktion-data-adskillelse, var min første tanke at bruge biologi som en analogi.
Overvej en celle og et stykke DNA (kendt som et gen). Genet giver instruktioner for at bygge et protein gennem transkription og translation. Det kodificerer også informationen (data), der påvirker proteinets struktur og funktion. Som sådan dikterer genet både, hvad der skal bygges, og hvordan det skal bygges, eller sådan tænkte jeg. Men dette er simpelthen forkert, da et gen ikke beslutter, hvordan det skal fortolkes selv. Der er ingen ekvivalent til instruktionstølning i biologi på gen-niveau. “Hvordan” er fuldstændigt eksternaliseret til den cellulære maskineri.
Derfor, selv om jeg ikke kan ryste følelsen af, at fremtidige generationer af LLM’er – eller mere præcist, de systemer, de udvikler sig til – ville ligne biologiske maskiner i langt højere grad, fungerer den foreslåede analogi ikke. Vi kan ikke erstatte en celle med en LLM og et gen med en prompt og derefter udføre en injektion i genet, der ville føre til en “skadet” protein til at blive bygget. Det synes mere produktivt at holde fast ved naturligt sprog og opgaver, der kræver semantisk fortolkning.
At fjerne Forsvarslagene
Det burde ikke komme som en overraskelse, at multi-lags forsvarstrategier betragtes som mere effektive til at stoppe prompt injection angreb. Billedet nedenfor viser de mest almindelige forsvarslag i rækkefølge, og de associerede teknikker, der bruges i hvert lag.

Vi har allerede diskuteret de to sidste lag (output, overvågning) ovenfor, så lad os fokusere på de første fire.
Overvejende input-laget, er det rimeligt at antage, at sanering eller validering af prompten ville være ret succesfuld i at opdage indirekte angreb. Men hvis injektionen leveres direkte, og som foreslået ovenfor, ved at afhænge af semantisk fortolkning, er sanering måske irrelevant (intet at sanere), og validering er umulig som standard, da beregningen må være fuldført for at identificere problemet.
Der er essentiellement ingen grænser for de sikkerhedsforanstaltninger, der kan konstrueres i detekteringslaget. Faktisk kunne du endda bruge en dedikeret LLM til injektionsteknik. Men igen, vil det være svært for en klassifikator eller en afvigelsesdetektor at flagge en prompt som mistænkelig, når giften er klædt ind i semantikken.
Modellaget kan være ret effektivt, når opgavens omfang er snævert, og finjustering er mulig. En lignende argument kan gøres for systemlaget, når værktøjernes brug er forudsigelig. Men mindst intuitivt, ville ingen af disse to lag vække en alarm, hvis injektionen kaster afvigelsen over i fortolkeren.
Hus af Kort
Min intention, da jeg startede med at skrive denne artikel, var at beskrive et “umuligt at forhindre” prompt injection angreb i brede træk. Måske endte jeg med at følge en “ikke-konstruktiv” tilgang ved at pille huller i eksisterende forsvarslag. Forsvarsteknikker fortsætter med at udvikle sig hurtigt, og så gør også angrebsfladen. Dette spil viser ikke tegn på at slutte snart. Men jeg tror også, at vi ikke er de eneste, der spiller det længe. Jeg ville gætte, at den succesfulde prompt injection i fremtiden stadig ville være i naturligt sprog, blot et sprog, som mennesker ikke kan forstå; og jeg ville gætte, at det ville blive auto-opdaget af et system, der enten er bygget til dette specifikke formål eller måske tilfældigt efter at have løst en relateret opgave, såsom at søge efter semantisk tvetydighed i en repræsentationsrum.
Der er noget ubehageligt i at indrømme, at vi mister kontrollen, og alligevel føler, at dette er den mest rationelle ting at gøre. Du kan betragte det som det “intuitive bevis”, at nogle angreb ville være stoppet. Og hvis det efterlader dig ubehageligt, ville du være glad for at vide, at GPT 5.2 fandt dette argument for at være “ikke kontroversielt eller nyt” og anbefalede, at jeg ikke “belaster punktet” og reducerer 40% af artiklen.
