OpenAI

4. listopadu 2026

ZabezpečeníPublikace

O tisíc cest méně k oprávněním root

Vyvinuli jsme autonomní systém pro hledání, zneužívání a opravy zranitelností. V jediném běhu s naším kybernetickým modelem ověřil a opravil 948 zranitelností umožňujících lokální zvýšení oprávnění v Linuxu. Náklady na API činily 1,2 milionu USD.

Načítání…

Bezpečnostní výzkum, který dříve vyžadoval samostatné a dlouhodobé zkoumání každého nálezu, lze stále častěji provádět jako systematický proces. Tento dokument popisuje jedno z našich úsilí v této oblasti.

Hledání zranitelností je stále snazší provádět ve velkém měřítku, ale provozními překážkami zůstává určování priorit a ověřování. Vytvořili jsme prototyp pro hledání bezpečnostních chyb v jádře Linuxu v kontrolovaném výzkumném prostředí. Náš prototyp identifikoval a analyzoval 2 308 potenciálních nálezů v jádře Linuxu, dynamicky reprodukoval 1 724 zranitelností a vytvořil 948 exploitů pro lokální zvýšení oprávnění (LPE), které by mohly neprivilegovanému lokálnímu uživateli umožnit získat přístup root.

Na základě těchto důkazů jsme stanovili priority pro hlášení zranitelností a připravili návrhy oprav ke kontrole správci. Podle doporučení komunity jádra Linuxu jsme začali kritickými zranitelnostmi a s partnery projektu Patch the Planet pracujeme na dalších hlášeních a opravách.

V červnu jsme v rámci naší iniciativy Patch the Planet informovali, že GPT‑5.5 Cyber odhalil zranitelnosti v jádře Linuxu a vyvinul 24 exploitů pro lokální zvýšení oprávnění, aby je ověřil a nahlásil. Tuto práci jsme rozšířili do systému poháněného připravovaným modelem pro kybernetickou bezpečnost, který zahrnuje hledání zranitelností, dynamické ověřování, posuzování zneužitelnosti a generování oprav. Po dokončení běhu výzkumníci zkontrolovali výstupy a nahlásili nalezené zranitelnosti spolu s opravami.

Shrnutí

Metodika

  • Náš systém v zásadě funguje takto: nejprve určí části jádra Linuxu důležité z hlediska bezpečnosti, statickou analýzou v těchto cílech auditu vyhledá potenciální zranitelnosti, dynamicky je reprodukuje v izolovaném prostředí, vytvoří demonstrační exploit (proof of concept, PoC) pro ověření zneužitelnosti a vygeneruje opravy. Výsledky nakonec zkontroluje bezpečnostní výzkumník.

  • Výstup systému zahrnuje analýzu prvotní příčiny, minimální PoC vyvolávající pád, návrh opravy a úplný exploit. Tyto podklady pomáhají výzkumníkům posoudit závažnost zranitelnosti a začlenit opravy do hlavního projektu.

Zjištění

  • Při běhu v polovině října 2026 náš systém s připravovaným modelem pro kybernetickou bezpečnost dynamicky reprodukoval 1 724 zranitelností a pro běžně používanou distribuci Linuxu vygeneroval PoC pro 291 zranitelností umožňujících únik informací a 948 funkčních exploitů pro lokální zvýšení oprávnění (LPE). Celý běh stál 1 213 430 USD v kreditech API, tedy 1 279 USD na jeden LPE exploit.

  • Na cílových virtuálních strojích běžel standardní desktopový operační systém, nikoli záměrně oslabený cíl, se stejným modelem hrozeb, jaký používají soutěže v kybernetické bezpečnosti (např. Pwn2Own⁠(otevře se v novém okně), TyphoonPWN⁠(otevře se v novém okně)). V minulosti nabízely soutěže Pwn2Own a TyphoonPWN za LPE exploity v jádře Linuxu odměny 20 000 USD, respektive 70 000 USD. Při použití těchto historických odměn na 948 exploitů vychází hypotetická hodnota na 18,9–66,3 milionu USD, tedy přibližně 16 až 55násobek nákladů na náš systém.

  • V upraveném prostředí kernelCTF⁠(otevře se v novém okně), které používá verzi jádra Linuxu s omezenou útočnou plochou, náš systém vytvořil 25 PoC úniku informací a 21 LPE exploitů. Pro srovnání: do doby vzniku tohoto textu přijal program kernelCTF v roce 2026 celkem 26 potvrzených LPE exploitů pro zranitelnosti nultého dne.

    • Tato série testů stála přibližně 32 936 USD v kreditech API. Pokud by program těchto 21 zranitelností přijal, odměna by činila přibližně 1,5 milionu USD, tedy asi 45násobek nákladů na skenování.

  • Podle našich nejlepších znalostí agenti v tomto systému objevili a použili nejméně 10 nových technik zneužívání zranitelností v Linuxu.

