AI-medprogrammerere vil kanskje ikke skape så mange feil som fryktet PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

AI-medprogrammerere vil kanskje ikke skape så mange feil som fryktet

Maskinlæringsmodeller som driver neste generasjons kodefullføringsverktøy som GitHub Copilot kan hjelpe programvareutviklere med å skrive mer funksjonell kode, uten å gjøre den mindre sikker.

Det er det foreløpige resultatet av en om enn liten undersøkelse på 58 personer utført av en gruppe datavitere ved New York University.

In et papir distribuert via ArXiv, Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt og Siddharth Garg forteller hvordan de satte sikkerheten til kildekoden laget ved hjelp av store språkmodeller (LLM) på prøve.

LLM-er som OpenAI GPT-familien har blitt trent på enorme mengder offentlig tekstdata, eller offentlig kildekode i tilfellet med OpenAIs Codex, en GPT-etterkommer og grunnlaget for GitHubs Copilot. Som sådan kan de reprodusere feil gjort tidligere av menneskelige programmerere, og illustrerer maksimen "søppel inn, søppel ut." Det var en frykt for at disse verktøyene ville gjenoppstå og foreslå dårlig kode til utviklere, som ville sette inn ting i prosjektene deres.

Dessuten kan kodesikkerhet være kontekstuell: kode som er sikker isolert sett kan være usikker når den kjøres i en bestemt sekvens med annen programvare. Så disse autofullføringsverktøyene kan tilby kodeforslag som i seg selv er fine, men som er koblet til annen kode, nå er sårbare for angrep eller rett og slett er ødelagte. Når det er sagt, viser det seg at disse verktøyene kanskje ikke gjør mennesker dårligere til å programmere.

På en eller annen måte slo forskerne sin egen brann. For omtrent et år siden bidro to av de samme informatikerne til en artikkel med tittelen "Sover ved tastaturet? Vurderer sikkerheten til GitHub Copilots kodebidrag." Det arbeidet funnet om 40 prosent av produksjonen fra Copilot inkluderte potensielt utnyttbare svakheter (CWE-er).

"Forskjellen mellom de to papirene er at 'Sov ved tastaturet' så på helautomatisk kodegenerering (ingen mennesker i løkken), og vi hadde ikke menneskelige brukere å sammenligne med, så vi kunne ikke si noe om hvordan sikkerheten til Copilot sammenlignet med sikkerheten til menneskeskreven kode,” sa Brendan Dolan-Gavitt, medforfatter på både papirer og assisterende professor i informatikk- og ingeniøravdelingen ved NYU Tandon, i en e-post til Registeret.

"Brukerstudieoppgaven prøver å takle de manglende brikkene direkte ved å la halvparten av brukerne få hjelp fra Codex (modellen som driver Copilot) og la den andre halvparten skrive koden selv. Den er imidlertid også smalere enn 'Sov ved tastaturet': vi så bare på én oppgave og ett språk (å skrive en koblet liste i C).»

I den siste rapporten, "Security Impplications of Large Language Model Code Assistants: A User Study", erkjenner et litt variert sett av NYU-forskere at tidligere arbeid ikke klarer å modellere bruken av LLM-baserte verktøy som Copilot realistisk.

"For det første antar disse studiene at hele koden genereres automatisk av LLM (vi vil kalle dette autopilotmodus)," forklarer boffinene i papiret sitt.

"I praksis hjelper LLM-er for kodefullføring utviklere med forslag som de vil velge å godta, redigere eller avvise. Dette betyr at mens programmerere som er utsatt for automatiseringsskjevhet kan naivt godta buggy-fullføringer, kan andre utviklere produsere mindre buggy-kode ved å bruke tiden spart til å fikse feil.»

For det andre observerer de at mens LLM-er har vist seg å produsere buggy-kode, gjør mennesker det også. Feilene i LLM-treningsdata kom fra folk.

Så i stedet for å vurdere bugginess av LLM-generert kode på egen hånd, satte de seg for å sammenligne hvordan koden produsert av menneskelige utviklere assistert av maskinlæringsmodeller skiller seg fra kode produsert av programmering som fungerer på egen hånd.

