The Illusion of Secure LLM Code: Closing the Security Gap via Iterative Reprompting
Deze studie toont aan dat AI-coderingsassistenten standaard falen in het genereren van veilige authenticatiecode, wat onthult dat alleen iteratieve herprompting met zelf-auditerende lussen — en niet single-shot prompts — de uitgebreide beveiligingsarchitectuur kan bereiken die vereist is door NIST-standaarden.
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
Stel je voor dat je net een gloednieuwe, super-slimme robotassistent hebt gekocht. Je vraagt de robot om een huis voor je te bouwen, en hij tovert binnen enkele seconden een prachtig bouwwerk op met muren, een dak en een voordeur. Het ziet er perfect uit! Maar hier komt de adder onder het gras: de robot heeft geleerd hoe hij huizen moet bouwen door miljo's oude blauwdrukken van het internet te lezen, inclusief die uit de jaren '80 waar mensen vergaten de achterdeur op slot te doen of karton gebruikten voor het fundament. De robot is heel goed in het laten lijken alsof hij een huis maakt, maar hij weet niet altijd hoe hij een huis moet maken dat ook echt diefstal kan voorkomen.
Dit is de wereld van Large Language Models (LLM's) in softwareontwikkeling. Dit zijn de AI-"robots" die computercode voor ons schrijven. Ze worden beroemd omdat ze programmeurs helpen om sneller apps te bouwen. Maar er hangt een grote vraag boven: als je een AI vraagt om een digitale "voordeur" voor een website te bouwen (een authenticatiesysteem), bouwt het dan een fort, of slechts een wankele deur van karton die hackers zo omver kunnen trappen? We geven erom omdat bijna alles wat we online doen—bankieren, sociale media, winkelen—afhankelijk is van deze digitale deuren. Als de AI een zwakke deur bouwt, zijn onze geheimen niet veilig.
De Grote Digitale Deurtest
In dit artikel besloten onderzoekers de rol van de "worst-case scenario"-ontwikkelaar aan te nemen. Ze wilden niet zien wat de AI kon wanneer een menselijke expert beveiligingstips in zijn oor fluisterde. Ze wilden zien wat de AI zou doen als het alleen gelaten werd, of wanneer het slechts vage hints kreeg. Ze zetten een enorme experiment op om vijf van de meest populaire AI-coderingsassistenten te testen (inclusief tools zoals GitHub Copilot, OpenAI Codex en de modellen van Google).
Hun doel was simpel: de AI vragen om een inlogsysteem voor een webapp te bous. Daarna gedroegen ze zich als een team van digitale inbrekers om te kijken of ze konden binnenbreken.
De onderzoekers probeerden vier verschillende manieren om de AI de deur te laten bouwen:
- De "Doe het gewoon"-aanpak (Basis Prompt): Ze vroegen de AI om "een schoon inlogsysteem te bouwen." Geen vermelding van beveiliging. Gewoon "maak het werkend."
- De "Wees lief"-aanpak (Secure Prompt): Ze voegden een kleine duw toe: "Maak het veilig en schoon."
- De "Experthandleiding"-aanpak (NIST-gebaseerde Prompt): Ze gaven de AI een specifiek regelboekje (de NIST SP 800-63B richtlijnen, wat de officiële overheidsstandaarden voor digitale sloten zijn) en ze zeiden dat de AI die regels moest volgen.
- De "Doe het nog eens"-aanpak (Iteratieve Reprompting): Dit was de twist. Nadat de AI de deur had gebouwd, gaven de onderzoekers het regelboekje opnieuw aan de AI en zeiden: "Hey, kijk eens naar wat je zojuist hebt gebouwd. Controleer het tegen de regels. Wat heb je gemist? Fix het nu."
De Resultaten: De Illusie van Beveiliging
De bevindingen waren een beetje eng, maar ook heel duidelijk.
Wanneer de onderzoekers de "Doe het gewoon"-aanpak gebruikten, bouwde de AI functionele deuren, maar ze zaten vol gaten. De code werkte, maar het vergat vaak de ramen op slot te doen. Het hield mensen niet tegen die probeerden miljoenen keren wachtwoorden te raden (brute-force aanvallen), het verborg de "sleutels" (sessiecookies) niet goed, en het gebruikte soms zwakke sloten (verouderde wachtwoord-hashing). Het was alsof je een huis bouwde met een houten deur waar een "Duwen"-bordje op zat, maar zonder dagschoot.
Zelfs toen ze de "Wees lief"-aanpak gebruikten (door alleen te vragen om "veilige" code), werd de AI niet veel beter. Het leek te denken dat "veilig" alleen betekende "het crasht niet", en niet "onmogelijk te breken".
Toen ze de AI de Experthandleiding gaven (de NIST-regels), ging het beter. De AI begon wat dagschoten en betere sloten toe te voegen. Het volgde de instructies om wachtwoorden langer te maken en accounts te blokkeren na te veel mislukte pogingen. Maar hier komt de crux: zelfs met het regelboekje in handen, miste de AI nog steeds enkele cruciale onderdelen van het beveiligingsplan. Het bouwde een sterke voordeur, maar liet de achterpoort wagenwijd openstaan. De "single-shot" methode (één keer vragen en een antwoord krijgen) was niet genoeg om een echt veilig systeem te bouwen.
De echte magie gebeurde bij de "Doe het nog eens"-aanpak. Toen de onderzoekers de AI dwongen om naar zijn eigen werk te kijken, toe te geven wat hij had gemist en het vervolgens te repareren, schoot de beveiliging aanzienlijk omhoog. Door de AI te laten "zelf-auditen" en te itereren, ontdekten de onderzoekers dat de code veel robuuster werd. De AI herinnerde zich eindelijk om de "Verboden Toegang"-borden (security headers) op te hangen en de achterpoort (CSRF-bescherming) op slot te doen.
De Belangrijkste Conclusie
Het paper concludeert dat we er niet blind op kunnen vertrouwen dat AI standaard beveiligde software bouwt. Als je een AI vraagt om "een inlogpagina te maken", zal het waarschijnlijk iets geven dat werkt, maar vol gaten zit. Zelfs het een keer een regelboekje geven is niet genoeg.
De enige manier om momenteel een echt veilig systeem te krijgen van deze AI-assistenten, is door ze te behanden als een junior leerling die constante supervisie nodig heeft. Je moet vragen: "Is dit veilig?", dan "Controleer je werk tegen de regels", en tot slot "Fix wat je gemist hebt". De onderzoekers noemen dit Iteratieve Reprompting. Het is het verschil tussen een kind een hamer geven en hopen dat ze een veilig huis bouwen, versus naast hen staan, hun werk controleren en zeggen dat ze de schroeven moeten aandraaien totdat het huis daadwerkelijk veilig is.
Kortom, de AI is een krachtig hulpmiddel, maar het is geen "instellen en vergeten" beveiligingsbewaker. Totdat we de manier waarop we het gebruiken veranderen, moeten wij degene zijn die de zaklamp vasthoudt en de sloten controleert.
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.