Úvahy

  • Správci Linuxu a bezpečnostní komunita usilovně pracují na rychlém odhalování a opravování zranitelností. Během 10 dní, kdy probíhalo skenování, jsme zaznamenali, že více než 100 zranitelností LPE v Linuxu již bylo opraveno nebo pro ně jiní přispěvatelé připravili opravy k začlenění. O dalších přibližně 300 se veřejně diskutovalo.

  • Vzhledem k rychlosti, s jakou průkopnické modely objevují zranitelnosti, považujeme automatické generování oprav za nezbytné pro zabezpečování softwaru potřebným tempem a pro zkrácení doby, po kterou lze zranitelnosti zneužít. Věříme, že díky opakovanému vylepšování pod vedením lidských odborníků mohou být opravy generované AI funkčně správné, odpovídat stávajícímu stylu programování a odolávat různým variantám útoku. Jde o důležitou oblast pro další výzkum.

  • Schopnější modely dokážou ve stávajícím kódu objevovat nové zranitelnosti, často i takové, které v něm jsou již delší dobu a je obtížnější je odhalit. Náš analytický systém s novějším modelem pro kybernetickou bezpečnost objevil v polovině října více než pětkrát tolik nových zranitelností LPE než červencový běh s GPT‑5.6 Sol, a to navzdory třem měsícům bezpečnostních vylepšení mezi oběma skenováními.

  • Velké a složité softwarové projekty pravděpodobně vyžadují několik kol skenování a oprav zranitelností, než se podaří skryté chyby „vyčerpat“. V ideálním případě se tento proces opakuje s každou další generací průkopnických modelů. To platí pro proprietární i open-source software.

  • V krátkodobém a střednědobém horizontu je třeba přístup k účtu s nízkými oprávněními v operačním systému, který nemá nainstalované nejnovější dostupné opravy, považovat u útočníka s dostatečnými prostředky prakticky za ekvivalent přístupu root. Vícevrstvá obrana využívající sandboxy a izolační technologie, jako jsou Firecracker a gVisor, je důležitá pro omezení dopadu zneužitých zranitelností.

  • Domníváme se, že v příštích několika letech průkopnické modely pravděpodobně dokážou odhalit zranitelnosti v jakémkoli softwarovém projektu, pokud v něm nějaké jsou. Po jejich zveřejnění pak mohou být schopné vyvinout exploity i méně schopné modely. Ve světě bez neznámých zranitelností bude zásadní vytvářet a udržovat software s vysokou mírou zaručené bezpečnosti, zejména základní software, jako jsou operační systémy, prohlížeče, knihovny pro zpracování obrazových formátů, síťový zásobník TCP/IP a další. Vedle hledání a oprav stávajících zranitelností patří mezi slibné oblasti dalšího výzkumu také trénování modelů tak, aby od základu psaly bezpečný kód, zmenšování útočné plochy odstraňováním nepotřebných funkcí a formální verifikace. Tyto přístupy mohou umožnit efektivní zabezpečování softwaru ve velkém měřítku.

Trychtýř znázorňující 2 308 potenciálních nálezů, 1 724 ověřených nálezů a výběr 313 potenciálních úniků informací a 1 238 potenciálních případů lokálního zvýšení oprávnění. Výsledkem je 291 funkčních PoC úniku informací a 948 funkčních exploitů pro lokální zvýšení oprávnění. Celkové náklady v kreditech API: 1,2 milionu USD. Schematické znázornění; šířky neodpovídají měřítku.

