openclaw security
Narzędzia bezpieczeństwa (audyt + opcjonalne naprawy).
Powiązane:
- Przewodnik bezpieczeństwa: Security
Audyt
session.dmScope="per-channel-peer" (lub per-account-channel-peer dla kanałów z wieloma kontami) dla współdzielonych skrzynek odbiorczych.
Dotyczy to utwardzania współdzielonych/wspólnych skrzynek odbiorczych. Jedna Gateway współdzielona przez wzajemnie nieufnych/wrogich operatorów nie jest zalecaną konfiguracją; rozdziel granice zaufania przy użyciu osobnych gateway (lub osobnych użytkowników systemu operacyjnego/hostów).
Emituje także security.trust_model.multi_user_heuristic, gdy konfiguracja sugeruje prawdopodobny ruch wejściowy od współdzielonych użytkowników (na przykład otwarte zasady wiadomości prywatnych/grup, skonfigurowane cele grupowe lub reguły nadawców z wildcard), i przypomina, że domyślny model zaufania OpenClaw to osobisty asystent.
W przypadku celowo współdzielonych konfiguracji audyt zaleca sandboxowanie wszystkich sesji, utrzymywanie dostępu do systemu plików w zakresie workspace i niewykorzystywanie na tym runtime tożsamości ani poświadczeń osobistych/prywatnych.
Ostrzega także, gdy małe modele (<=300B) są używane bez sandboxa i z włączonymi narzędziami web/browser.
Dla ruchu przychodzącego webhook ostrzega, gdy hooks.token ponownie używa tokena Gateway, gdy hooks.token jest krótki, gdy hooks.path="/", gdy hooks.defaultSessionKey nie jest ustawione, gdy hooks.allowedAgentIds nie ma ograniczeń, gdy włączone są nadpisania sessionKey w żądaniach oraz gdy nadpisania są włączone bez hooks.allowedSessionKeyPrefixes.
Ostrzega także, gdy ustawienia Docker dla sandboxa są skonfigurowane, a tryb sandboxa jest wyłączony, gdy gateway.nodes.denyCommands używa nieskutecznych wpisów przypominających wzorce lub nieznanych wpisów (obsługiwane jest tylko dokładne dopasowanie nazw poleceń węzłów, a nie filtrowanie tekstu powłoki), gdy gateway.nodes.allowCommands jawnie włącza niebezpieczne polecenia węzłów, gdy globalne tools.profile="minimal" jest nadpisywane przez profile narzędzi agentów, gdy otwarte grupy udostępniają narzędzia runtime/systemu plików bez zabezpieczeń sandbox/workspace oraz gdy narzędzia zainstalowanych pluginów rozszerzeń mogą być osiągalne przy liberalnej polityce narzędzi.
Zgłasza także gateway.allowRealIpFallback=true (ryzyko spoofingu nagłówków przy błędnej konfiguracji proxy) oraz discovery.mdns.mode="full" (wyciek metadanych przez rekordy TXT mDNS).
Ostrzega także, gdy sandbox browser używa sieci Docker bridge bez sandbox.browser.cdpSourceRange.
Zgłasza także niebezpieczne tryby sieci Docker dla sandboxa (w tym host i dołączenia do przestrzeni nazw container:*).
Ostrzega również, gdy istniejące kontenery Docker sandbox browser mają brakujące/przestarzałe etykiety hash (na przykład kontenery sprzed migracji bez openclaw.browserConfigEpoch) i zaleca openclaw sandbox recreate --browser --all.
Ostrzega, gdy rekordy instalacji pluginów/hooków opartych na npm nie są przypięte, nie mają metadanych integralności lub odbiegają od aktualnie zainstalowanych wersji pakietów.
Ostrzega, gdy listy dozwolonych kanałów opierają się na zmiennych nazwach/emailach/tagach zamiast na stabilnych identyfikatorach (Discord, Slack, Google Chat, Microsoft Teams, Mattermost, zakresy IRC tam, gdzie dotyczy).
Ostrzega, gdy gateway.auth.mode="none" pozostawia HTTP API Gateway dostępne bez współdzielonego sekretu (/tools/invoke oraz dowolny włączony endpoint /v1/*).
Ustawienia z prefiksem dangerous/dangerously to jawne awaryjne nadpisania operatora; samo włączenie takiego ustawienia nie jest raportem o luce bezpieczeństwa.
Pełny spis niebezpiecznych parametrów znajduje się w sekcji „Insecure or dangerous flags summary” w Security.
Zachowanie SecretRef:
security auditrozwiązuje obsługiwane SecretRef w trybie tylko do odczytu dla swoich docelowych ścieżek.- Jeśli SecretRef nie jest dostępny w bieżącej ścieżce polecenia, audyt jest kontynuowany i zgłasza
secretDiagnostics(zamiast awarii). --tokeni--passwordnadpisują uwierzytelnianie deep-probe tylko dla tego wywołania polecenia; nie przepisują konfiguracji ani mapowań SecretRef.
Wyjście JSON
Użyj--json dla kontroli CI/polityk:
--fix i --json, wyjście zawiera zarówno akcje naprawcze, jak i raport końcowy:
Co zmienia --fix
--fix stosuje bezpieczne, deterministyczne działania naprawcze:
- przełącza typowe
groupPolicy="open"nagroupPolicy="allowlist"(w tym warianty kont w obsługiwanych kanałach) - gdy zasada grup WhatsApp zostaje przełączona na
allowlist, inicjalizujegroupAllowFromna podstawie zapisanego plikuallowFrom, jeśli ta lista istnieje, a konfiguracja nie definiuje jużallowFrom - ustawia
logging.redactSensitivez"off"na"tools" - zaostrza uprawnienia dla stanu/konfiguracji i typowych plików wrażliwych
(
credentials/*.json,auth-profiles.json,sessions.json, sesyjne*.jsonl) - zaostrza także uprawnienia plików include konfiguracji wskazywanych z
openclaw.json - używa
chmodna hostach POSIX oraz resetówicaclsw Windows
--fix nie:
- rotuje tokenów/haseł/kluczy API
- wyłącza narzędzi (
gateway,cron,execitd.) - nie zmienia opcji bindowania/uwierzytelniania/ekspozycji sieciowej gateway
- nie usuwa ani nie przepisuje pluginów/Skills