Sicherheitsforscher eines israelischen Startups haben eine kritische Schwachstelle in der Interaktion von KI-Agenten mit Unternehmensnetzwerken aufgedeckt. Sie fanden 227 Installationsbefehle in Dokumentationsdateien auf über 100 Websites, die auf nicht registrierten Code verweisen. Diese fehlerhaften Konfigurationen führten dazu, dass KI-Agenten, darunter Claude, OpenAI’s Codex und Nous Research’s Hermes, unautorisierte Software auf Systemen von Dutzenden Unternehmen, einschließlich Fortune-500-Konzernen, zu installieren versuchten.
Die Rolle von llms.txt-Dateien
Die Sicherheitslücke betrifft sogenannte llms.txt und llms-full.txt-Dateien. Diese Dateien stellen eine neue Konvention dar, die Websites nutzen, um maschinenlesbare Zusammenfassungen ihrer Inhalte und ihrer Struktur für KI-Agenten bereitzustellen. Sie sind das Äquivalent zum bekannten robots.txt-Standard, der Suchmaschinen Anweisungen zur Indexierung von Website-Inhalten gibt.
Die Untersuchung und ihre Ergebnisse
Die Forscher scannten 6.214 aktive Domains von Rüstungsunternehmen, Fortune-500-Firmen und Big-Tech-Unternehmen. Unter den 8.265 gefundenen llms.txt- und llms-full.txt-Dateien (viele Websites hosteten beide Formate) zeigten 120 auf nicht registrierte Code-Pakete oder Domainnamen. Um die Auswirkungen zu testen, registrierten die Forscher einige dieser nicht beanspruchten Namen und hosteten Pakete, die eine Kontaktaufnahme mit ihrem Server auslösten.
Innerhalb einer Stunde erhielten sie eine erste Rückmeldung von einem Fortune-500-Unternehmen. Im Laufe der Zeit folgten Dutzende weitere Rückmeldungen von Fortune-500-Unternehmen und Startups. Die Aufzeichnungen zeigten, dass Code-Agenten wie Claude, OpenAI’s Codex und Nous Research’s Hermes in die Installationen involviert waren. Anfragen an Anthropic, OpenAI und Nous Research blieben bis zur Veröffentlichung unbeantwortet.
Der Mechanismus der Schwachstelle
Die Dateien sind fehlerhaft konfiguriert, indem sie nicht existierende Pakete von Paketmanagern wie PyPI oder npm zusammen mit Installationsanweisungen auflisten. Zum Beispiel enthielt eine Datei den Befehl pip install [Paketname], eine andere npm install [Paketname]. Da diese Paketnamen nicht registriert sind, könnte ein Angreifer einen solchen Namen registrieren und ihn nutzen, um Ransomware oder andere schädliche Software zu verbreiten. Die Schwachstelle entsteht, wenn ein Code-Agent mit der Berechtigung, Shell-Befehle auszuführen, die Datei als verbindliche Einrichtungsdokumentation interpretiert und das Paket herunterlädt und ausführt.
In anderen Fällen verweisen die LLM-Dateien auf nicht existierende Domainnamen. Ein Angreifer könnte diese Domains registrieren und dort bösartige Anweisungen platzieren. Ein konkretes Beispiel fand sich auf der Website clerk.com, wo eine LLM-Datei den Befehl npx clerk-next-fix-auth-protection enthielt. Jemand hatte den vormals leeren Slot beansprucht und dort Live-Malware gehostet. Clerk hat das Problem inzwischen behoben, wobei unklar ist, ob es zu tatsächlichen Infektionen kam.
Ein gebrochenes Vertrauensmodell
Alon Hertz, einer der Forscher, erklärte, dass das Vertrauensmodell gebrochen sei. KI-Agenten behandeln Anbieterdokumente als „Wahrheit“ und hinterfragen diese nicht, ebenso wenig wie die menschlichen Aufsichtspersonen. Da der Einsatz von agentengestützter KI exponentiell zunimmt und sich über alle Ebenen – SaaS, Cloud, Endpunkt – ausbreitet, vergrößert sich die Angriffsfläche der Lieferkette, ohne dass die bestehenden Schutzmechanismen dies abdecken.
Das zugrunde liegende Problem ist eine fundamentale Einschränkung von Large Language Models (LLMs): Sie können keine verlässliche Grenze zwischen direkten Benutzeranweisungen und Inhalten von nicht vertrauenswürdigen Drittquellen ziehen. Anweisungen, die Modelle in abgerufenen Inhalten finden, können ebenso umgesetzt werden wie direkt eingegebene Befehle, es sei denn, spezielle Schutzmaßnahmen sind implementiert. Dieses Problem führt auch zu sogenannten Prompt Injections.
Warum herkömmliche Sicherheitskontrollen versagen
Die 120 fehlerhaft konfigurierten Dateien enthielten 227 Befehle zur Installation nicht existierender Pakete oder zum Aufruf nicht beanspruchter Domains. Es ist unklar, wie diese fehlerhaften Einträge entstanden sind; viele scheinen aus der Zeit vor der KI-Ära zu stammen und wurden manuell von Menschen generiert. Die Forscher vermuten, dass andere von KI-Systemen erstellt wurden, die halluzinierten oder, ähnlich den durchsuchenden KI-Agenten, legitime von illegitimen Anweisungen nicht unterscheiden konnten.
Wenn ein KI-Agent eine llms.txt-Datei verarbeitet, sieht er eine über HTTPS auf der offiziellen Domain eines Unternehmens bereitgestellte Datei in einem standardisierten Format, das für die KI-Nutzung entwickelt und vom Unternehmen selbst oder einem vertrauenswürdigen Partner veröffentlicht wurde. Der Agent hat keinen Grund, die Authentizität zu hinterfragen. Die Datei gilt als Autorität. Wenn die Datei also pip install internal-tool anweist, überprüft der Agent nicht, ob internal-tool tatsächlich dem Unternehmen gehört oder ob der Dokumentationslink auf eine abgelaufene Domain verweist. Er führt einfach die Anweisung aus. Auch Endpunkterkennungssysteme erkennen dies oft nicht, da es wie ein legitimer Entwickler aussieht, der einen Paketmanager ausführt.
Die Vertrauenskette ist zudem transitiv: Die llms.txt muss nicht auf der Website des Fortune-500-Unternehmens selbst liegen. Agenten beziehen Kontext von vertrauenswürdigen Drittanbietern, wie Partnerdokumentationen oder SDK-Referenzen. Wenn der Agent diesem Drittanbieter vertraut und dessen Datei auf ein nicht beanspruchtes Paket verweist, funktioniert die Kette auf dieselbe Weise.
Thema: Claude. Quelle/Inspiration: Ars Technica.