← Alle artikelen

llms.txt-kwetsbaarheid: hoe AI-agenten automatisch schadelijke code installeren via documentatiebestanden

llms.txt-kwetsbaarheid: hoe AI-agenten automatisch schadelijke code installeren via documentatiebestanden

Op donderdag 27 augustusArs Technica publiceerde een onderzoekdat zou elke ontwikkelaar die AI-codeermiddelen gebruikt, ertoe moeten aanzetten hun beveiliging te heroverwegen. Onderzoekers van een Israëlische stealth-startup hebben 6.214 domeinen gescand van Fortune 500-bedrijven, defensie-aannemers en Big Tech – en hebben 120 llms.txt-bestanden gevonden die ervoor zorgen dat AI-agenten automatisch niet-bestaande pakketten van PyPI en npm installeren.

Het probleem is eenvoudig en angstaanjagend: llms.txt is in wezen "robots.txt voor AI": een afprijsbaar sitemapbestand waarmee agenten de documentatiestructuur snel kunnen begrijpen. Maar de specificatie omvat geen authenticatie, geen handtekeningen, geen integriteitscontroles. Als zo'n bestand pip install non-existent-package of npm install non-existent-package bevat, en de agent toestemming heeft om opdrachten uit te voeren, zal hij eenvoudigweg installeren wat daar geschreven staat.

Hoe het werkt

De onderzoekers vonden 8.265 llms.txt en llms-full.txt bestanden (veel sites hosten beide). In 120 daarvan (over 120 verschillende domeinen) waren er verwijzingen naar pakketten of domeinen die niet in de registers voorkomen. Een aanvaller hoeft alleen zo’n naam te registreren en kwaadaardige code te uploaden.

Om de aanval te verifiëren, registreerden de onderzoekers zelf verschillende 'gratis' namen en plaatsten ze onschadelijke pakketten die eenvoudigweg naar hun server pingden met 'Ik begon'. Binnen een uur kregen ze een reactie van een Fortune 500-bedrijf. In de loop van de tijd kwamen er nog tientallen reacties binnen – van andere giganten en startups. Procestelemetrie liet precies zien wie de pakketten had geïnstalleerd:Claude Code, OpenAI Codex en Hermes van Nous Research.

llms.txt attack diagram

Het smerigste geval: klerk.com

Op de legitieme klerk.com-site bevatte het bestand llms.txt npx clerk-next-fix-auth-protection. In tegenstelling tot een regulier npm install, kan npx een pakket ophalen in de cache van npm en het binaire bestand ervan uitvoeren zonder het toe te voegen aan het afhankelijkheidsmanifest van het project. Iemand is erin geslaagd deze gratis naam te claimen en daadwerkelijke malware te uploaden. De medewerker heeft het probleem opgelost, maar het patroon is al in productie.

Waarom dit niet alleen een "modelbug" is

Dit is geen hallucinatie of een ontsnapping in een sandbox. Het bestand bevindt zich op het officiële domein van het bedrijf en wordt aangeboden via HTTPS, in een gestandaardiseerd formaat dat is ontworpen voor AI-gebruik. De agent heeft geen reden om eraan te twijfelen: het bestandisde autoriteit. Het probleem is dat de llms.txt standaard (voorgesteld door Jeremy Howard van Answer.AI in september 2024) geen enkele veiligheidsvoorziening bevat: geen handtekeningen, geen herkomstverificatie, geen pakketverificatie.

De vertrouwensketen is transitief: llms.txt hoeft niet op de eigen site van de Fortune 500 te staan; het kan op de documenten van een partner staan, op de SDK-referentie van een leverancier, op de installatiehandleiding van een gemeenschapsproject. Als de agent die derde partij vertrouwt en die derde partij naar een niet-geregistreerd pakket verwijst, werkt de keten op dezelfde manier.

Wat moet je nu doen?

  1. Controle.Controleer uw llms.txt en llms-full.txt. Zorg ervoor dat elk genoemd pakket, domein en URL bestaat, onder uw controle staat en een geïdentificeerde onderhouder heeft. Verwijder verwijzingen naar afhankelijkheden die u niet uit het geheugen kunt verklaren.
  2. Proxy tussen agenten en registers.Blokkeer nieuwe pakketten (slopsquatt-pakketten zijn per definitie nieuw), dwing een afkoelperiode van 24-72 uur af na de eerste release van een afhankelijkheid, verifieer provenance (SLSA/Sigstore) vóór installatie.
  3. Geef geen agenten --yolo, --dangerously-skip-permissions, --trust-all-tools.Deze vlaggen bestaan, zodat de ontwikkelaar de verantwoordelijkheid neemt. Als een agent pakketten installeert zonder uw bevestiging, heeft u hem de sleutels van uw infrastructuur overhandigd.

De bottom-line

De race om websites leesbaar te maken voor agenten kwam zojuist in botsing met de race om de softwaretoeleveringsketen te exploiteren. Dit is niet de schuld van één model of één leverancier; het is een ontwerpfout in een standaard die niemand als uitvoerbare code beschouwde. Totdat de industrie validatie afdwingt van wat agenten op internet lezen, is elke slechte llms.txt een potentieel toegangspunt tot uw netwerk.

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

Wilt u uw AI-workflows testen op beveiliging? Met NeuralSpace kunt u code genereren en agents testen in een geïsoleerde omgeving -probeer de chatofcodemodus.