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 zalecenia dotyczące wzmacniania zabezpieczeń znajdziesz w Bezpieczeństwo.
Wartości checkId o wysokiej istotności, które najprawdopodobniej zobaczysz w rzeczywistych wdrożeniach (lista nie
jest wyczerpująca):
checkId |
Ważność | Dlaczego to ma znaczenie | Główny klucz/ścieżka naprawy | Automatyczna naprawa |
|---|---|---|---|---|
fs.state_dir.perms_world_writable |
krytyczna | Inni użytkownicy/procesy mogą modyfikować pełny stan OpenClaw | uprawnienia systemu plików dla ~/.openclaw |
tak |
fs.state_dir.perms_group_writable |
ostrzeżenie | Użytkownicy grupy mogą modyfikować pełny 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 |
krytyczna | Inni mogą zmieniać zasady/konfigurację uwierzytelniania i narzędzi | uprawnienia systemu plików dla ~/.openclaw/openclaw.json |
tak |
fs.config.symlink |
ostrzeżenie | Pliki konfiguracji jako dowiązania symboliczne nie są obsługiwane przy zapisie i dodają kolejną granicę zaufania | zastąp zwykłym plikiem konfiguracji albo skieruj OPENCLAW_CONFIG_PATH na prawdziwy plik |
nie |
fs.config.perms_group_readable |
ostrzeżenie | Użytkownicy grupy mogą odczytywać tokeny/ustawienia konfiguracji | uprawnienia systemu plików dla pliku konfiguracji | tak |
fs.config.perms_world_readable |
krytyczna | Konfiguracja może ujawniać tokeny/ustawienia | uprawnienia systemu plików dla pliku konfiguracji | tak |
fs.config_include.perms_writable |
krytyczna | Plik dołączany do konfiguracji może być modyfikowany przez innych | uprawnienia pliku dołączanego wskazanego z 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 z openclaw.json |
tak |
fs.config_include.perms_world_readable |
krytyczna | Dołączone sekrety/ustawienia są czytelne dla wszystkich | uprawnienia pliku dołączanego wskazanego z openclaw.json |
tak |
fs.auth_profiles.perms_writable |
krytyczna | Inni mogą wstrzykiwać lub zastępować zapisane dane uwierzytelniające modelu | 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 |
krytyczna | Inni mogą modyfikować stan parowania kanału/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łu | 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 dzienniki | uprawnienia pliku dziennika Gateway | tak |
fs.synced_dir |
ostrzeżenie | Stan/konfiguracja w iCloud/Dropbox/Drive zwiększa ekspozycję tokenów/transkrypcji | przenieś konfigurację/stan poza synchronizowane foldery | nie |
gateway.bind_no_auth |
krytyczna | Zdalne powiązanie bez współdzielonego sekretu | gateway.bind, gateway.auth.* |
nie |
gateway.loopback_no_auth |
krytyczna | local loopback przez reverse proxy może stać się nieuwierzytelniony | gateway.auth.*, konfiguracja proxy |
nie |
gateway.trusted_proxies_missing |
ostrzeżenie | Nagłówki reverse proxy są obecne, ale nie są zaufane | gateway.trustedProxies |
nie |
gateway.http.no_auth |
ostrzeżenie/krytyczna | Interfejsy API HTTP Gateway osiągalne 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/krytyczna | Ponownie włącza niebezpieczne narzędzia przez API HTTP | gateway.tools.allow |
nie |
gateway.nodes.allow_commands_dangerous |
ostrzeżenie/krytyczna | Włącza polecenia węzłów o dużym wpływie (kamera/ekran/kontakty/kalendarz/SMS) | gateway.nodes.allowCommands |
nie |
gateway.nodes.deny_commands_ineffective |
ostrzeżenie | Wpisy odmowy podobne do wzorców nie dopasowują tekstu powłoki ani grup | gateway.nodes.denyCommands |
nie |
gateway.tailscale_funnel |
krytyczna | Ekspozycja w publicznym internecie | gateway.tailscale.mode |
nie |
gateway.tailscale_serve |
informacja | Ekspozycja w tailnecie jest włączona przez Serve | gateway.tailscale.mode |
nie |
gateway.control_ui.allowed_origins_required |
krytyczna | Control UI poza local loopback bez jawnej listy dozwolonych źródeł przeglądarki | gateway.controlUi.allowedOrigins |
nie |
gateway.control_ui.allowed_origins_wildcard |
ostrzeżenie/krytyczna | allowedOrigins=["*"] wyłącza listę dozwolonych źródeł przeglądarki |
gateway.controlUi.allowedOrigins |
nie |
gateway.control_ui.host_header_origin_fallback |
ostrzeżenie/krytyczna | Włącza awaryjne użycie źródła z nagłówka Host (obniżenie ochrony przed DNS rebindingiem) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback |
nie |
gateway.control_ui.insecure_auth |
ostrzeżenie | Włączony przełącznik zgodności dla niezabezpieczonego uwierzytelniania | gateway.controlUi.allowInsecureAuth |
nie |
gateway.control_ui.device_auth_disabled |
krytyczna | Wyłącza sprawdzanie tożsamości urządzenia | gateway.controlUi.dangerouslyDisableDeviceAuth |
nie |
gateway.real_ip_fallback_enabled |
ostrzeżenie/krytyczna | Ufanie awaryjnemu X-Real-IP może umożliwić podszywanie się pod źródłowy adres IP przez błędną konfigurację proxy |
gateway.allowRealIpFallback, gateway.trustedProxies |
nie |
gateway.token_too_short |
ostrzeżenie | Krótki token współdzielony łatwiej złamać metodą brute force | gateway.auth.token |
nie |
gateway.auth_no_rate_limit |
ostrzeżenie | Ujawnione uwierzytelnianie bez ograniczania częstotliwości zwiększa ryzyko brute force | gateway.auth.rateLimit |
nie |
gateway.trusted_proxy_auth |
krytyczna | Tożsamość proxy staje się teraz granicą uwierzytelniania | gateway.auth.mode="trusted-proxy" |
nie |
gateway.trusted_proxy_no_proxies |
krytyczna | Uwierzytelnianie przez zaufane proxy bez zaufanych adresów IP proxy jest niebezpieczne | gateway.trustedProxies |
nie |
gateway.trusted_proxy_no_user_header |
krytyczna | 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 |
warn | Uwierzytelnianie przez zaufany serwer proxy akceptuje jawnie dozwolone źródła proxy z adresu loopback | gateway.auth.trustedProxy.allowLoopback |
nie |
gateway.probe_auth_secretref_unavailable |
warn | Głęboka sonda nie mogła rozwiązać SecretRefs uwierzytelniania w tej ścieżce polecenia | źródło uwierzytelniania deep-probe / dostępność SecretRef | nie |
gateway.probe_failed |
warn/critical | Sonda Gateway na żywo nie powiodła się | osiągalność/uwierzytelnianie Gateway | nie |
discovery.mdns_full_mode |
warn/critical | Pełny tryb mDNS rozgłasza metadane cliPath/sshPort w sieci lokalnej |
discovery.mdns.mode, gateway.bind |
nie |
config.insecure_or_dangerous_flags |
warn | Włączono dowolne niezabezpieczone/niebezpieczne flagi debugowania | wiele kluczy (zobacz szczegóły ustalenia) | nie |
config.secrets.gateway_password_in_config |
warn | Hasło Gateway jest przechowywane bezpośrednio w konfiguracji | gateway.auth.password |
nie |
config.secrets.hooks_token_in_config |
warn | Token bearer hooka jest przechowywany bezpośrednio w konfiguracji | hooks.token |
nie |
hooks.token_reuse_gateway_token |
critical | Token wejścia hooka odblokowuje również uwierzytelnianie Gateway | hooks.token, gateway.auth.token |
nie |
hooks.token_too_short |
warn | Łatwiejszy brute force na wejściu hooka | hooks.token |
nie |
hooks.default_session_key_unset |
warn | Uruchomienia agenta hooka rozchodzą się do generowanych sesji na żądanie | hooks.defaultSessionKey |
nie |
hooks.allowed_agent_ids_unrestricted |
warn/critical | Uwierzytelnieni wywołujący hooki mogą kierować do dowolnego skonfigurowanego agenta | hooks.allowedAgentIds |
nie |
hooks.request_session_key_enabled |
warn/critical | Zewnętrzny wywołujący może wybrać sessionKey | hooks.allowRequestSessionKey |
nie |
hooks.request_session_key_prefixes_missing |
warn/critical | Brak ograniczenia kształtów zewnętrznych kluczy sesji | hooks.allowedSessionKeyPrefixes |
nie |
hooks.path_root |
critical | Ścieżka hooka to /, co ułatwia kolizję lub błędne trasowanie wejścia |
hooks.path |
nie |
hooks.installs_unpinned_npm_specs |
warn | Rekordy instalacji hooków nie są przypięte do niezmiennych specyfikacji npm | metadane instalacji hooka | nie |
hooks.installs_missing_integrity |
warn | Rekordy instalacji hooków nie mają metadanych integralności | metadane instalacji hooka | nie |
hooks.installs_version_drift |
warn | Rekordy instalacji hooków odbiegają od zainstalowanych pakietów | metadane instalacji hooka | nie |
logging.redact_off |
warn | Wrażliwe wartości wyciekają do logów/statusu | logging.redactSensitive |
tak |
browser.control_invalid_config |
warn | Konfiguracja sterowania przeglądarką jest nieprawidłowa przed uruchomieniem | browser.* |
nie |
browser.control_no_auth |
critical | Sterowanie przeglądarką jest wystawione bez uwierzytelniania tokenem/hasłem | gateway.auth.* |
nie |
browser.remote_cdp_http |
warn | Zdalny CDP przez zwykły HTTP nie ma szyfrowania transportu | profil przeglądarki cdpUrl |
nie |
browser.remote_cdp_private_host |
warn | Zdalny CDP wskazuje prywatny/wewnętrzny host | profil przeglądarki cdpUrl, browser.ssrfPolicy.* |
nie |
sandbox.docker_config_mode_off |
warn | Konfiguracja Docker sandboxa jest obecna, ale nieaktywna | agents.*.sandbox.mode |
nie |
sandbox.bind_mount_non_absolute |
warn | Względne montowania bind mogą rozwiązywać się nieprzewidywalnie | agents.*.sandbox.docker.binds[] |
nie |
sandbox.dangerous_bind_mount |
critical | Montowanie bind sandboxa wskazuje zablokowane ścieżki systemowe, poświadczeń lub gniazda Docker | agents.*.sandbox.docker.binds[] |
nie |
sandbox.dangerous_network_mode |
critical | Sieć Docker sandboxa używa trybu host lub trybu dołączania do przestrzeni nazw container:* |
agents.*.sandbox.docker.network |
nie |
sandbox.dangerous_seccomp_profile |
critical | Profil seccomp sandboxa osłabia izolację kontenera | agents.*.sandbox.docker.securityOpt |
nie |
sandbox.dangerous_apparmor_profile |
critical | Profil AppArmor sandboxa osłabia izolację kontenera | agents.*.sandbox.docker.securityOpt |
nie |
sandbox.browser_cdp_bridge_unrestricted |
warn | Most przeglądarki sandboxa jest wystawiony bez ograniczenia zakresu źródeł | sandbox.browser.cdpSourceRange |
nie |
sandbox.browser_container.non_loopback_publish |
critical | 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 |
warn | Istniejący kontener przeglądarki powstał przed obecnymi etykietami hashy konfiguracji | openclaw sandbox recreate --browser --all |
nie |
sandbox.browser_container.hash_epoch_stale |
warn | Istniejący kontener przeglądarki powstał przed obecną epoką konfiguracji przeglądarki | openclaw sandbox recreate --browser --all |
nie |
tools.exec.host_sandbox_no_sandbox_defaults |
warn | exec host=sandbox bezpiecznie odmawia działania, gdy sandbox jest wyłączony |
tools.exec.host, agents.defaults.sandbox.mode |
nie |
tools.exec.host_sandbox_no_sandbox_agents |
warn | Per-agent exec host=sandbox bezpiecznie odmawia działania, gdy sandbox jest wyłączony |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
nie |
tools.exec.security_full_configured |
warn/critical | Wykonywanie na hoście działa z security="full" |
tools.exec.security, agents.list[].tools.exec.security |
nie |
tools.exec.auto_allow_skills_enabled |
warn | Zgody na exec ufają domyślnie binariom Skills | ~/.openclaw/exec-approvals.json |
nie |
tools.exec.allowlist_interpreter_without_strict_inline_eval |
warn | Listy dozwolonych interpreterów pozwalają na inline eval bez wymuszonej ponownej zgody | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, lista dozwolonych zgód exec |
nie |
tools.exec.safe_bins_interpreter_unprofiled |
warn | Binaria interpreterów/środowisk uruchomieniowych w safeBins bez jawnych profili poszerzają ryzyko exec |
tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* |
nie |
tools.exec.safe_bins_broad_behavior |
warn | Narzędzia o szerokim zachowaniu w safeBins osłabiają model zaufania filtra stdin o niskim ryzyku |
tools.exec.safeBins, agents.list[].tools.exec.safeBins |
nie |
tools.exec.safe_bin_trusted_dirs_risky |
warn | safeBinTrustedDirs obejmuje modyfikowalne lub ryzykowne katalogi |
tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs |
nie |
skills.workspace.symlink_escape |
warn | skills/**/SKILL.md w obszarze roboczym rozwiązuje się poza katalogiem głównym obszaru roboczego (dryf łańcucha symlinków) |
stan systemu plików skills/** w obszarze roboczym |
nie |
plugins.extensions_no_allowlist |
warn | Pluginy są instalowane bez jawnej listy dozwolonych pluginów | plugins.allowlist |
nie |
plugins.installs_unpinned_npm_specs |
warn | Rekordy indeksu Plugin nie są przypięte do niezmiennych specyfikacji npm | metadane instalacji Plugin | no |
plugins.installs_missing_integrity |
warn | Rekordy indeksu Plugin nie zawierają metadanych integralności | metadane instalacji Plugin | no |
plugins.installs_version_drift |
warn | Rekordy indeksu Plugin odbiegają od zainstalowanych pakietów | metadane instalacji Plugin | no |
plugins.code_safety |
warn/critical | Skanowanie kodu Plugin wykryło podejrzane lub niebezpieczne wzorce | kod Plugin / źródło instalacji | no |
plugins.code_safety.entry_path |
warn | Ścieżka wejściowa Plugin wskazuje ukryte lokalizacje lub lokalizacje node_modules |
manifest Plugin entry |
no |
plugins.code_safety.entry_escape |
critical | Wejście Plugin wychodzi poza katalog Plugin | manifest Plugin entry |
no |
plugins.code_safety.scan_failed |
warn | Skanowanie kodu Plugin nie mogło zostać ukończone | ścieżka Plugin / środowisko skanowania | no |
skills.code_safety |
warn/critical | Metadane/kod instalatora Skills zawierają podejrzane lub niebezpieczne wzorce | źródło instalacji Skills | no |
skills.code_safety.scan_failed |
warn | Skanowanie kodu Skills nie mogło zostać ukończone | środowisko skanowania Skills | no |
security.exposure.open_channels_with_exec |
warn/critical | Współdzielone/publiczne pokoje mogą uzyskać dostęp do agentów z włączonym exec | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* |
no |
security.exposure.open_groups_with_elevated |
critical | Otwarte grupy + podwyższone narzędzia tworzą ścieżki prompt injection o dużym wpływie | channels.*.groupPolicy, tools.elevated.* |
no |
security.exposure.open_groups_with_runtime_or_fs |
critical/warn | Otwarte grupy mogą uzyskać dostęp do narzędzi poleceń/plików bez zabezpieczeń sandbox/workspace | channels.*.groupPolicy, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode |
no |
security.trust_model.multi_user_heuristic |
warn | Konfiguracja wygląda na wieloużytkownikową, podczas gdy model zaufania Gateway jest modelem osobistego asystenta | rozdziel granice zaufania albo wzmocnij zabezpieczenia dla współdzielonego użytkownika (sandbox.mode, odmowa narzędzi/ograniczenie zakresu do workspace) |
no |
tools.profile_minimal_overridden |
warn | Nadpisania agenta omijają globalny profil minimalny | agents.list[].tools.profile |
no |
plugins.tools_reachable_permissive_policy |
warn | Narzędzia rozszerzeń są osiągalne w kontekstach permisywnych | tools.profile + zezwolenia/odmowy narzędzi |
no |
models.legacy |
warn | Starsze rodziny modeli nadal są skonfigurowane | wybór modelu | no |
models.weak_tier |
warn | Skonfigurowane modele są poniżej obecnie zalecanych poziomów | wybór modelu | no |
models.small_params |
critical/info | Małe modele + niebezpieczne powierzchnie narzędzi zwiększają ryzyko wstrzyknięcia | wybór modelu + zasady sandbox/narzędzi | no |
summary.attack_surface |
info | Zbiorcze podsumowanie stanu uwierzytelniania, kanałów, narzędzi i ekspozycji | wiele kluczy (zobacz szczegóły ustalenia) | no |