Proč jádro Linuxu

Jádro Linuxu tvoří základ zařízení s Androidem, cloudové infrastruktury, superpočítačů a dalších systémů, které používají miliardy lidí. S více než 40 miliony řádků kódu nabízí jádro rozsáhlou útočnou plochu prostřednictvím systémových volání, síťových funkcí, souborových systémů a ovladačů zařízení. Linux jsme zvolili proto, abychom prozkoumali, jak efektivně dokážou průkopnické modely v tak rozsáhlém a důležitém kódu hledat zranitelnosti a prokazovat jejich dopad na bezpečnost.

Úvodní fáze hledání zranitelností přinesla tisíce potenciálních nálezů, příliš mnoho na to, aby je bezpečnostní výzkumníci mohli ručně zkontrolovat a posoudit. Provozní výzvou pro náš systém nebylo samotné hledání zranitelností, ale určení, které nálezy lze reprodukovat, jakou bezpečnostní hranici překračují a které vyžadují nejrychlejší pozornost správců.

Analýza nákladů

Posláním týmu Cyber v OpenAI je pomáhat zabezpečovat software, na který svět spoléhá. U každé fáze uvádíme náklady na API, abychom výzkumníkům pomohli odhadnout prostředky potřebné k zopakování a rozšíření této práce. Tyto náklady odpovídají modelům, konfiguracím cílů a pracovnímu postupu použitým v tomto hodnocení. Naším širším cílem je pomáhat obráncům hledat a opravovat zranitelnosti, omezovat příležitosti pro útočníky a zvyšovat jejich náklady na zneužívání softwaru.

Na závěr upozorňujeme, že jsme se v tomto výzkumu zaměřili na metodiku a měření schopností modelů, nikoli na náklady. Očekáváme, že dostatečné technické vyladění harnessu by mohlo výrazně snížit náklady v každé fázi. Uváděné náklady proto představují spíše horní hranici.

Systém pro výzkum zranitelností

Náš prototyp pro výzkum zranitelností je systém s pěti navazujícími fázemi, jehož základem je připravovaný model pro kybernetickou bezpečnost:

  • Hledání zranitelností: Agenti zjišťují, které části kódu jsou důležité z hlediska bezpečnosti, a hledají v nich potenciální zranitelnosti.

  • Dynamické ověřování: Agenti se snaží každý potenciální nález reprodukovat v izolovaném prostředí a uchovávají důkazy z běhu programu. Výstupem tohoto kroku jsou reprodukované a ověřené zranitelnosti.

  • Posouzení zneužitelnosti: Agenti testují, zda ověřené zranitelnosti mohou umožnit únik informací nebo lokální zvýšení oprávnění.

  • Generování oprav: Agenti vytvářejí opravy jednotlivých zjištěných zranitelností.

  • Lidská kontrola: Bezpečnostní výzkumníci před nahlášením správcům zkontrolují exploit, opravu a navrženou závažnost.

Schéma autonomního systému pro výzkum zranitelností jádra Linuxu: hledání zranitelností vytváří potenciální nálezy, dynamické ověřování ověřené zprávy, posouzení zneužitelnosti potvrzené exploity pro lokální zvýšení oprávnění a generování oprav návrhy oprav. Výzkumníci poté výsledky zkontrolují, než je nahlásí správcům jádra.

Na konci procesu systém sestaví balíček s analýzou prvotní příčiny, minimálním PoC vyvolávajícím pád, návrhem opravy a úplným exploitem. Tyto podklady pomáhají výzkumníkům posoudit závažnost zranitelnosti a začlenit opravy do hlavního projektu.

Hledání zranitelností

Ne každý řádek kódu v jádře Linuxu je důležitý z hlediska bezpečnosti. Náš systém pomocí týmu průzkumných agentů určil nejdůležitější cíle auditu a předal je analytickým agentům k vyhledání zranitelností.

Postup hledání zranitelností: průzkumní agenti v jádře vyhledávají nejdůležitější cíle auditu a určují jejich priority. Analytičtí agenti pak tyto cíle zkoumají, hledají potenciální zranitelnosti a vytvářejí upozornění.

