OpenAIs språkmodell ChatGPT kan i likhet med GitHub Copilot være et nyttig verktøy for utviklere som trenger hjelp til å lage en kodesnutt som løser ett eller annet problem. Det er imidlertid ingen hemmelighet at kvaliteten på koden kan være så som så.
Bing vs. ChatGPT til programmering: - Begge gjør mange feil
I en fersk rapport fra universitetet i Québec advarer forskere mot at ChatGPT svært ofte genererer kode med veldig mange sikkerhetshull.
Spør du ChatGPT om koden er sikker, vil den ofte bekrefte at den ikke er sikker. Deretter kommer den med elendige råd om hvordan du fikser sårbarhetene, skriver The Register.
– Bekymringsfullt!
– Resultatene er bekymringsfulle, skriver forskerne bak rapporten.
De spurte ChatGPT om å lage 21 programmer og skript i språkene C, C++, Python og Java. Oppgavene var laget slik at hver enkelt skulle illustrere en bestemt type sårbarhet, som minnekorrupsjon, tjenestenekt, feil relatert til deserialisering eller dårlig implementert kryptografi.
I forsøkene "innrømmer" ChatGPT at koden den hadde generert var usikker, men først når man eksplisitt spør om det.
– Vi fant ut at, i mange tilfeller, falt koden generert av ChatGPT under minimumsstandardene for sikkerhet. Faktisk, når man spurte om hvorvidt koden var sikker eller ikke, var ChatGPT i stand til å gjenkjenne at den ikke var det, heter det i rapporten.
Sånn skal GitHub Copilot skrive sikrere kode for deg framover
Kun 5 av 21 programmer var sikre
I forsøkene klarte ChatGPT å lage kun fem sikre programmer, av totalt 21.
Da forskerne ba ChatGPT om å fikse sikkerhetshullene, klarte språkmodellen å lage ytterligere sju sikre programmer – det vil si programmer uten de sårbarhetene som ble undersøkt. Det er ikke utelukket at programmene kan inneholde andre sårbarheter.
Vi har tidligere skrevet om at Copilot i mange tilfeller kan lage sårbar kode, og den nye rapporten fra universitetet i Québec tyder på at ChatGPT ikke er noe bedre.
«I forsøkene "innrømmer" ChatGPT at koden den hadde generert var usikker.»
Gir elendige råd
En typisk sårbarhet som kunne dukke opp, var at koden manglet validering av input. ChatGPTs svar på hvordan man kan fikse dette, var å rett og slett bare la være å bruke ugyldig input. Først når forskerne ga beskjed om å fikse problemet skikkelig, fikk de noen nyttige råd.
Problemet med dette, slik forskerne ser det, er at hvis du allerede vet hvordan du skal stille de riktige spørsmålene for å få fikset problemet – så forstår du antagelig allerede hvordan du skal fikse det selv.
– Å ha et verktøy som lager usikker kode er virkelig farlig, advarer forskerne.