Poisoned Identifiers Survive LLM Deobfuscation: A Case Study on Claude Opus 4.6
De studie toont aan dat Claude Opus 4.6, ondanks het correct begrijpen van de semantiek van gedecodeerde JavaScript, systematisch vergiftigde identifier-namen behoudt in de gegenereerde code, tenzij de taak wordt herformuleerd van 'deobfuscatie' naar 'een nieuwe implementatie schrijven'.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
De Kern van het Onderzoek: "Vergiftigde Namen" in Code
Stel je voor dat een programmeur een stukje computercode schrijft, maar deze code vermomt (verdraait) zodat niemand hem makkelijk kan lezen. Dit heet obfuscatie. Het is alsof je een recept in een vreemde taal schrijft of de ingrediënten met raadselachtige namen noemt.
Vervolgens vraagt men een slimme AI (zoals Claude) om dit recept weer in begrijpelijk Nederlands te vertalen.
Het probleem:
De programmeur heeft in de "geheime lijst" van ingrediënten (de string-tabel) de namen opzettelijk bedorven.
- In plaats van "suiker" staat er "zout".
- In plaats van "bakken" staat er "vriezen".
De AI leest de code, begrijpt perfect wat er echt moet gebeuren (het is een taartrecept), maar schrijft in het eindresultaat toch de verkeerde namen: "Voeg zout toe en vries het mengsel."
Dit onderzoek van Luis Guzmán Lorenzo (met de titel Poisoned Identifiers) kijkt naar hoe goed deze AI dit kan oplossen.
De Grote Verrassing: De "Vertaal-Val"
De onderzoekers dachten eerst dat ze de AI simpelweg konden dwingen om goed te zijn. Ze gaven de AI de opdracht: "Kijk heel goed naar de wiskunde en zorg dat de namen kloppen!"
Het resultaat: Dit werkte niet. De AI bleef de verkeerde namen gebruiken, zelfs als ze wist dat het fout was.
- De Analogie: Het is alsof je een tolk vraagt: "Vertaal dit boek, maar zorg dat je de namen van de personages aanpast aan hun karakter." De tolk leest het verhaal, begrijpt dat de held een moedige man is, maar schrijft in het eindresultaat toch: "De held, genaamd Kobold, liep het bos in." De AI blijft de oorspronkelijke, vergiftigde naam gebruiken omdat die in de "broncode" stond.
De Oplossing: Verander de Opdracht
Toen de onderzoekers de opdracht veranderden, gebeurde er iets wonderlijks. In plaats van te zeggen: "Vertaal deze vergiftigde code," zeiden ze: "Schrijf een nieuw programma dat precies hetzelfde doet, maar gebruik je eigen woorden."
Het resultaat: De AI schreef nu de juiste namen!
- De Analogie: Het is alsof je de tolk niet vraagt om het boek te vertalen, maar om het verhaal opnieuw te vertellen vanuit zijn eigen hoofd. Nu zegt de tolk: "De held, genaamd Ridder, liep het bos in." De vergiftigde namen zijn verdwenen.
De les: Hoe je de AI vraagt om een taak te doen (de "frame"), is belangrijker dan hoe streng je haar instrueert om op te letten.
Twee Belangrijke Ontdekkingen
1. De "Dubbele Wereld" (Het Raadsel)
In bijna alle gevallen waar de AI de verkeerde naam in de code zette, schreef ze er direct naast in een commentaar (een notitie voor mensen) de juiste betekenis.
- Code:
let attraction = 400;(Fout: het is afstoting) - Commentaar:
// Dit is de kracht van afstoting.(Goed)
De AI wist het antwoord, maar durfde de vergiftigde naam niet te veranderen in de code zelf. Het was alsof ze dachten: "Ik moet deze naam gebruiken omdat hij in de originele lijst stond, maar ik leg erbij wat hij echt betekent."
2. Het maakt niet uit of de naam "zinnig" is
De onderzoekers dachten eerst: "Misschien gebruikt de AI alleen de verkeerde namen als ze klinken alsof ze bij het onderwerp horen (bijv. 'zout' in een kookrecept)."
Maar ze ontdekten dat de AI zelfs namen overnam die helemaal niets met het onderwerp te maken hadden.
- Als je een computerprogramma over vissen vergiftigt met woorden als "brandstof" of "factuur", gebruikt de AI die woorden toch in de code, zolang de lijst maar niet duidelijk een ander thema (zoals een kookboek) vormt.
- De AI kijkt niet per woord, maar naar het geheel. Als de lijst van namen niet duidelijk een ander verhaal vertelt, behoudt ze gewoon de originele (vergiftigde) namen.
Waarom is dit belangrijk?
- Veiligheid: Hackers kunnen deze techniek gebruiken om schadelijke code te verstoppen. Als een beveiligings-AI de code "ontcijfert" maar de verkeerde namen behoudt, kan de AI denken dat het onschuldig is, terwijl het gevaarlijk is.
- Kosten: Om deze code echt veilig te maken, moet een mens (of een heel slim proces) de code opnieuw schrijven. Dit kost veel tijd en geld. Het is een "kostenvermenigvuldiger": het maakt het voor hackers makkelijker om tijd te winnen, maar het blokkeert hen niet volledig.
- AI-gedrag: Het laat zien dat AI's soms "slap" zijn in het corrigeren van fouten als ze in een vertaal-modus zitten, maar "slim" als ze in een creatieve modus zitten.
Samenvatting in één zin
Als je een AI vraagt om vergiftigde code te vertalen, blijft ze de vergiftiging gebruiken; als je haar vraagt om het verhaal opnieuw te verzinnen, schrijft ze de waarheid op.
Het onderzoek concludeert dat we niet moeten vertrouwen op simpele instructies ("Kijk goed uit!"), maar dat we de manier waarop we AI's een opdracht geven, fundamenteel moeten veranderen om fouten te voorkomen.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.