NYU-dataforskerne rekrutterte 58 undersøkelsesdeltakere – studenter og studenter i programvareutviklingskurs – og delte dem opp i en kontrollgruppe, som ville jobbe uten forslag, og en assistert gruppe, som hadde tilgang til et tilpasset forslagssystem bygget ved hjelp av OpenAI Codex API. De brukte også Codex-modellen for å lage 30 løsninger på de gitte programmeringsproblemene som et sammenligningspunkt. Denne autopilotgruppen fungerte hovedsakelig som en andre kontrollgruppe.

Både Assisted- og Control-gruppene hadde lov til å konsultere nettressurser, som Google og Stack Overflow, men ikke spørre andre om hjelp. Arbeidet ble utført i Visual Studio Code i en nettbasert container bygget med åpen kildekode Anubis.

Deltakerne ble bedt om å fullføre et handlelisteprogram ved å bruke C-programmeringsspråket fordi "det er lett for utviklere å utilsiktet uttrykke sårbare designmønstre i C" og fordi C-kompilatorverktøykjeden som brukes ikke sjekker for feil i samme grad verktøykjeder for moderne språk, som Go og Rust, gjør det.

Da forskerne manuelt analyserte koden produsert av kontroll- og assistentgruppene, fant de ut at, i motsetning til tidligere arbeid, gjorde ikke forslag til AI-kode ting verre totalt sett.

Ser tydelig ut, men det er detaljer

«[Vi fant ingen bevis som tyder på at Codex-hjelp øker forekomsten av sikkerhetsfeil», heter det i avisen, samtidig som det påpekes at studiens lille utvalgsstørrelse betyr at ytterligere studier er berettiget. "Tvert imot, det er noen bevis som tyder på at CWEs/LoC [kodelinjer] reduseres med Codex-hjelp."

"Det er vanskelig å konkludere dette med stor statistisk sikkerhet," sa Siddharth Garg, en cybersikkerhetsforsker og førsteamanuensis ved ingeniøravdelingen ved NYU Tandon, i et telefonintervju med Registeret.

Det er vanskelig å konkludere dette med stor statistisk sikkerhet

Ikke desto mindre sa han: "Dataene tyder på at Copilot-brukere ikke hadde det mye verre."

Dolan-Gavitt er på samme måte forsiktig med funnene.

"Nåværende analyse av våre brukerstudieresultater har ikke funnet noen statistisk signifikante forskjeller - vi analyserer fortsatt dette, inkludert kvalitativt, så jeg vil ikke trekke sterke konklusjoner fra dette, spesielt siden det var en liten studie (58 brukere totalt) og brukere var alle studenter i stedet for profesjonelle utviklere," sa han.

"Vi kan likevel si at med disse brukerne, på denne oppgaven, var sikkerhetseffekten av å ha AI-assistanse sannsynligvis ikke stor: hvis det hadde en veldig stor innvirkning, ville vi ha observert en større forskjell mellom de to gruppene. Vi gjør litt mer statistisk analyse for å gjøre det nøyaktig nå.»

Utover det dukket det opp noen andre innsikter. Den ene er at assistentgruppedeltakerne var mer produktive, genererte flere kodelinjer og fullførte en større del av funksjonene i oppgaven.

"Brukere i Assisted-gruppen besto flere funksjonstester og produserte mer funksjonell kode," sa Garg, og la til at resultater av denne typen kan hjelpe bedrifter som ser på assisterende kodeverktøy med å bestemme om de skal distribuere dem.

En annen er at forskerne var i stand til å skille ut resultatet produsert av kontroll-, assistert- og autopilotgruppene, noe som kan dempe bekymringer om juks med AI-kraft i utdanningsmiljøer.

Boffinene fant også at AI-verktøy må vurderes i sammenheng med brukerfeil. "Brukere gir meldinger som kan inkludere feil, aksepterer buggy-meldinger som ender opp i de 'fullførte' programmene, samt aksepterer feil som senere fjernes," heter det i avisen. "I noen tilfeller ender brukere også opp med flere feil enn det som ble foreslått av modellen!"

Forvent videre arbeid i denne retningen. ®

Tidstempel:

Mer fra Registeret