Dev & Open Source

Claude Code in der Sandbox betreiben (2026): Dateisystem- und Netzwerk-Isolation Schritt für Schritt

Die Claude-Code-Sandbox begrenzt, welche Dateien und Hosts Shell-Befehle erreichen können. So aktivierst du sie, wählst einen Modus und verstehst, was außerhalb der Grenze läuft.

Waqas Ahmed Waseer
Waqas Ahmed Waseer 4. Okt. 2026 7 Min. Lesezeit
Claude Code in der Sandbox betreiben (2026): Dateisystem- und Netzwerk-Isolation Schritt für Schritt

Die Claude-Code-Sandbox ist eine vom Betriebssystem durchgesetzte Grenze um die Shell-Befehle, die Claude ausführt. Sie schränkt ein, welche Dateien und Netzwerk-Hosts diese Befehle erreichen können. Du schaltest sie mit /sandbox ein oder indem du sandbox.enabled in einer Settings-Datei auf true setzt. Sobald sie aktiv ist, kann Claude Code Befehle in der Sandbox ausführen, ohne dich jedes Mal um Freigabe zu bitten. Genau das ist der eigentliche Reiz: weniger Freigabeabfragen, ohne einem autonomen Agenten eine offene Shell auf deinem Rechner zu überlassen.

Dieser Leitfaden zeigt, was die Sandbox tatsächlich einschränkt, wie du sie unter macOS, Linux und WSL2 aktivierst, welche zwei Freigabemodi es gibt und welche Teile außerhalb der Grenze laufen — die Lücke, aus der Anfang dieses Jahres ein echter Datenabfluss-Bug wurde. Wir betreiben Claude Code in einer Headless-Automatisierung, um diese Seite zu veröffentlichen. Die Shell-Grenze richtig zu ziehen, ist für uns also kein akademisches Thema.

Was ist die Claude-Code-Sandbox?

Die Sandbox ist in Claude Code eingebaut und umschließt jeden Bash-, PowerShell- und Monitor-Befehl samt den Kindprozessen, die diese Befehle starten. Sie zieht zwei Grenzen gleichzeitig: was ein Befehl auf der Festplatte anfassen darf und was er über das Netzwerk erreichen kann. Beide werden vom Betriebssystem durchgesetzt, während der Befehl läuft — deshalb kann ein Befehl in der Sandbox automatisch freigegeben werden: Der Kernel hält die Linie, keine Abfrage.

Standardmäßig ist sie ausgeschaltet. Unter macOS nutzt sie das eingebaute Seatbelt-Framework, es ist also nichts zu installieren. Unter Linux und WSL2 setzt sie für die Dateisystem-Isolation auf bubblewrap und für die Weiterleitung des Netzwerkverkehrs über einen lokalen Proxy auf socat; das /sandbox-Panel zeigt dir, falls eines davon fehlt. Unter nativem Windows gibt es gar keine Sandbox — Befehle laufen ungesandboxt, es sei denn, du führst Claude Code innerhalb einer WSL2-Distribution aus. Unter der Haube steckt das quelloffene Paket @anthropic-ai/sandbox-runtime.

So funktionieren Dateisystem- und Netzwerk-Isolation

Die beiden Grenzen haben unterschiedliche Standardeinstellungen, und du erweiterst oder verengst jede einzeln. Die folgende Tabelle zeigt den Ausgangszustand und die Einstellungen, die ihn verändern.

ZugriffStandardverhaltenÄnderbar über
SchreibenArbeitsverzeichnis, ein benutzereigenes temporäres Verzeichnis und alle mit --add-dir hinzugefügten Verzeichnisse. Geschützte Pfade bleiben schreibgeschütztfilesystem.allowWrite, filesystem.denyWrite
LesenNahezu der gesamte Rechner — einschließlich Zugangsdaten-Dateien wie ~/.ssh und ~/.aws/credentialsfilesystem.denyRead, credentials
NetzwerkKein direkter Weg nach außen; jede Verbindung läuft über einen lokalen Proxy, der den Host gegen deine erlaubten Domains prüft — und die beginnen leernetwork.allowedDomains, network.deniedDomains

Die Asymmetrie, die du dir einprägen solltest: Schreibzugriffe sind standardmäßig abgeriegelt, Lesezugriffe dagegen weit offen. Ein Befehl in der Sandbox kann nichts außerhalb deines Projekts kritzeln, aber er kann trotzdem deine SSH-Schlüssel und Cloud-Zugangsdaten lesen, solange du keine denyRead-Regel hinzufügst oder den credentials-Schutz nutzt. Beim Netzwerk ist es umgekehrt — standardmäßig alles verboten, mit einer Allowlist, die du nach und nach aufbaust, sobald Befehle bestimmte Hosts brauchen.

