OpenAI

Tisoč poti manj do korenskega dostopa

Razvili smo avtonomni proces odkrivanja, izkoriščanja in odpravljanja ranljivosti. Z našim kibernetskim modelom je v enem zagonu potrdil in popravil 948 ranljivosti za lokalno povišanje privilegijev v Linuxu, stroški API pa so znašali 1,2 milijona USD.

Nalaganje …

Varnostne raziskave, ki so nekoč za vsako ugotovitev zahtevale ločeno, dolgotrajno preiskavo, lahko vse pogosteje izvajamo kot sistematičen proces. V tem dokumentu predstavljamo eno od naših prizadevanj na tem področju.

Odkrivanje ranljivosti je vse lažje izvajati v večjem obsegu, vendar določanje prednosti in preverjanje ostajata operativni ozki grli. Razvili smo prototip za iskanje varnostnih pomanjkljivosti v jedru Linuxa v nadzorovanem raziskovalnem okolju. Naš prototip je prepoznal in analiziral 2 308 možnih ranljivosti v jedru Linuxa, dinamično reproduciral 1 724 ranljivosti ter ustvaril 948 izkoriščevalskih kod za lokalno povišanje privilegijev (LPE), s katerimi bi lahko lokalni uporabnik brez privilegijev pridobil korenski dostop.

Na podlagi teh dokazov smo določili prednostni vrstni red prijavljanja ranljivosti in pripravili predloge popravkov za pregled vzdrževalcev. Po navodilih skupnosti jedra Linuxa smo začeli s kritičnimi ranljivostmi, pri nadaljnjih poročilih in popravkih pa sodelujemo s partnerji pobude Patch the Planet.

Junija smo v okviru pobude Patch the Planet sporočili, da je GPT‑5.5 Cyber odkril ranljivosti v jedru Linuxa in razvil 24 izkoriščevalskih kod za lokalno povišanje privilegijev, da bi jih potrdil in prijavil. To delo smo razširili v proces, ki ga poganja prihajajoči kibernetski model ter zajema odkrivanje ranljivosti, dinamično preverjanje, ocenjevanje možnosti izkoriščanja in ustvarjanje popravkov. Po zaključku so raziskovalci pregledali rezultate in prijavili odkrite ranljivosti skupaj s popravki.

Povzetek

Metodologija

  • Naš proces v grobem poteka takole: najprej prepozna varnostno pomembne dele jedra Linuxa, s statično analizo teh delov poišče morebitne ranljivosti, jih dinamično reproducira v izoliranem okolju, ustvari dokaz koncepta (PoC) izkoriščevalske kode za prikaz možnosti izkoriščanja in pripravi popravke. Na koncu rezultate pregleda varnostni raziskovalec.

  • Rezultati procesa vključujejo analizo temeljnega vzroka, minimalen dokaz koncepta, ki povzroči sesutje, predlog popravka in celovito izkoriščevalsko kodo, ki raziskovalcem pomagajo oceniti resnost ranljivosti in vključiti popravke v izvorni projekt.

Ugotovitve

  • Pri zagonu sredi oktobra 2026 je naš proces s prihajajočim kibernetskim modelom dinamično reproduciral 1 724 ranljivosti ter za pogosto uporabljeno distribucijo Linuxa ustvaril dokaze koncepta za 291 ranljivosti, ki omogočajo uhajanje podatkov, in 948 delujočih izkoriščevalskih kod za lokalno povišanje privilegijev (LPE). Celoten zagon je stal 1 213 430 USD v obliki točk za API oziroma 1 279 USD na izkoriščevalsko kodo za LPE.

  • Ciljni navidezni stroji so uporabljali nespremenjen namizni operacijski sistem, ne varnostno oslabljenega, z istim modelom groženj kot tekmovanja v kibernetski varnosti (npr. Pwn2Own⁠(odpre se v novem oknu), TyphoonPWN⁠(odpre se v novem oknu)). Pwn2Own je v preteklosti za izkoriščevalsko kodo za LPE v jedru Linuxa ponujal nagrado 20 000 USD, TyphoonPWN pa 70 000 USD. Če te pretekle zneske nagrad uporabimo za 948 izkoriščevalskih kod, dobimo hipotetično vrednost 18,9–66,3 milijona USD, kar je približno 16- do 55-kratnik stroškov našega procesa.

  • V prilagojenem okolju kernelCTF⁠(odpre se v novem oknu), ki uporablja različico jedra Linuxa z zmanjšano napadno površino, je naš proces ustvaril 25 dokazov koncepta za uhajanje podatkov in 21 izkoriščevalskih kod za LPE. Za primerjavo: kernelCTF je v letu 2026 do časa pisanja sprejel 26 potrjenih izkoriščevalskih kod za LPE, ki izkoriščajo ranljivosti ničtega dne.

    • Raziskovalni cikel je stal približno 32 936 USD v obliki točk za API. Če bi program sprejel teh 21 ranljivosti, bi to prineslo približno 1,5 milijona USD nagrade, kar je približno 45-kratnik stroškov pregledovanja.

  • Kolikor nam je znano, so agenti v tem procesu odkrili in uporabili vsaj 10 novih tehnik izkoriščanja ranljivosti v Linuxu.

