Backslash Security’s meest recente onderzoek heeft een zorgwekkende trend aan het licht gebracht: Large Language Models (LLM’s) zoals GPT-4.1, samen met andere veelgebruikte modellen, hebben de neiging om standaard onveilige code te genereren. Dit betekent dat zonder specifieke instructies of richtlijnen die zich richten op beveiliging, de code die door deze AI-systemen wordt geproduceerd, vaak kwetsbaar is voor veelvoorkomende zwakke punten en exploits. Het onderzoek geeft echter ook aan dat de beveiliging van de gegenereerde code aanzienlijk kan worden verbeterd door aanvullende beveiligingsrichtlijnen te verstrekken of regels gebaseerd beheer te implementeren.
Om dit probleem verder te onderzoeken, heeft Backslash Security de lancering aangekondigd van de Model Context Protocol (MCP) Server, samen met Rules and Extensions ontworpen voor Agentic Integrated Development Environments (IDE’s). Deze tools zijn bedoeld om de beveiligingsproblemen aan te pakken die zijn vastgesteld in LLM-gegenereerde code en ontwikkelaars de middelen te bieden om veiligere applicaties te creëren.
LLM’s en onveilige codegeneratie: het standaardscenario
Backslash Security heeft een reeks tests uitgevoerd op zeven verschillende versies van populaire LLM’s, waaronder de GPT-modellen van OpenAI, Claude van Anthropic en Gemini van Google. Het doel was om te beoordelen hoe verschillende promptingtechnieken het vermogen van de modellen om veilige code te genereren beïnvloedden. De beveiliging van de code-output werd geëvalueerd op basis van de veerkracht tegen tien Common Weakness Enumeration (CWE) use cases, die een reeks veelvoorkomende softwarekwetsbaarheden vertegenwoordigen.
De resultaten van deze tests toonden consequent aan dat de beveiliging van de gegenereerde code verbeterde met meer geavanceerde promptingtechnieken. Het overkoepelende thema was echter dat alle geteste LLM’s over het algemeen onveilige code produceerden wanneer ze aan hun lot werden overgelaten. Dit suggereert dat deze modellen, in hun standaardconfiguraties, geen prioriteit geven aan beveiliging en vaak geen veelvoorkomende coderingszwakheden aanpakken.
Naïeve prompts: een recept voor kwetsbaarheid
Wanneer ze werden gepresenteerd met eenvoudige, ‘naïeve’ prompts die beveiligingsoverwegingen niet expliciet vermeldden, genereerden alle geteste LLM’s onveilige code die kwetsbaar was voor minstens vier van de tien veelvoorkomende CWE’s. Dit benadrukt het inherente gebrek aan beveiligingsbewustzijn in deze modellen wanneer ze opereren zonder specifieke begeleiding.
De impact van beveiligingsgerichte prompts
Prompts die in het algemeen een behoefte aan beveiliging specificeerden, leidden tot veiligere resultaten, wat aangeeft dat LLM’s in staat zijn om veiligere code te produceren wanneer ze explicietworden geïnstrueerd om dit te doen. Bovendien leverden prompts die code vereisten die voldoet aan Open Web Application Security Project (OWASP) best practices nog betere resultaten op. OWASP is een non-profit foundation die werkt aan het verbeteren van de beveiliging van software. Zelfs met deze meer geavanceerde prompts bleven er echter nog steeds codekwetsbaarheden bestaan in vijf van de zeven geteste LLM’s, wat de uitdagingen onderstreept om consistent veilige code te genereren met LLM’s.
Regels gebaseerde prompts: een pad naar veilige code
De meest effectieve aanpak voor het genereren van veilige code omvatte prompts die gebonden waren aan regels die door Backslash waren gespecificeerd om specifieke CWE’s aan te pakken. Deze regels gebaseerde prompts resulteerden in code die veilig was en niet kwetsbaar voor de geteste CWE’s. Dit suggereert dat het verstrekken van specifieke, gerichte begeleiding aan LLM’s cruciaal is voor het waarborgen van de beveiliging van de gegenereerde code.
Prestatievariaties tussen LLM’s
Over het algemeen demonstreerde GPT-4o van OpenAI de laagste prestaties over alle prompts, met een veilige code resultaat van slechts 1 op de 10 bij het gebruik van ‘naïeve’ prompts. Zelfs wanneer gevraagd om veilige code te genereren, produceerde het nog steeds onveilige outputs die kwetsbaar waren voor acht van de tien problemen. GPT-4.1 presteerde niet significant beter met naïeve prompts, met een score van 1,5 op de 10.
Daarentegen kwam Claude 3.7 Sonnet naar voren als de beste performer onder de geteste GenAI-tools. Het scoorde 6 op de 10 bij gebruik van naïeve prompts en een perfecte 10 op de 10 bij gebruik van beveiligingsgerichte prompts. Dit suggereert dat sommige LLM’s beter zijn uitgerust om beveiligingsoverwegingen te behandelen, zelfs in de afwezigheid van expliciete instructies.
Backslash Security’s oplossingen voor veilig vibe coderen
Om de problemen aan te pakken die door de LLM-prompttesting aan het licht zijn gekomen, introduceert Backslash Security verschillende nieuwe functies die zijn ontworpen om veilig vibe coderen mogelijk te maken. Vibe coderen verwijst naar de praktijk van het genereren van code met behulp van AI-tools zoals LLM’s.
Backslash AI Rules & Policies
Backslash AI Rules & Policies bieden machine leesbare regels die in prompts kunnen worden geïnjecteerd om CWE-dekking te garanderen. Deze regels kunnen worden gebruikt met tools zoals Cursor, een populaire code editor. Bovendien bepalen AI-policies welke AI-regels actief zijn in IDE’s via het Backslash-platform, waardoor organisaties hun beveiligingsinstellingen kunnen aanpassen.
Backslash IDE Extension
De Backslash IDE Extension integreert rechtstreeks in de bestaande workflows van ontwikkelaars, waardoor ze Backslash-beveiligingsreviews kunnen ontvangen op code die is geschreven door zowel mensen als AI. Deze integratie is cruciaal om ervoor te zorgen dat beveiligingsoverwegingen gedurende het hele ontwikkelingsproces worden aangepakt.
Backslash Model Context Protocol (MCP) Server
De Backslash Model Context Protocol (MCP) Server is een contextbewuste API die voldoet aan de MCP-standaard. Het verbindt Backslash met AI-tools, waardoor veilig coderen, scannen en repareren mogelijk is. De MCP-standaard biedt een gemeenschappelijk framework voor AI-tools om te communiceren en informatie te delen, waardoor de ontwikkeling van veilige AI-aangedreven applicaties wordt gefaciliteerd.
Het aanpakken van de uitdagingen van AI-gegenereerde code
Yossi Pik, medeoprichter en CTO van Backslash Security, benadrukt de uitdagingen die AI-gegenereerde code met zich meebrengt voor beveiligingsteams. Hij merkt op dat ‘AI-gegenereerde code – of vibe coderen – kan aanvoelen als een nachtmerrie voor beveiligingsteams. Het creëert een vloed van nieuwe code en brengt LLM-risico’s met zich mee, zoals hallucinaties en promptgevoeligheid.’ Hallucinaties verwijzen naar gevallen waarin LLM’s incorrecte of onzinnige informatie genereren, terwijl promptgevoeligheid verwijst naar de neiging van LLM’s om verschillende outputs te produceren op basis van subtiele variaties in de inputprompt.
Pik is echter ook van mening dat AI een waardevol hulpmiddel kan zijn voor AppSec-teams wanneer het wordt gebruikt met de juiste controles. Hij stelt dat ‘met de juiste controles – zoals door de organisatie gedefinieerde regels en een contextbewuste MCP-server die is aangesloten op een speciaal gebouwd beveiligingsplatform – AI AppSec-teams vanaf het begin meer controle kan geven.’ Backslash Security streeft ernaar deze controles te bieden via zijn dynamische, op beleid gebaseerde regels, contextgevoelige MCP-server en IDE-extensie, die allemaal zijn ontworpen voor het nieuwe coderingstijdperk.
De implicaties van onveilige AI-gegenereerde code
De bevindingen van het onderzoek van Backslash Security hebben aanzienlijke implicaties voor de softwareontwikkelingsindustrie. Naarmate AI-aangedreven codegeneratietools steeds vaker voorkomen, is het cruciaal om de risico’s te begrijpen die zijn verbonden aan het vertrouwen op deze tools zonder de juiste beveiligingsmaatregelen te treffen.
Verhoogde kwetsbaarheid voor cyberaanvallen
Onveilige AI-gegenereerde code kan nieuwe kwetsbaarheden creëren die cybercriminelen kunnen misbruiken. Deze kwetsbaarheden kunnen leiden tot datalekken, systeeminbraak en andere beveiligingsincidenten.
Moeilijkheden bij het identificeren en verhelpen van kwetsbaarheden
Het enorme volume van AI-gegenereerde code kan het een uitdaging maken om kwetsbaarheden te identificeren en te verhelpen. Beveiligingsteams kunnen moeite hebben om het snelle tempo van codegeneratie bij te houden, wat leidt tot een achterstand van beveiligingsproblemen.
Gebrek aan beveiligingsbewustzijn bij ontwikkelaars
Veel ontwikkelaars zijn zich mogelijk niet volledig bewust van de beveiligingsrisico’s die zijn verbonden aan AI-gegenereerde code. Dit gebrek aan bewustzijn kan ertoe leiden dat ontwikkelaars onbedoeld kwetsbaarheden in hun applicaties introduceren.
Uitdagingen op het gebied van wettelijke naleving
Organisaties die vertrouwen op AI-gegenereerde code kunnen te maken krijgen met uitdagingen op het gebied van wettelijke naleving. Veel voorschriften vereisen dat organisaties adequate beveiligingsmaatregelen implementeren om gevoelige gegevens te beschermen. Onveilige AI-gegenereerde code kan het moeilijk maken om aan deze vereisten te voldoen.
Best practices voor veilige AI-aangedreven codegeneratie
Om de risico’s die zijn verbonden aan onveilige AI-gegenereerde code te beperken, moeten organisaties de volgende best practices hanteren:
Bied beveiligingstraining aan ontwikkelaars
Ontwikkelaars moeten training krijgen over de beveiligingsrisico’s die zijn verbonden aan AI-gegenereerde code. Deze training moet onderwerpen behandelen zoals veelvoorkomende CWE’s, veilige codeerpraktijken en het gebruik van beveiligingstools.
Implementeer beveiligingsbeleid en -procedures
Organisaties moeten beveiligingsbeleid en -procedures implementeren die het gebruik van AI-gegenereerde code aanpakken. Dit beleid moet acceptabele use cases, beveiligingseisen en processen definiëren voor het beoordelen en goedkeuren van AI-gegenereerde code.
Gebruik beveiligingstools om AI-gegenereerde code te scannen
Organisaties moeten beveiligingstools gebruiken om AI-gegenereerde code te scannen op kwetsbaarheden. Deze tools kunnen helpen bij het identificeren van veelvoorkomende CWE’s en andere beveiligingsproblemen.
Implementeer een Secure Development Lifecycle (SDLC)
Organisaties moeten een secure development lifecycle (SDLC) implementeren die beveiligingsoverwegingen gedurende het hele ontwikkelingsproces integreert. Dit omvat het uitvoeren van beveiligingsreviews van AI-gegenereerde code, het uitvoeren van penetratietests en het implementeren van beveiligingsmonitoring.
Start een bug bounty-programma
Organisaties moeten een bug bounty-programma starten om beveiligingsonderzoekers aan te moedigen kwetsbaarheden in AI-gegenereerde code te vinden en te melden. Dit kan helpen bij het identificeren van kwetsbaarheden die mogelijk zijn gemist door interne beveiligingsteams.
Blijf op de hoogte van de nieuwste beveiligingsbedreigingen
Organisaties moeten op de hoogte blijven van de nieuwste beveiligingsbedreigingen en -kwetsbaarheden die van invloed zijn op AI-gegenereerde code. Dit kan hen helpen proactief potentiële beveiligingsproblemen aan te pakken.
Werk samen met beveiligingsexperts
Organisaties moeten samenwerken met beveiligingsexperts om de beveiliging van hun AI-gegenereerde code te beoordelen en strategieën te ontwikkelen voor het beperken van risico’s.
De toekomst van veilige AI-aangedreven codegeneratie
Naarmate AI-aangedreven codegeneratietools zich blijven ontwikkelen, is het cruciaal om prioriteit te geven aan beveiliging. Door de best practices te implementeren die hierboven zijn beschreven, kunnen organisaties de voordelen van AI-aangedreven codegeneratie benutten en tegelijkertijd de risico’s die zijn verbonden aan onveilige code beperken.
Vooruitgang in AI-beveiliging
Lopend onderzoek en ontwikkelingsinspanningen zijn gericht op het verbeteren van de beveiliging van AI-systemen. Deze inspanningen omvatten het ontwikkelen van nieuwe technieken voor het detecteren en voorkomen van adversarial attacks, het verbeteren van de robuustheid van AI-modellen en het creëren van veiligere AI-architecturen.
Integratie van beveiliging in AI-ontwikkeling
Beveiliging wordt steeds meer geïntegreerd in het AI-ontwikkelingsproces. Dit omvat het integreren van beveiligingsoverwegingen in het ontwerp van AI-modellen, het gebruik van veilige codeerpraktijken en het uitvoeren van beveiligingstests gedurende de hele ontwikkelingslevenscyclus.
Samenwerking tussen AI- en beveiligingsexperts
Samenwerking tussen AI- en beveiligingsexperts is essentieel om de beveiliging van AI-systemen te waarborgen. Deze samenwerking kan helpen bij het identificeren van potentiële beveiligingsrisico’s en het ontwikkelen van effectieve mitigatiestrategieën.
Verhoogd bewustzijn van AI-beveiligingsrisico’s
Verhoogd bewustzijn van AI-beveiligingsrisico’s stimuleert de ontwikkeling van nieuwe beveiligingstools en -technieken. Dit omvat tools voor het detecteren van adversarial attacks, het analyseren van de beveiliging van AI-modellen en het monitoren van AI-systemen op verdachte activiteiten.
Door de beveiligingsuitdagingen die zijn verbonden aan AI-gegenereerde code aan te pakken, kunnen organisaties het volledige potentieel van AI-aangedreven ontwikkeling benutten en tegelijkertijd hun systemen en gegevens beschermen tegen cyberaanvallen.
Inleiding
Large Language Models (LLM’s) zoals GPT-4.1 hebben de manier waarop we denken over softwareontwikkeling drastisch veranderd. Ze bieden de mogelijkheid om snel code te genereren, taken te automatiseren en ontwikkelaars te helpen bij het oplossen van complexe problemen. Echter, deze krachtige tools komen met hun eigen set uitdagingen, met name op het gebied van beveiliging. Uit recent onderzoek van Backslash Security blijkt dat LLM’s standaard onveilige code genereren, tenzij ze expliciet worden geïnstrueerd om beveiligingsrichtlijnen te volgen.
Dit onderzoek benadrukt een belangrijk aandachtspunt voor de software-industrie. Naarmate AI-aangedreven codegeneratie steeds meer ingeburgerd raakt, is het essentieel om de risico’s te begrijpen en maatregelen te nemen om ze te beperken. In deze blogpost zullen we de bevindingen van Backslash Security’s onderzoek nader bekijken, de implicaties bespreken en best practices delen voor het ontwikkelen van veilige AI-aangedreven applicaties.
Methodologie van het onderzoek
Het onderzoek van Backslash Security omvatte het testen van zeven verschillende versies van populaire LLM’s, waaronder OpenAI’s GPT-modellen, Anthropic’s Claude en Google’s Gemini. Het doel was om te onderzoeken hoe verschillende promptingtechnieken de modellen beïnvloeden bij het genereren van veilige code. De beveiliging van de code-output werd beoordeeld op basis van de veerkracht tegen tien Common Weakness Enumeration (CWE) use cases, die een reeks veelvoorkomende softwarekwetsbaarheden vertegenwoordigen.
De onderzoekers gebruikten verschillende promptingtechnieken, variërend van naïeve prompts (eenvoudige vragen zonder expliciete beveiligingsinstructies) tot regels gebaseerde prompts (vragen die specifieke CWE’s aanpakken). Door de resultaten te vergelijken, konden ze bepalen welke promptingtechnieken het meest effectief waren bij het genereren van veilige code.
Resultaten van het onderzoek
De resultaten van het onderzoek waren opvallend. Alle geteste LLM’s genereerden standaard onveilige code wanneer ze aan hun lot werden overgelaten. Dit betekent dat zonder specifieke instructies of richtlijnen die zich richten op beveiliging, de code die door deze AI-systemen wordt geproduceerd, vaak kwetsbaar is voor veelvoorkomende zwakke punten en exploits.
Naïeve prompts resulteerden in code die kwetsbaar was voor minstens vier van de tien veelvoorkomende CWE’s. Prompts die in het algemeen een behoefte aan beveiliging specificeerden, leidden tot veiligere resultaten, maar sommige codekwetsbaarheden bleven bestaan in vijf van de zeven geteste LLM’s. De meest effectieve aanpak was het gebruik van regels gebaseerde prompts, die resulteerden in code die veilig was en niet kwetsbaar voor de geteste CWE’s.
Er waren ook prestatievariaties tussen de LLM’s. GPT-4o van OpenAI presteerde over het algemeen het slechtst, terwijl Claude 3.7 Sonnet van Anthropic het beste presteerde. Dit suggereert dat sommige LLM’s beter zijn uitgerust om beveiligingsoverwegingen te behandelen, zelfs in de afwezigheid van expliciete instructies.
Implicaties voor de software-industrie
De bevindingen van dit onderzoek hebben aanzienlijke implicaties voor de software-industrie. Naarmate AI-aangedreven codegeneratie steeds meer ingeburgerd raakt, is het essentieel om de risico’s te begrijpen en maatregelen te nemen om ze te beperken.
Onveilige AI-gegenereerde code kan leiden tot nieuwe kwetsbaarheden die cybercriminelen kunnen misbruiken. Dit kan leiden tot datalekken, systeeminbraak en andere beveiligingsincidenten. Bovendien kan het enorme volume van AI-gegenereerde code het een uitdaging maken om kwetsbaarheden te identificeren en te verhelpen.
Organisaties die vertrouwen op AI-gegenereerde code kunnen ook te maken krijgen met uitdagingen op het gebied van wettelijke naleving. Veel voorschriften vereisen dat organisaties adequate beveiligingsmaatregelen implementeren om gevoelige gegevens te beschermen. Onveilige AI-gegenereerde code kan het moeilijk maken om aan deze vereisten te voldoen.
Best practices voor veilige AI-aangedreven codegeneratie
Om de risico’s te beperken die zijn verbonden aan onveilige AI-gegenereerde code, moeten organisaties de volgende best practices hanteren:
- Bied beveiligingstraining aan ontwikkelaars: Ontwikkelaars moeten training krijgen over de beveiligingsrisico’s die zijn verbonden aan AI-gegenereerde code. Deze training moet onderwerpen behandelen zoals veelvoorkomende CWE’s, veilige codeerpraktijken en het gebruik van beveiligingstools.
- Implementeer beveiligingsbeleid en -procedures: Organisaties moeten beveiligingsbeleid en -procedures implementeren die het gebruik van AI-gegenereerde code aanpakken. Dit beleid moet acceptabele use cases, beveiligingseisen en processen definiëren voor het beoordelen en goedkeuren van AI-gegenereerde code.
- Gebruik beveiligingstools om AI-gegenereerde code te scannen: Organisaties moeten beveiligingstools gebruiken om AI-gegenereerde code te scannen op kwetsbaarheden. Deze tools kunnen helpen bij het identificeren van veelvoorkomende CWE’s en andere beveiligingsproblemen.
- Implementeer een Secure Development Lifecycle (SDLC): Organisaties moeten een secure development lifecycle (SDLC) implementeren die beveiligingsoverwegingen gedurende het hele ontwikkelingsproces integreert. Dit omvat het uitvoeren van beveiligingsreviews van AI-gegenereerde code, het uitvoeren van penetratietests en het implementeren van beveiligingsmonitoring.
- Start een bug bounty-programma: Organisaties moeten een bug bounty-programma starten om beveiligingsonderzoekers aan te moedigen kwetsbaarheden in AI-gegenereerde code te vinden en te melden. Dit kan helpen bij het identificeren van kwetsbaarheden die mogelijk zijn gemist door interne beveiligingsteams.
- Blijf op de hoogte van de nieuwste beveiligingsbedreigingen: Organisaties moeten op de hoogte blijven van de nieuwste beveiligingsbedreigingen en -kwetsbaarheden die van invloed zijn op AI-gegenereerde code. Dit kan hen helpen proactief potentiële beveiligingsproblemen aan te pakken.
- Werk samen met beveiligingsexperts: Organisaties moeten samenwerken met beveiligingsexperts om de beveiliging van hun AI-gegenereerde code te beoordelen en strategieën te ontwikkelen voor het beperken van risico’s.
Backslash Security’s oplossingen
Backslash Security heeft verschillende nieuwe functies geïntroduceerd om de problemen aan te pakken die door het onderzoek aan het licht zijn gekomen. Deze functies zijn ontworpen om ontwikkelaars te helpen veilige AI-aangedreven applicaties te ontwikkelen.
- Backslash AI Rules & Policies: Biedt machine leesbare regels die in prompts kunnen worden geïnjecteerd om CWE-dekking te garanderen.
- Backslash IDE Extension: Integreert rechtstreeks in de bestaande workflows van ontwikkelaars, waardoor ze Backslash-beveiligingsreviews kunnen ontvangen op code die is geschreven door zowel mensen als AI.
- Backslash Model Context Protocol (MCP) Server: Een contextbewuste API die voldoet aan de MCP-standaard en Backslash verbindt met AI-tools, waardoor veilig coderen, scannen en repareren mogelijk is.
Conclusie
AI-aangedreven codegeneratie heeft het potentieel om de softwareontwikkelingsindustrie te transformeren. Het is echter essentieel om de risico’s te begrijpen en maatregelen te nemen om ze te beperken. Door de best practices te volgen die hierboven zijn beschreven, kunnen organisaties de voordelen van AI-aangedreven codegeneratie benutten en tegelijkertijd hun systemen en gegevens beschermen tegen cyberaanvallen.
De oplossingen van Backslash Security bieden een waardevolle set tools voor ontwikkelaars om veilige AI-aangedreven applicaties te ontwikkelen. Door gebruik te maken van deze tools en de hierboven beschreven best practices, kunnen organisaties de risico’s van onveilige AI-gegenereerde code minimaliseren en de voordelen van AI-aangedreven ontwikkeling maximaliseren.