Vulnerabilitatea llms.txt: cum agenții AI instalează automat cod rău intenționat prin fișiere de documentație
Joi, 27 august,Ars Technica a publicat o anchetăasta ar trebui să facă orice dezvoltator care folosește agenți de codare AI să-și regândească securitatea. Cercetătorii de la un startup stealth israelian au scanat 6.214 de domenii aparținând companiilor Fortune 500, contractorilor de apărare și Big Tech - și au găsit 120 de fișiere llms.txt care determină agenții AI să instaleze automat pachete inexistente din PyPI și npm.
Problema este simplă și înspăimântătoare: llms.txt este în esență „robots.txt for AI” – un fișier cu hărți de site care îi ajută pe agenți să înțeleagă rapid structura documentației. Dar specificația nu include autentificare, semnături, verificări de integritate. Dacă un astfel de fișier conține pip install non-existent-package sau npm install non-existent-package, iar agentul are permisiunea de a rula comenzi - va instala pur și simplu orice este scris acolo.
Cum funcționează
Cercetătorii au găsit 8.265 de fișiere llms.txt și llms-full.txt (multe site-uri le găzduiesc pe ambele). În 120 dintre ele – în 120 de domenii diferite – au existat referințe la pachete sau domenii care nu există în registre. Un atacator trebuie doar să înregistreze un astfel de nume și să încarce cod rău intenționat.
Pentru a verifica atacul, cercetătorii înșiși au înregistrat mai multe nume „gratuite” și au plasat pachete inofensive care pur și simplu își pun ping la server cu „Am început”. În decurs de o oră, au primit un răspuns de la o companie Fortune 500. De-a lungul timpului, au sosit alte zeci de răspunsuri – de la alți giganți și startup-uri. Telemetria procesului a arătat exact cine a instalat pachetele:Claude Code, OpenAI Codex și Hermes de la Nous Research.

Cel mai urât caz - clerk.com
Pe site-ul legitim clerk.com, fișierul llms.txt conținea npx clerk-next-fix-auth-protection. Spre deosebire de un npm install obișnuit, npx poate prelua un pachet în memoria cache a lui npm și poate executa binarul său fără a-l adăuga la manifestul de dependență al proiectului. Cineva a reușit să revendice acest nume gratuit și să încarce programe malware reale. Funcționarul a remediat problema, dar modelul este deja în producție.
De ce acesta nu este doar un „bun model”
Aceasta nu este o halucinație sau o evadare cu nisip. Fișierul se află pe domeniul oficial al companiei, servit prin HTTPS, într-un format standardizat conceput pentru consumul de AI. Agentul nu are niciun motiv să se îndoiască de asta - dosarulesteautoritatea. Problema este că standardul llms.txt (propus de Jeremy Howard de la Answer.AI în septembrie 2024) nu conține nicio prevedere de securitate: fără semnături, fără verificare a originii, fără verificare a pachetului.
Lanțul de încredere este tranzitiv: llms.txt nu trebuie să se afle pe site-ul Fortune 500 – poate fi în documentele unui partener, referința SDK a unui furnizor, ghidul de configurare al unui proiect comunitar. Dacă agentul are încredere în acea terță parte și acea terță parte indică un pachet neînregistrat, lanțul funcționează în același mod.
Ce să faci chiar acum
- Audit.Verificați
llms.txtșillms-full.txt. Asigurați-vă că fiecare pachet, domeniu și URL menționat există, se află sub controlul dvs. și are un întreținător identificat. Eliminați referințele la dependențe pe care nu le puteți explica din memorie. - Proxy între agenți și registre.Blocați pachetele noi (pachetele neîntrerupte sunt noi prin definiție), impuneți o perioadă de răcire de 24-72 de ore după prima lansare a oricărei dependențe, verificați
provenance(SLSA/Sigstore) înainte de instalare. - Nu dați agenților
--yolo,--dangerously-skip-permissions,--trust-all-tools.Aceste steaguri există, astfel încât dezvoltatorul își asumă responsabilitatea. Dacă un agent instalează pachete fără confirmarea dvs. - i-ați înmânat cheile infrastructurii dvs.
Linia de jos
Cursa de a face site-urile web lizibile pentru agenți tocmai s-a ciocnit cu cursa de a exploata lanțul de aprovizionare cu software. Aceasta nu este vina unui model sau a unui furnizor - este o defecțiune de proiectare într-un standard pe care nimeni nu l-a considerat cod executabil. Până când industria impune validarea a ceea ce agenții citesc pe web, fiecare llms.txt prost este un potențial punct de intrare în rețeaua dvs.

Doriți să vă testați fluxurile de lucru AI pentru securitate? NeuralSpace vă permite să rulați generarea de cod și agenții de testare într-un mediu izolat —incearca chatulsaumodul cod.