Razmisleki

  • Vzdrževalci Linuxa in varnostna skupnost si močno prizadevajo za hitro odkrivanje in odpravljanje ranljivosti. V desetih dneh pregledovanja smo opazili, da so drugi sodelavci za več kot 100 ranljivosti LPE v Linuxu že zagotovili popravke ali jih pripravili za vključitev, o še približno 300 pa je potekala javna razprava.

  • Glede na hitrost, s katero prelomni modeli odkrivajo ranljivosti, menimo, da je samodejno ustvarjanje popravkov nujno za dovolj hitro zagotavljanje varnosti programske opreme in omejevanje obdobja, v katerem je ranljivosti mogoče izkoristiti. Menimo, da so lahko popravki, ustvarjeni z umetno inteligenco, s ponavljanjem pod vodstvom strokovnjakov funkcionalno pravilni, skladni z obstoječimi slogi pisanja kode in odporni proti različicam napadov. To je pomembno področje za nadaljnje raziskave.

  • Zmogljivejši modeli lahko v obstoječi kodi odkrijejo nove ranljivosti, pogosto tudi takšne, ki so prisotne že dlje časa in jih je težje prepoznati. Naš analitični proces z novejšim kibernetskim modelom je sredi oktobra odkril več kot petkrat več novih ranljivosti LPE kot julijski zagon z modelom GPT‑5.6 Sol, kljub trimesečnemu varnostnemu utrjevanju med pregledoma.

  • Veliki, kompleksni projekti programske opreme verjetno potrebujejo več krogov pregledovanja in odpravljanja ranljivosti, da bi odkrili in odpravili vse skrite napake. Idealno bi bilo ta proces ponoviti z vsako naslednjo generacijo prelomnih modelov. To velja tako za lastniško kot za odprtokodno programsko opremo.

  • Kratkoročno in srednjeročno je treba dostop do računa z nizkimi privilegiji v operacijskem sistemu brez najnovejših razpoložljivih popravkov za napadalca z zadostnimi sredstvi obravnavati kot praktično enakovreden korenskemu dostopu. Večplastna obramba s peskovniki in pristopi k izolaciji, kot sta Firecracker in gVisor, je pomembna za omejevanje obsega škode ob izkoriščanju ranljivosti.

  • Menimo, da bodo v naslednjih nekaj letih prelomni modeli verjetno lahko odkrili ranljivosti, če te obstajajo v določenem projektu programske opreme, po njihovem razkritju pa bodo izkoriščevalsko kodo zanje morda lahko razvili tudi manj zmogljivi modeli. V svetu brez neznanih ranljivosti bo ključno razvijati in vzdrževati programsko opremo z visoko stopnjo zagotovljene varnosti, zlasti temeljno programsko opremo, kot so operacijski sistemi, brskalniki, knjižnice za razčlenjevanje slik, sklad TCP/IP in podobno. Poleg iskanja in odpravljanja obstoječih ranljivosti so obetavna področja prihodnjih raziskav za učinkovito zagotavljanje varnosti programske opreme v večjem obsegu tudi učenje modelov, da že privzeto pišejo varno kodo, zmanjševanje napadne površine z odstranjevanjem nepotrebnih funkcij in formalno preverjanje.

Lijak prikazuje 2 308 možnih ranljivosti, 1 724 potrjenih ranljivosti in izbor 313 kandidatov za uhajanje podatkov ter 1 238 kandidatov za lokalno povišanje privilegijev. Rezultat je 291 delujočih dokazov koncepta za uhajanje podatkov in 948 delujočih izkoriščevalskih kod za lokalno povišanje privilegijev. Skupna poraba točk za API: 1,2 milijona USD. Shematski prikaz; širine niso v merilu.

Zakaj jedro Linuxa

