Vibe Coding and Web Application Security: A Twin-Prompt Study
Deze voorlopige studie toont aan dat het expliciet toevoegen van beveiligingseisen aan natuurlijke taalprompts het aantal bevestigde kwetsbaarheden in door AI gegenereerde webapplicaties aanzienlijk vermindert, waarbij de beveiligingsbewuste varianten geen kritieke of hoog-ernstige problemen bevatten in vergelijking met hun baseline-tegenhangers.
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
In de moderne digitale wereld wordt software vaak gebouwd door een computer te vragen deze voor ons te schrijven. We typen een beschrijving van wat we willen — een blog, een winkel, een taakbeheerder — en een krachtige kunstmatige intelligentie, getraind op miljoenen regels code, genereert de instructies die nodig zijn om het te laten werken. Deze praktijk, soms "vibe coding" genoemd, berust op het idee dat de machine niet alleen de functie van de software begrijpt, maar ook de verborgen regels die het veilig houden. Er bestaat echter een aanhoudende twijfel: bevat de machine van nature de noodzakelijke sloten en alarmen, of bouwt hij simpelweg een werkende deur zonder zich zorgen te maken over wie er zou kunnen proberen in te breken? Beveiliging in software gaat niet alleen over het laten draaien van een programma; het gaat erom te waarborgen dat geheimen geheim blijven, dat gebruikers zich niet als iemand anders kunnen voordoen, en dat het systeem niet per ongeluk vreemden binnenlaat. Nu deze AI-tools gebruikelijker worden, verschuift de vraag van of ze code kunnen bouwen naar of ze veilige code kunnen bouwen zonder dat ze daar expliciet opdracht toe krijgen.
Een onderzoeker aan de Universiteit van Zagreb begon deze vraag te beantwoorden door de AI te behandelen als een student die een specifieke instructie nodig heeft om het juiste te doen. De studie omvatte het creëren van zes verschillende webapplicaties, variërend van een eenvoudige blog tot een winkel met een administratief dashboard. Voor elke applicatie vroeg de onderzoeker de AI om deze twee keer te bouwen. De eerste aanvraag was een standaardbeschrijving van wat de software moest doen. De tweede aanvraag was op iedere manier identiek, behalve voor één toevoeging: een duidelijke lijst met beveiligingsregels, zoals "sla wachtwoorden niet in plat tekst op" en "verifieer dat elke gebruiker is wie hij zegt dat hij is." Deze opzet maakte een directe vergelijking mogelijk tussen een versie gebouwd met een algemene prompt en een versie gebouwd met een specifieke herinnering aan beveiliging, terwijl alles wat de rest betrof — het AI-model, de gebruikte tools en het generatieproces — exact hetzelfde bleef.
Om te zien wat er gebeurde, keek de onderzoeker niet alleen naar de code; hij onderwierp alle twaalf applicaties aan een reeks rigoureuze tests. Hij gebruikte geautomatiseerde scanners die de broncode lazen op zoek naar gevaarlijke patronen, tools die de software controleerden terwijl deze draaide om te zien of deze misleid kon worden, en een laatste ronde handmatige tests waarbij een menselijke expert probeerde in te breken op de systemen met creatieve methoden die machines wellicht zouden missen. De resultaten waren opvallend. De versies die gebouwd waren met de beveiligingsherinnering bevatten aanzienlijk minder problemen dan de basisversies. Sterker nog, de veilige versies hadden geen kritieke of hoogwaardige beveiligingsfouten, terwijl de versies zonder de herinnering ernstige problemen vertoonden, waaronder kwetsbaarheden waardoor een aanvaller een gebruikersaccount zou kunnen overnemen of toegang zou kunnen krijgen tot privégegevens. De herinnering maakte de software niet perfect; er bleven enkele kleine configuratieproblemen over die gebruikelijk waren voor beide versies, maar het slaagde er wel in om de gevaarlijkste fouten te elimineren.
De studie onthulde ook dat het opsporen van deze gebreken geen taak is voor een enkele tool. De geautomatiseerde scanners die de code lazen, vonden veel problemen die de scanners die de draaiende software observeerden misten, en vice versa. Het meest opvallende was dat de meest ernstige kwetsbaarheid die in het hele experiment werd gevonden — een fout waardoor een aanvaller een digitale identiteit kon vervalsen en een account kon overnemen — door geen enkele geautomatiseerde tool werd opgemerkt. Het werd pas ontdekt toen een mens het systeem handmatig testte. Dit suggereert dat hoewel het vragen aan een AI om veilig te zijn helpt, het de noodzaak voor menselijk toezicht en meerdere lagen van controle niet vervangt. De onderzoeker merkte op dat omdat dit een kleine experiment was met slechts één uitvoering per applicatie, de resultaten een sterke suggestie zijn in plaats van een definitief bewijs, maar het patroon was consistent in elk geval. Het werk dient als een voorlopige stap, die laat zien dat een eenvoudige, expliciete vraag om beveiliging de veiligheid van door kunstmatige intelligentie gegenereerde software drastisch kan verbeteren, zelfs als het niet elke enkele fout op eigen kracht kan vangen.
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.