Gateway
Kontrole audytu bezpieczeństwa
openclaw security audit emituje ustrukturyzowane ustalenia identyfikowane przez checkId. Ta
strona jest katalogiem referencyjnym dla tych identyfikatorów. Ogólny model zagrożeń
i wskazówki dotyczące wzmacniania zabezpieczeń znajdziesz w Bezpieczeństwo.
Wartości checkId o wysokiej wartości diagnostycznej, które najprawdopodobniej zobaczysz w rzeczywistych wdrożeniach (lista
nie jest wyczerpująca):
checkId |
Ważność | Dlaczego to ważne | Główny klucz/ścieżka poprawki | Automatyczna poprawka |
|---|---|---|---|---|
fs.state_dir.perms_world_writable |
krytyczny | Inni użytkownicy/procesy mogą modyfikować cały stan OpenClaw | uprawnienia systemu plików dla ~/.openclaw |
tak |
fs.state_dir.perms_group_writable |
ostrzeżenie | Użytkownicy grupy mogą modyfikować cały stan OpenClaw | uprawnienia systemu plików dla ~/.openclaw |
tak |
fs.state_dir.perms_readable |
ostrzeżenie | Katalog stanu jest czytelny dla innych | uprawnienia systemu plików dla ~/.openclaw |
tak |
fs.state_dir.symlink |
ostrzeżenie | Cel katalogu stanu staje się kolejną granicą zaufania | układ systemu plików katalogu stanu | nie |
fs.config.perms_writable |
krytyczny | Inni mogą zmieniać zasady uwierzytelniania/narzędzi/konfiguracji | uprawnienia systemu plików dla ~/.openclaw/openclaw.json |
tak |
fs.config.symlink |
ostrzeżenie | Dowiązane symbolicznie pliki konfiguracyjne nie są obsługiwane przy zapisie i dodają kolejną granicę zaufania | zastąp zwykłym plikiem konfiguracyjnym lub skieruj OPENCLAW_CONFIG_PATH na rzeczywisty plik |
nie |
fs.config.perms_group_readable |
ostrzeżenie | Użytkownicy grupy mogą odczytywać tokeny/ustawienia konfiguracji | uprawnienia systemu plików dla pliku konfiguracyjnego | tak |
fs.config.perms_world_readable |
krytyczny | Konfiguracja może ujawniać tokeny/ustawienia | uprawnienia systemu plików dla pliku konfiguracyjnego | tak |
fs.config_include.perms_writable |
krytyczny | Plik dołączany do konfiguracji może być modyfikowany przez innych | uprawnienia pliku dołączanego wskazanego w openclaw.json |
tak |
fs.config_include.perms_group_readable |
ostrzeżenie | Użytkownicy grupy mogą odczytywać dołączone sekrety/ustawienia | uprawnienia pliku dołączanego wskazanego w openclaw.json |
tak |
fs.config_include.perms_world_readable |
krytyczny | Dołączone sekrety/ustawienia są czytelne dla wszystkich | uprawnienia pliku dołączanego wskazanego w openclaw.json |
tak |
fs.auth_profiles.perms_writable |
krytyczny | Inni mogą wstrzykiwać lub zastępować zapisane dane uwierzytelniające modeli | uprawnienia agents/<agentId>/agent/auth-profiles.json |
tak |
fs.auth_profiles.perms_readable |
ostrzeżenie | Inni mogą odczytywać klucze API i tokeny OAuth | uprawnienia agents/<agentId>/agent/auth-profiles.json |
tak |
fs.credentials_dir.perms_writable |
krytyczny | Inni mogą modyfikować stan parowania kanałów/danych uwierzytelniających | uprawnienia systemu plików dla ~/.openclaw/credentials |
tak |
fs.credentials_dir.perms_readable |
ostrzeżenie | Inni mogą odczytywać stan danych uwierzytelniających kanałów | uprawnienia systemu plików dla ~/.openclaw/credentials |
tak |
fs.sessions_store.perms_readable |
ostrzeżenie | Inni mogą odczytywać transkrypcje/metadane sesji | uprawnienia magazynu sesji | tak |
fs.log_file.perms_readable |
ostrzeżenie | Inni mogą odczytywać zredagowane, ale nadal wrażliwe logi | uprawnienia pliku logu Gateway | tak |
fs.synced_dir |
ostrzeżenie | Stan/konfiguracja w iCloud/Dropbox/Drive rozszerza ekspozycję tokenów/transkrypcji | przenieś konfigurację/stan poza synchronizowane foldery | nie |
gateway.bind_no_auth |
krytyczny | Zdalne wiązanie bez współdzielonego sekretu | gateway.bind, gateway.auth.* |
nie |
gateway.loopback_no_auth |
krytyczny | loopback za odwrotnym proxy może stać się nieuwierzytelniony | gateway.auth.*, konfiguracja proxy |
nie |
gateway.trusted_proxies_missing |
ostrzeżenie | Nagłówki odwrotnego proxy są obecne, ale niezaufane | gateway.trustedProxies |
nie |
gateway.http.no_auth |
ostrzeżenie/krytyczny | Interfejsy API HTTP Gateway są dostępne przy auth.mode="none" |
gateway.auth.mode, gateway.http.endpoints.* |
nie |
gateway.http.session_key_override_enabled |
informacja | Wywołujący API HTTP mogą nadpisywać sessionKey |
gateway.http.allowSessionKeyOverride |
nie |
gateway.tools_invoke_http.dangerous_allow |
ostrzeżenie/krytyczny | Ponownie włącza niebezpieczne narzędzia przez API HTTP | gateway.tools.allow |
nie |
gateway.nodes.allow_commands_dangerous |
ostrzeżenie/krytyczny | Włącza polecenia Node o dużym wpływie (kamera/ekran/kontakty/kalendarz/SMS) | gateway.nodes.allowCommands |
nie |
gateway.nodes.deny_commands_ineffective |
ostrzeżenie | Wpisy blokujące podobne do wzorców nie dopasowują tekstu powłoki ani grup | gateway.nodes.denyCommands |
nie |
gateway.tailscale_funnel |
krytyczny | Ekspozycja na publiczny internet | gateway.tailscale.mode |
nie |
gateway.tailscale_serve |
informacja | Ekspozycja tailnet jest włączona przez Serve | gateway.tailscale.mode |
nie |
gateway.control_ui.allowed_origins_required |
krytyczny | Control UI poza loopback bez jawnej listy dozwolonych originów przeglądarki | gateway.controlUi.allowedOrigins |
nie |
gateway.control_ui.allowed_origins_wildcard |
ostrzeżenie/krytyczny | allowedOrigins=["*"] wyłącza listę dozwolonych originów przeglądarki |
gateway.controlUi.allowedOrigins |
nie |
gateway.control_ui.host_header_origin_fallback |
ostrzeżenie/krytyczny | Włącza awaryjne użycie originu z nagłówka Host (osłabienie ochrony przed DNS rebindingiem) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback |
nie |
gateway.control_ui.insecure_auth |
ostrzeżenie | Włączono przełącznik zgodności dla niebezpiecznego uwierzytelniania | gateway.controlUi.allowInsecureAuth |
nie |
gateway.control_ui.device_auth_disabled |
krytyczny | Wyłącza sprawdzanie tożsamości urządzenia | gateway.controlUi.dangerouslyDisableDeviceAuth |
nie |
gateway.real_ip_fallback_enabled |
ostrzeżenie/krytyczny | Ufanie awaryjnemu X-Real-IP może umożliwić fałszowanie źródłowego adresu IP przez błędną konfigurację proxy |
gateway.allowRealIpFallback, gateway.trustedProxies |
nie |
gateway.token_too_short |
ostrzeżenie | Krótki współdzielony token łatwiej złamać metodą brute force | gateway.auth.token |
nie |
gateway.auth_no_rate_limit |
ostrzeżenie | Uwierzytelnianie wystawione bez limitowania częstotliwości zwiększa ryzyko brute force | gateway.auth.rateLimit |
nie |
gateway.trusted_proxy_auth |
krytyczny | Tożsamość proxy staje się teraz granicą uwierzytelniania | gateway.auth.mode="trusted-proxy" |
nie |
gateway.trusted_proxy_no_proxies |
krytyczny | Uwierzytelnianie przez zaufane proxy bez zaufanych adresów IP proxy jest niebezpieczne | gateway.trustedProxies |
nie |
gateway.trusted_proxy_no_user_header |
krytyczny | Uwierzytelnianie przez zaufane proxy nie może bezpiecznie ustalić tożsamości użytkownika | gateway.auth.trustedProxy.userHeader |
nie |
gateway.trusted_proxy_no_allowlist |
ostrzeżenie | Uwierzytelnianie przez zaufane proxy akceptuje dowolnego uwierzytelnionego użytkownika nadrzędnego | gateway.auth.trustedProxy.allowUsers |
nie |
gateway.trusted_proxy_allow_loopback |
ostrzeżenie | Uwierzytelnianie trusted-proxy akceptuje jawnie dozwolone źródła proxy loopback | gateway.auth.trustedProxy.allowLoopback |
nie |
gateway.probe_auth_secretref_unavailable |
ostrzeżenie | Głębokie sondowanie nie mogło rozwiązać auth SecretRefs w tej ścieżce polecenia | źródło auth deep-probe / dostępność SecretRef | nie |
gateway.probe_failed |
ostrzeżenie/krytyczne | Sondowanie Gateway na żywo nie powiodło się | osiągalność/uwierzytelnianie Gateway | nie |
discovery.mdns_full_mode |
ostrzeżenie/krytyczne | Pełny tryb mDNS rozgłasza metadane cliPath/sshPort w sieci lokalnej |
discovery.mdns.mode, gateway.bind |
nie |
config.insecure_or_dangerous_flags |
ostrzeżenie | Włączono jakiekolwiek niebezpieczne/groźne flagi debugowania | wiele kluczy (zobacz szczegóły wyniku) | nie |
config.secrets.gateway_password_in_config |
ostrzeżenie | Hasło Gateway jest przechowywane bezpośrednio w konfiguracji | gateway.auth.password |
nie |
config.secrets.hooks_token_in_config |
ostrzeżenie | Token bearer hooka jest przechowywany bezpośrednio w konfiguracji | hooks.token |
nie |
hooks.token_reuse_gateway_token |
krytyczne | Token wejściowy hooka odblokowuje także uwierzytelnianie Gateway | hooks.token, gateway.auth.token |
nie |
hooks.token_too_short |
ostrzeżenie | Łatwiejszy brute force na wejściu hooka | hooks.token |
nie |
hooks.default_session_key_unset |
ostrzeżenie | Uruchomienia agenta hooka rozchodzą się do generowanych sesji per żądanie | hooks.defaultSessionKey |
nie |
hooks.allowed_agent_ids_unrestricted |
ostrzeżenie/krytyczne | Uwierzytelnieni wywołujący hooka mogą kierować do dowolnego skonfigurowanego agenta | hooks.allowedAgentIds |
nie |
hooks.request_session_key_enabled |
ostrzeżenie/krytyczne | Zewnętrzny wywołujący może wybrać sessionKey | hooks.allowRequestSessionKey |
nie |
hooks.request_session_key_prefixes_missing |
ostrzeżenie/krytyczne | Brak ograniczenia kształtów zewnętrznych kluczy sesji | hooks.allowedSessionKeyPrefixes |
nie |
hooks.path_root |
krytyczne | Ścieżka hooka to /, co ułatwia kolizję lub błędne trasowanie wejścia |
hooks.path |
nie |
hooks.installs_unpinned_npm_specs |
ostrzeżenie | Rekordy instalacji hooka nie są przypięte do niezmiennych specyfikacji npm | metadane instalacji hooka | nie |
hooks.installs_missing_integrity |
ostrzeżenie | Rekordy instalacji hooka nie mają metadanych integralności | metadane instalacji hooka | nie |
hooks.installs_version_drift |
ostrzeżenie | Rekordy instalacji hooka odbiegają od zainstalowanych pakietów | metadane instalacji hooka | nie |
logging.redact_off |
ostrzeżenie | Wartości poufne wyciekają do logów/statusu | logging.redactSensitive |
tak |
browser.control_invalid_config |
ostrzeżenie | Konfiguracja sterowania przeglądarką jest nieprawidłowa przed uruchomieniem | browser.* |
nie |
browser.control_no_auth |
krytyczne | Sterowanie przeglądarką jest wystawione bez uwierzytelniania tokenem/hasłem | gateway.auth.* |
nie |
browser.remote_cdp_http |
ostrzeżenie | Zdalny CDP przez zwykły HTTP nie ma szyfrowania transportu | profil przeglądarki cdpUrl |
nie |
browser.remote_cdp_private_host |
ostrzeżenie | Zdalny CDP wskazuje prywatny/wewnętrzny host | profil przeglądarki cdpUrl, browser.ssrfPolicy.* |
nie |
sandbox.docker_config_mode_off |
ostrzeżenie | Konfiguracja Docker sandboxa jest obecna, ale nieaktywna | agents.*.sandbox.mode |
nie |
sandbox.bind_mount_non_absolute |
ostrzeżenie | Względne montowania bind mogą rozwiązywać się nieprzewidywalnie | agents.*.sandbox.docker.binds[] |
nie |
sandbox.dangerous_bind_mount |
krytyczne | Montowanie bind sandboxa wskazuje zablokowane ścieżki systemowe, poświadczeń lub gniazda Docker | agents.*.sandbox.docker.binds[] |
nie |
sandbox.dangerous_network_mode |
krytyczne | Sieć Docker sandboxa używa trybu host lub trybu dołączania przestrzeni nazw container:* |
agents.*.sandbox.docker.network |
nie |
sandbox.dangerous_seccomp_profile |
krytyczne | Profil seccomp sandboxa osłabia izolację kontenera | agents.*.sandbox.docker.securityOpt |
nie |
sandbox.dangerous_apparmor_profile |
krytyczne | Profil AppArmor sandboxa osłabia izolację kontenera | agents.*.sandbox.docker.securityOpt |
nie |
sandbox.browser_cdp_bridge_unrestricted |
ostrzeżenie | Most przeglądarki sandboxa jest wystawiony bez ograniczenia zakresu źródeł | sandbox.browser.cdpSourceRange |
nie |
sandbox.browser_container.non_loopback_publish |
krytyczne | Istniejący kontener przeglądarki publikuje CDP na interfejsach innych niż loopback | konfiguracja publikowania kontenera sandboxa przeglądarki | nie |
sandbox.browser_container.hash_label_missing |
ostrzeżenie | Istniejący kontener przeglądarki pochodzi sprzed bieżących etykiet hash konfiguracji | openclaw sandbox recreate --browser --all |
nie |
sandbox.browser_container.hash_epoch_stale |
ostrzeżenie | Istniejący kontener przeglądarki pochodzi sprzed bieżącej epoki konfiguracji przeglądarki | openclaw sandbox recreate --browser --all |
nie |
tools.exec.host_sandbox_no_sandbox_defaults |
ostrzeżenie | exec host=sandbox zamyka się bezpiecznie, gdy sandbox jest wyłączony |
tools.exec.host, agents.defaults.sandbox.mode |
nie |
tools.exec.host_sandbox_no_sandbox_agents |
ostrzeżenie | Per-agent exec host=sandbox zamyka się bezpiecznie, gdy sandbox jest wyłączony |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
nie |
tools.exec.security_full_configured |
ostrzeżenie/krytyczne | Wykonywanie na hoście działa z security="full" |
tools.exec.security, agents.list[].tools.exec.security |
nie |
tools.exec.fs_tools_disabled_but_exec_enabled |
ostrzeżenie | Polityka narzędzi systemu plików nie sprawia, że wykonywanie powłoki jest tylko do odczytu | tools.deny, agents.list[].tools.deny, agents.*.sandbox.workspaceAccess |
nie |
tools.exec.auto_allow_skills_enabled |
ostrzeżenie | Zatwierdzenia wykonywania ufają binariom Skills niejawnie | ~/.openclaw/exec-approvals.json |
nie |
tools.exec.allowlist_interpreter_without_strict_inline_eval |
ostrzeżenie | Listy dozwolonych interpreterów pozwalają na inline eval bez wymuszonego ponownego zatwierdzenia | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, lista dozwolonych zatwierdzeń wykonywania |
nie |
tools.exec.safe_bins_interpreter_unprofiled |
ostrzeżenie | Binaria interpreterów/runtime w safeBins bez jawnych profili poszerzają ryzyko wykonywania |
tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* |
nie |
tools.exec.safe_bins_broad_behavior |
ostrzeżenie | Narzędzia o szerokim zachowaniu w safeBins osłabiają model zaufania niskiego ryzyka oparty na filtrze stdin |
tools.exec.safeBins, agents.list[].tools.exec.safeBins |
nie |
tools.exec.safe_bin_trusted_dirs_risky |
ostrzeżenie | safeBinTrustedDirs obejmuje modyfikowalne lub ryzykowne katalogi |
tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs |
nie |
skills.workspace.symlink_escape |
ostrzeżenie | Workspace skills/**/SKILL.md rozwiązuje się poza katalog główny workspace (dryf łańcucha dowiązań symbolicznych) |
stan systemu plików workspace skills/** |
nie |
plugins.extensions_no_allowlist |
ostrzeżenie | Pluginy są zainstalowane bez jawnej listy dozwolonych pluginów | plugins.allowlist |
nie |
plugins.installs_unpinned_npm_specs |
ostrzeżenie | Rekordy indeksu pluginów nie są przypięte do niezmiennych specyfikacji npm | metadane instalacji pluginu | nie |
plugins.installs_missing_integrity |
ostrzeżenie | Rekordy indeksu pluginów nie zawierają metadanych integralności | metadane instalacji pluginu | nie |
plugins.installs_version_drift |
ostrzeżenie | Rekordy indeksu pluginów odbiegają od zainstalowanych pakietów | metadane instalacji pluginu | nie |
plugins.code_safety |
ostrzeżenie/krytyczny | Skanowanie kodu pluginu wykryło podejrzane lub niebezpieczne wzorce | kod pluginu / źródło instalacji | nie |
plugins.code_safety.entry_path |
ostrzeżenie | Ścieżka wejścia pluginu wskazuje ukryte lokalizacje lub lokalizacje node_modules |
manifest pluginu entry |
nie |
plugins.code_safety.entry_escape |
krytyczny | Wejście pluginu wychodzi poza katalog pluginu | manifest pluginu entry |
nie |
plugins.code_safety.scan_failed |
ostrzeżenie | Skanowanie kodu pluginu nie mogło się zakończyć | ścieżka pluginu / środowisko skanowania | nie |
skills.code_safety |
ostrzeżenie/krytyczny | Metadane/kod instalatora umiejętności zawiera podejrzane lub niebezpieczne wzorce | źródło instalacji umiejętności | nie |
skills.code_safety.scan_failed |
ostrzeżenie | Skanowanie kodu umiejętności nie mogło się zakończyć | środowisko skanowania umiejętności | nie |
security.exposure.open_channels_with_exec |
ostrzeżenie/krytyczny | Współdzielone/publiczne pokoje mogą uzyskiwać dostęp do agentów z włączonym exec | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* |
nie |
security.exposure.open_groups_with_elevated |
krytyczny | Otwarte grupy + narzędzia z podwyższonymi uprawnieniami tworzą ścieżki prompt injection o dużym wpływie | channels.*.groupPolicy, tools.elevated.* |
nie |
security.exposure.open_groups_with_runtime_or_fs |
krytyczny/ostrzeżenie | Otwarte grupy mogą uzyskiwać dostęp do narzędzi poleceń/plików bez zabezpieczeń piaskownicy/przestrzeni roboczej | channels.*.groupPolicy, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode |
nie |
security.trust_model.multi_user_heuristic |
ostrzeżenie | Konfiguracja wygląda na wieloużytkownikową, podczas gdy model zaufania gateway jest modelem osobistego asystenta | rozdzielenie granic zaufania albo wzmocnienia dla współdzielonego użytkownika (sandbox.mode, odmowa narzędzi / zakres przestrzeni roboczej) |
nie |
tools.profile_minimal_overridden |
ostrzeżenie | Nadpisania agenta omijają globalny profil minimalny | agents.list[].tools.profile |
nie |
plugins.tools_reachable_permissive_policy |
ostrzeżenie | Narzędzia rozszerzeń są osiągalne w kontekstach permisywnych | tools.profile + zezwalanie/odmawianie narzędzi |
nie |
models.legacy |
ostrzeżenie | Starsze rodziny modeli nadal są skonfigurowane | wybór modelu | nie |
models.weak_tier |
ostrzeżenie | Skonfigurowane modele są poniżej obecnie zalecanych poziomów | wybór modelu | nie |
models.small_params |
krytyczny/informacja | Małe modele + niebezpieczne powierzchnie narzędzi zwiększają ryzyko injection | wybór modelu + polityka piaskownicy/narzędzi | nie |
summary.attack_surface |
informacja | Zbiorcze podsumowanie stanu uwierzytelniania, kanałów, narzędzi i ekspozycji | wiele kluczy (zobacz szczegóły ustalenia) | nie |