Jedro Linuxa je temelj naprav Android, infrastrukture v oblaku, superračunalnikov in drugih sistemov, ki jih uporabljajo milijarde ljudi. Jedro z več kot 40 milijoni vrstic kode prek sistemskih klicev, omrežnih funkcij, datotečnih sistemov in gonilnikov naprav izpostavlja široko napadno površino. Linux smo izbrali, da bi preučili, kako učinkovito lahko prelomni modeli v tako obsežni in pomembni kodi odkrijejo ranljivosti ter pokažejo njihov vpliv na varnost.

Začetna faza odkrivanja ranljivosti je dala več tisoč možnih ugotovitev – preveč, da bi jih varnostni raziskovalci lahko ročno pregledali in razvrstili. Operativni izziv našega procesa odkrivanja ranljivosti ni bilo samo odkrivanje, temveč ugotavljanje, katere ranljivosti je mogoče reproducirati, katero varnostno mejo prečkajo in katere zahtevajo najhitrejši odziv vzdrževalcev.

Analiza stroškov

Poslanstvo kibernetske ekipe OpenAI je pomagati zagotavljati varnost programske opreme, na katero se opira svet. Za vsako fazo navajamo stroške API, da raziskovalcem pomagamo oceniti sredstva, potrebna za ponovitev in nadgradnjo tega dela. Ti stroški odražajo modele, ciljne konfiguracije in potek dela, uporabljene pri tem vrednotenju. Naš širši cilj je skrbnikom varnosti pomagati odkriti in odpraviti ranljivosti ter tako zmanjšati priložnosti za napadalce in povečati njihove stroške izkoriščanja programske opreme.

Nazadnje naj poudarimo, da smo se v tej raziskavi osredotočili na metodologijo in merjenje zmogljivosti modelov, ne na stroške. Pričakujemo, da bi lahko z ustreznimi inženirskimi izboljšavami ogrodja občutno zmanjšali stroške v vsaki fazi, zato navedeni stroški predstavljajo bolj zgornjo mejo.

Proces raziskovanja ranljivosti

Naš prototip za raziskovanje ranljivosti je petstopenjski proces, ki v svojem jedru uporablja prihajajoči kibernetski model:

  • Odkrivanje ranljivosti: Agenti prepoznajo varnostno pomembne dele kode in v njih poiščejo možne ranljivosti.

  • Dinamično preverjanje: Agenti poskusijo vsako možno ranljivost reproducirati v izoliranem okolju in shranijo dokaze iz časa izvajanja. Rezultat tega koraka so reproducirane in potrjene ranljivosti.

  • Ocenjevanje možnosti izkoriščanja: Agenti preizkusijo, ali bi potrjene ranljivosti lahko omogočile razkritje podatkov ali lokalno povišanje privilegijev.

  • Ustvarjanje popravkov: Agenti ustvarijo popravke za vsako odkrito ranljivost.

  • Strokovni pregled: Varnostni raziskovalci pregledajo izkoriščevalsko kodo, popravek in predlagano stopnjo resnosti, preden ranljivost prijavijo vzdrževalcem.

Diagram avtonomnega procesa raziskovanja ranljivosti v jedru Linuxa: odkrivanje ranljivosti ustvari seznam možnih ranljivosti, dinamično preverjanje potrjena poročila, ocenjevanje možnosti izkoriščanja potrjeno izkoriščevalsko kodo za lokalno povišanje privilegijev, ustvarjanje popravkov pa predloge popravkov. Raziskovalci nato pregledajo rezultate, preden jih posredujejo vzdrževalcem jedra.

Na koncu procesa sistem združi analizo temeljnega vzroka, minimalen dokaz koncepta, ki povzroči sesutje, predlog popravka in celovito izkoriščevalsko kodo, da raziskovalcem pomaga oceniti resnost ranljivosti in vključiti popravke v izvorni projekt.

Odkrivanje ranljivosti

Vsaka vrstica kode v jedru Linuxa ni pomembna za varnost. Naš proces je s skupino izvidniških agentov prepoznal najpomembnejše dele kode za varnostni pregled in jih nato posredoval analitičnim agentom, da v njih poiščejo ranljivosti.

Potek odkrivanja ranljivosti: izvidniški agenti v jedru odkrijejo najpomembnejše dele kode za pregled in jih razvrstijo po prednosti, nato pa jih analitični agenti analizirajo, poiščejo morebitne ranljivosti in ustvarijo opozorila.

Izvidniški agenti

Izvidniški agenti preberejo vsako mapo in datoteko ter na podlagi dosegljivosti za uporabnike z nizkimi privilegiji in varnostnega pomena določijo, katere dele kode je treba pregledati.

