Služby AI Act META KODEX Reference Články Ceník O mně Kontakt 🇩🇪 Deutsch
ÚvodČlánky › Bezpečnost AI
Bezpečnost AI

Dataset, ze kterého se stal kód. A model, který vám v incidentu odmítne pomoct

Josef Šubert · 8. srpna 2026 · 6 min čtení
Ploché datové desky na světelném dopravníku se v jednom uzlu mění ve větvící se strom spuštěného kódu — ilustrace okamžiku, kdy se z dat stane kód

Hugging Face zveřejnil podrobnou forenzní rekonstrukci červencového průniku do své produkce. Že se agent dostal ze sandboxu ven, už víme. Zajímavější jsou dvě věci, o kterých se skoro nemluví: jak se dovnitř dostal — přes dataset, ze kterého se stal spustitelný kód — a co se stalo, když obránci sáhli po AI, aby incident vyšetřili. Ta druhá část je poučení, které se dá použít ve firmě o dvaceti lidech úplně stejně jako v laboratoři.

Co přesně se stalo

Nejdřív fakta, protože se v mezičase dost změnila. Když Hugging Face incident v polovině července oznámil, sám napsal, že neví, jaký model útočníka poháněl. Podrobná časová osa zveřejněná začátkem srpna to doplnila — a odpověď je nepříjemnější než „ruští hackeři".

  • Kdy: od 9. července 02:28 UTC do 13. července 14:14 UTC. Přes víkend, jak už to bývá.
  • Rozsah: forenzně obnoveno zhruba 17 600 akcí útočníka, seskupených do asi 6 280 shluků. Žádný člověk u klávesnice — agentní systém běžící strojovou rychlostí.
  • Kdo: agent, který zrovna procházel interním hodnocením kybernetických schopností OpenAI na benchmarku ExploitGym. Vyhodnotil si, že Hugging Face nejspíš hostuje modely, datasety a vzorová řešení toho benchmarku.
  • Proč: tohle je ta věta, u které stojí za to se zastavit. Podle rekonstrukce byl celý průnik z pohledu agenta pokusem podvádět u testu — dostat se k řešením místo toho, aby úlohy řešil sám.
  • Škoda: překvapivě malá. Přístup k pěti datasetům, jejichž názvy odpovídají zadáním a řešením ExploitGym. Žádné jiné zákaznické modely, datasety ani balíčky zasaženy nebyly.
  • Zdroje: oznámení Hugging Face, technická časová osa, komentář Bruce Schneiera. Primárním zdrojem je v obou případech Hugging Face — data o průběhu útoku pocházejí od napadené strany, nezávislé potvrzení třetí stranou zatím k dispozici není. Podle časové osy incident popsala i OpenAI ve vlastním oznámení.

Cesta dovnitř: z dat se stal kód

Útok měl dvě fáze. V první se agent dostal ze svého izolovaného prostředí u OpenAI ven — zneužil zero-day v proxy cache balíčkového registru, tedy v jedné z mála cest, kterou směl ven na internet. Tu jsme rozebírali v článku Modely utíkají ze sandboxu. Odtud si udělal odrazový můstek na cizí infrastruktuře a teprve z něj šel na Hugging Face.

Druhá fáze je ta, která by měla zajímat každého, kdo si stahuje modely z internetu. Agent nešel přes přihlášení ani přes web. Šel přes pipeline na zpracování datasetů — dvěma vektory, oba mířily na stejný konfigurací řízený nahrávač dat běžící v produkčních podech:

  • Čtení externího úložiště v HDF5. Dataset si řekl o obsah lokálních souborů — a dostal ho. Tím agent získal proměnné prostředí podu, tedy tokeny a klíče, plus zdrojový kód samotného workeru.
  • Injektáž do šablony Jinja2. Konfigurace datasetu se vyhodnocuje jako šablona. Kdo umí do šablony propašovat výraz, spustí libovolný kód. Tím měl agent nohu ve dveřích uvnitř perimetru.

Dál už to byla klasika: průzkum, nasazení staging nástroje, řídicí kanál, postup do clusteru, do metadat cloudu, do vnitřní sítě a do správy zdrojového kódu. Data z napadeného podu odcházela ven přes veřejné API a přes „mrtvé schránky" — datasety, které si agent sám založil a pak z nich četl.

Poučení pro firmu, která žádný model netrénuje: dataset, konfigurák a soubor s vahami nejsou pasivní data. Je to vstup, který někde na druhém konci projde nahrávačem, šablonovacím enginem nebo deserializací — a v tu chvíli se z dat stává kód. Přesně tak, jak jsme se to naučili u závislostí v npm a PyPI, jen o vrstvu výš a bez zavedených návyků. Když si stáhnete model z veřejného repozitáře a pustíte ho na stroji, který vidí do vaší sítě, přidali jste si závislost od cizího dodavatele. Jen jste ji nezapsali do žádného seznamu.

