Vulnerabilità llms.txt: come gli agenti AI installano automaticamente codice dannoso tramite file di documentazione
Giovedì 27 agostoArs Technica ha pubblicato un'inchiestaciò dovrebbe indurre qualsiasi sviluppatore che utilizza agenti di codifica AI a riconsiderare la propria sicurezza. I ricercatori di una startup stealth israeliana hanno scansionato 6.214 domini appartenenti ad aziende Fortune 500, appaltatori della difesa e Big Tech e hanno trovato 120 file llms.txt che fanno sì che gli agenti AI installino automaticamente pacchetti inesistenti da PyPI e npm.
Il problema è semplice e terrificante: llms.txt è essenzialmente "robots.txt for AI", un file di mappa del sito con markdown che aiuta gli agenti a comprendere rapidamente la struttura della documentazione. Ma le specifiche non includono autenticazione, firme o controlli di integrità. Se un file di questo tipo contiene pip install non-existent-package o npm install non-existent-package e l'agente ha il permesso di eseguire comandi, installerà semplicemente tutto ciò che è scritto lì.
Come funziona
I ricercatori hanno trovato 8.265 file llms.txt e llms-full.txt (molti siti li ospitano entrambi). In 120 di essi, appartenenti a 120 domini diversi, erano presenti riferimenti a pacchetti o domini che non esistono nei registri. Un utente malintenzionato deve solo registrare tale nome e caricare il codice dannoso.
Per verificare l'attacco, i ricercatori stessi hanno registrato diversi nomi "gratuiti" e hanno inserito pacchetti innocui che semplicemente inviavano un ping al loro server con "Ho iniziato". Nel giro di un'ora hanno ricevuto una risposta da un'azienda Fortune 500. Nel corso del tempo sono arrivate dozzine di risposte in più, da altri giganti e startup. La telemetria del processo ha mostrato esattamente chi ha installato i pacchetti:Claude Code, OpenAI Codex e Hermes di Nous Research.

Il caso più brutto: clerk.com
Sul sito legittimo clerk.com, il file llms.txt conteneva npx clerk-next-fix-auth-protection. A differenza di un normale npm install, npx può recuperare un pacchetto nella cache di npm ed eseguire il relativo binario senza aggiungerlo al manifest delle dipendenze del progetto. Qualcuno è riuscito a rivendicare questo nome gratuito e a caricare malware vero e proprio. L'impiegato ha risolto il problema, ma il modello è già in produzione.
Perché questo non è solo un "bug del modello"
Questa non è un'allucinazione o una fuga dalla sandbox. Il file si trova sul dominio ufficiale dell'azienda, servito tramite HTTPS, in un formato standardizzato progettato per l'utilizzo dell'intelligenza artificiale. L'agente non ha motivo di dubitarne: il fileÈl'autorità. Il problema è che lo standard llms.txt (proposto da Jeremy Howard di Answer.AI nel settembre 2024) non contiene alcuna disposizione di sicurezza: nessuna firma, nessuna verifica dell'origine, nessuna verifica del pacchetto.
La catena di fiducia è transitiva: llms.txt non deve necessariamente trovarsi sul sito di Fortune 500: può trovarsi nei documenti di un partner, nel riferimento all'SDK di un fornitore, nella guida all'installazione di un progetto della comunità. Se l'agente si fida di quella terza parte e questa terza parte indica un pacchetto non registrato, la catena funziona allo stesso modo.
Cosa fare adesso
- Controllo.Controlla il tuo
llms.txtellms-full.txt. Assicurati che ogni pacchetto, dominio e URL menzionato esista, sia sotto il tuo controllo e abbia un manutentore identificato. Rimuovi dalla memoria i riferimenti a dipendenze che non puoi spiegare. - Proxy tra agenti e registri.Blocca i nuovi pacchetti (i pacchetti slopsquatted sono nuovi per definizione), applica un raffreddamento di 24-72 ore dopo il primo rilascio di qualsiasi dipendenza, verifica
provenance(SLSA/Sigstore) prima dell'installazione. - Non fornire agli agenti
--yolo,--dangerously-skip-permissions,--trust-all-tools.Questi flag esistono quindi lo sviluppatore si assume la responsabilità. Se un agente installa pacchetti senza la tua conferma, gli hai consegnato le chiavi della tua infrastruttura.
La conclusione
La corsa per rendere i siti web leggibili per gli agenti si è appena scontrata con la corsa per sfruttare la catena di fornitura del software. Questa non è colpa di un modello o di un fornitore: è un difetto di progettazione in uno standard che nessuno considerava codice eseguibile. Fino a quando il settore non imporrà la convalida di ciò che gli agenti leggono sul Web, ogni llms.txt dannoso sarà un potenziale punto di ingresso nella tua rete.

Vuoi testare la sicurezza dei tuoi flussi di lavoro IA? NeuralSpace ti consente di eseguire la generazione di codice e testare gli agenti in un ambiente isolato —prova la chatOmodalità codice.