V tej fazi so za pregled določili 5 034 delov kode oziroma približno 2,8 milijona vrstic kode. To je približno 7 % celotne kode jedra Linuxa, kar je v primerjavi z analizo celotne kode znatno zmanjšalo stroške varnostnega pregleda. Ta korak je stal 3 426 USD v obliki točk za API.

Analitični agenti

Nato so analitični agenti analizirali vsak izbrani del kode in s potekom dela, podobnim tistemu v dodatku Codex Security⁠(odpre se v novem oknu), pripravili seznam možnih ranljivosti. Analitični agenti v grobem preberejo dodeljeno kodo, da razumejo njeno delovanje, prepoznajo njen model groženj in v njej poiščejo ranljivosti.

V 12 urah so analitični agenti odkrili 2 308 možnih ranljivosti po odstranitvi podvojenih ugotovitev. Ta faza je stala 316 549 USD v obliki točk za API.

Preverjanje ranljivosti

Možna ranljivost ni isto kot potrjena ranljivost. Pri takšnem obsegu naša raziskovalna ekipa ne more praktično ročno preučiti vsakega poročila.

Zato smo se osredotočili na preverjanje ugotovitev, ki a) jih je lahko sprožil uporabnik z nizkimi privilegiji, b) niso zahtevale posebnih dovoljenj in c) so dale merljive dokaze o poškodbi pomnilnika.

Diagram zanke, ki prikazuje, kako agent za razvrščanje iz opozorila o ranljivosti ustvari dokaz koncepta, ga zažene v navideznem stroju in rezultat iterativno izboljšuje na podlagi izpisa konzole.

Za vsako možno ranljivost je agent za razvrščanje ustvaril dokaz koncepta in ga zagnal v izoliranem navideznem stroju z jedrom Linuxa in orodjem Kernel Address Sanitizer (KASAN). Agent je spremljal izhod programa in sistemsko konzolo, nato pa iterativno izboljševal dokaz koncepta, dokler ni reproduciral prijavljenega vedenja ali izčrpal možnih načinov za njegovo sprožitev.

V 30 urah je naš sistem reproduciral 1 724 ranljivosti oziroma približno 74,7 % od 2 308 možnih ranljivosti. Samo statični pregled kode je lahko nagnjen k lažno pozitivnim ugotovitvam, zato sta nas navdušili natančnost analitičnih agentov in učinkovitost agentov za razvrščanje, ki so avtonomno ustvarili delujoče dokaze koncepta za skoraj tri četrtine možnih ranljivosti.

Večina preostalih ugotovitev je bodisi zahtevala višje privilegije bodisi jih v razpoložljivem času ni bilo mogoče reproducirati zaradi zahtevnih tekmovalnih pogojev, posebnih pogojev za sprožitev (npr. potrebne odpovedi dodelitve pomnilnika v točno določeni vrstici) ali časovno zahtevnega preverjanja (npr. prekoračitve števca referenc). Le 3,1 % ugotovitev je izhajalo iz napačne analize modela, pri kateri je prijavljena ranljivost predpostavljala nemogoč pogoj.

Faza preverjanja je skupaj stala 73 330 USD v obliki točk za API. Opazili smo, da je bilo v našem procesu preverjanja, ki je moral ustvariti dokaz koncepta za potrditev dejanske ranljivosti, to dražje od priprave priporočila zgolj na podlagi statične analize. Stroški poskusa potrditve resnično pozitivne in lažno pozitivne ugotovitve so bili podobni. Zgodnejše odstranjevanje lažno pozitivnih ugotovitev zato občutno izboljša stroškovno učinkovitost procesa.

Ocenjevanje možnosti izkoriščanja

Preverjanje potrdi, da ranljivost obstaja, ne pa tudi, kako nujno jo je treba odpraviti. Ranljivost, ki bi na primer lahko omogočila lokalno povišanje privilegijev, si zasluži višjo prednost kot tista, ki bi lahko povzročila le lokalno zavrnitev storitve. Po potrditvi 1 724 ranljivosti je bila naslednja naloga prepoznati tiste z največjim možnim vplivom na varnost.

Agent za začetno presejanje je statično pregledal vsako poročilo, dnevnik sesutja in ustrezno izvorno kodo. Merila so bila namenoma ohlapna, da ne bi zavrgli potencialno resnih ugotovitev, hkrati pa je agent izločil primere brez verjetne poti do izkoriščanja. Tako smo rezultate zožili na 313 kandidatov za uhajanje podatkov in 1 238 kandidatov za lokalno povišanje privilegijev.