Průzkumní agenti

Průzkumní agenti procházejí všechny složky a soubory a vybírají cíle auditu podle jejich dostupnosti pro uživatele s nízkými oprávněními a významu pro bezpečnost.

V této fázi bylo určeno 5 034 cílů auditu, tedy asi 2,8 milionu řádků kódu, což je přibližně 7 % veškerého kódu jádra Linuxu. Tím se výrazně snížily náklady na bezpečnostní audit oproti analýze celé kódové základny. Tento krok stál 3 426 USD v kreditech API.

Analytičtí agenti

Analytičtí agenti poté prozkoumali každý cíl auditu a vytvořili potenciální nálezy postupem podobným tomu, který používá plugin Codex Security⁠(otevře se v novém okně). Analytičtí agenti v zásadě čtou kód přiděleného cíle auditu, aby pochopili jeho fungování, určili model hrozeb a hledali v něm zranitelnosti.

Během 12 hodin analytičtí agenti vytvořili po odstranění duplicit 2 308 potenciálních nálezů. Tato fáze stála 316 549 USD v kreditech API.

Ověřování zranitelností

Potenciální nález není totéž co ověřená zranitelnost. Při tomto množství není pro náš výzkumný tým prakticky možné ručně prošetřit každé hlášení.

Zaměřili jsme se proto na ověřování nálezů, které a) byly dostupné uživateli s nízkými oprávněními, b) nevyžadovaly žádné zvláštní schopnosti a c) poskytovaly měřitelné důkazy o poškození paměti.

Schéma cyklu, v němž agent pro prvotní posouzení převádí upozornění na zranitelnost na demonstrační kód (PoC), spouští ho ve virtuálním stroji a postupně ho upravuje podle výstupu konzole.

Pro každý potenciální nález vytvořil agent pro prvotní posouzení demonstrační kód (PoC) a spustil jej v izolovaném virtuálním stroji s jádrem Linuxu a nástrojem Kernel Address Sanitizer (KASAN). Agent sledoval výstup programu i systémovou konzoli a postupně PoC upravoval, dokud nereprodukoval nahlášené chování nebo nevyčerpal možné způsoby jeho vyvolání.

Během 30 hodin náš systém reprodukoval 1 724 zranitelností, přibližně 74,7 % z 2 308 potenciálních nálezů. Samotná statická kontrola kódu může vést k falešně pozitivním výsledkům. O to více nás zaujala přesnost analytických agentů a účinnost agentů pro prvotní posouzení, kteří autonomně vytvořili funkční PoC pro téměř tři čtvrtiny potenciálních nálezů.

Většina zbývajících nálezů buď vyžadovala zvýšená oprávnění, nebo se je nepodařilo reprodukovat v časovém limitu kvůli obtížně vyvolatelným souběhům, specifickým podmínkám spuštění (např. nutnému selhání alokace na konkrétním řádku) či časově náročnému ověřování (např. přetečení čítače referencí). Pouze 3,1 % nálezů vycházelo z chybné analýzy modelu, kdy nahlášená zranitelnost předpokládala podmínku, která nemohla nastat.

Fáze ověřování stála celkem 73 330 USD v kreditech API. Zjistili jsme, že v našem ověřovacím systému, který musel pro potvrzení skutečné zranitelnosti vygenerovat PoC, byl tento proces nákladnější než doporučení založené pouze na statické analýze. Náklady na pokus o ověření skutečného a falešně pozitivního nálezu přitom byly podobné. Vyřazení falešně pozitivních nálezů v dřívější fázi proto výrazně zlepšuje nákladovou efektivitu procesu.

Posouzení zneužitelnosti

Ověření potvrdí, že zranitelnost skutečně existuje, ale neurčí, jak naléhavě je třeba ji řešit. Například zranitelnost umožňující lokální zvýšení oprávnění si zaslouží vyšší prioritu než taková, která může způsobit pouze lokální odepření služby. Po ověření 1 724 zranitelností bylo dalším úkolem určit nálezy s největším potenciálním dopadem na bezpečnost.

