JavaScript is currently disabled.Please enable it for a better experience of Jumi. Deepmind vill rätta alla buggar automatiskt

I Deepminds forskningslabb byggs en automat som kommer att rensa bort alla sårbarheter från all källkod. Det är alla fall forskarnas förhoppning.

Beviset så här långt är 72 stycken sårbarheter som verktyget – Codemender – korrigerat i olika öppen källkodsprojekt under de senaste sex månaderna.

Forskarna på Deepmind granskar alla rättelser noggrannt innan de skickas vidare som buggfixar. Och använder sedan återkopplingen från projektens förvaltare för att finslipa Codemender. 

Och när Codemender en dag är färdigslipad?

– Vi hoppas kunna släppa CodeMender som ett verktyg som kan användas av alla mjukvaruutvecklare för att hålla sina kodbaser säkra, säger Deepmind i en bloggpostning.

Deepmind har redan gjort sig ett namn inom området AI-baserad cybersäkerhet. I oktober förra året hittade Codemenders föregångare Big Sleep på egen hand en sårbarhet i mjukvaran SQLite

Buggjägare har länge haft LLM-baserade verktyg vid sin sida. Men SQLite-buggen räknas som den första sårbarhet som AI hittat på egen hand. 

Det finns idag flera Big Sleep-liknande verktyg  på marknaden. Elektroniktidningen rapporterade i måndags att en utvecklare vid namn Joshua Rogers just nu översvämmar öppenkodsprojekt med buggar han hittat med hjälp av sådana verktyg. 

I augusti rapporterade Deepmind att Big Sleep själv samlat ihop till 20 alldeles egna buggrapporter,

Genom att ta hjälp av stora språkmodeller, LLM:er, förstår Big Sleep-verktygen källkodens syfte. Därmed kan de se fel som klassiska kodanalysatorer inte kan se. 

Big Sleeps efterföljare Codemender har fått ytterligare en uppgift: att inte bara hitta felaktig kod, utan att dessutom försöka ersätta den med kod som fungerar.

Codemender anropar inte bara flera olika LLM:er utan dessutom flera olika klassiska kodverktyg. Där finns statiska analysatorer, dynamiska analysatorer, logiska bevisförare, fuzzingverktyg, differentiella testare, debuggers, källkodsbrowsers med mera.

En station generar kod, en annan tar emot koden och granskar den kritiskt, en annan provkör och jämför utfallet för den nya och gamla koden, en annan gör så kallade regressionstest för att se att rättelsen inte introducerar ett fel nån annanstans. Och så vidare. Stationerna ser till och med till att koden blir idiomatisk enligt projektets egna konventioner. 

Codemender försöker gräva sig vidare tills den hittar rotorsaken till en bugg. Hamnar den i en återvändsgränd, så börjar den om.

 Det liknar lite grand en tomtarnas verkstad. Olika arbetsstationer passar runt ett arbesstycke mellan sig och till slut tillsammans lyckas de mejsla fram en fungerande kodrättelse. Efter evenuellt flera misslyckade försök får buggrättninen till slut en ok-stämpel.

Som passas vidare till en mänsklig granskare. Codemender är inte ”agent” som på egen hand rättar fel eller ens rapporterar fel. Det finns människor i loopen.

Deepmind är redan inne på nästa steg för AI efter att den klarar att rätta existerande buggar. Nämligen proaktiva förbättringar. 

Så bli inte förvånad som maintainer om Codemender kontaktar dig och föreslår att du ska ”korrigera” fullt fungerande kod.

Deepmind förespråkar exempelvis att du adderar extra C-kod som dynamiskt verifierar att index håller sig inom sina gränser.  Sådana tester oskadliggör i ett  svep bort massor av buggar som kan uppstå i det riskabla programspråket C. 

Deepmind ägs av Google och leds av deep learning-pionjären Dennis Hassabis. Han är känd för ett AI-program som blev världsmästare i brädspelet go, och för ett AI-program som förutsäger hur proteiner veckar sig – det gav honom nobelpriset i kemi förra året.

Prenumerera på Elektroniktidningens nyhetsbrev eller på vårt magasin.


MER LÄSNING:
 
KOMMENTARER
Kommentarer via Disqus

Rainer Raitasuo

Rainer
Raitasuo

+46(0)734-171099 rainer@etn.se
(sälj och marknads­föring)
Per Henricsson

Per
Henricsson
+46(0)734-171303 per@etn.se
(redaktion)

Jan Tångring

Jan
Tångring
+46(0)734-171309 jan@etn.se
(redaktion)