Agenti za razvoj izkoriščevalske kode (ExploitDev) so nato te kandidate preizkusili v izoliranih navideznih strojih z zaščitami, ki jih omogoča standardna distribucija Linuxa, vključno s preprečevanjem izvajanja v nadzorniškem načinu (SMEP), preprečevanjem dostopa v nadzorniškem načinu (SMAP), naključno razporeditvijo naslovnega prostora jedra (KASLR) in HARDENED_USERCOPY. To je pomagalo preprečiti nerealistične ocene, ki bi temeljile na izklopljenih zaščitah.

Agenti so ustvarili 291 dokazov koncepta za uhajanje podatkov in 1 169 delujočih izkoriščevalskih kod za lokalno povišanje privilegijev, s katerimi bi lahko lokalni uporabniki brez privilegijev pridobili korenski dostop.

Izvedli smo analizo različic in razvili 948 različnih popravkov za ranljivosti, ki jih je izkoriščala ta koda. S to številko določamo skupno število različnih ranljivosti LPE. Razvoj uspešne izkoriščevalske kode je v povprečju stal 359 USD v obliki točk. Skrbniki varnosti lahko tako razmeroma poceni preizkusijo možnost izkoriščanja odkritih ranljivosti.

Agent za začetno presejanje ranljivosti je stal 44 194 USD v obliki točk za API. Faza izkoriščanja je skupaj stala 775 929 USD v obliki točk za API: 84 929 USD za obdelavo kandidatov za uhajanje podatkov in 691 000 USD za kandidate za lokalno povišanje privilegijev.

Obdelava kandidata za lokalno povišanje privilegijev je bila v povprečju približno dvakrat dražja (558 USD) od obdelave kandidata za uhajanje podatkov (271 USD). Razlog je v tem, da smo dokaze koncepta za uhajanje podatkov prevzeli iz faze preverjanja in so potrebovali manj sprememb, da so postali uporabni v izkoriščevalski kodi. Razvoj izkoriščevalske kode iz kandidata za LPE pa je zahteval številne dodatne korake, kot so načrtovanje strategije izkoriščanja, prepoznavanje ranljivih objektov za uporabo, obhodi zaščit in drugo. Opazili smo tudi, da so neuspešni poskusi izkoriščanja (3 922 USD pri 69 primerih) stali veliko več kot uspešni (360 USD pri 1 169 primerih). To je povzročilo nekaj ranljivosti, ki jih je bilo težko izkoristiti (npr. tekmovalni pogoji). Z določitvijo smiselnega pogoja za prekinitev, na primer ustavitve poskusa po eni uri brez napredka, bi lahko znatno zmanjšali stroške agentov ExploitDev.

Ustvarjanje popravkov

Za vsako potrjeno ranljivost sistem ustvari tudi popravek. Modelu posredujemo ustrezno izvorno kodo in ga s pozivom usmerimo k dobrim praksam pri pisanju popravkov, kot so statično preverjanje popravka, upoštevanje razvojnih praks v okoliški kodi in analiza različic, da zagotovimo celovitost popravka.

Po predlogu skupnosti jedra Linuxa smo že poslali več sto poročil in popravkov za kritične ranljivosti, s partnerji pobude Patch the Planet pa sodelujemo pri postopnem pošiljanju popravkov za preostale. To delo je del naše širše zaveze v okviru programa Daybreak za podporo odprtokodnim projektom.

Ugotovitve

V tem razdelku predstavljamo spoznanja, razmisleke in dodatne analize iz te raziskave.

Vzdrževalci hitro odpravljajo ranljivosti

Med raziskavo smo opazili, da vzdrževalci Linuxa hitro odpravljajo ranljivosti in ščitijo uporabnike. Pregled smo izvedli na najnovejšem jedru Linuxa sredi oktobra 2026. Ko sta se avtonomni pregled in ročna analiza po desetih dneh končala, je bilo v izvornem projektu že odpravljenih 61 ranljivosti LPE, za 43 so bili popravki pripravljeni za vključitev, 299 pa so jih že prijavljali in o njih javno razpravljali.

Zelo cenimo vzdrževalce Linuxa, ki si prizadevajo za čimprejšnjo odpravo odkritih težav, ter širšo varnostno skupnost, ki prav tako prispeva svoje ugotovitve. Prav tak skupen odziv je potreben za zagotavljanje varnosti programske opreme po vsem svetu. Hitro razkrivanje in odpravljanje ranljivosti tudi poudarja, kako pomembno je, da uporabniki in podjetja redno posodabljajo programsko opremo.