Agent pro úvodní výběr staticky zkontroloval každou zprávu, záznam pádu a relevantní zdrojový kód. Záměrně používal mírná kritéria, aby nevyřadil potenciálně závažné nálezy, a přitom odfiltroval případy bez věrohodné cesty ke zneužití. Tím se výsledky zúžily na 313 potenciálních úniků informací a 1 238 potenciálních případů lokálního zvýšení oprávnění.

Agenti pro vývoj exploitů (ExploitDev) pak tyto nálezy testovali v izolovaných virtuálních strojích se zapnutými ochranami standardní distribuce Linuxu, včetně Supervisor Mode Execution Prevention (SMEP), Supervisor Mode Access Prevention (SMAP), Kernel Address Space Layout Randomization (KASLR) a HARDENED_USERCOPY. To pomohlo předejít nerealistickým hodnocením závislým na vypnutých ochranách.

Agenti vytvořili 291 PoC úniku informací a 1 169 funkčních exploitů pro lokální zvýšení oprávnění, které by mohly neprivilegovaným lokálním uživatelům poskytnout přístup root.

Provedli jsme analýzu variant a vyvinuli 948 samostatných oprav zranitelností, na nichž tyto exploity stály. Toto číslo používáme jako celkový počet jedinečných zranitelností LPE. Vývoj úspěšného exploitu stál v průměru 359 USD v kreditech. Obránci tak mohou relativně levně testovat zneužitelnost nalezených zranitelností.

Agent pro úvodní výběr zranitelností stál 44 194 USD v kreditech API. Fáze zneužívání zranitelností stála celkem 775 929 USD v kreditech API: 84 929 USD za zpracování potenciálních úniků informací a 691 000 USD za potenciální případy lokálního zvýšení oprávnění.

Zpracování potenciálního případu lokálního zvýšení oprávnění (558 USD) bylo v průměru přibližně dvakrát dražší než zpracování potenciálního úniku informací (271 USD). Důvodem je, že PoC úniků informací se přebíraly z fáze ověřování a k použití v exploitu vyžadovaly méně úprav. Vývoj exploitu z potenciálního nálezu LPE naopak vyžadoval řadu dalších kroků, například naplánování strategie zneužití, vyhledání vhodných zranitelných objektů, obejití ochranných mechanismů a další. Všimli jsme si také, že neúspěšné pokusy o zneužití (3 922 USD u 69 případů) stály mnohem více než úspěšné (360 USD u 1 169 případů). Způsobilo to několik obtížně zneužitelných zranitelností, například souběhové chyby. Stanovení rozumné podmínky pro ukončení pokusu, například po hodině bez pokroku, by výrazně snížilo náklady na ExploitDev.

Generování oprav

Pro každou ověřenou zranitelnost systém také vygeneruje opravu. Modelu poskytujeme relevantní zdrojový kód a v promptu mu zadáváme osvědčené postupy tvorby oprav: provést statické kontroly opravy, dodržet vývojové postupy používané v okolním kódu a pomocí analýzy variant ověřit, že je oprava úplná.

Na doporučení komunity jádra Linuxu jsme již odeslali stovky hlášení a oprav kritických zranitelností a s partnery projektu Patch the Planet pracujeme na postupném odesílání zbývajících oprav. Tato práce je součástí našeho širšího závazku podporovat open-source projekty v rámci iniciativy Daybreak.

Zjištění

V této části sdílíme poznatky, úvahy a další analýzy z tohoto výzkumu.

Správci rychle opravují zranitelnosti

Během tohoto výzkumu jsme sledovali, jak správci Linuxu rychle opravují zranitelnosti a chrání uživatele. Skenování proběhlo v polovině října 2026 na nejnovějším jádře Linuxu. Když po 10 dnech skončilo autonomní skenování a ruční analýza, 61 zranitelností LPE už bylo opraveno v hlavním projektu, pro 43 byly připraveny opravy k začlenění a 299 bylo veřejně hlášeno a diskutováno.

Velmi si vážíme správců Linuxu, kteří urychleně opravují zjištěné problémy, i širší bezpečnostní komunity, která přispívá svými nálezy. Právě taková společná reakce je pro zabezpečení světového softwaru potřebná. Rychlé tempo zveřejňování a oprav zranitelností také zdůrazňuje, jak zásadní je pro uživatele i firmy udržovat software aktuální.

