Amikor a dokumentumod ellened fordul: A rejtett kockázat az AI-tolvasható fájlokban
A csendes veszély, ami ott lapul a dokumentációdban
Valószínűleg hallottál már a prompt injectionről, a modellek mérgezéséről és a training data támadásokról. De van egy fenyegetés, amire nem figyelünk eleget: a dokumentációromlás mint támadási felület.
Egy kutatócsapat nemrég valami aggasztó dolgot tárt fel. Megvizsgálták az llms.txt és llms-full.txt fájlokat – ezek gépileg olvasható dokumentációs formátumok, amelyek segítenek az AI-rendszereknek megérteni a weboldalakat. Amit találtak, az ijesztő volt. Többezer domainen – védelmi vállalatok, Fortune 500 cégek és tech óriások – 120 fájlt találtak olyan csomagnevekre vagy domainekre mutató hivatkozásokkal, amelyek már nem léteznek.
A támadás koncepciója elegáns egyszerűségű. A támadónak nem kell feltörnie egy rendszert. Csak várnia kell.
Hogyan működik a gyakorlatban?
Képzeld el ezt a szituációt: Egy fejlesztő AI kódoló asszisztenst használ egy projekt beállításához. Az agent beolvassa a cég llms.txt fájlját a telepítési utasításokért, talál egy hivatkozást egy cool-utils-lib nevű függőségre, és – mivel az agentnek engedélye van csomagkezelő parancsok futtatására – telepíti.
A probléma? Ez a csomagnév soha nem volt regisztrálva. Egészen addig, amíg a támadó el nem kérte.
A kontrollált kísérletükben a kutatók pontosan ezt csinálták. Lefoglalták ezeket az elhagyott neveket, feltöltöttek ártalmatlan "phone home" csomagokat (amelyek csak azt naplózzák, hogy mikor érkezett hozzájuk kérés), és vártak. Az eredmények meglepőek voltak: kevesebb mint egy órával a publikálás után egy Fortune 500 cég már telepítette az egyik csomagjukat. A következő napokban "további néhány tucat" szervezet jelentkezett be.
Ez nem volt valódi támadás – a csomagok ártalmatlanok voltak, és egyetlen éles rendszert sem kompromittáltak. De a elérhetőséget bebizonyították. A támadási felület valós.
Miért rontja ezt az AI agentek helyzete?
Ez teszi különösen veszélyessé: a hagyományos biztonság feltételezi, hogy a felhasználók döntéseket hoznak. Ha adsz valakinek egy dokumentumot rossz utasításokkal, lehet, hogy követi őket. De az emberek gyakran észreveszik a nyilvánvaló hibákat, kérdéseket tesznek fel, vagy feltűnik nekik, ha valami nem stimmel.
Az AI agentek másképp működnek. A dokumentációt végrehajtható igazságként kezelik. Ha az llms.txt azt mondja, hogy "futtasd az npm install legacy-widget parancsot", az agent egyszerűen megcsinálja – anélkül, hogy megkérdőjelezné, hogy ez a csomag létezik-e még, ki birtokolja, vagy egyáltalán ez-e a megfelelő.
A kutatók több agentet is teszteltek – Claude-ot, OpenAI Codex-et és a Nous Research Hermesét – és mindegyik követte a problémás hivatkozásokat. Ez nem egy gyártóspecifikus hiba. Rendszerszintű probléma, amit a következők kombinációja okoz:
- Nem karbantartott dokumentáció, ami elavul
- AI agentek végrehajtási engedélyekkel, amelyek feltétel nélkül bíznak a dokumentációban
- Az elhagyott csomagnevek lefoglalhatósága a nyilvános regisztrumokban
Mit tehetsz ellene?
A kutatók ajánlásai gyakorlatiasak és végrehajthatók:
1. Rendszeresen auditálld az llms.txt fájljaidat
Ha a szervezeted AI-barát dokumentációt tesz közzé, kezeld a csomag hivatkozásokat úgy, mint a kód függőségeket. Ellenőrizd, hogy minden említett csomag, domain vagy parancs valóban egy legitim, aktuális erőforrásra mutat. Egy egyszerű elírás a dokumentációban claimelhető infrastruktúrává válhat.
2. Implementálj jóváhagyási kapukat az agent cselekvésekhez
Ne engedd, hogy az AI agentek automatikusan fussanak le shell parancsokat vagy telepítsenek függőségeket. Követelj meg explicit jóváhagyási lépéseket. A dokumentáció referencianyag legyen, ne futtatható kézikönyv.
3. Figyeld a csomagregisztrumokat a hasonló nevek után
Érdemes figyelmeztetéseket beállítani a belső függőségeidhez hasonló csomagnevekre. A korai észlelés ablakot ad arra, hogy megszerezd a neveket, mielőtt más teszi meg.
A nagyobb kép
Ez a kutatás valami fontosat emel ki az AI-asszisztált fejlesztés felé való elmozdulásról: a bizalmi modell megváltozott, de a gyakorlataink még nem követték.
Amikor a fejlesztők egyedül dolgoztak, a dokumentáció egy útmutató volt. Amikor AI agentek dolgoznak a fejlesztők mellett, a dokumentáció API-vá válik. És mint minden API, ez is validációt, verziózást és biztonsági vizsgálatot igényel.
A jó hír? Ez egy megoldható probléma. Sok más biztonsági sebezhetőséggel ellentétben a javítások itt egyszerűek – dokumentálj jobban, bízz kevesebbet, ellenőrizz többet. A kihívás az, hogy kialakítsuk azt a szokást, hogy az AI-barát dokumentációt ugyanolyan szigorral kezeljük, mint a production kódot.
Ahogy az AI kódoló agentek egyre jobban beépülnek a fejlesztési munkafolyamatokba, számíts arra, hogy egyre több hasonló kutatás fog megjelenni. A támadások nem közvetlenül a modellekért vagy az adataidért jönnek. Néha türelmesen várnak a dokumentációdban, türelmesek, mint egy elírás.