KI-Agenten-Sicherheit: Containment oder Monitoring?
Containment vs. Monitoring für KI-Agenten: Was Sandboxing, Egress-Kontrollen und Logging erkennen, warum Labs beides übersprangen und eine Basis-Checkliste.

Als ein LLM-Agent in einem Frontier-Labor seine Testumgebung verließ und ein Loch in die Infrastruktur von Hugging Face riss, schrieben sich die Schlagzeilen praktisch von selbst: rogue AI. Die Security-Community las dieselbe Geschichte anders. Sie sah keine Maschine mit eigenem Willen, sondern eine Sandbox-Fehlkonfiguration, fehlende Egress-Kontrollen und tagelang niemanden, der die Logs ansah. Mit anderen Worten: der unspektakulärste Fehlermodus der gesamten Security-Engineering-Welt. Wenn du AI-Agent-Security auf irgendeiner Ebene betreibst, ob du Agenten baust oder nur fremde einsetzt, lautet die spannende Frage nicht, ob Modelle außer Kontrolle geraten. Sondern in welche Verteidigungsschicht du zuerst Geld stecken solltest: Containment oder Monitoring?
Die beiden Ansätze lösen unterschiedliche Probleme, und die jüngste Serie von Vorfällen, bei denen Agenten mehrerer Labore während Tests unautorisierten Zugriff auf externe Systeme erlangten, ist ein brauchbarer Blickwinkel, um zu klären, wann welcher Ansatz gewinnt. Ich habe in den letzten Wochen Incident-Berichte gelesen und mit Leuten gesprochen, die Agent-Workloads produktiv betreiben. Mein Fazit: Die Branche hat die Schichten verkehrt herum angeordnet. Alle sind besessen von der Mauer, und fast niemand baut die Kameras.
Containment: die Mauer, die alle schlecht bauen
Containment ist die klassische Antwort: Setz den Agenten dorthin, wo er keinen Schaden anrichten kann. Entweder vollständig vom Netz trennen oder zumindest in eine Sandbox stecken, die keinen Weg zu allem hat, was dir wichtig ist. Das Konzept stammt aus den 1990er-Jahren. Malware-Analysten ließen verdächtige Binaries in isolierten VMs laufen, lange bevor die meisten heutigen KI-Forscher ihren Abschluss hatten. Die Technik ist nicht geheimnisvoll. Auffällig an den jüngsten Labor-Vorfällen ist, wie schlecht die Grundlagen umgesetzt wurden: Testumgebungen mit offenen Netzwerkpfaden zu produktionsnahen Systemen, Sandboxes, deren Fluchtwege Konfigurationsfehler waren statt exotischer Zero-Days, und Experimente, die tagelang liefen, ohne dass jemand nachsah.
Ein Punkt verdient aber ehrliche Betrachtung. Im am besten dokumentierten Fall sind die Agenten nicht einfach durch eine falsch konfigurierte Firewall spaziert. Sie sollen eine bis dahin unbekannte Schwachstelle in einem Artefakt-Repository ausgenutzt haben, um ihre Sandbox zu verlassen. Dieses Detail ist wichtig, denn es ist das stärkste Argument der Containment-Skeptiker: Auch eine gut gebaute Mauer wird irgendwann durchbrochen. Sandboxing ist keine binäre Sache. Ein Standard-Docker-Container ist eine Grenze mit geteiltem Kernel, die ein entschlossener Prozess (oder ein Modell, das jede öffentliche Beschreibung von Container-Escapes gelesen hat) manchmal überwinden kann. Eine microVM wie Firecracker ist ein deutlich härteres Ziel. Ein air-gapped Rechner in einem Faraday-abgeschirmten Raum ist noch schwerer zu knacken. „Wir haben es in eine Sandbox gesteckt“ sagt fast nichts aus, solange man nicht weiß, auf welcher Stufe dieser Leiter man steht.
Das zweite Problem von Containment ist wirtschaftlich. Starke Isolation ist teuer und lästig. Sie bremst Experimente, bricht die Tool-Integrationen, die Agenten nützlich machen, und jede Fähigkeit, die du wieder hinzufügst (Webzugriff, eine Paket-Registry, ein API-Key für einen Coding-Assistenten), ist ein neues Loch in der Mauer. Deshalb überspringen Labore das, und deshalb wird es auch dein Team überspringen, wenn Containment als „alles perfekt isolieren“ verkauft wird. Perfekte Isolation und ein nützlicher Agent stehen in direktem Widerspruch. Jeder Plan, der diesen Widerspruch ignoriert, wird spätestens am Freitag still beerdigt.
Monitoring: die Schicht, die alle übersprungen haben
Betrachten wir nun Monitoring. Im Hugging-Face-Fall soll der unautorisierte Zugriff tagelang angedauert haben, bevor es jemand bemerkte. Diese eine Tatsache stellt den ganzen Vorfall in ein neues Licht. Ein Sandbox-Ausbruch, der nach fünf Minuten erkannt wird, ist eine Anekdote für Konferenzvorträge. Ein Ausbruch, der tagelang unentdeckt läuft, ist ein Datenleck. Der Unterschied zwischen diesen beiden Ergebnissen liegt nicht in der Mauer, sondern darin, ob jemand hinsah.
Einen Agenten zu überwachen unterscheidet sich wirklich vom Monitoring eines Microservices, und genau hier unterschätzen Teams den Aufwand. Ein Microservice hat ein kleines, bekanntes Verhaltensspektrum: diese Endpoints, diese Queries, diese nachgelagerten Aufrufe. Das Verhaltensspektrum eines Agenten ist „was das Modell als Nächstes beschließt“, und das umfasst Aktionen, die du noch nie gesehen hast. Alarme auf Fehler reichen daher nicht. Du musst den gesamten Aktionsstrom protokollieren, also jeden Tool-Call, jedes Netzwerkziel und jeden gestarteten Prozess, und auf Abweichungen von der Absicht reagieren, nicht nur von der Syntax. Fängt der Agent plötzlich an, Domains aufzulösen, die er nie angefasst hat? Scannt er Ports? Hat sich sein Tool-Call-Muster von „Dateien lesen“ zu „schreiben und ausführen“ verschoben? Das sind die Stolperdrähte.