Poučení: Automatizované prvotní posouzení by mělo zohledňovat rychlý cyklus vydávání oprav. Opětovné ověření nálezů vůči nejnovějšímu kódu, včetně kódu začleněného po původním skenování, pomáhá předcházet duplicitním či neaktuálním hlášením. Pozornost se tak soustředí na nevyřešené zranitelnosti a správci získají podklady, podle nichž mohou jednat, aniž by museli provádět zbytečné kontroly.

Schopnější modely nacházejí více zranitelností

Během vývoje systému našel a zneužil GPT‑5.6 Sol koncem července 2026 celkem 166 jedinečných zranitelností LPE při celkových nákladech 513 690 USD v kreditech API.

Při druhém skenování v polovině října 2026 našel a zneužil novější model pro kybernetickou bezpečnost 948 jedinečných zranitelností LPE při celkových nákladech 1 213 430 USD v kreditech API. V obou případech jsme skenovali tehdy nejnovější verzi větve master jádra Linuxu.

Poučení: S rostoucími schopnostmi modelů znovu skenujte i dříve auditovaný kód. Schopnější model může odhalit zranitelnosti, které dřívější modely přehlédly, a to i při použití stejného výzkumného harnessu.

Nové techniky zneužívání zranitelností

Vybrali jsme vzorek 166 exploitů vytvořených agenty a analyzovali techniky, které využívaly. Podle našich nejlepších znalostí agenti v tomto vzorku exploitů použili 10 nových technik zneužívání zranitelností. Tyto techniky jsme sdíleli s externími odborníky na zneužívání zranitelností jádra a i pro ně byly nové.

Z těchto 10 technik dvě využívají nové perzistentní elastické objekty, kterými model zaplnil cílovou mezipaměť jádra; dvě představují nové způsoby uspořádávání paměťových stránek pro zvýšení spolehlivosti exploitu; pět jsou nové techniky manipulace pouze s daty, které umožňují zvýšení oprávnění přímo nebo prostřednictvím libovolného zápisu; zbývající technika využívá libovolnou záměnu typů. Z bezpečnostních důvodů v tomto příspěvku nezveřejňujeme úplné technické podrobnosti těchto nových technik.

Poučení: Průkopnické modely nehledají jen shodu se známými vzory zranitelného kódu ani nepoužívají výhradně známé techniky zneužití; projevují kreativitu a přicházejí s novými přístupy.

Co mohou náklady na exploity napovědět obráncům

Důležitou součástí poslání našeho týmu je měřit náklady na hledání a zneužívání zranitelností a na základě těchto údajů pomáhat směrovat investice do obrany. Naším cílem je pomoci obráncům opravit zranitelnosti dříve, než je útočníci využijí, a zvýšit náklady na zneužívání softwaru natolik, aby se útočníkům nevyplatilo. Měření nákladů na zneužití nám pomáhá posoudit, jak se tento úkol mění s rostoucími schopnostmi modelů. V této části porovnáváme náklady na běh našeho systému s odměnami, které by za nalezené zranitelnosti nabízely programy odměn za hlášení chyb.

Na cílových virtuálních strojích v našem experimentu běžel standardní desktopový operační systém, nikoli záměrně oslabený cíl, se stejným modelem hrozeb, jaký používají soutěže v kybernetické bezpečnosti (např. Pwn2Own⁠(otevře se v novém okně), TyphoonPWN⁠(otevře se v novém okně)). V minulosti nabízely soutěže Pwn2Own a TyphoonPWN za exploity pro lokální zvýšení oprávnění v jádře Linuxu odměny 20 000 USD, respektive 70 000 USD. Při použití těchto historických odměn na 948 exploitů vychází hypotetická hodnota na 18,9–66,3 milionu USD, tedy přibližně 16 až 55násobek nákladů na náš systém.

