„Google DeepMind“ įdiegė naują AI agentą, skirtą savarankiškai surasti ir ištaisyti kritinius programinės įrangos kodo saugos pažeidžiamumus. Sistema, tinkamai pavadinta „Codemender“, per pastaruosius šešis mėnesius jau prisidėjo prie 72 saugumo pataisų į nustatytus atvirojo kodo projektus.
Pažeidžiamumų nustatymas ir pataisymas yra žinomai sunkus ir daug laiko reikalaujantis procesas, net naudojant tradicinius automatinius metodus, tokius kaip pūtimas. Paties „Google Deepmind“ tyrimai, įskaitant AI pagrįstus projektus, tokius kaip „Big Sleep“ ir „OSS-Fuzz“, pasirodė esąs veiksmingi atradant naujus nulinės dienos pažeidžiamumus gerai audiniame kode. Tačiau ši sėkmė sukuria naują kliūtį: kai AI pagreitina trūkumų atradimą, našta žmonių kūrėjams, kad juos ištaisytų.
„Codemender“ yra sukurtas siekiant išspręsti šį disbalansą. Tai veikia kaip autonominis AI agentas, kuris laikosi išsamaus požiūrio į kodo saugumą. Jos galimybės yra reaktyvios, todėl ji gali iškart pataisyti naujai atrastus pažeidžiamumus ir iniciatyvius, leidžiančius jam perrašyti esamą kodą, kad būtų pašalintos visos saugos trūkumų klasėse, kol jie nebus išnaudoti. Tai leidžia žmonių kūrėjams ir projekto prižiūrėtojams daugiau laiko skirti kurti funkcijas ir tobulinti programinės įrangos funkcionalumą.
Sistema veikia panaudodama pažangias „Google“ naujausių „Gemini Deep Think“ modelių pagrindimo galimybes. Šis fondas leidžia agentui derinti ir išspręsti sudėtingas saugumo problemas, turinčias aukštą autonomijos laipsnį. Norėdami tai pasiekti, sistemoje yra įrengtas įrankių rinkinys, leidžiantis jai analizuoti ir pagrįsti kodą prieš įgyvendinant bet kokius pakeitimus. „Codemender“ taip pat apima patvirtinimo procesą, kuris užtikrintų, kad bet kokie pakeitimai yra teisingi, ir nepateikia naujų problemų, žinomų kaip regresijos.
Nors didelių kalbų modeliai greitai tobulina, klaida, susijusi su kodo saugumu, gali sukelti brangias pasekmes. Taigi „Codemender“ automatinis patvirtinimo sistema yra būtina. Jis sistemingai tikrina, kad visi siūlomi pakeitimai ištaiso pagrindinę problemos priežastį, yra funkciškai teisingi, nesulaužykite esamų testų ir laikosi projekto kodavimo stiliaus gairių. Žmogaus peržiūrai yra taikomi tik aukštos kokybės pleistrai, tenkinantys šiuos griežtus kriterijus.
Siekdama pagerinti savo kodo fiksavimo efektyvumą, „Deepmind“ komanda sukūrė naujus AI agento metodus. „Codemender“ naudoja išplėstinę programos analizę, naudodamas įrankių rinkinį, įskaitant statinę ir dinaminę analizę, diferencialinius bandymus, pūtiklius ir SMT sprendimus. Šie instrumentai leidžia sistemingai tikrinti kodų modelius, valdymo srautą ir duomenų srautą, kad būtų galima nustatyti pagrindines saugumo trūkumų ir architektūrinių silpnybių priežastis.
Sistema taip pat naudoja daugialypę architektūrą, kai specializuoti agentai yra naudojami siekiant išspręsti konkrečius problemos aspektus. Pavyzdžiui, skirtas didelės kalbos modeliais pagrįstas kritikos įrankis atskleidžia originalaus ir modifikuoto kodo skirtumus. Tai leidžia pirminiam agentui patikrinti, ar jo siūlomi pakeitimai nepateikia nenumatyto šalutinio poveikio ir prireikus taisyti jo požiūrį.
Viename praktiniame pavyzdyje „Codemender“ atkreipė dėmesį į pažeidžiamumą, kai avarijos ataskaitoje nurodytas krūvos buferio perpildymas. Nors paskutiniam pataisymui reikėjo pakeisti tik keletą kodo eilučių, pagrindinė priežastis nebuvo iškart akivaizdi. Naudodamas derinimo ir kodo paieškos įrankius, agentas nustatė, kad tikroji problema buvo neteisinga kamino valdymo problema, kai analizės metu yra išplėstinės žymėjimo kalbos (XML) elementai, esantys kitoje kodo bazės dalyje. Kitu atveju agentas sugalvojo ne trivialų pataisą sudėtingam objekto gyvenimo problemai, modifikuodamas pasirinktinę sistemą C kodo generavimui tiksliniame projekte.
Be tiesiog reagavimo į esamas klaidas, „Codemender“ yra skirtas aktyviai sukietėti programinei įrangai nuo būsimų grėsmių. Komanda dislokavo agentą, kad galėtų kreiptis -Fbounds-Saugos Plačiai naudojamos vaizdo kompresinės bibliotekos, plačiai naudojamos vaizdo kompresijos bibliotekos komentarai. Šios anotacijos nurodo kompiliatoriui pridėti ribų patikrinimus prie kodo, o tai gali užkirsti kelią užpuolikas išnaudoti buferio perpildymą, kad būtų galima vykdyti savavališką kodą.
Šis darbas yra ypač aktualus, atsižvelgiant į tai, kad krūvos buferio perpildymo pažeidžiamumas „Libwebp“, stebimas kaip CVE-2023-4863, prieš kelerius metus panaudojo grėsmės aktorių nuliniame spustelėjime „iOS“. „DeepMind“ pažymi, kad turint šias anotacijas, tas specifinis pažeidžiamumas kartu su daugeliu kitų buferio perpildymų anotuotame skyriuose būtų buvę neišnaudotos.
AI agento iniciatyvus kodo taisymas apima sudėtingą sprendimų priėmimo procesą. Taikant anotacijas, jis gali automatiškai ištaisyti naujas kompiliavimo klaidas ir išbandyti gedimus, atsirandančius dėl jos pačios pakeitimų. Jei jo patvirtinimo įrankiai nustato, kad modifikacija turi nutrūkusį funkcionalumą, agento taisymai, pagrįsti atsiliepimais, ir bando kitokį sprendimą.
Nepaisant šių perspektyvių ankstyvų rezultatų, „Google DeepMind“ laikosi atsargaus ir apgalvoto požiūrio į diegimą, daug dėmesio skiriant patikimumui. Šiuo metu kiekvienas „Codemender“ sugeneruotas pleistras peržiūri žmonių tyrėjai, prieš pateikdami atvirojo kodo projektą. Komanda pamažu didina savo pareiškimus, kad užtikrintų aukštą kokybę ir sistemingai įtrauktų atvirojo kodo bendruomenės atsiliepimus.
Žvelgiant į ateitį, tyrėjai planuoja susisiekti su kritinių atvirojo kodo projektų prižiūrėtojais su kodemendo sukurtais pleistrais. Pakartoję bendruomenės atsiliepimus, jie tikisi galiausiai išleisti „Codemender“ kaip viešai prieinamą įrankį visiems programinės įrangos kūrėjams.
„Deepmind“ komanda taip pat ketina ateinančiais mėnesiais paskelbti techninius dokumentus ir ataskaitas, kad pasidalytų savo technika ir rezultatais. Šis darbas yra pirmieji žingsniai tiriant AI agentų galimybes aktyviai ištaisyti kodą ir iš esmės pagerinti programinės įrangos saugumą visiems.
Taip pat žiūrėkite: „Camia“ privatumo ataka atskleidžia, ką AI modeliai įsimena
Norite sužinoti daugiau apie AI ir didelius duomenis iš pramonės lyderių? Peržiūrėkite AI ir „Big Data Expo“, vykstančią Amsterdame, Kalifornijoje ir Londone. Išsamus renginys yra „TechEx“ dalis ir yra kartu su kitais pagrindiniais technologijų renginiais, įskaitant „Cyber Security Expo“, spustelėkite čia, jei norite gauti daugiau informacijos.
„AI News“ maitina „TechForge Media“. Čia ištirkite kitus būsimus įmonių technologijų renginius ir internetinius seminarus.