So aktivierst du die Claude-Code-Sandbox

Der schnellste Weg ist interaktiv:

  • Führe /sandbox aus in einer Session. Das Panel hat einen Mode-Tab, einen Overrides-Tab (den allowUnsandboxedCommands-Fallback) und einen Config-Tab, der die aufgelösten Einstellungen zeigt. Unter Linux erscheint ein Dependencies-Tab, falls bubblewrap, socat oder ripgrep fehlt.
  • Wähle einen Modus (siehe unten) und bitte Claude, einen Build oder eine Testsuite auszuführen. Die Auswahl eines Modus schreibt ihn in die .claude/settings.local.json des Projekts.
  • Aktiviere sie überall, indem du sandbox.enabled in ~/.claude/settings.json auf true setzt, oder erzwinge sie für ein ganzes Team über Managed Settings.

Für eine einzelne Session, ohne eine Settings-Datei anzufassen, gibst du sie auf der CLI mit:

claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'

Um zu prüfen, ob sie läuft, bitte Claude, touch ~/sandbox-probe auszuführen (sollte mit Operation not permitted oder Read-only file system fehlschlagen) sowie curl --noproxy '*' https://example.com (sollte mit Could not resolve host fehlschlagen). Wenn der Agent hart stoppen soll, falls die Sandbox nicht starten kann — statt still auf ungesandboxt zurückzufallen — setze sandbox.failIfUnavailable auf true. Diese Einstellung macht den Unterschied zwischen "Sandbox ist eine Bequemlichkeit" und "Sandbox ist ein Sicherheits-Gate".

Sandbox-Modi: Auto-Allow vs. reguläre Berechtigungen

Beide Modi setzen exakt dieselben Dateisystem- und Netzwerkgrenzen durch. Der einzige Unterschied liegt in der Freigabe.

  • Auto-Allow-Modus führt Befehle in der Sandbox ohne Abfrage aus. Hier steckt der Gewinn gegen die Abfrage-Müdigkeit: Ein Befehl, der nur innerhalb der Grenze schreibt, läuft einfach durch — selbst im manuellen Modus. Deny-Regeln werden weiterhin beachtet, ein rm gegen einen kritischen Pfad fragt weiterhin nach, und inhaltsbezogene Ask-Regeln wie Bash(git push *) erzwingen weiterhin eine Abfrage.
  • Modus mit regulären Berechtigungen schickt jeden Bash-Befehl durch den normalen Berechtigungsfluss, auch in der Sandbox — mehr Kontrolle, mehr Klicks.

Wenn ein Befehl zum ersten Mal eine neue Netzwerk-Domain braucht, fragt dich Claude Code, ob du sie zur Allowlist hinzufügen willst. Im Auto-Modus deklariert das Modell stattdessen die Hosts, die ein Befehl braucht, direkt am Befehl selbst, und ein serverseitiger Klassifikator prüft sie. Beachte, dass der Plan-Modus Auto-Allow nicht erbt — er gatet Befehle weiterhin, während du planst.

Was außerhalb der Sandbox läuft (der Teil, den viele übersehen)

Die Sandbox umschließt Shell-Befehle. Sie umschließt nicht alles, und das ist das am häufigsten missverstandene daran. Außerhalb der Grenze laufen:

  • Eingebaute Datei- und Web-Tools — Read, Edit, Write, WebFetch, WebSearch folgen stattdessen den Berechtigungsregeln. Ein denyRead-Eintrag stoppt das Read-Tool nicht, und allowedDomains begrenzt WebFetch nicht.
  • MCP-Server und Hooks — beide laufen ungesandboxt.
  • Befehle, die du an der !-Shell-Eingabeaufforderung tippst, alles, was auf excludedCommands passt, und jeder ungesandboxte Wiederholungsversuch, bei dem Claude einen fehlgeschlagenen Befehl mit dangerouslyDisableSandbox erneut ausführt.

Ein denyRead auf ~/.aws/credentials blockiert also ein cat in der Sandbox, aber nicht das Read-Tool oder einen MCP-Server, der dieselbe Datei erreicht. Wenn du eine einzige Grenze um all das ziehen willst, ist die Sandbox die falsche Ebene — betreibe dann den gesamten Claude-Code-Prozess in einem Container oder einer VM. Besonders wichtig ist das, wenn du Claude Code headless betreibst in der CI, wo kein Mensch da ist, um einen ungesandboxten Wiederholungsversuch abzulehnen.