Náš systém jsme také otestovali v rámci programu odměn za zranitelnosti kernelCTF⁠(otevře se v novém okně) společnosti Google, jehož cílem je jádro Linuxu s posílenou ochranou a omezenou útočnou plochou. Systém jsme spustili na nejnovější verzi jádra Linuxu v prostředí kernelCTF. Protože tato verze nebyla kompatibilní s ochranou SLAB_VIRTUAL v kernelCTF, odebrali jsme ji z konfigurace. Získali jsme 25 PoC úniku informací a 21 exploitů pro lokální zvýšení oprávnění. Pro srovnání: do doby vzniku tohoto textu přijal program kernelCTF v roce 2026 celkem 26 potvrzených LPE exploitů pro zranitelnosti nultého dne. Celá série testů trvala 112 hodin a stála přibližně 32 936 USD v kreditech API, přičemž hledání zranitelností představovalo 83,7 % nákladů na API. Pokud by program těchto 21 zranitelností přijal, odměna by činila přibližně 1,5 milionu USD, tedy asi 45násobek nákladů.

Poučení: Podle veřejně dostupných výší odměn byl náš systém pro výzkum zranitelností se současnými modely schopnými úloh v kybernetické bezpečnosti v době výzkumu čistě ziskový. Obránci by měli svůj software proaktivně analyzovat, aby se jeho zneužívání útočníkům nevyplatilo.

Zneužití jiné zranitelnosti nultého dne

Při posuzování zneužitelnosti dostali agenti ExploitDev zprávu o zranitelnosti a úkol vytvořit plně funkční exploit. Náš systém označil zranitelnost za zneužitou, pokud se podařilo získat shell s oprávněními root. V jednom z prvních běhů fáze zneužívání zranitelností nahlásila 200 úspěšných exploitů pro lokální zvýšení oprávnění. Při následné lidské kontrole jsme však zjistili, že 20 z nich získalo oprávnění root prostřednictvím jiné zranitelnosti nultého dne, než která jim byla přidělena. To naznačuje, že i úspěšné zneužití zranitelnosti agentem vyžaduje řádné ověření.

Následně jsme zpřísnili omezení úlohy a přidali nezávislou kontrolu, která potvrzuje, že každý výsledný exploit využívá přidělenou zranitelnost.

Poučení: Při autonomním bezpečnostním výzkumu ověřujte kromě samotného výsledku i cestu k němu. Izolace, monitorování a nezávislé kontroly jsou nezbytná opatření.

Schopnější modely mohou vyžadovat jednodušší orchestraci

Na začátku výzkumu jsme zvažovali, zda kolem agenta vybudovat rozsáhlou orchestraci, která by zlepšila jeho schopnosti v kybernetické bezpečnosti. Naše výsledky naznačily, že schopnější modely potřebují méně orchestrace a podrobného vedení. Drobný přínos navíc neospravedlňuje náklady na údržbu. Proto jsme se rozhodli rozsáhlou orchestraci odstranit.

Experiment porovnával GPT‑5.5 Cyber a GPT‑5.6 Cyber. Podle našich pozorování GPT‑5.5 Cyber nedokázal spolehlivě rozpoznat, kdy a jak použít existující techniky zneužívání zranitelností jádra Linuxu. Proto jsme zpracovali 103 technik do formátu vhodného pro model, zpřístupnili je v prostředí agenta a zadali mu, aby je používal. U 63 potenciálně zneužitelných nálezů se tím úspěšnost zvýšila ze 76,2 % na 88,9 %.

Když jsme experiment zopakovali s GPT‑5.6 Cyber, model dokázal relevantní techniky lépe sám vyhledávat, vybírat a používat. Odstranili jsme orchestraci technik a dovedností. Tento postup s GPT‑5.6 Cyber a minimální orchestrací pak překonal postup s GPT‑5.5 Cyber, který využíval rozsáhlejší podpůrnou strukturu. Opětovné přidání vrstvy technik ke GPT‑5.6 Cyber přineslo jen nepatrné zlepšení o 1,5 procentního bodu.

Poučení: S tím, jak se mění schopnosti základního modelu, přehodnocujte orchestraci a harness. Podpůrná struktura, která výrazně pomáhá jedné generaci modelů, může mít pro schopnější model jen malou hodnotu. Je proto třeba posoudit, zda její přínos vyváží náklady na údržbu.

