← Kaikki artikkelit

llms.txt-haavoittuvuus: AI-agentit asentavat haitallisen koodin automaattisesti dokumentaatiotiedostojen kautta

llms.txt-haavoittuvuus: AI-agentit asentavat haitallisen koodin automaattisesti dokumentaatiotiedostojen kautta

Torstaina 27. elokuutaArs Technica julkaisi tutkimuksenTämän pitäisi saada jokainen tekoälykoodausagentteja käyttävä kehittäjä miettimään uudelleen turvallisuuttaan. Israelilaisen varkain startup-yrityksen tutkijat skannasivat 6 214 verkkotunnusta, jotka kuuluivat Fortune 500 -yrityksille, puolustusurakoitsijoille ja Big Techille – ja löysivät 120 llms.txt tiedostoa, jotka saavat tekoälyagentit asentamaan automaattisesti olemattomia paketteja PyPI:stä ja npm:stä.

Ongelma on yksinkertainen ja pelottava: llms.txt on pohjimmiltaan "robots.txt for AI" – sivukarttatiedosto, joka auttaa agentteja ymmärtämään dokumentaation rakenteen nopeasti. Mutta erittely ei sisällä todennusta, ei allekirjoituksia, ei eheystarkastuksia. Jos tällainen tiedosto sisältää pip install non-existent-package tai npm install non-existent-package ja agentilla on lupa suorittaa komentoja - se yksinkertaisesti asentaa sen, mitä siellä on kirjoitettu.

Miten se toimii

Tutkijat löysivät 8 265 llms.txt- ja llms-full.txt-tiedostoa (monet sivustot isännöivät molempia). Niistä 120:ssä – 120 eri verkkotunnuksessa – oli viittauksia paketteihin tai verkkotunnuksiin, joita ei ole rekistereissä. Hyökkääjän tarvitsee vain rekisteröidä tällainen nimi ja ladata haitallinen koodi.

Vahvistaakseen hyökkäyksen tutkijat rekisteröivät itse useita "ilmaisia" nimiä ja asettivat vaarattomia paketteja, jotka yksinkertaisesti pingivät heidän palvelimelleen "Aloitin". Tunnin sisällä he saivat vastauksen Fortune 500 -yritykseltä. Ajan myötä saapui kymmeniä lisää vastauksia – muilta jättiläisiltä ja startup-yrityksiltä. Prosessin telemetria osoitti tarkalleen, kuka paketit asensi:Claude Code, OpenAI Codex ja Hermes Nous Researchista.

llms.txt attack diagram

Pahin tapaus - clerk.com

Laillisessa clerk.com-sivustossa llms.txt-tiedosto sisälsi npx clerk-next-fix-auth-protection. Toisin kuin tavallinen npm install, npx voi hakea paketin npm:n välimuistiin ja suorittaa sen binaaritiedoston lisäämättä sitä projektin riippuvuusluetteloon. Joku onnistui lunastamaan tämän ilmaisen nimen ja lataamaan todellisen haittaohjelman. Virkailija korjasi ongelman, mutta malli on jo tuotannossa.

Miksi tämä ei ole vain "mallivirhe"

Tämä ei ole hallusinaatio tai hiekkalaatikkopako. Tiedosto sijaitsee yrityksen virallisella verkkotunnuksella, palvellaan HTTPS:n kautta standardoidussa muodossa, joka on suunniteltu tekoälyn käyttöön. Agentilla ei ole syytä epäillä sitä - tiedostoonviranomainen. Ongelmana on, että llms.txt-standardi (Jeremy Howardin Answer.AI:sta syyskuussa 2024 ehdottama) ei sisällä minkäänlaisia ​​turvallisuusmääräyksiä: ei allekirjoituksia, ei alkuperän varmennusta, ei paketin vahvistusta.

Luottamusketju on transitiivinen: llms.txt ei tarvitse olla Fortune 500:n omalla sivustolla – se voi olla kumppanin asiakirjoissa, toimittajan SDK-viittauksessa tai yhteisöprojektin asennusoppaassa. Jos agentti luottaa kyseiseen kolmanteen osapuoleen ja tämä kolmas osapuoli viittaa rekisteröimättömään pakettiin, ketju toimii samalla tavalla.

Mitä tehdä juuri nyt

  1. Tarkastaa.Tarkista llms.txt ja llms-full.txt. Varmista, että jokainen mainittu paketti, verkkotunnus ja URL-osoite ovat olemassa, ovat hallinnassasi ja että niillä on tunnistettu ylläpitäjä. Poista viittaukset riippuvuuksiin, joita et voi selittää muistista.
  2. Välityspalvelin agenttien ja rekisterien välillä.Estä uudet paketit (slopsquatted-paketit ovat määritelmän mukaan uusia), pakota 24–72 tunnin jäähdytys minkä tahansa riippuvuuden ensimmäisen julkaisun jälkeen, tarkista provenance (SLSA/Sigstore) ennen asennusta.
  3. Älä anna agentteja --yolo, --dangerously-skip-permissions, --trust-all-tools.Nämä liput ovat olemassa, joten kehittäjä ottaa vastuun. Jos agentti asentaa paketteja ilman vahvistusta, olet luovuttanut sille infrastruktuurisi avaimet.

Lopputulos

Kilpa saada verkkosivustoista agenttien luettavaksi törmäsi kilpailuun ohjelmistojen toimitusketjun hyödyntämisestä. Tämä ei ole yhden mallin tai yhden toimittajan vika – se on suunnitteluvirhe standardissa, jota kukaan ei pitänyt suoritettavana koodina. Kunnes teollisuus pakottaa vahvistamaan sen, mitä agentit lukevat verkossa, jokainen huono llms.txt on mahdollinen sisääntulopiste verkkoosi.

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

Haluatko testata tekoälyn työnkulkujasi turvallisuuden vuoksi? NeuralSpacen avulla voit ajaa koodin luontia ja testata agentteja eristetyssä ympäristössä —kokeile chattiataikooditila.