Sandboxing
OpenClaw kann Werkzeuge innerhalb von Docker-Containern ausführen, um den Schadensradius zu reduzieren. Dies ist optional und wird über die Konfiguration gesteuert (agents.defaults.sandbox oder
agents.list[].sandbox). Ist Sandboxing deaktiviert, laufen Werkzeuge auf dem Host.
Das Gateway verbleibt auf dem Host; die Werkzeugausführung läuft bei Aktivierung in einer isolierten Sandbox.
Dies ist keine perfekte Sicherheitsgrenze, begrenzt jedoch den Zugriff auf Dateisystem und Prozesse erheblich, wenn das Modell etwas Unkluges tut.
Was wird sandboxed
- Werkzeugausführung (
exec,read,write,edit,apply_patch,processusw.). - Optionaler sandboxed Browser (
agents.defaults.sandbox.browser).- Standardmäßig startet der Sandbox-Browser automatisch (stellt sicher, dass CDP erreichbar ist), wenn das Browser-Werkzeug ihn benötigt.
Konfiguration über
agents.defaults.sandbox.browser.autoStartundagents.defaults.sandbox.browser.autoStartTimeoutMs. agents.defaults.sandbox.browser.allowHostControlerlaubt es sandboxed Sitzungen, explizit den Host-Browser anzusteuern.- Optionale Allowlists begrenzen
target: "custom":allowedControlUrls,allowedControlHosts,allowedControlPorts.
- Standardmäßig startet der Sandbox-Browser automatisch (stellt sicher, dass CDP erreichbar ist), wenn das Browser-Werkzeug ihn benötigt.
Konfiguration über
- Der Gateway-Prozess selbst.
- Jedes Werkzeug, das explizit erlaubt ist, auf dem Host zu laufen (z. B.
tools.elevated).- Erhöhte Ausführung läuft auf dem Host und umgeht Sandboxing.
- Ist Sandboxing deaktiviert, ändert
tools.elevateddie Ausführung nicht (bereits auf dem Host). Siehe Elevated Mode.
Modi
agents.defaults.sandbox.mode steuert, wann Sandboxing verwendet wird:
"off": kein Sandboxing."non-main": Sandbox nur für nicht‑Haupt‑Sitzungen (Standard, wenn normale Chats auf dem Host laufen sollen)."all": jede Sitzung läuft in einer Sandbox. Hinweis:"non-main"basiert aufsession.mainKey(Standard"main"), nicht auf der Agent‑ID. Gruppen-/Kanal‑Sitzungen verwenden eigene Schlüssel, zählen daher als nicht‑Haupt und werden sandboxed.
Geltungsbereich
agents.defaults.sandbox.scope steuert, wie viele Container erstellt werden:
"session"(Standard): ein Container pro Sitzung."agent": ein Container pro Agent."shared": ein Container, der von allen sandboxed Sitzungen geteilt wird.
Workspace-Zugriff
agents.defaults.sandbox.workspaceAccess steuert, was die Sandbox sehen kann:
"none"(Standard): Werkzeuge sehen einen Sandbox‑Workspace unter~/.openclaw/sandboxes."ro": bindet den Agent‑Workspace schreibgeschützt unter/agentein (deaktiviertwrite/edit/apply_patch)."rw": bindet den Agent‑Workspace mit Lese-/Schreibzugriff unter/workspaceein.
media/inbound/*).
Hinweis zu Skills: Das Werkzeug read ist auf die Sandbox‑Root ausgerichtet. Mit workspaceAccess: "none"
spiegelt OpenClaw geeignete Skills in den Sandbox‑Workspace (.../skills), sodass
sie gelesen werden können. Mit "rw" sind Workspace‑Skills lesbar unter
/workspace/skills.
Benutzerdefinierte Bind-Mounts
agents.defaults.sandbox.docker.binds bindet zusätzliche Host‑Verzeichnisse in den Container ein.
Format: host:container:mode (z. B. "/home/user/source:/source:rw").
Globale und agentenspezifische Binds werden zusammengeführt (nicht ersetzt). Unter scope: "shared" werden agentenspezifische Binds ignoriert.
agents.defaults.sandbox.browser.binds bindet zusätzliche Host-Verzeichnisse nur in den Sandbox-Browser-Container ein.
- Wenn gesetzt (einschließlich
[]), ersetzt esagents.defaults.sandbox.docker.bindsfür den Browser-Container. - Wenn nicht gesetzt, greift der Browser-Container auf
agents.defaults.sandbox.docker.bindszurück (abwärtskompatibel).
- Binds umgehen das Sandbox‑Dateisystem: Sie legen Host‑Pfade mit dem von Ihnen gesetzten Modus offen (
:rooder:rw). - Sensible Mounts (z. B.
docker.sock, Secrets, SSH‑Schlüssel) sollten:rosein, sofern nicht absolut erforderlich. - Kombinieren Sie dies mit
workspaceAccess: "ro", wenn Sie nur Lesezugriff auf den Workspace benötigen; Bind‑Modi bleiben unabhängig. - Siehe Sandbox vs Tool Policy vs Elevated dazu, wie Binds mit Werkzeugrichtlinien und erhöhter Ausführung interagieren.
Images + Setup
Standard‑Image:openclaw-sandbox:bookworm-slim
Einmal bauen:
sandbox.docker.setupCommand (erfordert Netzwerk‑Egress + schreibbare Root +
Root‑Benutzer).
Sandboxed Browser‑Image:
agents.defaults.sandbox.docker.network.
Docker‑Installationen und das containerisierte Gateway finden Sie hier:
Docker
setupCommand (einmaliges Container‑Setup)
setupCommand wird einmal nach der Erstellung des Sandbox‑Containers ausgeführt (nicht bei jedem Lauf).
Die Ausführung erfolgt im Container über sh -lc.
Pfad:
- Global:
agents.defaults.sandbox.docker.setupCommand - Pro Agent:
agents.list[].sandbox.docker.setupCommand
- Standard
docker.networkist"none"(kein Egress), daher schlagen Paketinstallationen fehl. readOnlyRoot: trueverhindert Schreibzugriffe; setzen SiereadOnlyRoot: falseoder backen Sie ein eigenes Image.usermuss Root sein für Paketinstallationen (lassen Sieuserweg oder setzen Sieuser: "0:0").- Sandbox‑Ausführung erbt nicht die Host‑
process.env. Verwenden Sieagents.defaults.sandbox.docker.env(oder ein eigenes Image) für Skill‑API‑Schlüssel.
Werkzeugrichtlinie + Escape‑Hatches
Werkzeug‑Allow/Deny‑Richtlinien gelten weiterhin vor den Sandbox‑Regeln. Ist ein Werkzeug global oder pro Agent verboten, bringt Sandboxing es nicht zurück.tools.elevated ist eine explizite Escape‑Hatch, die exec auf dem Host ausführt.
/exec‑Direktiven gelten nur für autorisierte Absender und bleiben pro Sitzung bestehen; um
exec hart zu deaktivieren, verwenden Sie eine Werkzeugrichtlinien‑Sperre (siehe Sandbox vs Tool Policy vs Elevated).
Debugging:
- Verwenden Sie
openclaw sandbox explain, um den effektiven Sandbox‑Modus, die Werkzeugrichtlinie und Fix‑it‑Konfigurationsschlüssel zu prüfen. - Siehe Sandbox vs Tool Policy vs Elevated für das mentale Modell „Warum ist das blockiert?“ Halten Sie es strikt abgesichert. Halten Sie es gesperrt.
Multi‑Agent‑Overrides
Jeder Agent kann Sandbox + Werkzeuge überschreiben:agents.list[].sandbox und agents.list[].tools (plus agents.list[].tools.sandbox.tools für die Sandbox‑Werkzeugrichtlinie).
Siehe Multi‑Agent Sandbox & Tools zur Priorität.