openclaw security

Sicherheits-Tools (Audit + optionale Korrekturen).

Verwandte Themen:

Audit

openclaw security audit
openclaw security audit --deep
openclaw security audit --fix
openclaw security audit --json

Der Audit warnt, wenn mehrere DM-Absender die Hauptsitzung teilen, und empfiehlt den sicheren DM-Modus: session.dmScope="per-channel-peer" (oder per-account-channel-peer für Kanäle mit mehreren Konten) für gemeinsam genutzte Posteingänge. Dies dient der Härtung für kooperative/gemeinsam genutzte Posteingänge. Ein einzelnes Gateway, das von gegenseitig nicht vertrauenswürdigen/adversarialen Betreibern geteilt wird, ist kein empfohlenes Setup; trenne Vertrauensgrenzen mit separaten Gateways (oder separaten Betriebssystembenutzern/Hosts). Es gibt außerdem security.trust_model.multi_user_heuristic aus, wenn die Konfiguration auf wahrscheinlichen Mehrbenutzerzugang hindeutet (zum Beispiel offene DM/Gruppen-Richtlinie, konfigurierte Gruppenziele oder Wildcard-Absenderregeln), und erinnert daran, dass OpenClaw standardmäßig ein persönliches Assistenten-Vertrauensmodell hat. Für absichtliche Mehrbenutzerkonfigurationen empfiehlt der Audit, alle Sitzungen zu sandboxen, den Dateisystemzugriff auf den Workspace zu beschränken und persönliche/private Identitäten oder Anmeldedaten von dieser Laufzeitumgebung fernzuhalten. Es warnt auch, wenn kleine Modelle (<=300B) ohne Sandboxing und mit aktivierten Web-/Browser-Tools verwendet werden. Für Webhook-Zugang warnt es, wenn hooks.defaultSessionKey nicht gesetzt ist, wenn sessionKey-Überschreibungen durch Anfragen aktiviert sind und wenn Überschreibungen ohne hooks.allowedSessionKeyPrefixes aktiviert sind. Es warnt außerdem, wenn Sandbox-Docker-Einstellungen konfiguriert sind, während der Sandbox-Modus deaktiviert ist, wenn gateway.nodes.denyCommands unwirksame musterartige/unbekannte Einträge verwendet (nur exakte Node-Befehlsnamen-Zuordnung, kein Shell-Text-Filtering), wenn gateway.nodes.allowCommands explizit gefährliche Node-Befehle aktiviert, wenn das globale tools.profile="minimal" durch Agenten-Tool-Profile überschrieben wird und wenn offene Gruppen Laufzeit-/Dateisystem-Tools ohne Sandbox-/Workspace-Schutz bereitstellen und wenn installierte Erweiterungs-Plugin-Tools unter permissiver Tool-Richtlinie erreichbar sein können. Es markiert auch gateway.allowRealIpFallback=true (Header-Spoofing-Risiko bei fehlkonfigurierten Proxies) und discovery.mdns.mode="full" (Metadaten-Leck über mDNS-TXT-Records). Es warnt auch, wenn der Sandbox-Browser das Docker-bridge-Netzwerk ohne sandbox.browser.cdpSourceRange verwendet. Es markiert auch gefährliche Sandbox-Docker-Netzwerkmodi (einschließlich host und container:*-Namespace-Joins). Es warnt auch, wenn bestehende Sandbox-Browser-Docker-Container fehlende/veraltete Hash-Labels haben (zum Beispiel Pre-Migration-Container ohne openclaw.browserConfigEpoch) und empfiehlt openclaw sandbox recreate --browser --all. Es warnt auch, wenn npm-basierte Plugin-/Hook-Installationseinträge ungepinnt sind, fehlende Integritätsmetadaten haben oder von aktuell installierten Paketversionen abweichen. Es warnt, wenn Kanal-Allowlists auf veränderbare Namen/E-Mails/Tags statt stabiler IDs setzen (Discord, Slack, Google Chat, MS Teams, Mattermost, IRC-Scopes, wo zutreffend). Es warnt, wenn gateway.auth.mode="none" Gateway-HTTP-APIs ohne Shared Secret erreichbar lässt (/tools/invoke plus alle aktivierten /v1/*-Endpunkte). Mit dangerous/dangerously präfixierte Einstellungen sind explizite Break-Glass-Betreiber-Überschreibungen; das Aktivieren einer solchen ist für sich genommen kein Sicherheitsbericht. Für das vollständige Inventar gefährlicher Parameter siehe den Abschnitt “Insecure or dangerous flags summary” in Security.

JSON-Ausgabe

Verwende --json für CI/Richtlinienprüfungen:

openclaw security audit --json | jq '.summary'
openclaw security audit --deep --json | jq '.findings[] | select(.severity=="critical") | .checkId'

Wenn --fix und --json kombiniert werden, enthält die Ausgabe sowohl Fix-Aktionen als auch den Abschlussbericht:

openclaw security audit --fix --json | jq '{fix: .fix.ok, summary: .report.summary}'

Was --fix ändert

--fix wendet sichere, deterministische Korrekturen an:

  • Setzt häufige groupPolicy="open" auf groupPolicy="allowlist" (einschließlich Konto-Varianten bei unterstützten Kanälen)
  • Setzt logging.redactSensitive von "off" auf "tools"
  • Verschärft Berechtigungen für Status-/Konfigurationsdateien und gängige sensible Dateien (credentials/*.json, auth-profiles.json, sessions.json, Sitzungs-*.jsonl)

--fix macht nicht:

  • Tokens/Passwörter/API-Keys rotieren
  • Tools deaktivieren (gateway, cron, exec, usw.)
  • Gateway-Bind/Auth/Netzwerk-Konfigurationen ändern
  • Plugins/Skills entfernen oder umschreiben