Understanding the Impact of AI Code Assistants on Security API Usage: An Empirical Study
Deze empirische studie onder 44 professionele ontwikkelaars onthult dat hoewel GitHub Copilot de functionele correctheid verbetert en bepaalde onveilige patronen marginaal vermindert, het er niet in slaagt om het veilige gebruik van security API's significant te verbeteren, waardoor ontwikkelaars vaak onbewust blijven van resterende kwetsbaarheden.
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 een supergeheime clubhuis bouwt en je moet geavanceerde sloten, alarmen en geheime tunnels installeren om indringers buiten te houden. Deze sloten zijn als Security API's—speciale hulpmiddelen die ontwikkelaars gebruiken om software te beschermen. Maar hier komt de twist: deze sloten zijn lastig. Als je ze verkeerd installeert, kan je "geheime" tunnel zomaar een wagenwijd openstaande deur worden voor hackers.
Stel je nu voor dat je een superintelligente robotassistent hebt genaamd Copilot die code voor je kan schrijven. Je denkt misschien: "Geweldig, de robot kent alle regels, dus mijn clubhuis wordt als Fort Knox!" Maar een nieuwe studie door Zahra Moussevi en haar team van universiteiten en onderzoekscentra in Australië besloot dit idee op de proef te stellen. Ze vroegen de robot niet alleen om een slot te bouwen; ze observeerden 44 echte professionele ontwikkelaars die probeerden deze sloten te bouwen, zowel met de hulp van de robot als zonder.
Dit is wat ze vonden, geserveerd met een vleugje realiteit.
De robot is een geweldige helper, maar een slechte beveiligingsbewaker
Eerst het goede nieuws: Copilot is een fantastische snelheidsduivel. Wanneer de ontwikkelaars een complex slot moesten bouwen (specifiek een Google OAuth-systeem voor toegang tot gebruikersgegevens), hielp de robot hen om de klus veel sneller te klaren.
- Zonder de robot kreeg slechts 45% van de ontwikkelaars (10 van de 22) het slot überhaupt werkend.
- Met de hulp van de robot kreeg 91% van de ontwikkelaars (20 van de 22) het werkend.
- De robot verkortte ook de tijd die nodig was om de complexe taak te voltooien met 63%, waarbij de gemiddelde tijd daalde van 62 minuten naar 23 minuten.
Dus, als je doel simpelweg is om de deur te bouwen en te laten draaien, is de robot een grote overwinning.
Maar hier is de adder onder het gras: Alleen omdat de deur gebouwd is, betekent het nog niet dat hij op slot zit. Sterker nog, geen enkele van de ontwikkelaars, of ze nu de robot gebruikten of niet, slaagde erin om een volledig veilig slot te bouwen voor de taken die ze kregen toegewezen. Elke poging bij de geëvalueerde taken bevatte ten minste één grote fout.
De "Vertrouw mij"-valstrik
De studie keek naar twee specifieke soorten sloten: JSSE (voor veilige internetverbindingen) en Google OAuth (voor het inloggen bij apps). Ze ontdekten dat de robot de beveiligingsproblemen niet oploste; in veel gevallen hielp het de ontwikkelaars juist om de kapotte sloten sneller te bouwen.
- De "Vertrouw iedereen"-fout: Stel je een bewaker voor die iedereen binnenlaat omdat ze er vriendelijk uitzien. In de studie stelden sommige ontwikkelaars (en de robot) het systeem zo in dat het "alle certificaten vertrouwt". Dit is alsof je tegen je bewaker zegt: "Als iemand een pasje laat zien, laat ze dan binnen, zelfs als het een nep pasje is." Dit is een enorm beveiligingslek.
- De "Geheime Code"-fout: Sommige ontwikkelaars schreven hun geheime wachtwoorden direct in de code, zoals het onder de deurmat leggen van je huissleutel. De robot suggereerde dit soms ook!
- De "Geen controle"-fout: Bij het verbinden met een server moet je controleren of je daadwerkelijk met de juiste persoon praat. Veel implementaties sloegen deze stap over, waardoor de deur open kwam te staan voor een "Man-in-the-Middle"-aanvaller (iemand die zich voordoet als je vriend om je spullen te stelen).
De onderzoekers ontdekten dat hoewel de robot hielp bij sommige kleine fouten, het de grote beveiligingsfouten niet voorkwam. Sterker nog, 100% van de geëvalueerde taken resulteerde in code met beveiligingsproblemen. De robot maakte de code niet veiliger dan de menselijke werkzaamheden alleen; het zorgde er alleen voor dat de onveilige code sneller verscheen.
De blinde vlek van de mens
Dit is het meest verrassende deel van het verhaal. De onderzoekers vroegen de ontwikkelaars: "Denk je dat je code veilig is?"
- Ondanks dat geen enkele code daadwerkelijk veilig was, zeiden de meeste ontwikkelaars: "Ja, ik denk dat ik dit veilig heb opgelost!"
- Slechts een handjevol mensen realiseerde zich dat ze een fout hadden gemaakt.
- Wanneer ze met de robot praatten, vroeg bijna niemand: "Hé, is dit wel veilig?" Ze vroegen alleen: "Maak het werkend."
Het is alsof een groep mensen een brug bouwt en een robot om hulp vraagt. De robot helpt hen om de stenen snel te leggen, maar niemand controleert of de brug daadwerkelijk gewicht kan dragen. Wanneer er wordt gevraagd: "Denk je dat deze brug het houdt?", zeggen de meeste mensen: "Zeker!", ook al staat de brug op instorten.
Kunnen we de robot beter leren?
De onderzoekers probeerden nog één ding. Ze vroegen de ontwikkelaars om de robot specifiek te vertellen: "Hey, controleer dit op beveiliging!" of "Je bent een expert in beveiliging, los dit op!"
- Wanneer zij dit deden, herstelde de robot inderdaad sommige van de fouten in het eenvoudigere slot (JSSE).
- Echter, voor het complexere slot (OAuth) miste de robot nog steeds veel kritieke beveiligingslekken, zelfs toen er expliciet werd gevraagd om voorzichtig te zijn.
De kern van het verhaal
Deze studie suggereert dat hoewel AI-assistenten zoals Copilot geweldig zijn in het helpen van ons om snel en correct code te schrijven, ze geen magisch schild tegen hackers zijn.
- De Robot: Geweldig in snelheid en functionaliteit, maar geen beveiligingsexpert.
- De Mensen: Vaak te vertrouwend op de robot en controleren de beveiliging zelf niet goed genoeg.
- Het Resultaat: We bouwen systemen die veilig lijken, maar die in werkelijkheid vol gaten zitten.
De onderzoekers concluderen dat we niet simpelweg op de robot kunnen vertrouwen om ons veilig te houden. We moeten degene zijn die de moeilijke beveiligingsvragen stellen, het werk controleren en ervoor zorgen dat de "sloten" die we bouwen ook daadwerkelijk op slot zitten. De robot is een krachtig hulpmiddel, maar het is geen vervanging voor een beveiligingsbewust verstand.
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.