Gateway
Comprobaciones de auditoría de seguridad
openclaw security audit emite hallazgos estructurados identificados por checkId. Esta
página es el catálogo de referencia para esos ID. Para consultar el modelo de amenazas de alto nivel
y las recomendaciones de refuerzo, consulte Seguridad.
Valores de checkId de alta señal que probablemente verá en despliegues reales (no
exhaustivo):
checkId |
Severidad | Por qué importa | Clave/ruta principal de corrección | Corrección automática |
|---|---|---|---|---|
fs.state_dir.perms_world_writable |
crítica | Otros usuarios/procesos pueden modificar todo el estado de OpenClaw | permisos del sistema de archivos en ~/.openclaw |
sí |
fs.state_dir.perms_group_writable |
advertencia | Los usuarios del grupo pueden modificar todo el estado de OpenClaw | permisos del sistema de archivos en ~/.openclaw |
sí |
fs.state_dir.perms_readable |
advertencia | El directorio de estado es legible por otros | permisos del sistema de archivos en ~/.openclaw |
sí |
fs.state_dir.symlink |
advertencia | El destino del directorio de estado se convierte en otro límite de confianza | disposición del sistema de archivos del directorio de estado | no |
fs.config.perms_writable |
crítica | Otros pueden cambiar la política/configuración de autenticación/herramientas | permisos del sistema de archivos en ~/.openclaw/openclaw.json |
sí |
fs.config.symlink |
advertencia | Los archivos de configuración con enlaces simbólicos no admiten escrituras y añaden otro límite de confianza | reemplazar por un archivo de configuración normal o apuntar OPENCLAW_CONFIG_PATH al archivo real |
no |
fs.config.perms_group_readable |
advertencia | Los usuarios del grupo pueden leer tokens/configuraciones | permisos del sistema de archivos en el archivo de configuración | sí |
fs.config.perms_world_readable |
crítica | La configuración puede exponer tokens/configuraciones | permisos del sistema de archivos en el archivo de configuración | sí |
fs.config_include.perms_writable |
crítica | Otros pueden modificar el archivo incluido de configuración | permisos del archivo incluido referenciado desde openclaw.json |
sí |
fs.config_include.perms_group_readable |
advertencia | Los usuarios del grupo pueden leer secretos/configuraciones incluidos | permisos del archivo incluido referenciado desde openclaw.json |
sí |
fs.config_include.perms_world_readable |
crítica | Los secretos/configuraciones incluidos son legibles por todos | permisos del archivo incluido referenciado desde openclaw.json |
sí |
fs.auth_profiles.perms_writable |
crítica | Otros pueden inyectar o reemplazar credenciales de modelo almacenadas | permisos de agents/<agentId>/agent/auth-profiles.json |
sí |
fs.auth_profiles.perms_readable |
advertencia | Otros pueden leer claves de API y tokens de OAuth | permisos de agents/<agentId>/agent/auth-profiles.json |
sí |
fs.credentials_dir.perms_writable |
crítica | Otros pueden modificar el estado de emparejamiento/credenciales de canales | permisos del sistema de archivos en ~/.openclaw/credentials |
sí |
fs.credentials_dir.perms_readable |
advertencia | Otros pueden leer el estado de credenciales de canales | permisos del sistema de archivos en ~/.openclaw/credentials |
sí |
fs.sessions_store.perms_readable |
advertencia | Otros pueden leer transcripciones/metadatos de sesiones | permisos del almacén de sesiones | sí |
fs.log_file.perms_readable |
advertencia | Otros pueden leer registros redactados pero aún sensibles | permisos del archivo de registro del Gateway | sí |
fs.synced_dir |
advertencia | El estado/configuración en iCloud/Dropbox/Drive amplía la exposición de tokens/transcripciones | mover la configuración/estado fuera de carpetas sincronizadas | no |
gateway.bind_no_auth |
crítica | Enlace remoto sin secreto compartido | gateway.bind, gateway.auth.* |
no |
gateway.loopback_no_auth |
crítica | El local loopback con proxy inverso puede quedar sin autenticación | gateway.auth.*, configuración del proxy |
no |
gateway.trusted_proxies_missing |
advertencia | Hay encabezados de proxy inverso presentes pero no son de confianza | gateway.trustedProxies |
no |
gateway.http.no_auth |
advertencia/crítica | Las API HTTP del Gateway son accesibles con auth.mode="none" |
gateway.auth.mode, gateway.http.endpoints.* |
no |
gateway.http.session_key_override_enabled |
información | Los llamadores de la API HTTP pueden sobrescribir sessionKey |
gateway.http.allowSessionKeyOverride |
no |
gateway.tools_invoke_http.dangerous_allow |
advertencia/crítica | Vuelve a habilitar herramientas peligrosas sobre la API HTTP | gateway.tools.allow |
no |
gateway.nodes.allow_commands_dangerous |
advertencia/crítica | Habilita comandos de Node de alto impacto (cámara/pantalla/contactos/calendario/SMS) | gateway.nodes.allowCommands |
no |
gateway.nodes.deny_commands_ineffective |
advertencia | Las entradas de denegación con forma de patrón no coinciden con texto de shell ni grupos | gateway.nodes.denyCommands |
no |
gateway.tailscale_funnel |
crítica | Exposición a internet público | gateway.tailscale.mode |
no |
gateway.tailscale_serve |
información | La exposición a tailnet está habilitada mediante Serve | gateway.tailscale.mode |
no |
gateway.control_ui.allowed_origins_required |
crítica | Control UI no local loopback sin lista de permitidos explícita de orígenes del navegador | gateway.controlUi.allowedOrigins |
no |
gateway.control_ui.allowed_origins_wildcard |
advertencia/crítica | allowedOrigins=["*"] deshabilita la lista de permitidos de orígenes del navegador |
gateway.controlUi.allowedOrigins |
no |
gateway.control_ui.host_header_origin_fallback |
advertencia/crítica | Habilita el origen alternativo basado en el encabezado Host (degradación del endurecimiento contra DNS rebinding) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback |
no |
gateway.control_ui.insecure_auth |
advertencia | Alternancia de compatibilidad de autenticación insegura habilitada | gateway.controlUi.allowInsecureAuth |
no |
gateway.control_ui.device_auth_disabled |
crítica | Deshabilita la comprobación de identidad del dispositivo | gateway.controlUi.dangerouslyDisableDeviceAuth |
no |
gateway.real_ip_fallback_enabled |
advertencia/crítica | Confiar en el origen alternativo X-Real-IP puede permitir suplantación de IP de origen mediante una mala configuración del proxy |
gateway.allowRealIpFallback, gateway.trustedProxies |
no |
gateway.token_too_short |
advertencia | Un token compartido corto es más fácil de atacar por fuerza bruta | gateway.auth.token |
no |
gateway.auth_no_rate_limit |
advertencia | La autenticación expuesta sin limitación de frecuencia aumenta el riesgo de fuerza bruta | gateway.auth.rateLimit |
no |
gateway.trusted_proxy_auth |
crítica | La identidad del proxy se convierte ahora en el límite de autenticación | gateway.auth.mode="trusted-proxy" |
no |
gateway.trusted_proxy_no_proxies |
crítica | La autenticación de proxy de confianza sin IP de proxy de confianza no es segura | gateway.trustedProxies |
no |
gateway.trusted_proxy_no_user_header |
crítica | La autenticación de proxy de confianza no puede resolver la identidad del usuario de forma segura | gateway.auth.trustedProxy.userHeader |
no |
gateway.trusted_proxy_no_allowlist |
advertencia | La autenticación de proxy de confianza acepta cualquier usuario autenticado aguas arriba | gateway.auth.trustedProxy.allowUsers |
no |
gateway.trusted_proxy_allow_loopback |
warn | La autenticación de proxy de confianza acepta fuentes de proxy loopback permitidas explícitamente | gateway.auth.trustedProxy.allowLoopback |
no |
gateway.probe_auth_secretref_unavailable |
warn | El sondeo profundo no pudo resolver SecretRefs de autenticación en esta ruta de comando | fuente de autenticación de sondeo profundo / disponibilidad de SecretRef | no |
gateway.probe_failed |
warn/critical | Falló el sondeo en vivo del Gateway | alcanzabilidad/autenticación del gateway | no |
discovery.mdns_full_mode |
warn/critical | El modo completo de mDNS anuncia metadatos cliPath/sshPort en la red local |
discovery.mdns.mode, gateway.bind |
no |
config.insecure_or_dangerous_flags |
warn | Cualquier marca de depuración insegura/peligrosa habilitada | varias claves (ver detalle del hallazgo) | no |
config.secrets.gateway_password_in_config |
warn | La contraseña del Gateway se almacena directamente en la configuración | gateway.auth.password |
no |
config.secrets.hooks_token_in_config |
warn | El token bearer del hook se almacena directamente en la configuración | hooks.token |
no |
hooks.token_reuse_gateway_token |
critical | El token de entrada del hook también desbloquea la autenticación del Gateway | hooks.token, gateway.auth.token |
no |
hooks.token_too_short |
warn | Fuerza bruta más fácil en la entrada del hook | hooks.token |
no |
hooks.default_session_key_unset |
warn | Las ejecuciones del agente de hook se distribuyen en sesiones por solicitud generadas | hooks.defaultSessionKey |
no |
hooks.allowed_agent_ids_unrestricted |
warn/critical | Los llamadores de hook autenticados pueden enrutar a cualquier agente configurado | hooks.allowedAgentIds |
no |
hooks.request_session_key_enabled |
warn/critical | El llamador externo puede elegir sessionKey | hooks.allowRequestSessionKey |
no |
hooks.request_session_key_prefixes_missing |
warn/critical | Sin límite en las formas de clave de sesión externas | hooks.allowedSessionKeyPrefixes |
no |
hooks.path_root |
critical | La ruta del hook es /, lo que facilita que la entrada colisione o se enrute mal |
hooks.path |
no |
hooks.installs_unpinned_npm_specs |
warn | Los registros de instalación de hooks no están fijados a especificaciones npm inmutables | metadatos de instalación de hooks | no |
hooks.installs_missing_integrity |
warn | Los registros de instalación de hooks carecen de metadatos de integridad | metadatos de instalación de hooks | no |
hooks.installs_version_drift |
warn | Los registros de instalación de hooks se desvían de los paquetes instalados | metadatos de instalación de hooks | no |
logging.redact_off |
warn | Los valores sensibles se filtran a los registros/estado | logging.redactSensitive |
yes |
browser.control_invalid_config |
warn | La configuración de control del navegador no es válida antes del runtime | browser.* |
no |
browser.control_no_auth |
critical | Control del navegador expuesto sin autenticación por token/contraseña | gateway.auth.* |
no |
browser.remote_cdp_http |
warn | CDP remoto sobre HTTP plano carece de cifrado de transporte | perfil del navegador cdpUrl |
no |
browser.remote_cdp_private_host |
warn | CDP remoto apunta a un host privado/interno | perfil del navegador cdpUrl, browser.ssrfPolicy.* |
no |
sandbox.docker_config_mode_off |
warn | Configuración de Docker del sandbox presente pero inactiva | agents.*.sandbox.mode |
no |
sandbox.bind_mount_non_absolute |
warn | Los montajes bind relativos pueden resolverse de forma impredecible | agents.*.sandbox.docker.binds[] |
no |
sandbox.dangerous_bind_mount |
critical | El montaje bind del sandbox apunta a rutas bloqueadas del sistema, credenciales o socket de Docker | agents.*.sandbox.docker.binds[] |
no |
sandbox.dangerous_network_mode |
critical | La red Docker del sandbox usa el modo de unión de namespace host o container:* |
agents.*.sandbox.docker.network |
no |
sandbox.dangerous_seccomp_profile |
critical | El perfil seccomp del sandbox debilita el aislamiento del contenedor | agents.*.sandbox.docker.securityOpt |
no |
sandbox.dangerous_apparmor_profile |
critical | El perfil AppArmor del sandbox debilita el aislamiento del contenedor | agents.*.sandbox.docker.securityOpt |
no |
sandbox.browser_cdp_bridge_unrestricted |
warn | El puente de navegador del sandbox está expuesto sin restricción de rango de origen | sandbox.browser.cdpSourceRange |
no |
sandbox.browser_container.non_loopback_publish |
critical | El contenedor de navegador existente publica CDP en interfaces que no son loopback | configuración de publicación del contenedor de navegador del sandbox | no |
sandbox.browser_container.hash_label_missing |
warn | El contenedor de navegador existente es anterior a las etiquetas de hash de configuración actuales | openclaw sandbox recreate --browser --all |
no |
sandbox.browser_container.hash_epoch_stale |
warn | El contenedor de navegador existente es anterior a la época de configuración de navegador actual | openclaw sandbox recreate --browser --all |
no |
tools.exec.host_sandbox_no_sandbox_defaults |
warn | exec host=sandbox falla de forma cerrada cuando el sandbox está desactivado |
tools.exec.host, agents.defaults.sandbox.mode |
no |
tools.exec.host_sandbox_no_sandbox_agents |
warn | exec host=sandbox por agente falla de forma cerrada cuando el sandbox está desactivado |
agents.list[].tools.exec.host, agents.list[].sandbox.mode |
no |
tools.exec.security_full_configured |
warn/critical | La ejecución en host se está ejecutando con security="full" |
tools.exec.security, agents.list[].tools.exec.security |
no |
tools.exec.auto_allow_skills_enabled |
warn | Las aprobaciones de ejecución confían implícitamente en los binarios de Skills | ~/.openclaw/exec-approvals.json |
no |
tools.exec.allowlist_interpreter_without_strict_inline_eval |
warn | Las listas de permitidos de intérpretes permiten evaluación inline sin reaprobación forzada | tools.exec.strictInlineEval, agents.list[].tools.exec.strictInlineEval, lista de permitidos de aprobaciones de ejecución |
no |
tools.exec.safe_bins_interpreter_unprofiled |
warn | Binarios de intérprete/runtime en safeBins sin perfiles explícitos amplían el riesgo de ejecución |
tools.exec.safeBins, tools.exec.safeBinProfiles, agents.list[].tools.exec.* |
no |
tools.exec.safe_bins_broad_behavior |
warn | Herramientas de comportamiento amplio en safeBins debilitan el modelo de confianza de bajo riesgo con filtro de stdin |
tools.exec.safeBins, agents.list[].tools.exec.safeBins |
no |
tools.exec.safe_bin_trusted_dirs_risky |
warn | safeBinTrustedDirs incluye directorios mutables o riesgosos |
tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs |
no |
skills.workspace.symlink_escape |
warn | El skills/**/SKILL.md del espacio de trabajo se resuelve fuera de la raíz del espacio de trabajo (desviación de cadena de symlinks) |
estado del sistema de archivos de skills/** del espacio de trabajo |
no |
plugins.extensions_no_allowlist |
warn | Los plugins se instalan sin una lista de permitidos de plugins explícita | plugins.allowlist |
no |
plugins.installs_unpinned_npm_specs |
advertencia | Los registros del índice de Plugin no están fijados a especificaciones npm inmutables | metadatos de instalación de Plugin | no |
plugins.installs_missing_integrity |
advertencia | Los registros del índice de Plugin carecen de metadatos de integridad | metadatos de instalación de Plugin | no |
plugins.installs_version_drift |
advertencia | Los registros del índice de Plugin difieren de los paquetes instalados | metadatos de instalación de Plugin | no |
plugins.code_safety |
advertencia/crítico | El escaneo del código del Plugin encontró patrones sospechosos o peligrosos | código de Plugin / origen de instalación | no |
plugins.code_safety.entry_path |
advertencia | La ruta de entrada del Plugin apunta a ubicaciones ocultas o de node_modules |
entry del manifiesto del Plugin |
no |
plugins.code_safety.entry_escape |
crítico | La entrada del Plugin escapa del directorio del Plugin | entry del manifiesto del Plugin |
no |
plugins.code_safety.scan_failed |
advertencia | No se pudo completar el escaneo del código del Plugin | ruta del Plugin / entorno de escaneo | no |
skills.code_safety |
advertencia/crítico | Los metadatos/código del instalador de Skills contienen patrones sospechosos o peligrosos | origen de instalación de skill | no |
skills.code_safety.scan_failed |
advertencia | No se pudo completar el escaneo del código de skill | entorno de escaneo de skill | no |
security.exposure.open_channels_with_exec |
advertencia/crítico | Las salas compartidas/públicas pueden alcanzar agentes con exec habilitado | channels.*.dmPolicy, channels.*.groupPolicy, tools.exec.*, agents.list[].tools.exec.* |
no |
security.exposure.open_groups_with_elevated |
crítico | Los grupos abiertos + herramientas elevadas crean rutas de inyección de prompts de alto impacto | channels.*.groupPolicy, tools.elevated.* |
no |
security.exposure.open_groups_with_runtime_or_fs |
crítico/advertencia | Los grupos abiertos pueden alcanzar herramientas de comandos/archivos sin protecciones de sandbox/espacio de trabajo | channels.*.groupPolicy, tools.profile/deny, tools.fs.workspaceOnly, agents.*.sandbox.mode |
no |
security.trust_model.multi_user_heuristic |
advertencia | La configuración parece multiusuario mientras que el modelo de confianza del Gateway es de asistente personal | separar límites de confianza, o refuerzo de usuario compartido (sandbox.mode, denegación de herramientas/alcance al espacio de trabajo) |
no |
tools.profile_minimal_overridden |
advertencia | Las anulaciones del agente eluden el perfil mínimo global | agents.list[].tools.profile |
no |
plugins.tools_reachable_permissive_policy |
advertencia | Herramientas de extensión alcanzables en contextos permisivos | tools.profile + permitir/denegar herramientas |
no |
models.legacy |
advertencia | Las familias de modelos heredadas siguen configuradas | selección de modelo | no |
models.weak_tier |
advertencia | Los modelos configurados están por debajo de los niveles recomendados actualmente | selección de modelo | no |
models.small_params |
crítico/información | Los modelos pequeños + superficies de herramientas inseguras aumentan el riesgo de inyección | elección de modelo + política de sandbox/herramientas | no |
summary.attack_surface |
información | Resumen acumulado de la postura de autenticación, canales, herramientas y exposición | múltiples claves (ver detalle del hallazgo) | no |