Onderzoek naar de impact van AI-assistenten zoals GitHub Copilot op codebeveiliging

Een team onderzoekers van Stanford University bestudeerde de impact van het gebruik van intelligente codeerassistenten op het optreden van kwetsbaarheden in code. Er werd gedacht aan oplossingen op basis van het OpenAI Codex machine learning-platform, zoals GitHub Copilot, die het genereren van vrij complexe codeblokken tot kant-en-klare functies mogelijk maken. De zorg is dat, aangezien echte code uit openbare GitHub-repository's, inclusief die met kwetsbaarheden, wordt gebruikt om het machine learning-model te trainen, de gesynthetiseerde code fouten kan herhalen en code kan suggereren die kwetsbaarheden bevat, en ook geen rekening houdt met de noodzaak om te presteren extra controles bij de verwerking van externe gegevens.

Bij het onderzoek waren 47 vrijwilligers betrokken met uiteenlopende ervaring in programmeren: van studenten tot professionals met tien jaar ervaring. De deelnemers werden verdeeld in twee groepen: experimenteel (33 personen) en controle (14 personen). Beide groepen hadden toegang tot alle bibliotheken en internetbronnen, inclusief de mogelijkheid om kant-en-klare voorbeelden van Stack Overflow te gebruiken. De experimentele groep kreeg de mogelijkheid om een ​​AI-assistent in te zetten.

Elke deelnemer kreeg 5 taken gerelateerd aan het schrijven van code waarbij het potentieel gemakkelijk is om fouten te maken die tot kwetsbaarheden leiden. Er waren bijvoorbeeld taken op het gebied van het schrijven van encryptie- en decryptiefuncties, het gebruik van digitale handtekeningen, het verwerken van gegevens die betrokken zijn bij de vorming van bestandspaden of SQL-query's, het manipuleren van grote getallen in C-code, het verwerken van invoer die op webpagina's wordt weergegeven. Om rekening te houden met de impact van programmeertalen op de veiligheid van code die wordt geproduceerd bij het gebruik van AI-assistenten, hadden de opdrachten betrekking op Python, C en JavaScript.

Als resultaat hiervan werd vastgesteld dat deelnemers die een intelligente AI-assistent gebruikten op basis van het codex-davinci-002-model aanzienlijk minder veilige code voorbereidden dan deelnemers die geen AI-assistent gebruikten. In totaal kon slechts 67% van de deelnemers in de groep die de AI-assistent gebruikte, correcte en veilige code aanleveren, terwijl dit bij de andere groep 79% was.

Tegelijkertijd waren de indicatoren voor het gevoel van eigenwaarde het tegenovergestelde: deelnemers die de AI-assistent gebruikten, geloofden dat hun code veiliger zou zijn dan die van deelnemers uit de andere groep. Daarnaast werd opgemerkt dat deelnemers die de AI-assistent minder vertrouwden en meer tijd besteedden aan het analyseren van de gegeven aanwijzingen en het aanbrengen van wijzigingen daarin, minder kwetsbaarheden in de code maakten.

Code die uit cryptografische bibliotheken werd gekopieerd, bevatte bijvoorbeeld veiligere standaardparameterwaarden dan code die door de AI-assistent werd voorgesteld. Ook werd bij het gebruik van de AI-assistent de keuze voor minder betrouwbare versleutelingsalgoritmen en het ontbreken van authenticatiecontroles van geretourneerde waarden geregistreerd. Bij een taak met getalmanipulatie in C werden meer fouten gemaakt in de code die met de AI-assistent was geschreven, wat leidde tot een overflow van gehele getallen.

Daarnaast kunnen we melding maken van een soortgelijk onderzoek door een groep van de New York University, uitgevoerd in november, waarbij 58 studenten betrokken waren, aan wie werd gevraagd een structuur te implementeren voor het verwerken van een boodschappenlijstje in C-taal. Uit de resultaten bleek dat de AI-assistent weinig invloed had op de codebeveiliging: gebruikers die de AI-assistent gebruikten, maakten gemiddeld ongeveer 10% meer beveiligingsgerelateerde fouten.

Onderzoek naar de impact van AI-assistenten zoals GitHub Copilot op codebeveiliging


Bron: opennet.ru

Voeg een reactie