Ključni nauk: Samodejno razvrščanje mora upoštevati hiter cikel priprave popravkov. Ponovno preverjanje ugotovitev na najnovejši kodi, vključno z novo kodo, vključeno po prvotnem pregledu, pomaga preprečiti podvojena ali zastarela poročila. Tako se pozornost usmeri na še neodpravljene ranljivosti, vzdrževalci pa dobijo dokaze, na podlagi katerih lahko ukrepajo brez nepotrebnega dodatnega pregledovanja.

Zmogljivejši modeli odkrijejo več ranljivosti

Med razvojem procesa je GPT‑5.6 Sol konec julija 2026 odkril in izkoristil 166 različnih ranljivosti LPE, skupni strošek pa je znašal 513 690 USD v obliki točk za API.

Pri drugem pregledu sredi oktobra 2026 je novejši kibernetski model odkril in izkoristil 948 različnih ranljivosti LPE, skupna strošek pa je znašal 1 213 430 USD v obliki točk za API. V obeh raziskovalnih ciklih smo pregledali takrat najnovejšo vejo master jedra Linuxa.

Ključni nauk: Z izboljševanjem zmogljivosti modelov znova pregledujte že pregledano kodo. Zmogljivejši model lahko odkrije ranljivosti, ki so jih prejšnji modeli spregledali, tudi če uporablja isto raziskovalno ogrodje.

Nove tehnike izkoriščanja ranljivosti

Izbrali smo vzorec 166 izkoriščevalskih kod, ki so jih razvili agenti, in analizirali uporabljene tehnike izkoriščanja. Kolikor nam je znano, so agenti v analiziranem vzorcu uporabili 10 novih tehnik izkoriščanja. Tehnike smo delili z zunanjimi strokovnjaki za izkoriščanje ranljivosti jedra in tudi zanje so bile nove.

Med desetimi tehnikami sta dva nova trajna elastična objekta, ki ju je model uporabil za množično razporejanje objektov v ciljnem predpomnilniku jedra; dve sta novi tehniki urejanja pomnilniških strani za zanesljivejše izkoriščanje; pet je novih tehnik, ki delujejo samo na podatkih in omogočajo povišanje privilegijev neposredno ali prek poljubnega pisanja; preostala tehnika pa vključuje poljubno zamenjavo tipov. Iz varnostnih razlogov v tej objavi ne razkrivamo vseh tehničnih podrobnosti teh novih tehnik izkoriščanja.

Ključni nauk: Prelomni modeli ne prepoznavajo le znanih vzorcev ranljive kode in ne uporabljajo zgolj znanih tehnik izkoriščanja; izkazujejo tudi ustvarjalnost in nove pristope.

Kaj se lahko skrbniki varnosti naučijo iz stroškov izkoriščanja

Pomemben del poslanstva naše ekipe je merjenje stroškov iskanja in izkoriščanja ranljivosti ter uporaba teh podatkov za usmerjanje naložb v obrambo. Naš cilj je skrbnikom varnosti pomagati odpraviti ranljivosti, preden jih lahko uporabijo napadalci, ter napadalcem tako podražiti izkoriščanje programske opreme, da se jim ne bi več izplačalo. Merjenje stroškov izkoriščanja nam pomaga oceniti, kako se ta izziv spreminja z izboljševanjem zmogljivosti modelov. V tem razdelku primerjamo stroške zagona našega procesa z nagradami, ki jih za odkrite ranljivosti ponujajo programi nagrajevanja.

Ciljni navidezni stroji v našem poskusu so uporabljali nespremenjen namizni operacijski sistem, ne varnostno oslabljenega, z istim modelom groženj kot tekmovanja v kibernetski varnosti (npr. Pwn2Own⁠(odpre se v novem oknu), TyphoonPWN⁠(odpre se v novem oknu)). Pwn2Own je v preteklosti za izkoriščevalsko kodo za lokalno povišanje privilegijev v jedru Linuxa ponujal nagrado 20 000 USD, TyphoonPWN pa 70 000 USD. Če te pretekle zneske nagrad uporabimo za 948 izkoriščevalskih kod, dobimo hipotetično vrednost 18,9–66,3 milijona USD, kar je približno 16- do 55-kratnik stroškov našega procesa.