Iterování zvyšuje kvalitu generovaných oprav

Zpočátku model na přímý pokyn k vytvoření návrhu opravy generoval funkčně správné opravy, které bránily zneužití pomocí PoC, ale občas přinášely další problémy: obsahovaly zbytečně mnoho kódu, mohly zhoršit výkon nebo se odchylovaly od konvencí psaní kódu. Model také někdy nezkoumal související kód kvůli variantám stejné zranitelnosti, což vedlo k neúplným opravám.

Další pokyny a postupné úpravy procesu generování zvýšily kvalitu oprav. To naznačuje, že při vhodném postupu mohou být bezpečnostní opravy generované AI správné, minimální a v souladu se stávajícími konvencemi kódu. Jde o oblast, kterou aktivně zkoumáme, a věříme, že s budoucími modely bude tento proces snazší a efektivnější. V několika případech náš výzkumný prototyp také odhalil problémy v opravách napsaných lidskými odborníky. Ty se pak podařilo odstranit ještě před začleněním oprav.

Poučení: Modely mohou urychlit tvorbu oprav, ale dovednosti a harnessy pro jejich tvorbu mohou vyžadovat postupné vylepšování, aby opravy spolehlivě splňovaly funkční i nefunkční požadavky. Doporučujeme také používat modely ke kontrole oprav vytvořených lidmi i AI z pohledu útočníka. Taková kontrola může odhalit, že opravu lze obejít, že nepokrývá jiné cesty útoku či varianty a další problémy.

Zranitelnosti v testovací infrastruktuře

Při běhu v prostředí kernelCTF náš výzkumný prototyp kromě 21 exploitů pro zranitelnosti nultého dne v jádře Linuxu našel a zneužil také zranitelnost v QEMU TCG. Analytický agent dostal za úkol analyzovat vstupní kód systémových volání. Při psaní programů pro experimenty s přechody mezi úrovněmi oprávnění narazil na neočekávaný pád jádra. Pád posoudil a vysledoval jeho příčinu do QEMU TCG, přestože neměl přístup ke zdrojovému kódu QEMU. Zranitelnost pak zahrnul do zprávy. Agent ExploitDev následně pro tuto zranitelnost úspěšně vyvinul exploit pro lokální zvýšení oprávnění. Tuto zranitelnost QEMU jsme odhalili při ruční analýze exploitů a potvrdili jsme, že již byla opravena v hlavním projektu QEMU, nikoli však ve vydaném sestavení použitém během experimentu.

Poučení: Průkopnické modely se schopnostmi v kybernetické bezpečnosti dokážou nacházet zranitelnosti v testovací infrastruktuře. Před zahájením ofenzivního výzkumu zranitelností doporučujeme otestovat každou část infrastruktury. Sami jsme proaktivně otestovali naši infrastrukturu a nahlásili a opravili řadu zranitelností v projektech Kata, Moby/Docker, gVisor a dalších.

Závěr

Naším cílem je proměnit rostoucí schopnosti modelů v trvalou výhodu pro lidi, kteří zajišťují bezpečnost internetu. Tento výzkum ukazuje, že rostoucí schopnosti průkopnických modelů v oblasti kybernetické bezpečnosti lze využít k efektivnímu hledání zranitelností ve složitém softwaru, jako je jádro Linuxu. Zvyšování odolnosti kritických softwarových projektů, jako je Linux a další open-source projekty, může ochránit mnoho navazujících systémů a jejich uživatelů.

Prostřednictvím projektu Patch the Planet, který je součástí iniciativy Daybreak, chceme tento výzkum rozšířit na další kritické softwarové projekty a společně se správci a bezpečnostními partnery vyvíjet spolehlivé automatizované opravy. Chceme postupně omezovat příležitosti pro útočníky a zvyšovat náklady na hledání a zneužívání zranitelností, dokud nepřeváží očekávaný zisk.

Každá generace modelů by nám měla pomáhat vytvářet software, který bude pro příští generaci obtížnější napadnout. Budeme dál pracovat na bezpečném internetu, na kterém bude moci každý s radostí tvořit.

Autor

OpenAI