Chyba zabezpečení llms.txt: Jak agenti AI automaticky instalují škodlivý kód prostřednictvím souborů dokumentace
Ve čtvrtek 27. srpnaArs Technica zveřejnila vyšetřováníto by mělo přimět každého vývojáře, který používá kódovací agenty AI, přehodnotit svou bezpečnost. Výzkumníci z izraelského stealth startupu naskenovali 6 214 domén patřících společnostem z Fortune 500, dodavatelům obrany a Big Tech – a našli 120 souborů llms.txt, které způsobují, že agenti AI automaticky instalují neexistující balíčky z PyPI a npm.
Problém je jednoduchý a děsivý: llms.txt je v podstatě „robots.txt pro AI“ – soubor mapy webu, který agentům pomáhá rychle pochopit strukturu dokumentace. Ale specifikace neobsahuje žádné ověřování, žádné podpisy, žádné kontroly integrity. Pokud takový soubor obsahuje pip install non-existent-package nebo npm install non-existent-package a agent má oprávnění spouštět příkazy – jednoduše nainstaluje, co je tam napsáno.
Jak to funguje
Výzkumníci našli 8 265 souborů llms.txt a llms-full.txt (mnoho webů hostí oba). Ve 120 z nich – ve 120 různých doménách – byly odkazy na balíčky nebo domény, které v registrech neexistují. Útočníkovi stačí takové jméno zaregistrovat a nahrát škodlivý kód.
Aby ověřili útok, sami výzkumníci zaregistrovali několik „volných“ jmen a umístili neškodné balíčky, které jednoduše pingly na jejich server s „Začal jsem“. Během hodiny dostali odpověď od společnosti Fortune 500. Postupem času přišly desítky dalších odpovědí – od jiných gigantů a startupů. Procesní telemetrie přesně ukázala, kdo balíčky nainstaloval:Claude Code, OpenAI Codex a Hermes z Nous Research.

Nejhnusnější případ — clerk.com
Na legitimním webu clerk.com soubor llms.txt obsahoval npx clerk-next-fix-auth-protection. Na rozdíl od běžného npm install může npx načíst balíček do mezipaměti npm a spustit jeho binární soubor, aniž by jej přidal do manifestu závislosti projektu. Někomu se podařilo získat tento bezplatný název a nahrát skutečný malware. Úředník problém vyřešil, ale vzor je již ve výrobě.
Proč to není jen "chyba modelu"
Tohle není halucinace nebo únik z pískoviště. Soubor se nachází na oficiální doméně společnosti, obsluhované přes HTTPS, ve standardizovaném formátu určeném pro spotřebu AI. Agent nemá důvod o tom pochybovat — spisjeúřad. Problém je v tom, že standard llms.txt (navržený Jeremym Howardem z Answer.AI v září 2024) neobsahuje žádná bezpečnostní ustanovení: žádné podpisy, žádné ověření původu, žádné ověření balíčku.
Řetězec důvěry je přechodný: llms.txt nemusí sedět na vlastním webu Fortune 500 – může to být v partnerských dokumentech, v dokumentaci dodavatele SDK nebo v průvodci nastavením komunitního projektu. Pokud agent této třetí straně důvěřuje a tato třetí strana ukazuje na neregistrovaný balíček – řetězec funguje stejným způsobem.
Co dělat právě teď
- Audit.Zkontrolujte své
llms.txtallms-full.txt. Ujistěte se, že každý zmíněný balíček, doména a adresa URL existuje, je pod vaší kontrolou a má určeného správce. Odstraňte z paměti odkazy na závislosti, které nemůžete vysvětlit. - Proxy mezi agenty a registry.Blokujte nové balíčky (slopsquatted balíčky jsou podle definice nové), vynucujte 24–72hodinovou pauzu po prvním vydání jakékoli závislosti, před instalací ověřte
provenance(SLSA/Sigstore). - Nedávejte agentům
--yolo,--dangerously-skip-permissions,--trust-all-tools.Tyto příznaky existují, takže vývojář přebírá odpovědnost. Pokud agent nainstaluje balíčky bez vašeho potvrzení – předali jste mu klíče od vaší infrastruktury.
Sečteno a podtrženo
Závod o to, aby byly webové stránky čitelné pro agenty, se právě srazil se závodem ve využívání dodavatelského řetězce softwaru. Není to chyba jednoho modelu nebo jednoho dodavatele – je to konstrukční chyba ve standardu, který nikdo nepovažoval za spustitelný kód. Dokud nebude průmysl vynucovat ověřování toho, co agenti čtou na webu, každý špatný llms.txt je potenciálním vstupním bodem do vaší sítě.

Chcete otestovat bezpečnost svých pracovních postupů AI? NeuralSpace vám umožňuje spouštět generování kódu a testovat agenty v izolovaném prostředí —zkus chatnebokódový režim.