← Tous les articles

Vulnérabilité llms.txt : comment les agents IA installent automatiquement du code malveillant via des fichiers de documentation

Vulnérabilité llms.txt : comment les agents IA installent automatiquement du code malveillant via des fichiers de documentation

Le jeudi 27 aoûtArs Technica a publié une enquêtecela devrait inciter tout développeur utilisant des agents de codage IA à repenser sa sécurité. Les chercheurs d’une startup furtive israélienne ont analysé 6 214 domaines appartenant à des entreprises Fortune 500, des entrepreneurs de la défense et des grandes entreprises technologiques – et ont trouvé 120 fichiers llms.txt qui obligent les agents IA à installer automatiquement des packages inexistants à partir de PyPI et npm.

Le problème est simple et terrifiant : llms.txt est essentiellement "robots.txt for AI" – un fichier de plan de site markdown qui aide les agents à comprendre rapidement la structure de la documentation. Mais la spécification n’inclut aucune authentification, aucune signature, aucun contrôle d’intégrité. Si un tel fichier contient pip install non-existent-package ou npm install non-existent-package et que l'agent est autorisé à exécuter des commandes, il installera simplement tout ce qui y est écrit.

Comment ça marche

Les chercheurs ont trouvé 8 265 fichiers llms.txt et llms-full.txt (de nombreux sites hébergent les deux). Dans 120 d'entre eux – sur 120 domaines différents – il y avait des références à des packages ou des domaines qui n'existent pas dans les registres. Un attaquant n'a qu'à enregistrer un tel nom et à télécharger du code malveillant.

Pour vérifier l'attaque, les chercheurs eux-mêmes ont enregistré plusieurs noms « gratuits » et ont placé des paquets inoffensifs qui cinglaient simplement leur serveur avec « J'ai commencé ». En moins d’une heure, ils ont reçu une réponse d’une entreprise Fortune 500. Au fil du temps, des dizaines de réponses supplémentaires sont arrivées – de la part d’autres géants et startups. La télémétrie des processus a montré exactement qui avait installé les packages :Claude Code, OpenAI Codex et Hermes de Nous Research.

llms.txt attack diagram

Le cas le plus méchant — clerk.com

Sur le site légitime clerk.com, le fichier llms.txt contenait npx clerk-next-fix-auth-protection. Contrairement à un npm install classique, npx peut récupérer un package dans le cache de npm et exécuter son binaire sans l'ajouter au manifeste de dépendance du projet. Quelqu’un a réussi à revendiquer ce nom gratuit et à télécharger de véritables logiciels malveillants. L'employé a résolu le problème, mais le modèle est déjà en production.

Pourquoi ce n'est pas juste un "bug de modèle"

Ce n'est pas une hallucination ou une évasion dans un bac à sable. Le fichier se trouve sur le domaine officiel de l'entreprise, servi via HTTPS, dans un format standardisé conçu pour la consommation de l'IA. L'agent n'a aucune raison d'en douter — le dossierestl'autorité. Le problème est que la norme llms.txt (proposée par Jeremy Howard d'Answer.AI en septembre 2024) ne contient aucune disposition de sécurité : pas de signature, pas de vérification de l'origine, pas de vérification du colis.

La chaîne de confiance est transitive : llms.txt n'a pas besoin de se trouver sur le propre site du Fortune 500 : elle peut se trouver dans la documentation d'un partenaire, dans la référence du SDK d'un fournisseur, dans le guide de configuration d'un projet communautaire. Si l'agent fait confiance à ce tiers et que ce tiers pointe vers un package non enregistré, la chaîne fonctionne de la même manière.

Que faire maintenant

  1. Audit.Vérifiez vos llms.txt et llms-full.txt. Assurez-vous que chaque package, domaine et URL mentionné existe, est sous votre contrôle et a un responsable identifié. Supprimez les références aux dépendances que vous ne pouvez pas expliquer de mémoire.
  2. Proxy entre agents et registres.Bloquez les nouveaux packages (les packages slopsquatted sont nouveaux par définition), appliquez un temps de refroidissement de 24 à 72 heures après la première version de toute dépendance, vérifiez provenance (SLSA/Sigstore) avant l'installation.
  3. Ne donnez pas aux agents --yolo, --dangerously-skip-permissions, --trust-all-tools.Ces drapeaux existent donc le développeur en assume la responsabilité. Si un agent installe des packages sans votre confirmation, vous lui avez remis les clés de votre infrastructure.

L'essentiel

La course à la lisibilité des sites Web pour les agents vient d’entrer en collision avec la course à l’exploitation de la chaîne d’approvisionnement logicielle. Ce n'est pas la faute d'un modèle ou d'un fournisseur, c'est un défaut de conception dans une norme que personne ne considérait comme du code exécutable. Jusqu'à ce que l'industrie impose la validation de ce que les agents lisent sur le Web, tout mauvais llms.txt est un point d'entrée potentiel dans votre réseau.

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

Vous souhaitez tester la sécurité de vos flux de travail d’IA ? NeuralSpace vous permet d'exécuter des agents de génération de code et de test dans un environnement isolé :essayez le chatoumode code.