Proces smo preizkusili tudi v okviru Googlovega programa nagrajevanja za ranljivosti kernelCTF⁠(odpre se v novem oknu), katerega cilj je varnostno utrjeno jedro Linuxa z zmanjšanimi napadnimi površinami. Proces smo zagnali na najnovejši različici jedra Linuxa v okolju kernelCTF. Ker ta ni združljiva z zaščito SLAB_VIRTUAL v kernelCTF, smo zaščito odstranili iz konfiguracije. Pridobili smo 25 dokazov koncepta za uhajanje podatkov in 21 izkoriščevalskih kod za lokalno povišanje privilegijev. Za primerjavo: kernelCTF je v letu 2026 do časa pisanja sprejel 26 potrjenih izkoriščevalskih kod za LPE, ki izkoriščajo ranljivosti ničtega dne. Celoten raziskovalni cikel je trajal 112 ur in je stal približno 32 936 USD v obliki točk za API, pri čemer je odkrivanje ranljivosti predstavljalo 83,7 % stroškov API. Če bi program sprejel teh 21 ranljivosti, bi to prineslo približno 1,5 milijona USD nagrade, kar je približno 45-kratnik stroškov.

Ključni nauk: Glede na javno objavljene zneske izplačil je bil naš proces raziskovanja ranljivosti s takratnimi kibernetsko zmogljivimi modeli v času te raziskave neto dobičkonosen. Skrbniki varnosti bi morali proaktivno analizirati svojo programsko opremo, da se napadalcem njeno izkoriščanje ne bi več izplačalo.

Uporaba napačne ranljivosti ničtega dne

Pri ocenjevanju možnosti izkoriščanja so agenti ExploitDev prejeli poročilo o ranljivosti in nalogo, naj ustvarijo povsem delujočo izkoriščevalsko kodo. Naš proces je ranljivost označil za izkoriščeno, če je bila uspešno pridobljena korenska lupina. Pri enem od zgodnjih zagonov je faza izkoriščanja poročala o 200 uspešnih izkoriščevalskih kodah za lokalno povišanje privilegijev. Po strokovnem pregledu pa smo ugotovili, da jih je 20 pridobilo korenske pravice prek druge ranljivosti ničtega dne, ne tiste, ki jim je bila dodeljena. To kaže, da je treba ustrezno preveriti tudi uspešno izkoriščanje ranljivosti z agenti.

Nato smo zaostrili omejitve naloge in dodali neodvisno preverjanje, ki potrdi, da vsaka končna izkoriščevalska koda uporablja dodeljeno ranljivost.

Ključni nauk: Pri avtonomnih varnostnih raziskavah poleg samega rezultata preverite tudi pot do njega; izolacija, spremljanje in neodvisna preverjanja so nujni nadzorni ukrepi.

Zmogljivejši modeli lahko potrebujejo manj orkestracije

Na začetku raziskave smo preučili, ali bi bilo smiselno okrog agenta zgraditi obsežno orkestracijo za izboljšanje njegovih kibernetskih zmogljivosti. Rezultat je nakazal, da zmogljivejši modeli potrebujejo manj orkestracije in usmerjanja. Majhno dodatno izboljšanje pa ne upraviči stroškov vzdrževanja. Zato smo se odločili obsežno orkestracijo odstraniti.

V poskusu smo primerjali GPT‑5.5 Cyber in GPT‑5.6 Cyber. Po naših opažanjih GPT‑5.5 Cyber ni dosledno prepoznaval, kdaj in kako uporabiti obstoječe tehnike izkoriščanja ranljivosti v jedru Linuxa. Nato smo zbrali 103 tehnike v modelu prijazni obliki, jih dali na voljo v agentovem okolju in agenta s pozivom usmerili k njihovi uporabi. Pri 63 možnih ranljivostih za izkoriščanje se je uspešnost tako povečala s 76,2 % na 88,9 %.

Ko smo poskus ponovili z GPT‑5.6 Cyber, je model bolje samostojno našel, izbral in uporabil ustrezne tehnike. Odstranili smo orkestracijo tehnik in veščin. Tako poenostavljen potek dela z GPT‑5.6 Cyber je presegel potek dela z GPT‑5.5 Cyber, ki je imel obsežnejšo podporno strukturo. Ponovna vključitev dodatne plasti tehnik za GPT‑5.6 Cyber je prinesla le majhno izboljšanje za 1,5 odstotne točke.

Ključni nauk: Ob spremembah zmogljivosti osnovnega modela znova ocenite orkestracijo in ogrodje. Podporna struktura, ki občutno izboljša eno generacijo modelov, lahko zmogljivejšemu modelu doda le malo vrednosti, zato je treba pretehtati njene koristi glede na stroške vzdrževanja.

