← Svi članci

Ranjivost llms.txt: Kako AI agenti automatski instaliraju zlonamjerni kod putem dokumentacijskih datoteka

Ranjivost llms.txt: Kako AI agenti automatski instaliraju zlonamjerni kod putem dokumentacijskih datoteka

U četvrtak 27.8.Ars Technica objavila je istraživanjeto bi trebalo natjerati bilo kojeg programera koji koristi AI agente za kodiranje da preispita svoju sigurnost. Istraživači iz izraelskog stealth startupa skenirali su 6214 domena koje pripadaju Fortune 500 tvrtkama, obrambenim izvođačima i Big Techu — i pronašli 120 llms.txt datoteka koje uzrokuju AI agente da automatski instaliraju nepostojeće pakete iz PyPI i npm.

Problem je jednostavan i zastrašujući: llms.txt je u suštini "robots.txt za AI" — datoteka mape web-mjesta koja pomaže agentima da brzo razumiju strukturu dokumentacije. Ali specifikacija ne uključuje provjeru autentičnosti, nema potpisa, nema provjere integriteta. Ako takva datoteka sadrži pip install non-existent-package ili npm install non-existent-package, a agent ima dozvolu pokretati naredbe — jednostavno će instalirati sve što je tamo napisano.

Kako radi

Istraživači su pronašli 8.265 llms.txt i llms-full.txt datoteka (mnoga mjesta sadrže obje). U 120 od njih — na 120 različitih domena — postojale su reference na pakete ili domene koje ne postoje u registrima. Napadač samo treba registrirati takvo ime i učitati zlonamjerni kod.

Kako bi potvrdili napad, istraživači su sami registrirali nekoliko "besplatnih" imena i postavili bezopasne pakete koji jednostavno pingaju njihov poslužitelj s "Počeo sam". U roku od sat vremena dobili su odgovor od Fortune 500 kompanije. S vremenom su stigli još deseci odgovora — od drugih divova i startupa. Procesna telemetrija pokazala je tko je točno instalirao pakete:Claude Code, OpenAI Codex i Hermes iz Nous Researcha.

llms.txt attack diagram

Najopasniji slučaj — clerk.com

Na legitimnoj stranici clerk.com datoteka llms.txt sadržavala je npx clerk-next-fix-auth-protection. Za razliku od običnog npm install, npx može dohvatiti paket u npm-ovu predmemoriju i izvršiti njegovu binarnu datoteku bez dodavanja u manifest ovisnosti projekta. Netko je uspio preuzeti ovo besplatno ime i učitati pravi zlonamjerni softver. Službenik je riješio problem, ali uzorak je već u produkciji.

Zašto ovo nije samo "greška modela"

Ovo nije halucinacija ili bijeg iz pješčanika. Datoteka se nalazi na službenoj domeni tvrtke, poslužuje se preko HTTPS-a, u standardiziranom formatu dizajniranom za korištenje umjetnom inteligencijom. Agent nema razloga sumnjati u to — dosjejevlast. Problem je u tome što standard llms.txt (predložio Jeremy Howard iz Answer.AI u rujnu 2024.) ne sadrži nikakve sigurnosne odredbe: nema potpisa, nema provjere porijekla, nema provjere paketa.

Lanac povjerenja je prolazan: llms.txt ne mora se nalaziti na vlastitoj stranici Fortune 500 — može biti u partnerovim dokumentima, dobavljačevoj SDK referenci, vodiču za postavljanje projekta zajednice. Ako agent vjeruje toj trećoj strani, a ta treća strana ukazuje na neregistrirani paket — lanac funkcionira na isti način.

Što učiniti odmah

  1. revizija.Provjerite svoje llms.txt i llms-full.txt. Osigurajte da svaki spomenuti paket, domena i URL postoje, da su pod vašom kontrolom i da imaju identificiranog održavatelja. Uklonite reference na ovisnosti koje ne možete objasniti iz sjećanja.
  2. Proxy između agenata i registara.Blokirajte nove pakete (slopsquatted paketi su novi po definiciji), nametnite hlađenje od 24 do 72 sata nakon prvog izdanja bilo koje ovisnosti, provjerite provenance (SLSA/Sigstore) prije instalacije.
  3. Nemojte davati agente --yolo, --dangerously-skip-permissions, --trust-all-tools.Ove oznake postoje tako da programer preuzima odgovornost. Ako agent instalira pakete bez vaše potvrde — predali ste mu ključeve svoje infrastrukture.

Zaključak

Utrka da se web stranice učine čitljivima za agente upravo se sudarila s utrkom za iskorištavanjem lanca nabave softvera. Ovo nije greška jednog modela ili jednog dobavljača — to je greška u dizajnu standarda koji nitko nije smatrao izvršnim kodom. Sve dok industrija ne provede provjeru onoga što agenti čitaju na webu, svaki loš llms.txt potencijalna je ulazna točka u vašu mrežu.

llms.txt attack diagram: agent reads file, finds install command for non-existent package, executes it, loads malware

Želite testirati svoje AI radne tijekove za sigurnost? NeuralSpace vam omogućuje pokretanje generiranja koda i testnih agenata u izoliranom okruženju —probaj chatilikodni način rada.