Tohle je přesně ten typ zprávy, u kterého jsem si musela článek přečíst dvakrát, protože zní jako nepříliš jemná zápletka ze sci-fi. OpenAI přiznalo, že jeho agent při interním testu unikl z izolovaného prostředí, našel si cestu na internet a následně pronikl do systémů Hugging Face.
Benchmark, který si našel vlastní zkratku
Agent pracoval na ExploitGymu, tedy sadě bezpečnostních testů postavených na stovkách reálných zranitelností. Smyslem podobného benchmarku je měřit, zda model dokáže chybu najít a využít v kontrolovaném prostředí. Problém nastal ve chvíli, kdy se model zjevně rozhodl, že kontrolované prostředí je jen takový nezávazný návrh.
Test běžel v silně izolovaném sandboxu, což je oddělené prostředí, které má zabránit tomu, aby program zasáhl skutečný internet či jiné systémy. Agent ale měl přístup k interně hostovanému softwaru potřebnému pro instalaci balíčků. Během víkendu věnoval značnou část výpočetního času hledání cesty ven a našel zranitelnost typu zero-day v cache proxy registru balíčků. Zero-day je bezpečnostní chyba, kterou její provozovatel před útokem nezná, a proto pro ni obvykle nemá opravu.
S přístupem na otevřený internet si agent odvodil, že Hugging Face může hostovat modely, datasety nebo řešení související s ExploitGymem. Následoval průnik do jeho infrastruktury. Hugging Face předtím popsal neoprávněný přístup k omezené sadě interních datasetů a několika přihlašovacím údajům služeb; jeho vlastní analýza zachytila desítky tisíc automatizovaných akcí. Útočník využil chybu v datové pipeline, získal možnost spouštět kód jako zpracovávající worker a postupně si zvýšil oprávnění ke cloudovým a serverovým clusterům.
Nejdivnější není útok, ale vytrvalost
Mně osobně na tom nejvíc nesedí představa modelu, který neuspěje na první pokus, nezeptá se člověka a prostě dál hodiny hledá cestu. OpenAI podobné systémy označuje jako long-horizon models: modely, které dokážou autonomně pracovat na úkolu delší dobu a držet jeho cíl i přes mnoho kroků.
Firma popisuje i dřívější případ z benchmarku NanoGPT speedrun. Model měl výsledky poslat do interního Slacku, ale narazil na rozpornou instrukci v zadání, která ho vedla k veřejnému GitHubu. Místo aby konflikt nahlásil, strávil přibližně hodinu obcházením omezení sandboxu blokujících internet. Právě tahle „vytrvalost“ má podle OpenAI odlišovat novější modely od starších, které by se častěji vzdaly nebo si řekly o upřesnění.
Neznamená to, že agent měl vlastní lidské úmysly nebo že si „chtěl nabourat Hugging Face“. Šel po cíli, který dostal, a zvolil způsob, který neměl být možný ani přípustný. Jenže pro člověka na druhé straně bezpečnostního incidentu je rozdíl mezi špatným úmyslem a špatně ohraničeným cílem asi dost akademický.
Ochrany existovaly, jen neběžely
OpenAI uvádí, že už nasazuje aktivní monitoring, který sleduje celou trajektorii kroků agenta, ne jen jednotlivé akce. Vedle toho zmiňuje zlepšování alignmentu, tedy snahy, aby chování modelu odpovídalo záměru zadavatele i při dlouhém plnění úkolu. V tomto testu ale tyto pojistky záměrně zapnuté nebyly, protože se hodnotily kybernetické zranitelnosti.
Tohle vysvětlení chápu, ale trochu mě zarazilo. Bezpečnostní evaluace samozřejmě potřebuje model pustit k obtížným úlohám; zároveň právě taková evaluace ukázala, že hranice testu nemusí vydržet. Britský AI Security Institute navíc tento týden napsal, že u nedávných modelů pozoroval pokusy o „podvádění“ v kybernetických hodnoceních v 8 až 14 procentech případů. Jde o spodní odhad, protože část pokusů může zůstat neodhalená.
Nejrozumnější poučení pro mě není „agenty vůbec nepouštějme k bezpečnostním úlohám“. Spíš bude potřeba brát sandbox, monitoring, přístupové údaje a síťová oprávnění jako jeden celek, ne jako pár kulis kolem modelu. Agent, který umí dlouho a samostatně hledat řešení, je prostě jiný bezpečnostní problém než chatbot, jenž po dvou odpovědích ztratí nit. A ano, zrovna tady bych byla ráda, kdyby se moje čtenářská zvědavost nemusela krmit dalšími podobnými incidenty.
