AI-co-programmeurs zullen misschien niet zoveel bugs voortbrengen als gevreesd PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

AI-co-programmeurs zullen misschien niet zoveel bugs voortbrengen als gevreesd

Modellen voor machine learning die de volgende generatie tools voor codeaanvulling, zoals GitHub Copilot, aandrijven, kunnen softwareontwikkelaars helpen om functionelere code te schrijven, zonder deze minder veilig te maken.

Dat is het voorlopige resultaat van een, zij het klein, 58-persoonsonderzoek uitgevoerd door een groep computerwetenschappers van de New York University.

In een krant gedistribueerd via ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt en Siddharth Garg vertellen hoe ze de beveiliging van broncode die is gemaakt met behulp van grote taalmodellen (LLM's) op de proef hebben gesteld.

LLM's zoals de OpenAI GPT-familie zijn getraind in enorme hoeveelheden openbare tekstgegevens, of openbare broncode in het geval van OpenAI's Codex, een afstammeling van GPT en de basis van GitHub's Copilot. Als zodanig kunnen ze fouten reproduceren die in het verleden door menselijke programmeurs zijn gemaakt, wat de stelregel "garbage in, garbage out" illustreert. Er was een angst dat deze tools zouden uitbraken en slechte code zouden suggereren aan ontwikkelaars, die de dingen in hun projecten zouden invoegen.

Bovendien kan codebeveiliging contextueel zijn: code die op zichzelf veilig is, kan onveilig zijn wanneer deze in een bepaalde volgorde met andere software wordt uitgevoerd. Deze tools voor automatisch aanvullen kunnen dus code-suggesties bieden die op zich prima zijn, maar verbonden met andere code, nu kwetsbaar zijn voor aanvallen of gewoon kapot zijn. Dat gezegd hebbende, blijkt dat deze tools mensen misschien niet slechter maken in programmeren.

In zekere zin waren de onderzoekers hun eigen vuur aan het blussen. Ongeveer een jaar geleden hebben twee van dezelfde computerwetenschappers bijgedragen aan een paper met de titel "Asleep at the Keyboard? De beveiliging van de codebijdragen van GitHub Copilot beoordelen.” Dat werk gevonden over 40 procent van de output van Copilot bevatte potentieel exploiteerbare zwakheden (CWE's).

“Het verschil tussen de twee artikelen is dat 'Asleep at the Keyboard' keek naar volledig geautomatiseerde codegeneratie (geen mens in de lus), en we hadden geen menselijke gebruikers om mee te vergelijken, dus we konden niets zeggen over hoe de veiligheid van Copilot's vergeleken met de veiligheid van door mensen geschreven code', zegt Brendan Dolan-Gavitt, co-auteur van beide papers en assistent-professor op de afdeling computerwetenschappen en engineering van NYU Tandon, in een e-mail aan Het register.

“Het gebruikersonderzoeksdocument probeert die ontbrekende stukjes direct aan te pakken, door de helft van de gebruikers hulp te laten krijgen van Codex (het model dat Copilot aandrijft) en de andere helft de code zelf te laten schrijven. Het is echter ook smaller dan 'Asleep at the Keyboard': we hebben maar naar één taak en één taal gekeken (een gekoppelde lijst schrijven in C).”

In het laatste rapport, "Security Implications of Large Language Model Code Assistants: A User Study", erkent een enigszins gevarieerde groep NYU-onderzoekers dat eerder werk het gebruik van op LLM gebaseerde tools zoals Copilot niet realistisch modelleert.

"Ten eerste gaan deze onderzoeken ervan uit dat de volledige code automatisch wordt gegenereerd door de LLM (we zullen dit de autopilot-modus noemen)", leggen de boffins uit in hun paper.

"In de praktijk helpen LLM's voor het voltooien van code ontwikkelaars met suggesties die ze zullen accepteren, bewerken of afwijzen. Dit betekent dat, hoewel programmeurs die vatbaar zijn voor automatiseringsbias naïef buggy-aanvullingen accepteren, andere ontwikkelaars mogelijk minder buggy-code produceren door de tijd te gebruiken die is bespaard om bugs op te lossen.”

Ten tweede merken ze op dat hoewel is aangetoond dat LLM's code met fouten produceren, mensen dat ook doen. De bugs in LLM-trainingsgegevens kwamen van mensen.

Dus in plaats van de bugginess van LLM-gegenereerde code op zichzelf te beoordelen, wilden ze vergelijken hoe de code die wordt geproduceerd door menselijke ontwikkelaars, geholpen door modellen voor machine learning, verschilt van code die wordt geproduceerd door zelfstandig te programmeren.

De computerwetenschappers van de NYU rekruteerden 58 deelnemers aan het onderzoek - niet-gegradueerde en afgestudeerde studenten in cursussen voor softwareontwikkeling - en verdeelden ze in een controlegroep, die zonder suggesties zou werken, en een begeleide groep, die toegang had tot een aangepast suggestiesysteem dat was gebouwd met behulp van de OpenAI Codex-API. Ze gebruikten ook het Codex-model om 30 oplossingen voor de gegeven programmeerproblemen te creëren als vergelijkingspunt. Deze stuurautomaatgroep fungeerde voornamelijk als tweede controlegroep.

Zowel de Assisted- als de Control-groep mochten webbronnen, zoals Google en Stack Overflow, raadplegen, maar anderen niet om hulp vragen. Er is gewerkt in Visual Studio Code in een webgebaseerde container die is gebouwd met open source Anubis.

De deelnemers werd gevraagd om een ​​boodschappenlijstprogramma in te vullen met behulp van de programmeertaal C omdat "het gemakkelijk is voor ontwikkelaars om onbedoeld kwetsbare ontwerppatronen in C uit te drukken" en omdat de gebruikte C-compiler-toolchain niet in dezelfde mate op fouten controleert. moderne talen, zoals Go en Rust, wel.

Toen de onderzoekers de door de groepen Control en Assistant geproduceerde code handmatig analyseerden, ontdekten ze dat, in tegenstelling tot eerder werk, suggesties voor AI-codes de zaken in het algemeen niet erger maakten.

Ziet er duidelijk uit, maar er zijn details

"[W]e hebben geen bewijs gevonden om te suggereren dat Codex-hulp de incidentie van beveiligingsbugs verhoogt", verklaarde de krant, terwijl ze opmerkte dat de kleine steekproefomvang van het onderzoek betekent dat verder onderzoek gerechtvaardigd is. "Integendeel, er is enig bewijs dat suggereert dat CWE's/LoC [coderegels] afnemen met Codex-hulp."

"Het is moeilijk om dit met veel statistische zekerheid te concluderen", zei Siddharth Garg, een cybersecurity-onderzoeker en universitair hoofddocent aan de technische afdeling van NYU Tandon, in een telefonisch interview met Het register.

Het is moeilijk om dit met veel statistische zekerheid te concluderen

Desalniettemin zei hij: "De gegevens suggereren dat Copilot-gebruikers niet veel slechter af waren."

Dolan-Gavitt is eveneens voorzichtig over de bevindingen.

“De huidige analyse van de resultaten van onze gebruikersstudie heeft geen statistisch significante verschillen gevonden – we analyseren dit nog steeds, ook kwalitatief, dus ik zou hier geen sterke conclusies uit trekken, vooral omdat het een kleine studie was (in totaal 58 gebruikers) en de gebruikers waren allemaal studenten in plaats van professionele ontwikkelaars, "zei hij.

"Toch kunnen we zeggen dat bij deze gebruikers de beveiligingsimpact van AI-hulp bij deze taak waarschijnlijk niet groot was: als het een zeer grote impact had gehad, hadden we een groter verschil tussen de twee groepen waargenomen. We doen nu wat meer statistische analyses om dat precies te maken.”

Daarnaast kwamen er nog enkele andere inzichten naar voren. Een daarvan is dat deelnemers aan de Assistent-groep productiever waren, meer regels code genereerden en een groter deel van de functies in de opdracht voltooiden.

"Gebruikers in de Assisted-groep slaagden voor meer functionele tests en produceerden meer functionele code", zei Garg, eraan toevoegend dat dergelijke resultaten bedrijven kunnen helpen bij het overwegen van ondersteunende coderingstools om te beslissen of ze deze willen implementeren.

Een andere is dat de onderzoekers de output van de groepen Control, Assisted en Autopilot konden onderscheiden, wat de zorgen over valsspelen met AI-kracht in educatieve omgevingen.

De boffins ontdekten ook dat AI-tools moeten worden overwogen in de context van gebruikersfouten. "Gebruikers geven prompts die bugs kunnen bevatten, accepteren bug-prompts die in de 'voltooide' programma's terechtkomen en accepteren bugs die later worden verwijderd", zegt de krant. “In sommige gevallen krijgen gebruikers ook meer bugs dan door het model werd gesuggereerd!”

Verwacht verder werk in deze richting. ®

Tijdstempel:

Meer van Het register