CLI commands
Sicherheit
openclaw security
Sicherheitswerkzeuge: Audit sowie optionale sichere Korrekturen. Siehe auch: Sicherheit.
openclaw security auditopenclaw security audit --deepopenclaw security audit --deep --password <password>openclaw security audit --deep --token <token>openclaw security audit --auth password --password <password>openclaw security audit --fixopenclaw security audit --jsonAudit-Modi
Ein einfacher security audit verbleibt auf dem inaktiven, schreibgeschützten Pfad für Konfiguration und Dateisystem: Er ermittelt keine Sicherheits-Collector der Plugin-Laufzeit, sodass routinemäßige Audits nicht jede installierte Plugin-Laufzeit laden. --deep ergänzt nach bestem Bemühen Live-Prüfungen des Gateway und Plugin-eigene Sicherheits-Audit-Collector (explizite interne Aufrufer können diese Collector ebenfalls aktivieren, wenn sie bereits über einen geeigneten Laufzeitbereich verfügen).
Wenn die Gateway-Passwortauthentifizierung nur beim Start bereitgestellt wird, übergeben Sie denselben Wert mit --auth password --password <password>, damit das Audit ihn mit hooks.token abgleichen kann.
Was geprüft wird
DM-/Vertrauensmodell
- Warnt, wenn mehrere DM-Absender dieselbe Hauptsitzung gemeinsam nutzen, und empfiehlt den sicheren DM-Modus:
session.dmScope="per-channel-peer"(oderper-account-channel-peerfür Kanäle mit mehreren Konten) für gemeinsam genutzte Posteingänge. Dies dient der Absicherung kooperativer/gemeinsam genutzter Posteingänge und nicht der Isolation gegenseitig nicht vertrauenswürdiger Betreiber; trennen Sie solche Vertrauensgrenzen durch separate Gateways (oder separate Betriebssystembenutzer/Hosts). - Gibt
security.trust_model.multi_user_heuristicaus, wenn die Konfiguration auf einen wahrscheinlich gemeinsam genutzten Benutzerzugang hindeutet (beispielsweise eine offene DM-/Gruppenrichtlinie, konfigurierte Gruppenziele oder Platzhalterregeln für Absender) – das standardmäßige Vertrauensmodell von OpenClaw ist ein persönlicher Assistent (ein Betreiber), keine feindselige Mehrmandantenisolation. Für bewusst gemeinsam genutzte Einrichtungen: Führen Sie alle Sitzungen in einer Sandbox aus, beschränken Sie den Dateisystemzugriff auf den Arbeitsbereich und halten Sie persönliche/private Identitäten oder Anmeldedaten von dieser Laufzeit fern. - Warnt, wenn kleine Modelle (
<=300BParameter) ohne Sandbox und mit aktivierten Web-/Browserwerkzeugen verwendet werden.
Webhook/Hook
Beim Start wird eine nicht schwerwiegende Sicherheitswarnung protokolliert, und das Audit kennzeichnet die Wiederverwendung aktiver Werte für die Shared-Secret-Authentifizierung des Gateway als hooks.token (gateway.auth.token / OPENCLAW_GATEWAY_TOKEN, gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD). Es warnt außerdem, wenn:
hooks.tokenkurz isthooks.path="/"gesetzt isthooks.defaultSessionKeynicht gesetzt isthooks.allowedAgentIdsuneingeschränkt ist- Überschreibungen von
sessionKeyin Anfragen aktiviert sind - Überschreibungen ohne
hooks.allowedSessionKeyPrefixesaktiviert sind
Führen Sie openclaw doctor --fix aus, um ein dauerhaft gespeichertes, wiederverwendetes hooks.token zu rotieren, und aktualisieren Sie anschließend externe Hook-Absender, damit sie das neue Token verwenden.
Sandbox/Werkzeuge
- Warnt, wenn Docker-Einstellungen für die Sandbox konfiguriert sind, während der Sandbox-Modus deaktiviert ist.
- Warnt, wenn
gateway.nodes.denyCommandsunwirksame musterähnliche/unbekannte Einträge verwendet (der Abgleich erfolgt ausschließlich anhand des exakten Node-Befehlsnamens, nicht durch Filterung von Shell-Text). - Warnt, wenn
gateway.nodes.allowCommandsausdrücklich gefährliche Node-Befehle aktiviert. - Warnt, wenn das globale
tools.profile="minimal"durch Werkzeugprofile von Agenten überschrieben wird. - Warnt, wenn Schreib-/Bearbeitungswerkzeuge deaktiviert sind,
execjedoch weiterhin ohne einschränkende Dateisystemgrenze der Sandbox verfügbar ist. - Warnt, wenn offene DMs oder Gruppen Laufzeit-/Dateisystemwerkzeuge ohne Sandbox-/Arbeitsbereichsschutz zugänglich machen.
- Warnt, wenn Werkzeuge installierter Plugins unter einer freizügigen Werkzeugrichtlinie erreichbar sein könnten.
Sandbox-Browser
- Warnt, wenn der Sandbox-Browser das Docker-Netzwerk
bridgeohnesandbox.browser.cdpSourceRangeverwendet. - Kennzeichnet gefährliche Docker-Netzwerkmodi der Sandbox, einschließlich
hostund Verknüpfungen mitcontainer:*-Namespaces. - Warnt, wenn vorhandene Docker-Container des Sandbox-Browsers fehlende/veraltete Hash-Labels aufweisen (beispielsweise Container von vor der Migration, denen
openclaw.browserConfigEpochfehlt), und empfiehltopenclaw sandbox recreate --browser --all.
Netzwerk/Ermittlung
- Kennzeichnet
gateway.allowRealIpFallback=true(Risiko der Manipulation von Headern bei falsch konfigurierten Proxys). - Kennzeichnet
discovery.mdns.mode="full"(Offenlegung von Metadaten über mDNS-TXT-Einträge). - Warnt, wenn
gateway.auth.mode="none"die HTTP-APIs des Gateway ohne Shared Secret erreichbar lässt (/tools/invokesowie alle aktivierten/v1/*-Endpunkte).
Plugins/Kanäle
- Warnt, wenn npm-basierte Plugin-/Hook-Installationsdatensätze nicht auf eine feste Version festgelegt sind, Integritätsmetadaten fehlen oder sie von den derzeit installierten Paketversionen abweichen.
- Warnt, wenn Kanal-Zulassungslisten veränderliche Namen/E-Mail-Adressen/Tags anstelle stabiler IDs verwenden (Discord, Slack, Google Chat, Microsoft Teams, Mattermost und gegebenenfalls IRC-Geltungsbereiche).
Einstellungen mit dem Präfix dangerous/dangerously sind explizite Notfall-Ausnahmen für Betreiber; ihre Aktivierung stellt für sich genommen keine Meldung einer Sicherheitslücke dar. Eine vollständige Übersicht der gefährlichen Parameter finden Sie unter „Zusammenfassung unsicherer oder gefährlicher Flags“ in Sicherheit.
Verhalten von SecretRef
security audit löst unterstützte SecretRefs für die von der Prüfung erfassten Pfade im schreibgeschützten Modus auf. Wenn eine SecretRef im aktuellen Befehlspfad nicht verfügbar ist, wird die Prüfung fortgesetzt und meldet secretDiagnostics, anstatt abzustürzen. --token und --password überschreiben nur die Authentifizierung für die Tiefenprüfung bei diesem Befehlsaufruf; sie ändern weder die Konfiguration noch SecretRef-Zuordnungen.
Unterdrückungen
Akzeptieren Sie bewusst dauerhaft bestehende Befunde mit security.audit.suppressions. Jede Unterdrückung entspricht einer exakten checkId und kann mit den Teilzeichenfolgen titleIncludes und/oder detailIncludes, bei denen die Groß-/Kleinschreibung nicht berücksichtigt wird, eingegrenzt werden:
{ "security": { "audit": { "suppressions": [ { "checkId": "plugins.tools_reachable_permissive_policy", "detailIncludes": "Aktivierte Erweiterungs-Plugins: gbrain", "reason": "vertrauenswürdiges lokales Operator-Plugin" } ] } }}Unterdrückte Befunde werden aus der aktiven summary und der Liste findings entfernt. Die JSON-Ausgabe behält sie zur Nachvollziehbarkeit unter suppressedFindings bei. Wenn Unterdrückungen konfiguriert sind, enthält die aktive Ausgabe außerdem einen nicht unterdrückbaren Informationsbefund security.audit.suppressions.active, damit Leser erkennen können, dass das Audit gefiltert wurde. Gefährliche Konfigurations-Flags werden einzeln als jeweils eigener Befund ausgegeben. Dadurch werden beim Akzeptieren eines gefährlichen Flags keine anderen aktivierten Flags ausgeblendet, die dieselbe config.insecure_or_dangerous_flags-checkId verwenden.
Da Unterdrückungen bestehende Risiken verbergen können, erfordert ihr Hinzufügen oder Entfernen über von Agenten ausgeführte Shell-Befehle eine Ausführungsgenehmigung, sofern die Ausführung für vertrauenswürdige lokale Automatisierung nicht bereits mit security="full" und ask="off" erfolgt.
JSON-Ausgabe
openclaw security audit --json | jq '.summary'openclaw security audit --deep --json | jq '.findings[] | select(.severity=="critical") | .checkId'Mit --fix --json enthält die Ausgabe sowohl die Korrekturaktionen als auch den abschließenden Bericht:
openclaw security audit --fix --json | jq '{fix: .fix.ok, summary: .report.summary}'Was --fix ändert
Wendet sichere, deterministische Korrekturen an:
- ändert gängige Einstellungen von
groupPolicy="open"zugroupPolicy="allowlist"(einschließlich Kontovarianten in unterstützten Kanälen) - wenn die WhatsApp-Gruppenrichtlinie zu
allowlistgeändert wird, wirdgroupAllowFromaus der gespeichertenallowFrom-Datei befüllt, sofern diese Liste vorhanden ist und die KonfigurationallowFromnicht bereits definiert - setzt
logging.redactSensitivevon"off"auf"tools" - verschärft die Berechtigungen für Status-/Konfigurationsdateien und gängige sensible Dateien (
credentials/*.json,auth-profiles.json,openclaw-agent.sqliteund veraltete Sitzungsartefakte) - verschärft außerdem die Berechtigungen für Konfigurations-Include-Dateien, auf die in
openclaw.jsonverwiesen wird - verwendet
chmodauf POSIX-Hosts und setzt Berechtigungen unter Windows miticaclszurück
--fix führt Folgendes nicht aus:
- Tokens/Passwörter/API-Schlüssel rotieren
- Tools deaktivieren (
gateway,cron,execusw.) - Entscheidungen zur Gateway-Bindung, -Authentifizierung oder -Netzwerkfreigabe ändern
- Plugins/Skills entfernen oder umschreiben