Tūkstančiu mažiau kelių į „root“ prieigą
Sukūrėme autonominę spragų aptikimo, išnaudojimo ir taisymo sistemą. Per vieną vykdymą su mūsų kibernetiniu modeliu ji patvirtino 948 vietinio privilegijų padidinimo spragas „Linux“ sistemoje ir sukūrė jų pataisas. API sąnaudos – 1,2 mln. JAV dolerių.
Saugumo tyrimus, kuriems anksčiau reikėdavo atskiro, ilgalaikio kiekvieno radinio nagrinėjimo, vis dažniau galima vykdyti kaip sistemingą procesą. Šiame dokumente aptariame vieną iš savo darbų šioje srityje.
Pažeidžiamumų paieškos mastą didinti darosi lengviau, tačiau prioritetų nustatymas ir patvirtinimas tebėra procesą ribojantys veiksniai. Sukūrėme prototipą „Linux“ branduolio saugumo spragoms ieškoti kontroliuojamoje tyrimų aplinkoje. Mūsų prototipas nustatė ir išanalizavo 2 308 galimus „Linux“ branduolio pažeidžiamumus, dinamiškai atkūrė 1 724 pažeidžiamumus ir sukūrė 948 vietinio privilegijų padidinimo (LPE) išnaudojimo kodus, kurie galėtų suteikti privilegijų neturinčiam vietiniam naudotojui „root“ prieigą.
Remdamiesi šiais įrodymais nustatėme, apie kuriuos pažeidžiamumus pranešti pirmiausia, ir parengėme siūlomas pataisas prižiūrėtojų peržiūrai. Vadovaudamiesi „Linux“ branduolio bendruomenės rekomendacijomis, pradėjome nuo kritinių pažeidžiamumų ir kartu su „Patch the Planet“ partneriais rengiame tolesnius pranešimus bei pataisas.
Birželį, vykdydami iniciatyvą „Patch the Planet“, pranešėme, kad GPT‑5.5 Cyber nustatė „Linux“ branduolio pažeidžiamumų ir sukūrė 24 vietinio privilegijų padidinimo išnaudojimo kodus, kad juos patvirtintų ir būtų galima apie juos pranešti. Šį darbą išplėtėme į būsimu kibernetinio saugumo modeliu paremtą procesą, apimantį pažeidžiamumų paiešką, dinaminį patvirtinimą, išnaudojamumo vertinimą ir pataisų generavimą. Jam pasibaigus, tyrėjai peržiūrėjo rezultatus ir pateikė pranešimus apie rastus pažeidžiamumus kartu su pataisomis.
Santrauka
Metodika
Bendrais bruožais mūsų procesas veikia taip: pirmiausia nustatomos saugumui svarbios „Linux“ branduolio dalys, tuomet šiuose audito objektuose statinės analizės būdu ieškoma galimų pažeidžiamumų, jie dinamiškai atkuriami izoliuotoje aplinkoje, sukuriamas koncepcijos įrodymo (PoC) kodas, parodantis galimybę juos išnaudoti, generuojamos pataisos, o galiausiai rezultatus peržiūri saugumo tyrėjas.
Proceso rezultatai apima pirminės priežasties analizę, minimalų strigtį sukeliantį koncepcijos įrodymo kodą, siūlomą pataisą ir visavertį išnaudojimo kodą, padedantį tyrėjams įvertinti pažeidžiamumo rimtumą ir pateikti pataisas pagrindiniam projektui.
Rezultatai
2026 m. spalio viduryje paleidę procesą su būsimu kibernetinio saugumo modeliu, dinamiškai atkūrėme 1 724 pažeidžiamumus ir sugeneravome PoC kodą 291 informacijos nutekėjimo pažeidžiamumui bei 948 veikiančius vietinio privilegijų padidinimo (LPE) išnaudojimo kodus plačiai naudojamam „Linux“ distributyvui. Visas vykdymas kainavo 1 213 430 JAV dolerių API kreditais, arba 1 279 JAV dolerius vienam LPE išnaudojimo kodui.
Tikslinėse virtualiosiose mašinose veikė standartinė darbalaukio operacinė sistema, o ne susilpnintas taikinys. Taikėme tokį pat grėsmių modelį kaip kibernetinio saugumo varžybose (pvz., „Pwn2Own“(atsidaro naujame lange), „TyphoonPWN“(atsidaro naujame lange)). Anksčiau „Pwn2Own“ ir „TyphoonPWN“ už „Linux“ branduolio LPE išnaudojimo kodą siūlė atitinkamai 20 000 ir 70 000 JAV dolerių atlygį. Pritaikius šias ankstesnių atlygių sumas 948 išnaudojimo kodams, hipotetinė vertė siektų 18,9–66,3 mln. JAV dolerių – maždaug 16–55 kartus daugiau nei mūsų proceso sąnaudos.
Pritaikytoje „kernelCTF“(atsidaro naujame lange) aplinkoje, kurioje naudojama „Linux“ branduolio versija su mažesniu atakos paviršiumi, mūsų sistema sukūrė 25 informacijos nutekėjimo PoC kodus ir 21 LPE išnaudojimo kodą. Palyginimui, iki šio teksto rengimo „kernelCTF“ 2026 m. buvo priėmusi 26 patvirtintus nulinės dienos LPE išnaudojimo kodus.
Šis tyrimo etapas kainavo apie 32 936 JAV dolerius API kreditais. Jei programa priimtų šį 21 pažeidžiamumą, atlygis siektų apie 1,5 mln. JAV dolerių – ~45 kartus daugiau nei skenavimo sąnaudos.
Kiek mums žinoma, šiame procese veikiantys agentai atrado ir panaudojo bent 10 naujų „Linux“ pažeidžiamumų išnaudojimo metodų.
Įžvalgos
„Linux“ prižiūrėtojai ir saugumo bendruomenė intensyviai dirba, kad greitai atrastų ir pašalintų pažeidžiamumus. Per 10 skenavimo dienų pastebėjome, kad daugiau nei 100 „Linux“ LPE pažeidžiamumų jau buvo pašalinti arba kiti bendradarbiai buvo parengę laukiančias įtraukimo pataisas, o dar apie 300 buvo viešai aptariami.
Atsižvelgdami į tai, kaip sparčiai priešakiniai modeliai atranda pažeidžiamumus, manome, kad automatizuotas pataisų generavimas būtinas norint reikiamu tempu užtikrinti programinės įrangos saugumą ir sutrumpinti laikotarpį, per kurį pažeidžiamumus galima išnaudoti. Manome, kad iteratyviai tobulinant procesą, vadovaujant ekspertams, DI sugeneruotos pataisos gali būti funkciškai teisingos, atitikti esamą kodo rašymo stilių ir būti atsparios atakų variantams. Tai svarbi tolesnių tyrimų sritis.
Pajėgesni modeliai gali atrasti naujų pažeidžiamumų esamame kode, dažnai ir tokių, kurie jame slypi ilgiau ir kuriuos sunkiau nustatyti. Spalio viduryje mūsų analizės sistema su naujesniu kibernetinio saugumo modeliu atrado >5 kartus daugiau naujų LPE pažeidžiamumų nei liepą vykdytas procesas su GPT‑5.6 Sol, nors per tris mėnesius tarp skenavimų saugumas buvo stiprinamas.
Dideliems ir sudėtingiems programinės įrangos projektams greičiausiai reikia kelių skenavimo ir pažeidžiamumų šalinimo ciklų, kad būtų „išsemtos“ paslėptos klaidos. Idealiu atveju šis procesas kartojamas su kiekviena nauja priešakinių modelių karta. Tai taikoma ir nuosavybinei, ir atvirojo kodo programinei įrangai.
Artimiausiu ir vidutinės trukmės laikotarpiu reikėtų laikyti, kad gausių išteklių turinčiam užpuolikui prieiga prie ribotų privilegijų paskyros operacinėje sistemoje, kurioje neįdiegtos naujausios prieinamos pataisos, praktiškai prilygsta administratoriaus („root“) prieigai. Daugiasluoksnė apsauga, naudojant smėlio dėžes ir tokius izoliavimo sprendimus kaip „Firecracker“ bei „gVisor“, svarbi siekiant apriboti išnaudotų pažeidžiamumų poveikio mastą.
Manome, kad per artimiausius kelerius metus priešakiniai modeliai greičiausiai gebės atrasti konkrečiame programinės įrangos projekte esančius pažeidžiamumus, o juos paviešinus net ir mažiau pajėgūs modeliai galbūt galės sukurti jų išnaudojimo kodą. Pasaulyje, kuriame nebėra nežinomų pažeidžiamumų, bus itin svarbu kurti ir prižiūrėti programinę įrangą, kurios saugumas patikimai užtikrintas, ypač pagrindinę įrangą, tokią kaip operacinės sistemos, naršyklės, vaizdų analizės bibliotekos, TCP/IP protokolų rinkinys ir kita. Be esamų pažeidžiamumų paieškos ir šalinimo, perspektyvios būsimų tyrimų kryptys yra modelių mokymas iš karto rašyti saugų kodą, atakos paviršiaus mažinimas atsisakant nereikalingų funkcijų ir formalusis tikrinimas. Tai galėtų padėti veiksmingai užtikrinti programinės įrangos saugumą dideliu mastu.
„Linux“ branduolys yra „Android“ įrenginių, debesijos infrastruktūros, superkompiuterių ir kitų sistemų, kuriomis naudojasi milijardai žmonių, pagrindas. Daugiau nei 40 mln. kodo eilučių turintis branduolys sudaro platų atakos paviršių per sisteminius iškvietimus, tinklo funkcijas, failų sistemas ir įrenginių tvarkykles. Pasirinkome „Linux“, kad ištirtume, kaip veiksmingai priešakiniai modeliai gali rasti pažeidžiamumų ir parodyti jų poveikį saugumui tokio masto bei svarbos kodo bazėje.
Pradiniame pažeidžiamumų paieškos etape nustatyta tūkstančiai galimų pažeidžiamumų – pernelyg daug, kad saugumo tyrėjai galėtų juos rankiniu būdu peržiūrėti ir įvertinti. Praktinis mūsų pažeidžiamumų paieškos proceso iššūkis buvo ne pati paieška, o nustatyti, kuriuos radinius galima atkurti, kokią saugumo ribą jie peržengia ir kuriems pirmiausia reikalingas prižiūrėtojų dėmesys.
„OpenAI“ kibernetinio saugumo komandos misija – padėti apsaugoti programinę įrangą, kuria remiasi pasaulis. Pateikiame kiekvieno etapo API sąnaudas, kad tyrėjai galėtų įvertinti, kokių išteklių reikėtų šiam darbui pakartoti ir išplėsti. Šios sąnaudos atspindi šiame vertinime naudotus modelius, taikinių konfigūracijas ir darbo eigą. Platesnis mūsų tikslas – padėti gynėjams rasti ir pašalinti pažeidžiamumus, mažinti užpuolikų galimybes ir didinti jų programinės įrangos išnaudojimo sąnaudas.
Galiausiai atkreipiame dėmesį, kad šiame tyrime daugiausia dėmesio skyrėme metodikai ir modelių gebėjimų matavimui, o ne sąnaudoms. Tikimės, kad pakankamai patobulinus infrastruktūrą kiekvieno etapo sąnaudos galėtų gerokai sumažėti, todėl mūsų pateiktos sąnaudos veikiau yra viršutinė riba.
Mūsų pažeidžiamumų tyrimo prototipas – penkių etapų procesas, kurio pagrindas yra būsimas kibernetinio saugumo modelis:
Pažeidžiamumų paieška: agentai nustato saugumui svarbias kodo bazės dalis ir skenuoja jas, ieškodami galimų pažeidžiamumų.
Dinaminis patvirtinimas: agentai bando atkurti kiekvieną galimą pažeidžiamumą izoliuotoje aplinkoje ir išsaugo vykdymo metu gautus įrodymus. Šio žingsnio rezultatas – atkurti ir patvirtinti pažeidžiamumai.
Išnaudojamumo vertinimas: agentai tikrina, ar patvirtinti pažeidžiamumai gali leisti atskleisti informaciją arba vietoje padidinti privilegijas.
Pataisų generavimas: agentai generuoja pataisas, pašalinančias kiekvieną nustatytą pažeidžiamumą.
Žmogaus atliekama peržiūra: prieš pranešdami prižiūrėtojams, saugumo tyrėjai peržiūri išnaudojimo kodą, pataisą ir siūlomą rimtumo įvertinimą.
Proceso pabaigoje sistema sujungia pirminės priežasties analizę, minimalų strigtį sukeliantį koncepcijos įrodymo kodą, siūlomą pataisą ir visavertį išnaudojimo kodą į rinkinį, padedantį tyrėjams įvertinti pažeidžiamumo rimtumą ir pateikti pataisas pagrindiniam projektui.
Ne kiekviena „Linux“ branduolio kodo eilutė yra svarbi saugumui. Mūsų sistema pasitelkė agentų žvalgų komandą vertingiausiems audito objektams nustatyti, o šie buvo perduoti agentams analitikams pažeidžiamumų paieškai.
Agentai žvalgai peržiūri kiekvieną aplanką ir failą bei nusprendžia, kuriuos objektus audituoti, pagal jų pasiekiamumą ribotų privilegijų naudotojams ir svarbą saugumui.
Šiame etape nustatyti 5 034 audito objektai, apimantys apie 2,8 mln. kodo eilučių – maždaug 7 % visos „Linux“ branduolio kodo bazės. Tai gerokai sumažino saugumo audito sąnaudas, palyginti su visos kodo bazės analize. Šis žingsnis kainavo 3 426 JAV dolerius API kreditais.
Tada agentai analitikai išanalizavo kiekvieną audito objektą ir nustatė galimus pažeidžiamumus, taikydami procesą, panašų į „Codex Security“ įskiepio(atsidaro naujame lange). Bendrais bruožais agentai analitikai skaito priskirto audito objekto kodą, kad suprastų, kaip jis veikia, nustatytų jo grėsmių modelį ir ieškotų pažeidžiamumų.
Per 12 valandų agentai analitikai nustatė 2 308 galimus pažeidžiamumus, atmetus pasikartojimus. Šis etapas kainavo 316 549 JAV dolerius API kreditais.
Galimas pažeidžiamumas nėra tas pats, kas patvirtintas pažeidžiamumas. Esant tokiam mastui, mūsų tyrėjų komandai nepraktiška kiekvieną pranešimą tirti rankiniu būdu.
Todėl daugiausia dėmesio skyrėme pažeidžiamumams, kurie a) buvo pasiekiami ribotų privilegijų naudotojui, b) nereikalavo specialių teisių ir c) sukėlė išmatuojamų atminties sugadinimo požymių, patvirtinti.
Kiekvienam galimam pažeidžiamumui pirminio vertinimo agentas sugeneravo koncepcijos įrodymo kodą ir paleido jį izoliuotoje virtualiojoje mašinoje su „Linux“ branduoliu ir „Kernel Address Sanitizer“ (KASAN). Agentas stebėjo ir programos išvestį, ir sistemos konsolę, tada iteratyviai tobulino koncepcijos įrodymo kodą, kol atkūrė pranešime nurodytą elgesį arba išbandė visus galimus būdus jį sukelti.
Per 30 valandų mūsų sistema atkūrė 1 724 pažeidžiamumus – apie 74,7 % iš 2 308 galimų pažeidžiamumų. Vien statinė kodo peržiūra gali duoti klaidingai teigiamų rezultatų, todėl mus sužavėjo agentų analitikų tikslumas ir pirminio vertinimo agentų gebėjimas savarankiškai sukurti veikiančius koncepcijos įrodymo kodus beveik trims ketvirtadaliams galimų pažeidžiamumų.
Daugumai likusių atvejų reikėjo aukštesnių privilegijų arba jų nepavyko atkurti per skirtą laiką dėl sunkiai atkuriamų lenktyniavimo sąlygų, specifinių suveikimo sąlygų (pvz., būtinos atminties skyrimo nesėkmės konkrečioje eilutėje) ar ilgai trunkančio patvirtinimo (pvz., nuorodų skaitiklio persipildymo). Tik 3,1 % atvejų lėmė neteisinga modelio analizė, kai nurodytas pažeidžiamumas buvo grindžiamas neįmanoma sąlyga.
Patvirtinimo etapas iš viso kainavo 73 330 JAV dolerių API kreditais. Pastebėjome, kad mūsų patvirtinimo procese, kuriame reikėjo sugeneruoti koncepcijos įrodymo kodą, patvirtinantį, ar galimas pažeidžiamumas yra tikras, tai kainavo daugiau nei rekomendacija, pagrįsta vien statine analize. Be to, bandymų patvirtinti tikrą ir klaidingai teigiamą rezultatą sąnaudos buvo panašios. Todėl ankstesnis klaidingai teigiamų rezultatų atmetimas gerokai sumažina proceso sąnaudas.
Patvirtinimas parodo, kad pažeidžiamumas yra tikras, bet ne tai, kaip skubiai jį reikėtų pašalinti. Pavyzdžiui, pažeidžiamumui, kuris gali leisti vietoje padidinti privilegijas, reikėtų teikti didesnį prioritetą nei tam, kuris gali sukelti tik vietinį paslaugos trikdymą. Patvirtinus 1 724 pažeidžiamumus, kita užduotis buvo nustatyti tuos, kurių galimas poveikis saugumui didžiausias.
Pradinės atrankos agentas statinės analizės būdu peržiūrėjo kiekvieną ataskaitą, strigties žurnalą ir susijusį pirminį kodą. Jo atrankos kriterijai buvo sąmoningai negriežti, kad nebūtų atmesti galimai rimti radiniai, tačiau būtų atfiltruoti atvejai be tikėtino išnaudojimo kelio. Taip rezultatai susiaurinti iki 313 galimų informacijos nutekėjimo ir 1 238 galimų vietinio privilegijų padidinimo atvejų.
Tada išnaudojimo kodo kūrimo („ExploitDev“) agentai tikrino šiuos atvejus izoliuotose virtualiosiose mašinose, kuriose buvo įjungtos standartinio „Linux“ distributyvo apsaugos priemonės: vykdymo privilegijuotuoju režimu prevencija (SMEP), prieigos privilegijuotuoju režimu prevencija (SMAP), branduolio adresų erdvės išdėstymo atsitiktinimas (KASLR) ir HARDENED_USERCOPY. Tai padėjo išvengti nerealių vertinimų, paremtų išjungtomis apsaugos priemonėmis.
Agentai sukūrė 291 informacijos nutekėjimo koncepcijos įrodymo kodą ir 1 169 veikiančius vietinio privilegijų padidinimo išnaudojimo kodus, galinčius suteikti privilegijų neturintiems vietiniams naudotojams „root“ prieigą.
Atlikome variantų analizę ir sukūrėme 948 atskiras šiais kodais išnaudojamų pažeidžiamumų pataisas. Šį skaičių naudojame bendram unikalių LPE pažeidžiamumų skaičiui nustatyti. Sėkmingo išnaudojimo kodo kūrimas vidutiniškai kainavo 359 JAV dolerius kreditais. Taigi gynėjams patikrinti rastų pažeidžiamumų išnaudojamumą yra palyginti nebrangu.
Pradinės pažeidžiamumų atrankos agento darbas kainavo 44 194 JAV dolerius API kreditais. Išnaudojimo etapas iš viso kainavo 775 929 JAV dolerius API kreditais: 84 929 JAV dolerius galimiems informacijos nutekėjimo atvejams ir 691 000 JAV dolerių galimiems vietinio privilegijų padidinimo atvejams apdoroti.
Vidutiniškai galimo vietinio privilegijų padidinimo atvejo apdorojimas (558 JAV doleriai) buvo maždaug du kartus brangesnis nei galimo informacijos nutekėjimo atvejo apdorojimas (271 JAV doleris). Taip yra todėl, kad informacijos nutekėjimo PoC kodai buvo perimti iš patvirtinimo etapo ir juos reikėjo mažiau keisti, kad būtų galima panaudoti išnaudojimo kode. O kuriant galimo LPE pažeidžiamumo išnaudojimo kodą reikėjo daug papildomų žingsnių: suplanuoti išnaudojimo strategiją, nustatyti tinkamus pažeidžiamus objektus, apeiti apsaugos priemones ir kt. Taip pat pastebėjome, kad nesėkmingi išnaudojimo bandymai (3 922 JAV doleriai, 69 atvejai) kainavo gerokai daugiau nei sėkmingi (360 JAV dolerių, 1 169 atvejai). Tai lėmė keli sunkiai išnaudojami pažeidžiamumai (pvz., lenktyniavimo sąlygos). Nustačius pagrįstą bandymo nutraukimo sąlygą, pavyzdžiui, sustoti, jei valandą nepasiekiama pažangos, „ExploitDev“ sąnaudos būtų gerokai sumažėjusios.
Kiekvienam patvirtintam pažeidžiamumui sistema taip pat sugeneruoja pataisą. Modeliui pateikiame susijusį pirminį kodą ir užklausoje nurodome gerąją pataisų rašymo praktiką: atlikti statines pataisos patikras, laikytis gretimame kode taikomų programinės įrangos kūrimo principų ir analizuoti variantus, kad pataisa būtų išsami.
Vadovaudamiesi „Linux“ branduolio bendruomenės siūlymu, jau išsiuntėme šimtus pranešimų ir kritinių pažeidžiamumų pataisų. Kartu su „Patch the Planet“ partneriais palaipsniui siunčiame likusias pataisas. Šis darbas yra mūsų platesnio „Daybreak“ įsipareigojimo remti atvirojo kodo projektus dalis.
Šiame skyriuje dalijamės tyrimo pamokomis, įžvalgomis ir papildoma analize.
Per šį tyrimą stebėjome, kaip „Linux“ prižiūrėtojai sparčiai šalina pažeidžiamumus ir saugo naudotojus. Skenavimas atliktas naudojant naujausią „Linux“ branduolį 2026 m. spalio viduryje. Po 10 dienų pasibaigus autonominiam skenavimui ir rankinei analizei, 61 LPE pažeidžiamumo pataisos jau buvo įtrauktos į pagrindinį projektą, 43 pataisos laukė įtraukimo, o apie 299 pažeidžiamumus buvo viešai pranešama ir diskutuojama.
Labai vertiname „Linux“ prižiūrėtojus, kurie skubiai rengia nustatytų problemų pataisas, ir platesnę saugumo bendruomenę, taip pat prisidedančią savo atradimais. Būtent tokio bendro atsako reikia pasaulio programinės įrangos saugumui užtikrinti. Spartus pažeidžiamumų viešinimas ir šalinimas taip pat pabrėžia, kaip svarbu naudotojams ir įmonėms nuolat atnaujinti programinę įrangą.
Išvada: automatizuotas pirminis vertinimas turėtų atsižvelgti į spartų pataisų rengimo ir įtraukimo ciklą. Pakartotinai tikrinant radinius pagal naujausią kodą, įskaitant po pradinio skenavimo įtrauktą naują kodą, galima išvengti pasikartojančių ar pasenusių pranešimų. Taip dėmesys sutelkiamas į nepašalintus pažeidžiamumus, o prižiūrėtojai gauna įrodymų, kuriais gali remtis imdamiesi veiksmų, be nereikalingos peržiūros naštos.
2026 m. liepos pabaigoje, kol kūrėme šį procesą, GPT‑5.6 Sol rado ir išnaudojo 166 unikalius LPE pažeidžiamumus; visos API kreditų sąnaudos siekė 513 690 JAV dolerių.
Per antrąjį skenavimą 2026 m. spalio viduryje naujesnis kibernetinio saugumo modelis rado ir išnaudojo 948 unikalius LPE pažeidžiamumus; visos API kreditų sąnaudos siekė 1 213 430 JAV dolerių. Abiem atvejais skenavome tuo metu naujausią „Linux“ branduolio „master“ šaką.
Išvada: gerėjant modelių gebėjimams, pakartotinai skenuokite anksčiau audituotą kodą. Pajėgesnis modelis gali aptikti pažeidžiamumų, kurių ankstesni modeliai nepastebėjo, net ir naudojant tą pačią tyrimų infrastruktūrą.
Atrinkome 166 agentų sukurtus išnaudojimo kodus ir išanalizavome juose naudotus išnaudojimo metodus. Kiek mums žinoma, atrinktuose koduose agentai panaudojo 10 naujų išnaudojimo metodų. Šiais metodais pasidalijome su nepriklausomais branduolio pažeidžiamumų išnaudojimo ekspertais – jiems šie metodai taip pat buvo nauji.
Iš šių 10 metodų du paremti naujais ilgalaikiais kintamo dydžio objektais, kuriuos modelis naudojo tikslinėje branduolio podėlio srityje masiškai paskirstyti objektams; dar du – nauji atminties puslapių išdėstymo metodai, didinantys išnaudojimo patikimumą; penki – nauji vien duomenimis paremti metodai privilegijoms padidinti tiesiogiai arba per savavališką įrašymą; likęs metodas susijęs su savavališku tipų supainiojimu. Saugumo sumetimais šiame įraše neskelbiame visų šių naujų išnaudojimo metodų techninių detalių.
Išvada: priešakiniai modeliai ne tik atpažįsta žinomus pažeidžiamo kodo šablonus ar naudoja vien žinomus išnaudojimo metodus – jie demonstruoja kūrybiškumą ir naujus sprendimo būdus.
Svarbi mūsų komandos misijos dalis – išmatuoti pažeidžiamumų paieškos ir išnaudojimo sąnaudas ir pagal šiuos duomenis nukreipti investicijas į apsaugą. Mūsų tikslas – padėti gynėjams pašalinti pažeidžiamumus anksčiau, nei jais pasinaudos užpuolikai, ir padaryti programinės įrangos išnaudojimą užpuolikams pernelyg brangų. Išnaudojimo sąnaudų matavimas padeda įvertinti, kaip šis iššūkis keičiasi gerėjant modelių gebėjimams. Šiame skyriuje lyginame mūsų proceso vykdymo sąnaudas su atlygiu, kurį už nustatytus pažeidžiamumus siūlo klaidų paieškos atlygio programos.
Mūsų eksperimento tikslinėse virtualiosiose mašinose veikė standartinė darbalaukio operacinė sistema, o ne susilpnintas taikinys. Taikėme tokį pat grėsmių modelį kaip kibernetinio saugumo varžybose (pvz., „Pwn2Own“(atsidaro naujame lange), „TyphoonPWN“(atsidaro naujame lange)). Anksčiau „Pwn2Own“ ir „TyphoonPWN“ už „Linux“ branduolio vietinio privilegijų padidinimo išnaudojimo kodą siūlė atitinkamai 20 000 ir 70 000 JAV dolerių atlygį. Pritaikius šias ankstesnių atlygių sumas 948 išnaudojimo kodams, hipotetinė vertė siektų 18,9–66,3 mln. JAV dolerių – maždaug 16–55 kartus daugiau nei mūsų proceso sąnaudos.
Taip pat išbandėme savo sistemą „Google“ pažeidžiamumų paieškos atlygio programos „kernelCTF“(atsidaro naujame lange) aplinkoje, kurios taikinys – sustiprinto saugumo „Linux“ branduolys su sumažintu atakos paviršiumi. Paleidome procesą „kernelCTF“ aplinkoje su naujausia „Linux“ branduolio versija (ji nesuderinama su „kernelCTF“ apsaugos priemone SLAB_VIRTUAL, todėl šią pašalinome iš konfigūracijos) ir gavome 25 informacijos nutekėjimo koncepcijos įrodymo kodus bei 21 vietinio privilegijų padidinimo išnaudojimo kodą. Palyginimui, iki šio teksto rengimo „kernelCTF“ 2026 m. buvo priėmusi 26 patvirtintus nulinės dienos LPE išnaudojimo kodus. Visas šis tyrimo etapas truko 112 valandų ir kainavo apie 32 936 JAV dolerius API kreditais; pažeidžiamumų paieškai teko 83,7 % API sąnaudų. Jei programa priimtų šį 21 pažeidžiamumą, atlygis siektų apie 1,5 mln. JAV dolerių – maždaug 45 kartus daugiau nei sąnaudos.
Išvada: remiantis viešai skelbiamomis atlygio sumomis, tyrimo metu mūsų pažeidžiamumų tyrimo procesas su dabartiniais kibernetinių gebėjimų turinčiais modeliais buvo pelningas, atskaičius sąnaudas. Gynėjai turėtų iš anksto analizuoti savo programinę įrangą, kad užpuolikams ją išnaudoti taptų pernelyg brangu.
Per išnaudojamumo vertinimą „ExploitDev“ agentams buvo pateikta pažeidžiamumo ataskaita ir užduotis sukurti visavertį veikiantį išnaudojimo kodą. Mūsų sistema pažymėdavo pažeidžiamumą kaip išnaudotą, jei pavykdavo gauti komandų apvalkalą su „root“ teisėmis. Per vieną ankstyvą vykdymą išnaudojimo etape buvo pranešta apie 200 sėkmingų vietinio privilegijų padidinimo išnaudojimo kodų. Tačiau tyrėjams juos peržiūrėjus paaiškėjo, kad 20 iš jų „root“ privilegijas gavo per kitą nulinės dienos pažeidžiamumą, o ne per priskirtąjį. Tai rodo, kad net ir sėkmingą agentų atliktą išnaudojimą reikia tinkamai patikrinti.
Vėliau sugriežtinome užduoties apribojimus ir pridėjome nepriklausomą patikrą, kuri patvirtina, kad kiekvienas galutinis išnaudojimo kodas naudoja jam priskirtą pažeidžiamumą.
Išvada: atliekant autonominius saugumo tyrimus reikia tikrinti ne tik patį rezultatą, bet ir kelią iki jo; izoliavimas, stebėsena ir nepriklausomos patikros yra būtinos kontrolės priemonės.
Tyrimo pradžioje svarstėme, ar verta aplink agentą kurti sudėtingą veiksmų koordinavimo sistemą, kad pagerintume jo kibernetinius gebėjimus. Mūsų rezultatai parodė, kad pajėgesniems modeliams reikia mažiau veiksmų koordinavimo ir išsamaus vadovavimo. O nedidelis papildomas pagerėjimas nepateisina priežiūros sąnaudų. Todėl nusprendėme atsisakyti sudėtingo veiksmų koordinavimo.
Eksperimente lyginome GPT‑5.5 Cyber ir GPT‑5.6 Cyber. Pastebėjome, kad GPT‑5.5 Cyber ne visada nustatydavo, kada ir kaip taikyti esamus „Linux“ branduolio pažeidžiamumų išnaudojimo metodus. Tada surinkome 103 metodus modeliui patogiu formatu, pateikėme juos agento aplinkoje ir nurodėme agentui jais naudotis. Išbandžius 63 galimus išnaudojimo atvejus, sėkmės rodiklis padidėjo nuo 76,2 % iki 88,9 %.
Pakartojus bandymą su GPT‑5.6 Cyber, modelis geriau gebėjo savarankiškai rasti, pasirinkti ir pritaikyti tinkamus metodus. Pašalinome metodų ir įgūdžių koordinavimo sluoksnį, ir šis minimaliai koordinuojamas GPT‑5.6 Cyber procesas pranoko GPT‑5.5 Cyber procesą su išsamesne pagalbine struktūra. Grąžinus papildomą metodų sluoksnį GPT‑5.6 Cyber modeliui, rezultatas pagerėjo vos 1,5 procentinio punkto.
Išvada: keičiantis bazinio modelio gebėjimams, iš naujo įvertinkite veiksmų koordinavimą ir infrastruktūrą. Pagalbinė struktūra, kuri gerokai pagerina vienos modelių kartos rezultatus, pajėgesniam modeliui gali suteikti mažai naudos, todėl reikia įvertinti, ar ji pateisina priežiūros sąnaudas.
Iš pradžių, tiesiogiai paprašytas sugeneruoti siūlomas pataisas, modelis kurdavo funkciškai teisingas pataisas, kurios užkirsdavo kelią koncepcijos įrodymo kode parodytam išnaudojimui, bet kartais sukeldavo kitų problemų: pridėdavo daugiau kodo nei būtina, galėjo pabloginti našumą, nukrypdavo nuo kodo rašymo taisyklių arba nepatikrindavo susijusio kodo, ieškodamas to paties pažeidžiamumo variantų, todėl pataisos būdavo neišsamios.
Papildomos instrukcijos ir iteratyvus pataisų generavimo proceso tobulinimas pagerino pataisų kokybę. Tai rodo, kad tinkamai valdant procesą DI sugeneruotos saugumo pataisos gali būti teisingos, minimalios ir atitikti esamas kodo rašymo taisykles. Ši sritis aktyviai tiriama, ir manome, kad su būsimais modeliais tai taps lengviau ir veiksmingiau. Keliais atvejais mūsų tyrimų prototipas taip pat sugebėjo nustatyti problemų ekspertų parašytose pataisose; jos buvo pašalintos prieš įtraukiant pataisas į projektą.
Išvada: modeliai gali paspartinti taisymo procesą, tačiau pataisų kūrimo įgūdžius ir infrastruktūrą gali reikėti iteratyviai tobulinti, kad pataisos patikimai atitiktų ir funkcinius, ir nefunkcinius reikalavimus. Taip pat rekomenduojame modelius pasitelkti žmonių ir DI sukurtoms pataisoms peržiūrėti iš užpuoliko perspektyvos. Taip galima nustatyti, ar pataisą galima apeiti, ar nepraleisti kiti atakos keliai bei variantai ir kitos problemos.
Per vykdymą „kernelCTF“ aplinkoje mūsų tyrimų prototipas, be 21 „Linux“ branduolio nulinės dienos išnaudojimo kodo, taip pat rado ir išnaudojo QEMU TCG pažeidžiamumą. Agentui analitikui buvo paskirta analizuoti sisteminių iškvietimų įėjimo kodą. Rašydamas programas eksperimentams su privilegijų perėjimais, jis susidūrė su netikėta branduolio strigtimi. Jis ištyrė strigtį ir nustatė, kad problemos šaltinis yra QEMU TCG, nors neturėjo prieigos prie QEMU pirminio kodo, ir įtraukė pažeidžiamumą į ataskaitą. Vėliau „ExploitDev“ agentas sėkmingai sukūrė šio pažeidžiamumo vietinio privilegijų padidinimo išnaudojimo kodą. Šį QEMU pažeidžiamumą aptikome rankiniu būdu analizuodami išnaudojimo kodus ir patvirtinome, kad jis jau buvo pašalintas pagrindiniame QEMU projekte, tačiau ne eksperimente naudotoje išleistoje versijoje.
Išvada: kibernetinių gebėjimų turintys priešakiniai modeliai gali rasti pažeidžiamumų testavimo infrastruktūroje. Rekomenduojame prieš atliekant puolamuosius pažeidžiamumų tyrimus išbandyti kiekvieną infrastruktūros dalį. Esame iš anksto išbandę savo infrastruktūrą, pranešę apie daugelį „Kata“, „Moby/Docker“, „gVisor“ ir kitų projektų pažeidžiamumų bei juos pašalinę.
Mūsų tikslas – augančius modelių gebėjimus paversti ilgalaikiu pranašumu žmonėms, kurie rūpinasi interneto saugumu. Šis tyrimas rodo, kad augančius priešakinių modelių gebėjimus kibernetinio saugumo srityje galima pasitelkti veiksmingai pažeidžiamumų paieškai sudėtingoje programinėje įrangoje, pavyzdžiui, „Linux“ branduolyje. Stiprinant tokių itin svarbių programinės įrangos projektų kaip „Linux“ ir kitų atvirojo kodo projektų saugumą, galima apsaugoti daugybę jais paremtų sistemų ir jų naudotojų.
Vykdydami „Daybreak“ iniciatyvą „Patch the Planet“, siekiame išplėsti šį tyrimą į daugiau itin svarbių programinės įrangos projektų ir kartu su jų prižiūrėtojais bei saugumo partneriais kurti patikimą automatizuotą pataisų rengimo ir taikymo procesą. Norime nuosekliai mažinti užpuolikų galimybes ir didinti pažeidžiamumų paieškos bei išnaudojimo sąnaudas, kol tikėtina nauda nebepateisins atakos.
Kiekviena modelių karta turėtų padėti mums kurti programinę įrangą, į kurią kitai kartai būtų sunkiau įsilaužti. Toliau sieksime kurti saugų internetą, kuriame kiekvienas galėtų kurti su džiaugsmu.


