Anthropic veröffentlicht sandbox-runtime: Sandbox für KI-Agenten ohne Container
Anthropic hat die Sandbox hinter dem Bash-Werkzeug von Claude Code als Open Source bereitgestellt. Das Tool „srt“ schränkt Dateizugriffe und Netzwerkverbindungen beliebiger Prozesse ein, ohne einen Container zu starten. Laut Anthropic sank die Zahl der Rückfragen in Claude Code dadurch um 84 Prozent.

Worum es geht
Anthropic hat mit dem sandbox-runtime (Kurzname srt) die Sandbox als Open Source veröffentlicht, die hinter dem sandboxed Bash-Tool von Claude Code steckt. Das Werkzeug begrenzt, welche Dateien ein Prozess anfassen und welche Hosts er im Netzwerk erreichen darf. Es braucht dafür keinen Container. Es ist auch nicht an Claude Code gebunden: Eigene Agenten, lokale MCP-Server (Schnittstellen, über die KI-Agenten externe Werkzeuge ansprechen) und normale Kommandozeilenprogramme lassen sich darin ausführen.
Installiert wird es mit npm install -g @anthropic-ai/sandbox-runtime. Danach stellt man einem Befehl einfach srt voran. Das Paket ist laut Quelle etwa 11,4 MB groß, steht unter Apache-2.0 und verlangt Node.js 22.12 oder neuer. Aktuell ist Version 0.0.81; der Status ist ein Beta-Research-Preview.
Wie die Sandbox funktioniert
srt nutzt die Isolationsfunktionen des jeweiligen Betriebssystems. Die Einschränkungen gelten für den gesamten Prozessbaum, also auch für Skripte und Unterprozesse.
- macOS:
sandbox-execmit dynamisch erzeugten Seatbelt-Profilen (das sind Regelwerke des Systems, die Zugriffe erlauben oder verbieten). Nötig ist nur ripgrep. - Linux: bubblewrap, wobei der Netzwerk-Namespace entfernt wird – der Prozess hat also keinen direkten Weg ins Netz. Zusätzlich werden socat und ripgrep gebraucht. Auf Ubuntu 24.04+ ist laut Quelle eine AppArmor-Änderung für User-Namespaces nötig.
- Windows (Alpha): ein eigenes Konto namens srt-sandbox, ein Egress-Filter der Windows Filtering Platform und explizite Datei-ACLs. Die Einrichtung braucht einmalig erhöhte Rechte.
Der Netzwerkverkehr verlässt die Sandbox nur über HTTP- und SOCKS5-Proxys, die auf dem Host laufen. Unter Linux sind diese über Unix-Sockets in die Sandbox eingebunden, unter macOS erlaubt das Profil nur einen einzigen localhost-Port. Die Proxys wenden dann deine Domain-Erlaubnis- und Sperrliste an.
Warum Dateisystem und Netzwerk zusammengehören
Das Anthropic-Team argumentiert, dass eine Grenze ohne die andere scheitert. Ohne Netzwerkisolation könnte ein per Prompt Injection (eingeschleuste Anweisungen in Texten, die der Agent liest) manipulierter Agent etwa SSH-Schlüssel nach außen schicken. Ohne Dateisystemisolation könnte er aus der Sandbox ausbrechen und Netzzugang erlangen.
Die Standardwerte folgen dieser Logik:
| Bereich | Standard |
|---|---|
| Lesen | überall erlaubt, außer explizit verboten |
| Schreiben | überall verboten, außer explizit erlaubt |
| Netzwerk | verboten, außer die Domain steht auf der Erlaubnisliste |
Konfiguration für MCP-Server und eigene Agenten
Bei einem MCP-Server ersetzt man in der .mcp.json den Befehl npx durch srt und übergibt den ursprünglichen Befehl als Argumente. Die Regeln stehen in ~/.srt-settings.json, zum Beispiel:
{
"network": {
"allowedDomains": ["api.github.com", "*.npmjs.org"],
"deniedDomains": []
},
"filesystem": {
"denyRead": ["~/.ssh"],
"allowWrite": ["."],
"denyWrite": [".env"]
}
}
Für eigene Agenten gibt es die Bibliothek mit SandboxManager. initialize(config) startet die Proxys, wrapWithSandbox() liefert einen umhüllten Befehlsstring, den man dann startet.
Der Kompromiss: strenge Listen gegen arbeitsfähige Agenten
Coding-Agenten installieren Abhängigkeiten, holen Dokumentation und rufen APIs auf. Ist die Liste zu streng, scheitert schon npm install; ist sie zu locker, schützt die Sandbox kaum. Dafür gibt es mehrere Stellschrauben:
- Wildcards und Ports, etwa
*.npmjs.orgoderapi.example.com:443. - Ein Ask-Callback, der über Hosts entscheidet, die keine Regel abdeckt, und dem Modell einen Grund zurückgeben kann.
- Erlaubnislisten pro Befehl, die ein Register nur für einen Aufruf öffnen.
- Live-Updates der Netzwerklisten per
--control-fd, während ein Befehl läuft. - Eine Prüfung der aufgelösten Adresse, die erlaubte Namen blockiert, wenn sie auf Loopback- oder Cloud-Metadaten-IPs zeigen.
- Begründungen bei gesperrten Domains, die dem Agenten eine erlaubte Alternative nennen, etwa ein HTTPS-Git-Remote.
Die 84-Prozent-Zahl
Anthropic gibt an, dass die Sandbox die Berechtigungsabfragen in der internen Claude-Code-Nutzung um 84 Prozent reduziert hat. Das ist eine Eigenangabe, kein externer Benchmark. Gemeint ist die „Genehmigungsmüdigkeit“: Wer den ganzen Tag „Zulassen“ klickt, liest irgendwann nicht mehr, was er genehmigt. Mit einer festen Grenze kann der Agent innerhalb frei arbeiten und fragt nur am Rand.
Vergleich mit anderen Agenten-Sandboxes
| Anthropic srt | OpenAI Codex CLI | Docker Sandboxes | E2B | |
|---|---|---|---|---|
| Isolation | OS-Mittel | OS-Mittel | microVM | Firecracker-microVM |
| Läuft | lokal | lokal | lokal | Cloud/BYOC |
| Container/VM nötig | nein | nein | ja | ja |
| Netzwerk-Standard | alles gesperrt | im Workspace-Modus aus (umschaltbar) | gewählte Richtlinie | an |
| Domain-Liste | Wildcards + Ports | nicht offengelegt | Wildcards + Ports | allowOut mit Wildcards |
| Lizenz | Apache-2.0 | Apache-2.0 | nicht offengelegt | Apache-2.0 (SDK) |
Einordnung
srt ist interessant für alle, die Agenten oder MCP-Server lokal laufen lassen und dabei weder Docker noch eine VM wollen. Die Idee „gesperrt als Standard, gezielt freigeben“ ist sicherheitstechnisch sauber. Wichtig bleibt: Laut der Quelle ist die Breite der Erlaubnisliste der eigentliche Sicherheitsregler – zu breite Domains können Daten durchlassen. Das Projekt ist noch Beta, Windows nur Alpha, und die 84 Prozent stammen von Anthropic selbst. Der Vergleich mit Konkurrenten stammt aus dem Quellartikel und ist nicht unabhängig geprüft.
Quellen
- MarkTechPost marktechpost.com