Gateway
Verificações de auditoria de segurança
openclaw security audit emite constatações estruturadas identificadas por checkId. Esta
página é o catálogo de referência para esses IDs. Para o modelo de ameaças
de alto nível e as orientações de reforço de segurança, consulte Segurança.
Valores de checkId de alta relevância que você provavelmente verá em implantações reais (não
exaustivo):
checkId |
Gravidade | Por que importa | Chave/caminho principal da correção | Correção automática |
|---|---|---|---|---|
fs.state_dir.perms_world_writable |
crítico | Outros usuários/processos podem modificar todo o estado do OpenClaw | permissões do sistema de arquivos em ~/.openclaw |
sim |
fs.state_dir.perms_group_writable |
aviso | Usuários do grupo podem modificar todo o estado do OpenClaw | permissões do sistema de arquivos em ~/.openclaw |
sim |
fs.state_dir.perms_readable |
aviso | O diretório de estado é legível por outros | permissões do sistema de arquivos em ~/.openclaw |
sim |
fs.state_dir.symlink |
aviso | O destino do diretório de estado se torna outro limite de confiança | layout do sistema de arquivos do diretório de estado | não |
fs.config.perms_writable |
crítico | Outros podem alterar política/configuração de autenticação/ferramentas | permissões do sistema de arquivos em ~/.openclaw/openclaw.json |
sim |
fs.config.symlink |
aviso | Arquivos de configuração com symlink não têm suporte para gravações e adicionam outro limite de confiança | substituir por um arquivo de configuração regular ou apontar OPENCLAW_CONFIG_PATH para o arquivo real |
não |
fs.config.perms_group_readable |
aviso | Usuários do grupo podem ler tokens/configurações | permissões do sistema de arquivos no arquivo de configuração | sim |
fs.config.perms_world_readable |
crítico | A configuração pode expor tokens/configurações | permissões do sistema de arquivos no arquivo de configuração | sim |
fs.config_include.perms_writable |
crítico | O arquivo incluído de configuração pode ser modificado por outros | permissões do arquivo incluído referenciado em openclaw.json |
sim |
fs.config_include.perms_group_readable |
aviso | Usuários do grupo podem ler segredos/configurações incluídos | permissões do arquivo incluído referenciado em openclaw.json |
sim |
fs.config_include.perms_world_readable |
crítico | Segredos/configurações incluídos são legíveis por todos | permissões do arquivo incluído referenciado em openclaw.json |
sim |
fs.auth_profiles.perms_writable |
crítico | Outros podem injetar ou substituir credenciais de modelo armazenadas | permissões de agents/<agentId>/agent/auth-profiles.json |
sim |
fs.auth_profiles.perms_readable |
aviso | Outros podem ler chaves de API e tokens OAuth | permissões de agents/<agentId>/agent/auth-profiles.json |
sim |
fs.credentials_dir.perms_writable |
crítico | Outros podem modificar o estado de pareamento/credenciais do canal | permissões do sistema de arquivos em ~/.openclaw/credentials |
sim |
fs.credentials_dir.perms_readable |
aviso | Outros podem ler o estado de credenciais do canal | permissões do sistema de arquivos em ~/.openclaw/credentials |
sim |
fs.sessions_store.perms_readable |
aviso | Outros podem ler transcrições/metadados de sessões | permissões do armazenamento de sessões | sim |
fs.log_file.perms_readable |
aviso | Outros podem ler logs redigidos, mas ainda sensíveis | permissões do arquivo de log do Gateway | sim |
fs.synced_dir |
aviso | Estado/configuração no iCloud/Dropbox/Drive amplia a exposição de tokens/transcrições | mover configuração/estado para fora de pastas sincronizadas | não |
gateway.bind_no_auth |
crítico | Bind remoto sem segredo compartilhado | gateway.bind, gateway.auth.* |
não |
gateway.loopback_no_auth |
crítico | loopback com proxy reverso pode ficar sem autenticação | gateway.auth.*, configuração do proxy |
não |
gateway.trusted_proxies_missing |
aviso | Cabeçalhos de proxy reverso estão presentes, mas não são confiáveis | gateway.trustedProxies |
não |
gateway.http.no_auth |
aviso/crítico | APIs HTTP do Gateway acessíveis com auth.mode="none" |
gateway.auth.mode, gateway.http.endpoints.* |
não |
gateway.http.session_key_override_enabled |
informação | Chamadores da API HTTP podem substituir sessionKey |
gateway.http.allowSessionKeyOverride |
não |
gateway.tools_invoke_http.dangerous_allow |
aviso/crítico | Reativa ferramentas perigosas pela API HTTP | gateway.tools.allow |
não |
gateway.nodes.allow_commands_dangerous |
aviso/crítico | Ativa comandos de node de alto impacto (câmera/tela/contatos/calendário/SMS) | gateway.nodes.allowCommands |
não |
gateway.nodes.deny_commands_ineffective |
aviso | Entradas de negação semelhantes a padrões não correspondem a texto de shell ou grupos | gateway.nodes.denyCommands |
não |
gateway.tailscale_funnel |
crítico | Exposição à internet pública | gateway.tailscale.mode |
não |
gateway.tailscale_serve |
informação | Exposição à tailnet está ativada via Serve | gateway.tailscale.mode |
não |
gateway.control_ui.allowed_origins_required |
crítico | Control UI fora de loopback sem lista de permissões explícita para origens de navegador | gateway.controlUi.allowedOrigins |
não |
gateway.control_ui.allowed_origins_wildcard |
aviso/crítico | allowedOrigins=["*"] desativa a lista de permissões de origem do navegador |
gateway.controlUi.allowedOrigins |
não |
gateway.control_ui.host_header_origin_fallback |
aviso/crítico | Ativa fallback de origem por cabeçalho Host (redução do endurecimento contra DNS rebinding) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback |
não |
gateway.control_ui.insecure_auth |
aviso | Alternância de compatibilidade com autenticação insegura ativada | gateway.controlUi.allowInsecureAuth |
não |
gateway.control_ui.device_auth_disabled |
crítico | Desativa a verificação de identidade do dispositivo | gateway.controlUi.dangerouslyDisableDeviceAuth |
não |
gateway.real_ip_fallback_enabled |
aviso/crítico | Confiar no fallback de X-Real-IP pode permitir falsificação de IP de origem por configuração incorreta de proxy |
gateway.allowRealIpFallback, gateway.trustedProxies |
não |
gateway.token_too_short |
aviso | Token compartilhado curto é mais fácil de forçar por tentativa e erro | gateway.auth.token |
não |
gateway.auth_no_rate_limit |
aviso | Autenticação exposta sem limitação de taxa aumenta o risco de força bruta | gateway.auth.rateLimit |
não |
gateway.trusted_proxy_auth |
crítico | A identidade do proxy agora se torna o limite de autenticação | gateway.auth.mode="trusted-proxy" |
não |
gateway.trusted_proxy_no_proxies |
crítico | Autenticação por proxy confiável sem IPs de proxy confiáveis é insegura | gateway.trustedProxies |
não |
gateway.trusted_proxy_no_user_header |
crítico | Autenticação por proxy confiável não consegue resolver a identidade do usuário com segurança | gateway.auth.trustedProxy.userHeader |
não |
gateway.trusted_proxy_no_allowlist |
aviso | Autenticação por proxy confiável aceita qualquer usuário upstream autenticado | gateway.auth.trustedProxy.allowUsers |
não |
gateway.trusted_proxy_allow_loopback |
aviso | A autenticação de proxy confiável aceita origens de proxy de loopback permitidas explicitamente | gateway.auth.trustedProxy.allowLoopback |
não |
gateway.probe_auth_secretref_unavailable |
aviso | A sondagem profunda não conseguiu resolver SecretRefs de autenticação neste caminho de comando | origem de autenticação da sondagem profunda / disponibilidade de SecretRef | não |
gateway.probe_failed |
aviso/crítico | A sondagem ativa do Gateway falhou | acessibilidade/autenticação do gateway | não |
discovery.mdns_full_mode |
aviso/crítico | O modo completo de mDNS anuncia metadados cliPath/sshPort na rede local |
discovery.mdns.mode, gateway.bind |
não |
config.insecure_or_dangerous_flags |
aviso | Quaisquer flags de depuração inseguras/perigosas estão habilitadas | várias chaves (veja os detalhes da constatação) | não |
config.secrets.gateway_password_in_config |
aviso | A senha do Gateway está armazenada diretamente na configuração | gateway.auth.password |
não |
config.secrets.hooks_token_in_config |
aviso | O token de portador do hook está armazenado diretamente na configuração | hooks.token |
não |
hooks.token_reuse_gateway_token |
crítico | O token de entrada do hook também desbloqueia a autenticação do Gateway | hooks.token, gateway.auth.token |
não |
hooks.token_too_short |
aviso | Força bruta mais fácil na entrada do hook | hooks.token |
não |
hooks.default_session_key_unset |
aviso | Execuções do agente de hook se expandem para sessões geradas por solicitação | hooks.defaultSessionKey |
não |
hooks.allowed_agent_ids_unrestricted |
aviso/crítico | Chamadores de hook autenticados podem encaminhar para qualquer agente configurado | hooks.allowedAgentIds |
não |
hooks.request_session_key_enabled |
aviso/crítico | O chamador externo pode escolher sessionKey | hooks.allowRequestSessionKey |
não |
hooks.request_session_key_prefixes_missing |
aviso/crítico | Não há limite para os formatos de chaves de sessão externas | hooks.allowedSessionKeyPrefixes |
não |
hooks.path_root |
crítico | O caminho do hook é /, tornando a entrada mais fácil de colidir ou ser encaminhada incorretamente |
hooks.path |
não |
hooks.installs_unpinned_npm_specs |
aviso | Registros de instalação de hook não estão fixados a especificações npm imutáveis | metadados de instalação de hook | não |
hooks.installs_missing_integrity |
aviso | Registros de instalação de hook não têm metadados de integridade | metadados de instalação de hook | não |
hooks.installs_version_drift |
aviso | Registros de instalação de hook divergem dos pacotes instalados | metadados de instalação de hook | não |
logging.redact_off |
aviso | Valores sensíveis vazam para logs/status | logging.redactSensitive |
sim |
browser.control_invalid_config |
aviso | A configuração de controle do navegador é inválida antes do runtime | browser.* |
não |
browser.control_no_auth |
crítico | Controle do navegador exposto sem autenticação por token/senha | gateway.auth.* |
não |
browser.remote_cdp_http |
aviso | CDP remoto sobre HTTP simples não tem criptografia de transporte | perfil do navegador cdpUrl |
não |
browser.remote_cdp_private_host |
aviso | CDP remoto aponta para um host privado/interno | perfil do navegador cdpUrl, browser.ssrfPolicy.* |
não |
sandbox.docker_config_mode_off |
aviso | Configuração Docker do sandbox presente, mas inativa | agents.*.sandbox.mode |
não |
sandbox.bind_mount_non_absolute |
aviso | Montagens bind relativas podem ser resolvidas de forma imprevisível | agents.*.sandbox.docker.binds[] |
não |
sandbox.dangerous_bind_mount |
crítico | Montagem bind do sandbox aponta para caminhos bloqueados de sistema, credenciais ou socket Docker | agents.*.sandbox.docker.binds[] |
não |
sandbox.dangerous_network_mode |
crítico | A rede Docker do sandbox usa modo host ou container:* de junção a namespace |
agents.*.sandbox.docker.network |
não |
sandbox.dangerous_seccomp_profile |
crítico | Perfil seccomp do sandbox enfraquece o isolamento do contêiner | agents.*.sandbox.docker.securityOpt |
não |
sandbox.dangerous_apparmor_profile |
crítico | Perfil AppArmor do sandbox enfraquece o isolamento do contêiner | agents.*.sandbox.docker.securityOpt |
não |
sandbox.browser_cdp_bridge_unrestricted |
aviso | A ponte do navegador do sandbox é exposta sem restrição de intervalo de origem | sandbox.browser.cdpSourceRange |
não |
sandbox.browser_container.non_loopback_publish |
crítico | Contêiner de navegador existente publica CDP em interfaces que não são loopback | configuração de publicação do contêiner de sandbox do navegador | não |
sandbox.browser_container.hash_label_missing |
aviso | Contêiner de navegador existente é anterior aos rótulos atuais de hash de configuração | openclaw sandbox recreate --browser --all |
não |
sandbox.browser_container.hash_epoch_stale |
aviso | Contêiner de navegador existente é anterior à época atual de configuração do navegador | openclaw sandbox recreate --browser --all |
não |
tools.exec.host_sandbox_no_sandbox_defaults |
aviso | exec host=sandbox falha fechado quando o sandbox está desativado |
tools.exec.host, agents.defaults.sandbox.mode |
não |
tools.exec.host_sandbox_no_sandbox_agents |
aviso | exec host=sandbox por agente falha fechado quando o sandbox está desativado |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
não |
tools.exec.security_full_configured |
aviso/crítico | A execução no host está rodando com security="full" |
tools.exec.security, agents.list[].tools.exec.security |
não |
tools.exec.fs_tools_disabled_but_exec_enabled |
aviso | A política de ferramentas de sistema de arquivos não torna a execução de shell somente leitura | tools.deny, agents.list[].tools.deny, agents.*.sandbox.workspaceAccess |
não |
tools.exec.auto_allow_skills_enabled |
aviso | Aprovações de execução confiam implicitamente em binários de Skills | ~/.openclaw/exec-approvals.json |
não |
tools.exec.allowlist_interpreter_without_strict_inline_eval |
aviso | Listas de permissão de interpretadores permitem eval inline sem nova aprovação forçada | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, lista de permissão de aprovações de execução |
não |
tools.exec.safe_bins_interpreter_unprofiled |
aviso | Binários de interpretador/runtime em safeBins sem perfis explícitos ampliam o risco de execução |
tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* |
não |
tools.exec.safe_bins_broad_behavior |
aviso | Ferramentas de comportamento amplo em safeBins enfraquecem o modelo de confiança de baixo risco com filtro de stdin |
tools.exec.safeBins, agents.list[].tools.exec.safeBins |
não |
tools.exec.safe_bin_trusted_dirs_risky |
aviso | safeBinTrustedDirs inclui diretórios mutáveis ou arriscados |
tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs |
não |
skills.workspace.symlink_escape |
aviso | skills/**/SKILL.md do workspace resolve para fora da raiz do workspace (desvio de cadeia de symlink) |
estado do sistema de arquivos skills/** do workspace |
não |
plugins.extensions_no_allowlist |
warn | Plugins são instalados sem uma allowlist explícita de plugins | plugins.allowlist |
no |
plugins.installs_unpinned_npm_specs |
warn | Registros do índice de Plugin não são fixados a specs npm imutáveis | metadados de instalação do plugin | no |
plugins.installs_missing_integrity |
warn | Registros do índice de Plugin não têm metadados de integridade | metadados de instalação do plugin | no |
plugins.installs_version_drift |
warn | Registros do índice de Plugin divergem dos pacotes instalados | metadados de instalação do plugin | no |
plugins.code_safety |
warn/critical | A varredura de código do Plugin encontrou padrões suspeitos ou perigosos | código do plugin / origem da instalação | no |
plugins.code_safety.entry_path |
warn | O caminho de entrada do Plugin aponta para locais ocultos ou de node_modules |
entry do manifesto do plugin |
no |
plugins.code_safety.entry_escape |
critical | A entrada do Plugin escapa do diretório do plugin | entry do manifesto do plugin |
no |
plugins.code_safety.scan_failed |
warn | A varredura de código do Plugin não pôde ser concluída | caminho do plugin / ambiente de varredura | no |
skills.code_safety |
warn/critical | Metadados/código do instalador de Skill contém padrões suspeitos ou perigosos | origem da instalação da skill | no |
skills.code_safety.scan_failed |
warn | A varredura de código da skill não pôde ser concluída | ambiente de varredura da skill | no |
security.exposure.open_channels_with_exec |
warn/critical | Salas compartilhadas/públicas podem alcançar agentes com exec habilitado | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* |
no |
security.exposure.open_groups_with_elevated |
critical | Grupos abertos + ferramentas elevadas criam caminhos de injeção de prompt de alto impacto | channels.*.groupPolicy, tools.elevated.* |
no |
security.exposure.open_groups_with_runtime_or_fs |
critical/warn | Grupos abertos podem alcançar ferramentas de comando/arquivo sem proteções de sandbox/workspace | channels.*.groupPolicy, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode |
no |
security.trust_model.multi_user_heuristic |
warn | A configuração parece multiusuário, enquanto o modelo de confiança do gateway é de assistente pessoal | separar limites de confiança, ou reforço para usuário compartilhado (sandbox.mode, negação de ferramenta/escopo de workspace) |
no |
tools.profile_minimal_overridden |
warn | Sobrescritas de agente contornam o perfil mínimo global | agents.list[].tools.profile |
no |
plugins.tools_reachable_permissive_policy |
warn | Ferramentas de extensão alcançáveis em contextos permissivos | tools.profile + permissão/negação de ferramenta |
no |
models.legacy |
warn | Famílias de modelos legadas ainda estão configuradas | seleção de modelo | no |
models.weak_tier |
warn | Modelos configurados estão abaixo dos níveis recomendados atuais | seleção de modelo | no |
models.small_params |
critical/info | Modelos pequenos + superfícies de ferramenta inseguras aumentam o risco de injeção | escolha de modelo + política de sandbox/ferramenta | no |
summary.attack_surface |
info | Resumo agregado da postura de autenticação, canal, ferramenta e exposição | várias chaves (veja os detalhes do achado) | no |