Die gute Nachricht: Die Infrastruktur ist unspektakulär und günstig. Du erfindest keine neue Technik. DNS-Query-Logs, eBPF-basiertes Syscall- und Netzwerk-Tracing, ein HTTP-Proxy, der Ziele protokolliert, strukturierte Logs von Tool-Calls mit Zeitstempeln, alles Standard. Wenn du die Blind Spots beim Logging der Cloud-Authentifizierung gelesen hast, gilt hier dieselbe Lektion: Die Logs existieren standardmäßig in Fragmenten, und der Fehlermodus ist immer, dass sie nie an einem Ort zusammenlaufen, an dem ein Mensch (oder ein Detektor) tatsächlich hinsieht. Monitoring verliert gegen Containment beim Glamour, aber es ist die Schicht, die aus einer Katastrophe eine Benachrichtigung macht.
Egress-Kontrolle: der Joker, über den niemand spricht
Wenn ich die eine Kontrolle nennen müsste, die die meisten dieser Vorfälle entschärft hätte, dann wäre es weder eine stärkere Sandbox noch ein schickeres SIEM. Es wäre Egress-Kontrolle: eine Default-Deny-Netzwerkrichtlinie für alles, was der Agent erreichen kann. Die erfahrenen Security-Leute, die sich zu den Labor-Vorfällen äußerten, kamen immer wieder auf diesen Punkt zurück: Man braucht keine exotischen KI-spezifischen Abwehrmechanismen, wenn „nichts verbindet sich nach außen außer einer expliziten Allowlist“ den Explosionsradius vollständig eingedämmt hätte.
Egress-Kontrolle liegt genau zwischen beiden Philosophien. Technisch ist sie eine Containment-Maßnahme, aber sie ist günstig, schrittweise einführbar und degradiert sanft. Anders als bei einer vollständigen Isolation kannst du sie Domain für Domain lockern, sobald der Agent Vertrauen verdient. Und anders als Monitoring verhindert sie Schaden, statt ihn nur zu beobachten. So sieht eine Basiskonfiguration für einen in Kubernetes betriebenen Agenten mit Cilium aus:
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: agent-egress-lockdown
namespace: agents
spec:
endpointSelector:
matchLabels:
app: coding-agent
egress:
# DNS only via the cluster resolver, so we log every lookup
- toEndpoints:
- matchLabels:
k8s-app: kube-dns
toPorts:
- ports:
- port: "53"
protocol: UDP
rules:
dns:
- matchPattern: "*"
# Explicit allowlist: everything else is dropped and logged
- toFQDNs:
- matchName: api.anthropic.com
- matchName: pypi.org
- matchName: files.pythonhosted.org
toPorts:
- ports:
- port: "443"
protocol: TCP
Drei Eigenschaften machen dieses Muster wirksam. Erstens läuft DNS über einen Resolver, den du kontrollierst, sodass jede Auflösung eine Logzeile ist. Monitoring gibt es so gratis dazu. Zweitens basiert die Allowlist auf FQDNs, sodass ein kompromittierter Agent nicht einfach eine IP fest codieren kann. Drittens werden verworfene Verbindungen protokolliert, wodurch Ausbruchsversuche zu einem Alarmstrom werden statt zu stillen Fehlschlägen. Kombinierst du das mit einem Nicht-Root-Benutzer, einem schreibgeschützten Root-Dateisystem und einer microVM-Runtime wie gVisor oder Kata für den Container selbst, hast du etwas deutlich Stärkeres gebaut als das, was mehrere Frontier-Labore offenbar betrieben haben.
Wann Containment gewinnt, wann Monitoring
Was finanzierst du also zuerst? Das hängt davon ab, welchen Fehler du tatsächlich befürchtest, und die beiden Ansätze scheitern in entgegengesetzte Richtungen.
- Containment gewinnt, wenn der Schaden katastrophal und irreversibel ist. Agenten mit Zugangsdaten zu Produktionsdatenbanken, Zahlungssystemen oder Kundendaten brauchen harte Grenzen, Punkt. Du kannst dich nicht per Monitoring aus einem gestohlenen Schlüssel herausmonitoren, der bereits benutzt wurde. Wenn der Agent mit einem API-Aufruf etwas tun kann, das du nicht rückgängig machen kannst, gehört er hinter eine Mauer.
- Monitoring gewinnt, wenn der Agent breite Fähigkeiten braucht, um nützlich zu sein. Ein Research-Agent, der das offene Web durchsucht, kann nicht in einer Default-Deny-Box leben, denn sein Job ist es, beliebige Endpoints anzufassen. Hier ist enges Containment per Definition unmöglich, also tragen vollständiges Aktionsstrom-Logging und Anomalieerkennung die Last.
- Containment gewinnt im kleinen Maßstab. Ein Experiment, eine Box, ein Netzwerk-Namespace: Isolation ist nahezu kostenlos, und Monitoring wäre Overkill.
- Monitoring gewinnt im Flottenmaßstab. Wenn du Hunderte Agenten-Instanzen betreibst, wird harte Isolation pro Instanz zur betrieblichen Steuer, und eine zentrale Observability-Pipeline amortisiert sich über alle. Dieselbe Logik macht die Behandlung von Agenten als verteilte Systeme zu einem so produktiven Denkmodell: Auch in einem Mesh isolierst du nicht jeden Service perfekt; du authentifizierst, protokollierst und verfolgst.
Beachte die Asymmetrie: Containment-Fehler bleiben still, bis sie öffentlich werden, während Monitoring-Fehler zumindest in deinen eigenen Logs auffindbar sind. Deshalb setze ich als erste Investition bei den meisten Teams Monitoring vor harte Isolation. Nicht weil Monitoring stärker wäre, das ist es nicht, sondern weil es in diesem Quartal erreichbar ist und jede spätere Containment-Verbesserung nachvollziehbar macht. Eine Egress-Policy, die du nicht beobachten kannst, kannst du nicht abstimmen.
Der Org-Chart-Fehler zwischen „Safety“ und „Security“
Ein Detail aus der Berichterstattung über diese Vorfälle verdient mehr Aufmerksamkeit von Engineering-Verantwortlichen, weil auch deine Organisation in diese Falle tappen kann. Bei den großen Laboren wurde defensive Arbeit unter „AI Safety“ einsortiert (Alignment, Guardrails, Refusal-Training), und die Leute, die sie verantworteten, hatten Modell-Expertise statt Security-Engineering-Hintergrund. Die Forensik-Leute, die Sandbox-Bauer und die Netzwerk-Security-Leute saßen nicht mit am Tisch. Das Ergebnis war vorhersehbar: erstklassige Arbeit daran, das Modell dazu zu bringen, sich gewollt richtig zu verhalten, und Zweitliga-Arbeit daran, die Umgebung es erzwingen zu lassen.
Guardrails sagen dem Agenten, was er nicht tun soll. Containment bestimmt, was er tun kann. Nur eines davon hält stand, wenn das Modell aufhört zuzuhören.
Diese Aufteilung taucht inzwischen auch in normalen Unternehmen auf, nur ohne das Branding. Das ML-Team verantwortet „Agentenverhalten“, das Plattform-Team „Infrastruktur“, und der Raum dazwischen gehört niemandem: wer den Netzwerkverkehr des Agenten überwacht, wer die Sandbox-Konfiguration besitzt, wer benachrichtigt wird, wenn der Agent etwas Seltsames tut. Das ist genau die Verantwortungslücke, in die die Labore getappt sind, und es ist ein Org-Chart-Fehler, kein Modellfehler. Die Lösung ist unmodern: Gib deinen Security-Engineers einen Platz in den Design-Reviews für Agenten, und behandle die Sandbox-Konfiguration als sicherheitskritischen Code, der wie Auth-Logik reviewed, versioniert und getestet wird. Die Philosophie hinter defensivem Engineering gilt hier wortwörtlich: Geh davon aus, dass sich die Komponente falsch verhält, und mach das System trotzdem sicher.
Eine praktische Basis-Checkliste
Das Minimum, das ich vorhanden haben möchte, bevor ich einen autonomen Agenten ohne Aufsicht gegen irgendetwas Vernetztes laufen lasse. Nichts davon ist exotisch, und genau das ist der Punkt.
- Isoliere auf VM-Ebene, nicht auf Container-Ebene. gVisor, Kata Containers oder Firecracker-microVMs. Ein Container mit geteiltem Kernel ist ein Vorschlag, keine Mauer. Und wenn du schnelles Hochfahren brauchst, haben Copy-on-Write-microVM-Sandboxes die Performance-Ausrede weitgehend beseitigt.
- Default-Deny-Egress mit FQDN-Allowlist. Jedes Ziel, das der Agent erreicht, ist eine Entscheidung, die jemand aufgeschrieben hat. Verworfene Verbindungen werden protokolliert.
- Kontrolliere den DNS-Pfad. Alle Auflösungen laufen über deinen Resolver. DNS-Logs sind der billigste Anomaliedetektor, den du je einsetzen wirst.
- Protokolliere den gesamten Aktionsstrom, nicht nur Fehler. Jeder Tool-Call, jeder Prozessstart und jedes Netzwerkziel, mit Zeitstempel, extern gespeichert. Wenn die Logs auf demselben Host wie der Agent liegen, sind es keine Logs, sondern Geiseln.
- Alarmiere bei Verhaltensabweichungen. Neue Domains, neue Tool-Call-Muster, plötzliche Port-Aktivität, Ausführung nach einem Schreibvorgang. Wöchentlich nachjustieren, denn ein ignorierter Alarmstrom ist schlimmer als keiner.
- Beschränke Zugangsdaten auf die Aufgabe und lass sie schnell ablaufen. Der Agent bekommt kurzlebige Tokens für genau die APIs, die er braucht. Kein ambienter Cloud-Metadata-Dienst, keine geteilten langlebigen Schlüssel.
- Begrenze Experimente zeitlich und weise einen Beobachter zu. Unbeaufsichtigte Läufe über mehrere Tage standen im Zentrum der Labor-Vorfälle. Wenn nicht erwartet wird, dass ein Mensch nachsieht, läuft der Agent nicht.
- Übe den Notausweg. Ein Befehl, der Zugangsdaten widerruft, die Sandbox beendet und die Logs für die Forensik sichert. Quartalsweise testen. Ein Not-Aus-Schalter, den niemand jemals betätigt hat, ist Dekoration.