Iterativno izboljševanje ustvarjanja popravkov

Na začetku je model na neposreden poziv za ustvarjanje predlogov popravkov pripravil funkcionalno pravilne popravke, ki so preprečili delovanje dokaza koncepta, a so občasno povzročili druge težave: vsebovali so več kode, kot je bilo potrebno, lahko so poslabšali zmogljivost, odstopali so od pravil pisanja kode ali niso upoštevali različic iste ranljivosti v povezani kodi, zato so bili nepopolni.

Dodatna navodila in iterativne izboljšave procesa ustvarjanja popravkov so izboljšali njihovo kakovost. To kaže, da so lahko varnostni popravki, ustvarjeni z umetno inteligenco, ob ustreznem pristopu pravilni, minimalni in skladni z obstoječimi pravili pisanja kode. To področje aktivno raziskujemo in verjamemo, da bo s prihodnjimi modeli ta proces lažji in učinkovitejši. V nekaj primerih je naš raziskovalni prototip prepoznal tudi težave v popravkih, ki so jih napisali strokovnjaki. Te težave so bile nato odpravljene, še preden so bili popravki vključeni v kodo.

Ključni nauk: Modeli lahko pospešijo pripravo popravkov, vendar je morda treba veščine in ogrodja za njihovo pripravo iterativno izboljševati, da popravki zanesljivo izpolnjujejo tako funkcionalne kot nefunkcionalne zahteve. Priporočamo tudi uporabo modelov za pregled popravkov, ki jih ustvarijo ljudje ali umetna inteligenca, z vidika napadalca. Tako lahko odkrijemo težave, kot so možnost obhoda popravka, spregledane druge poti napada ali različice ranljivosti in podobno.

Ranljivosti v preizkusni infrastrukturi

Pri zagonu v okolju kernelCTF je naš raziskovalni prototip poleg 21 izkoriščevalskih kod za ranljivosti ničtega dne v jedru Linuxa odkril in izkoristil tudi ranljivost v QEMU TCG. Analitični agent je dobil nalogo analizirati vstopno kodo sistemskih klicev. Med pisanjem programov za preizkušanje prehodov med ravnmi privilegijev je naletel na nepričakovano sesutje jedra. Analiziral je sesutje in vzrok izsledil do QEMU TCG, ne da bi imel dostop do izvorne kode QEMU, ter ranljivost vključil v poročilo. Agent ExploitDev je nato za to ranljivost uspešno razvil izkoriščevalsko kodo za lokalno povišanje privilegijev. To ranljivost QEMU smo odkrili pri ročni analizi izkoriščevalske kode in potrdili, da je bila v izvornem projektu QEMU že odpravljena, ne pa tudi v izdaji, uporabljeni med poskusom.

Ključni nauk: Prelomni modeli s kibernetskimi zmogljivostmi lahko odkrijejo ranljivosti v preizkusni infrastrukturi. Priporočamo, da pred ofenzivnim raziskovanjem ranljivosti preizkusite vsak del infrastrukture. Sami smo proaktivno preizkusili svojo infrastrukturo ter razkrili in odpravili številne ranljivosti v projektih Kata, Moby/Docker, gVisor in drugih.

Zaključek

Naš cilj je vse večje zmogljivosti modelov pretvoriti v trajno prednost za ljudi, ki skrbijo za varnost interneta. Ta raziskava kaže, da lahko vse večje kibernetske zmogljivosti prelomnih modelov uporabimo za učinkovito iskanje ranljivosti v kompleksni programski opremi, kot je jedro Linuxa. Z varnostno utrditvijo ključnih projektov programske opreme, kot so Linux in drugi odprtokodni projekti, lahko zaščitimo številne nadaljnje sisteme in uporabnike.

S pobudo Patch the Planet v okviru programa Daybreak želimo to raziskavo razširiti na več ključnih projektov programske opreme ter skupaj z vzdrževalci in varnostnimi partnerji razviti zanesljivo samodejno pripravo popravkov. Želimo postopoma zmanjševati priložnosti za napadalce ter povečevati stroške iskanja in izkoriščanja ranljivosti, dokler pričakovana korist ne bo več upravičevala napada.

Vsaka generacija modelov bi nam morala pomagati razvijati programsko opremo, v katero bo naslednja generacija težje vdrla. Še naprej si bomo prizadevali za varen internet, na katerem bo lahko vsakdo z veseljem gradil.

Avtorji

OpenAI