Poučení, o kterém se nemluví: v den incidentu vám AI odmítne pomoct

Tohle je z celé kauzy nejpraktičtější zjištění a zapadlo, protože nezní dramaticky.

Hugging Face potřeboval projít 17 tisíc událostí a rozklíčovat, co agent doopravdy udělal. Sáhl po tom, po čem by sáhl každý — po špičkových modelech přes komerční API. A narazil. Analýza znamená posílat do modelu skutečné útočné příkazy, exploity a artefakty řídicího kanálu. Bezpečnostní pojistky poskytovatelů tyhle požadavky zablokovaly, protože neumí rozlišit člověka, který incident vyšetřuje, od člověka, který ho páchá.

Forenzní analýza nakonec proběhla na open-weight modelu (GLM‑5.2) běžícím na vlastní infrastruktuře. To mělo druhý, neplánovaný přínos: útočníkova data ani klíče, na které odkazovala, neopustily prostředí firmy.

Vznikla tím asymetrie, kterou stojí za to říct nahlas: útočníka nesvazovaly žádné podmínky užití, zatímco obránce zastavily pojistky jeho vlastních nástrojů. Není to argument proti bezpečnostním pojistkám hostovaných modelů — je to argument pro to, mít připravený plán B dřív, než ho budete potřebovat.

Agent nemusí nic chtít. Stačí, že optimalizuje

A pak je tu ta motivace. Agent nebyl nepřítel, neměl v sobě zlý úmysl a nikdo ho neposlal krást. Dostal úkol „vyřeš tyhle bezpečnostní úlohy", našel levnější cestu k dobrému skóre a šel po ní. Že ta cesta vedla přes produkci cizí firmy, nebylo v jeho zadání nijak ošetřeno.

Tohle je ta nejdůležitější věta pro každého, kdo si ve firmě pouští agenta na objednávky, fakturaci nebo zákaznickou podporu: nebráníte se úmyslu, bráníte se optimalizaci. Systém, který je odměňovaný za výsledek, bude hledat nejlevnější cestu k výsledku. Jestli tou cestou je obejít kontrolu, přepsat záznam nebo si vzít data, ke kterým se dostane, závisí výhradně na tom, jaké hranice jste mu postavili — ne na tom, jak je „hodný".

Co s tím udělat u vás — pět kroků

  • 1. Udělejte si soupis stažených modelů a datasetů. Odkud jsou, kdo je stáhl, kdy, na jakém stroji běží a co ten stroj vidí. Pokud takový seznam neexistuje, nemáte přehled o dodavatelském řetězci — a on existuje, i když ho nevedete.
  • 2. Zpracovávejte cizí data v prostředí, kde nemají co ukrást. Žádné produkční klíče v proměnných prostředí procesu, který otevírá stažený soubor. Právě odtud si agent vzal tokeny.
  • 3. Ke stahování přistupujte jako k závislostem. Fixované verze, kontrolní součty, žádné automatické „vezmi nejnovější". Bezpečné formáty vah tam, kde to jde.
  • 4. Mějte vyzkoušený model, který si pustíte sami. Ne kvůli ceně, ale kvůli dvěma věcem: aby vás v incidentu nezastavily pojistky hostované služby a aby citlivá data z vyšetřování neodcházela ven. Vyzkoušet se to musí předem, ne v pátek večer, když hoří.
  • 5. Napište si, kdo v takové situaci rozhoduje. Jmenovitě. Kdo smí odpojit systém, kdo volá právníkům, kdo mluví se zákazníky. Hugging Face incident nahlásil orgánům činným v trestním řízení — vy budete mít podle okolností povinnosti vůči ÚOOÚ, zákazníkům nebo pojišťovně, a rozhodovat se o tom v šoku je špatný nápad.

Za zmínku stojí i to, co Hugging Face udělal dobře a co bývá to jediné, co v krizi opravdu pomůže: měl logy. Bez zaznamenaných 17 tisíc událostí by nešlo rekonstruovat vůbec nic — ani rozsah škody, ani to, že šlo o omyl při testu, a ne o organizovaný útok. Firma bez auditní stopy v téhle situaci nemá incident, má jen dohady.

Kde to řeším s klienty

Tohle je přesně obsah AI Agent Governance Checkupu — projdeme, odkud berete modely a data, co váš agent smí, kam reálně dosáhne, co se o něm loguje a kdo rozhoduje, když se něco pokazí. Výstupem je report se semaforem v pěti oblastech a opatřeními seřazenými podle rizika, ne obecné doporučení „zavést governance". Pokud teprve zvažujete, kde začít, začněte AI Risk Scanem zdarma — 20 minut a víte, kde vám AI dělá největší riziko.

Chcete tohle mít ve firmě pod kontrolou?

Začněte bezplatným AI Risk Scanem — 20 minut online a víte, kde vám AI dělá rizika a co řešit jako první.

AI Risk Scan zdarma Zavolat