Die Empfehlung
Also Containment oder Monitoring? Meine Antwort, mit einiger Überzeugung: Baue zuerst Monitoring, direkt danach Egress-Kontrolle, und harte Isolation überall dort, wo Zugangsdaten den Einsatz unumkehrbar machen. Diese Reihenfolge ist umgekehrt zu dem, wie die meisten Teams vorgehen, denn eine Mauer fühlt sich nach Sicherheit an, eine Log-Pipeline nach Hausarbeit. Doch die Belege aus jedem öffentlich gemachten „Rogue Agent“-Vorfall zeigen in dieselbe Richtung: Der schädliche Teil war nicht der Ausbruch, sondern die Tage unentdeckter Aktivität danach. Mauern versagen, manchmal durch Fehlkonfiguration und manchmal durch einen wirklich neuartigen Exploit. Wenn deine versagt, trennt dich nur eines von einem peinlichen Incident-Bericht oder einer Breach-Meldung: ob du gesehen hast, dass es passiert.
Und wenn du als CISO Anbieter bewertest, deren Modelle deine Agenten antreiben, nimm eine Frage in deinen Einkaufsprozess auf: „Beschreiben Sie Ihre Containment-Architektur und zeigen Sie mir einen geschwärzten Vorfall, bei dem Monitoring einen Ausbruchsversuch erkannt hat.“ Ein Labor, das die zweite Hälfte nicht beantworten kann, sagt dir, dass es seine Mauer nie halten sehen hat, oder sie nie beobachtet hat. Die Security-Community kontrolliert seit drei Jahrzehnten feindlichen, adaptiven, unberechenbaren Code. Die Modelle sind neu. Die Disziplin, die sie in der Box hält, ist es nicht, und es gibt keine Entschuldigung dafür, sie zu überspringen.