Eine Sandbox ist kein Gefängnis: die Lektion vom Egress-Bypass

Behandle die Netzwerk-Allowlist als Defense-in-Depth, nicht als Tresor. Sicherheitsforscher legten einen Bypass des Netzwerk-Egress der Sandbox in Claude Code offen, der die Versionen 2.0.24 bis 2.1.89 betraf — rund 130 Releases — bei dem ein SOCKS5-Null-Byte-Hostname-Trick Befehlen erlaubte, blockierte Domains zu erreichen und API-Schlüssel, Tokens und Quellcode zu exfiltrieren. Ein präparierter Hostname wie attacker.com\x00.google.com bestand die JavaScript-Allowlist-Prüfung (sie sah das Suffix .google.com), während der OS-Resolver am Null-Byte abschnitt und sich mit dem Angreifer verband. Anthropic lieferte laut Bericht in v2.1.90 am 1. April 2026 eine strengere Hostname-Validierung aus — angeblich ohne CVE oder Changelog-Eintrag.

Die praktischen Lehren: Halte Claude Code aktuell, halte allowedDomains so kurz, wie es die Aufgabe erlaubt, setze sandbox.failIfUnavailable, wo die Sandbox eine echte Kontrolle ist, und isoliere bei allem, was produktive Secrets berührt, den gesamten Prozess — nicht nur seine Shell. Die Sandbox erhöht die Kosten eines Fehlers oder einer Prompt-Injection spürbar, aber sie ist eine Ebene, und Ebenen hatten schon Löcher.

Häufig gestellte Fragen

Ist die Claude-Code-Sandbox standardmäßig aktiv?

Nein. Sie ist aus, bis du /sandbox ausführst oder sandbox.enabled in einer Settings-Datei auf true setzt. Unter nativem Windows läuft sie überhaupt nicht, es sei denn, du nutzt WSL2.

Hindert die Sandbox Claude daran, meine Zugangsdaten zu lesen?

Nicht standardmäßig. Befehle in der Sandbox können nahezu den gesamten Rechner lesen, einschließlich ~/.ssh und ~/.aws/credentials. Füge eine filesystem.denyRead-Regel hinzu oder nutze den credentials-Schutz — und denk daran, dass das Read-Tool und MCP-Server komplett außerhalb der Sandbox liegen.

Was muss ich unter Linux installieren?

bubblewrap und socat sind erforderlich; ripgrep ist im nativen Binary enthalten, und ein optionaler seccomp-Filter (aus @anthropic-ai/sandbox-runtime) ergänzt das Blockieren von Unix-Sockets. Der Dependencies-Tab von /sandbox listet auf, was fehlt.

Reduziert die Sandbox die Freigabeabfragen?

Ja, im Auto-Allow-Modus — Befehle in der Sandbox laufen ohne Nachfrage, weil das Betriebssystem die Grenze durchsetzt. Deny-Regeln, rm auf kritischem Pfad und inhaltsbezogene Ask-Regeln fragen weiterhin nach.

Reicht die Sandbox, um einen Agenten sicher auf Produktivdaten laufen zu lassen?

Betrachte sie als eine Ebene. Sie schränkt Shell-Befehle ein, aber nicht Datei-Tools, MCP-Server oder Hooks, und sie hatte mindestens einen Egress-Bypass-Bug. Für produktive Secrets betreibe den gesamten Prozess in einem Container oder einer VM.

Quellen

Waqas Ahmed Waseer

Waqas Ahmed Waseer

Waqas Ahmed Waseer ist Entwickler und Automation-Builder mit über 8 Jahren Erfahrung im Aufbau von Produktivsystemen, die von mehr als 100.000 Menschen genutzt werden. Er baut individuelle Multi-Tenant-SaaS, KI-Automatisierung (n8n, LLM-Workflows, WhatsApp-Bots) und Hosting-Infrastruktur (WHM/cPanel, CloudLinux) — und ist der Macher von WaSphere, FlowMaticX und der Hosting-Marke WaseerHost. Über 100 Projekte für KMU, Agenturen und finanzierte Start-ups umgesetzt.

Ähnliche Beiträge

Mehr in Dev & Open Source

Alle ansehen →

Diskussion · 0

Bleib fair. Kommentare sind öffentlich.

    Newsletter · Montagsausgabe

    Der Montagsbrief.

    Eine E-Mail jeden Montagmorgen. Die kommende Woche in KI, Startups, Hosting und Dev-Tools — ohne Schnickschnack, ohne gesponserten Köder.

    Kostenlos. Abmeldung mit einem Klick.