Übersicht
Claude Code verfügt über natives Sandboxing, um eine sicherere Umgebung für die Agent-Ausführung bereitzustellen und die Notwendigkeit ständiger Genehmigungsaufforderungen zu verringern. Anstatt für jeden Bash-Befehl eine Genehmigung zu erbitten, erstellt Sandboxing vordefinierte Grenzen, in denen Claude Code mit reduziertem Risiko freier arbeiten kann. Das Sandboxing-Bash-Tool verwendet OS-Level-Primitive, um sowohl Dateisystem- als auch Netzwerkisolation durchzusetzen.Warum Sandboxing wichtig ist
Die traditionelle genehmigungsbasierte Sicherheit erfordert ständige Benutzerbestätigung für Bash-Befehle. Während dies Kontrolle bietet, kann es zu Folgendem führen:- Genehmigungsmüdigkeit: Wiederholtes Klicken auf „Genehmigen” kann dazu führen, dass Benutzer weniger Aufmerksamkeit darauf richten, was sie genehmigen
- Reduzierte Produktivität: Ständige Unterbrechungen verlangsamen Entwicklungs-Workflows
- Begrenzte Autonomie: Claude Code kann nicht effizient arbeiten, wenn es auf Genehmigungen wartet
- Klare Grenzen definieren: Geben Sie genau an, auf welche Verzeichnisse und Netzwerk-Hosts Claude Code zugreifen kann
- Genehmigungsaufforderungen reduzieren: Sichere Befehle innerhalb der Sandbox erfordern keine Genehmigung
- Sicherheit beibehalten: Versuche, auf Ressourcen außerhalb der Sandbox zuzugreifen, lösen sofortige Benachrichtigungen aus
- Autonomie ermöglichen: Claude Code kann unabhängiger innerhalb definierter Grenzen arbeiten
Wie es funktioniert
Dateisystemisolation
Das Sandboxing-Bash-Tool beschränkt den Dateisystemzugriff auf bestimmte Verzeichnisse:- Standardschreibverhalten: Lese- und Schreibzugriff auf das aktuelle Arbeitsverzeichnis und seine Unterverzeichnisse
- Standardleseverhalten: Lesezugriff auf den gesamten Computer, mit Ausnahme bestimmter blockierter Verzeichnisse
- Blockierter Zugriff: Kann Dateien außerhalb des aktuellen Arbeitsverzeichnisses nicht ohne explizite Genehmigung ändern
- Konfigurierbar: Definieren Sie benutzerdefinierte zulässige und blockierte Pfade durch Einstellungen
Netzwerkisolation
Der Netzwerkzugriff wird durch einen Proxy-Server gesteuert, der außerhalb der Sandbox läuft:- Domain-Einschränkungen: Nur genehmigte Domains können zugegriffen werden
- Benutzerbestätigung: Neue Domain-Anfragen lösen Genehmigungsaufforderungen aus
- Benutzerdefinierte Proxy-Unterstützung: Fortgeschrittene Benutzer können benutzerdefinierte Regeln für ausgehenden Datenverkehr implementieren
- Umfassende Abdeckung: Einschränkungen gelten für alle Skripte, Programme und Unterprozesse, die durch Befehle erzeugt werden
OS-Level-Durchsetzung
Das Sandboxing-Bash-Tool nutzt OS-Sicherheitsprimitive:- Linux: Verwendet bubblewrap für Isolation
- macOS: Verwendet Seatbelt für Sandbox-Durchsetzung
Erste Schritte
Sandboxing aktivieren
Sie können Sandboxing durch Ausführen des/sandbox Slash-Befehls aktivieren:
Sandboxing konfigurieren
Passen Sie das Sandbox-Verhalten durch Ihresettings.json Datei an. Siehe Einstellungen für eine vollständige Konfigurationsreferenz.
Claude Code enthält einen absichtlichen Escape-Hatch-Mechanismus, der es Befehlen ermöglicht, bei Bedarf außerhalb der Sandbox ausgeführt zu werden. Wenn ein Befehl aufgrund von Sandbox-Einschränkungen fehlschlägt (z. B. aufgrund von Netzwerkverbindungsproblemen oder inkompatiblen Tools), wird Claude aufgefordert, den Fehler zu analysieren und kann den Befehl mit dem Parameter
dangerouslyDisableSandbox erneut versuchen. Befehle, die diesen Parameter verwenden, durchlaufen den normalen Claude Code-Genehmigungsfluss, der eine Benutzererlaubnis zur Ausführung erfordert. Dies ermöglicht Claude Code, Grenzfälle zu handhaben, in denen bestimmte Tools oder Netzwerkoperationen nicht innerhalb von Sandbox-Einschränkungen funktionieren können.Sie können diesen Escape-Hatch deaktivieren, indem Sie "allowUnsandboxedCommands": false in Ihren Sandbox-Einstellungen setzen. Wenn deaktiviert, wird der Parameter dangerouslyDisableSandbox vollständig ignoriert und alle Befehle müssen entweder sandboxed ausgeführt werden oder explizit in excludedCommands aufgelistet sein.Sicherheitsvorteile
Schutz vor Prompt-Injection
Selbst wenn ein Angreifer Claude Code’s Verhalten erfolgreich durch Prompt-Injection manipuliert, stellt die Sandbox sicher, dass Ihr System sicher bleibt: Dateisystemschutz:- Kann kritische Konfigurationsdateien wie
~/.bashrcnicht ändern - Kann Dateien auf Systemebene in
/bin/nicht ändern - Kann Dateien nicht lesen, die in Ihren Claude-Berechtigungseinstellungen blockiert sind
- Kann Daten nicht an von Angreifern kontrollierte Server exfiltrieren
- Kann böswillige Skripte nicht von nicht autorisierten Domains herunterladen
- Kann keine unerwarteten API-Aufrufe an nicht genehmigten Diensten tätigen
- Kann keine Domains kontaktieren, die nicht explizit erlaubt sind
- Alle Zugriffversuche außerhalb der Sandbox werden auf OS-Ebene blockiert
- Sie erhalten sofortige Benachrichtigungen, wenn Grenzen getestet werden
- Sie können wählen, zu verweigern, einmal zu erlauben oder Ihre Konfiguration dauerhaft zu aktualisieren
Reduzierte Angriffsfläche
Sandboxing begrenzt den potenziellen Schaden durch:- Böswillige Abhängigkeiten: NPM-Pakete oder andere Abhängigkeiten mit schädlichem Code
- Kompromittierte Skripte: Build-Skripte oder Tools mit Sicherheitslücken
- Social Engineering: Angriffe, die Benutzer dazu bringen, gefährliche Befehle auszuführen
- Prompt-Injection: Angriffe, die Claude dazu bringen, gefährliche Befehle auszuführen
Transparente Bedienung
Wenn Claude Code versucht, auf Netzwerkressourcen außerhalb der Sandbox zuzugreifen:- Der Vorgang wird auf OS-Ebene blockiert
- Sie erhalten eine sofortige Benachrichtigung
- Sie können wählen:
- Die Anfrage ablehnen
- Sie einmal erlauben
- Ihre Sandbox-Konfiguration aktualisieren, um sie dauerhaft zu erlauben
Sicherheitsbeschränkungen
- Netzwerk-Sandboxing-Einschränkungen: Das Netzwerk-Filtersystem funktioniert durch Einschränkung der Domains, mit denen Prozesse verbunden werden dürfen. Es inspiziert den Datenverkehr, der durch den Proxy fließt, nicht anderweitig, und Benutzer sind dafür verantwortlich, sicherzustellen, dass sie nur vertrauenswürdige Domains in ihrer Richtlinie erlauben.
- Privilege Escalation über Unix-Sockets: Die Konfiguration
allowUnixSocketskann versehentlich Zugriff auf leistungsstarke Systemdienste gewähren, die zu Sandbox-Umgehungen führen könnten. Wenn sie beispielsweise verwendet wird, um Zugriff auf/var/run/docker.sockzu erlauben, würde dies effektiv Zugriff auf das Host-System durch Ausnutzung des Docker-Sockets gewähren. Benutzer werden ermutigt, sorgfältig zu überlegen, welche Unix-Sockets sie durch die Sandbox erlauben. - Dateisystem-Berechtigungseskalation: Übermäßig breite Dateisystem-Schreibberechtigungen können Privilege-Escalation-Angriffe ermöglichen. Das Erlauben von Schreibvorgängen in Verzeichnisse, die ausführbare Dateien in
$PATH, Systemkonfigurationsverzeichnisse oder Benutzer-Shell-Konfigurationsdateien (.bashrc,.zshrc) enthalten, kann zu Code-Ausführung in verschiedenen Sicherheitskontexten führen, wenn andere Benutzer oder Systemprozesse auf diese Dateien zugreifen. - Linux-Sandbox-Stärke: Die Linux-Implementierung bietet starke Dateisystem- und Netzwerkisolation, enthält aber einen
enableWeakerNestedSandbox-Modus, der es ermöglicht, in Docker-Umgebungen ohne privilegierte Namespaces zu arbeiten. Diese Option schwächt die Sicherheit erheblich ab und sollte nur in Fällen verwendet werden, in denen zusätzliche Isolation anderweitig durchgesetzt wird.
Erweiterte Verwendung
Benutzerdefinierte Proxy-Konfiguration
Für Organisationen, die erweiterte Netzwerksicherheit benötigen, können Sie einen benutzerdefinierten Proxy implementieren, um:- HTTPS-Datenverkehr zu entschlüsseln und zu inspizieren
- Benutzerdefinierte Filterregeln anzuwenden
- Alle Netzwerkanfragen zu protokollieren
- Mit bestehender Sicherheitsinfrastruktur zu integrieren
Integration mit bestehenden Sicherheitstools
Das Sandboxing-Bash-Tool funktioniert zusammen mit:- IAM-Richtlinien: Kombinieren Sie mit Berechtigungseinstellungen für Defense-in-Depth
- Entwicklungscontainer: Verwenden Sie mit devcontainern für zusätzliche Isolation
- Unternehmensrichtlinien: Erzwingen Sie Sandbox-Konfigurationen durch verwaltete Einstellungen
Best Practices
- Beginnen Sie restriktiv: Beginnen Sie mit minimalen Berechtigungen und erweitern Sie nach Bedarf
- Protokolle überwachen: Überprüfen Sie Sandbox-Verletzungsversuche, um Claude Code’s Anforderungen zu verstehen
- Verwenden Sie umgebungsspezifische Konfigurationen: Unterschiedliche Sandbox-Regeln für Entwicklungs- vs. Produktionsumgebungen
- Kombinieren Sie mit Berechtigungen: Verwenden Sie Sandboxing zusammen mit IAM-Richtlinien für umfassende Sicherheit
- Testen Sie Konfigurationen: Überprüfen Sie, dass Ihre Sandbox-Einstellungen legitime Workflows nicht blockieren
Open Source
Die Sandbox-Laufzeit ist als Open-Source-npm-Paket für die Verwendung in Ihren eigenen Agent-Projekten verfügbar. Dies ermöglicht der breiteren AI-Agent-Community, sicherere und autonomere Systeme zu bauen. Dies kann auch verwendet werden, um andere Programme zu sandboxen, die Sie möglicherweise ausführen möchten. Um beispielsweise einen MCP-Server zu sandboxen, könnten Sie ausführen:Einschränkungen
- Leistungsaufwand: Minimal, aber einige Dateisystemoperationen können leicht langsamer sein
- Kompatibilität: Einige Tools, die spezifische Systemzugriffsmuster erfordern, benötigen möglicherweise Konfigurationsanpassungen oder müssen möglicherweise außerhalb der Sandbox ausgeführt werden
- Plattformunterstützung: Unterstützt derzeit Linux und macOS; Windows-Unterstützung geplant
Siehe auch
- Sicherheit - Umfassende Sicherheitsfunktionen und Best Practices
- IAM - Berechtigungskonfiguration und Zugriffskontrolle
- Einstellungen - Vollständige Konfigurationsreferenz
- CLI-Referenz - Befehlszeilenoptionen einschließlich
-sb