Verificaciones de auditoría de seguridad
openclaw security audit emite hallazgos estructurados claveados por checkId. Esta
página es el catálogo de referencia de esos IDs. Para el modelo de amenazas de alto nivel
y la guía de endurecimiento, consulte Seguridad.
Valores de checkId de alta señal que es más probable que vea en despliegues reales (no
exhaustivo):
checkId | Severidad | Por qué es importante | Clave/ruta de corrección principal | Corrección automática |
|---|---|---|---|---|
fs.state_dir.perms_world_writable | crítica | Otros usuarios/procesos pueden modificar el estado completo de OpenClaw | permisos de sistema de archivos en ~/.openclaw | sí |
fs.state_dir.perms_group_writable | advertencia | Los usuarios del grupo pueden modificar el estado completo de OpenClaw | permisos de sistema de archivos en ~/.openclaw | sí |
fs.state_dir.perms_readable | advertencia | El directorio de estado es legible por otros | permisos de 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 | diseño 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 de sistema de archivos en ~/.openclaw/openclaw.json | sí |
fs.config.symlink | advertencia | Los archivos de configuración enlazados simbólicamente no son compatibles con escrituras y agregan otro límite de confianza | reemplazar con 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 los tokens/configuración | permisos de sistema de archivos en el archivo de configuración | sí |
fs.config.perms_world_readable | crítica | La configuración puede exponer tokens/configuración | permisos de sistema de archivos en el archivo de configuración | sí |
fs.config_include.perms_writable | crítica | El archivo incluido en la configuración puede ser modificado por otros | permisos de archivo de inclusión referenciados desde openclaw.json | sí |
fs.config_include.perms_group_readable | advertencia | Los usuarios del grupo pueden leer los secretos/configuración incluidos | permisos de archivo de inclusión referenciados desde openclaw.json | sí |
fs.config_include.perms_world_readable | crítica | Los secretos/configuración incluidos son legibles por todos | permisos de include-file referenciados desde openclaw.json | sí |
fs.auth_profiles.perms_writable | crítico | Otros pueden inyectar o reemplazar credenciales de modelo almacenadas | permisos agents/<agentId>/agent/auth-profiles.json | sí |
fs.auth_profiles.perms_readable | advertencia | Otros pueden leer claves de API y tokens de OAuth | permisos agents/<agentId>/agent/auth-profiles.json | sí |
fs.credentials_dir.perms_writable | crítico | Otros pueden modificar el estado de emparejamiento/credenciales del canal | permisos del sistema de archivos en ~/.openclaw/credentials | sí |
fs.credentials_dir.perms_readable | advertencia | Otros pueden leer el estado de las credenciales del canal | permisos del sistema de archivos en ~/.openclaw/credentials | sí |
fs.sessions_store.perms_readable | advertencia | Otros pueden leer transcripciones/metadatos de sesión | permisos del almacenamiento de sesión | sí |
fs.log_file.perms_readable | advertencia | Otros pueden leer registros redactados pero aún sensibles | permisos del archivo de registro de la puerta de enlace | sí |
fs.synced_dir | advertencia | El estado/configuración en iCloud/Dropbox/Drive amplía la exposición de tokens/transcripciones | mover configuración/estado fuera de carpetas sincronizadas | no |
gateway.bind_no_auth | crítico | Enlace remoto sin secreto compartido | gateway.bind, gateway.auth.* | no |
gateway.loopback_no_auth | crítico | El bucle invertido (loopback) con proxy inverso puede volverse sin autenticar | gateway.auth.*, configuración del proxy | no |
gateway.trusted_proxies_missing | advertencia | Los encabezados de proxy inverso están presentes pero no son de confianza | gateway.trustedProxies | no |
gateway.http.no_auth | advertencia/crítico | Las API HTTP de la puerta de enlace son accesibles con auth.mode="none" | gateway.auth.mode, gateway.http.endpoints.*, plugins.entries.admin-http-rpc | no |
gateway.http.session_key_override_enabled | información | Los autores de llamadas de la API HTTP pueden anular sessionKey | gateway.http.allowSessionKeyOverride | no |
gateway.tools_invoke_http.dangerous_allow | advertencia/crítico | Reactiva herramientas peligrosas a través de la API HTTP | gateway.tools.allow | no |
gateway.nodes.allow_commands_dangerous | advertencia/crítico | Habilita comandos de nodo de alto impacto (cámara/pantalla/contactos/calendario/SMS) | gateway.nodes.allowCommands | no |
gateway.nodes.deny_commands_ineffective | advertencia | Las entradas de denegación tipo patrón no coinciden con el texto de shell o grupos | gateway.nodes.denyCommands | no |
gateway.tailscale_funnel | critical | Public internet exposure | gateway.tailscale.mode | no |
gateway.tailscale_serve | info | Tailnet exposure is enabled via Serve | gateway.tailscale.mode | no |
gateway.control_ui.allowed_origins_required | critical | Non-loopback Control UI without explicit browser-origin allowlist | gateway.controlUi.allowedOrigins | no |
gateway.control_ui.allowed_origins_wildcard | warn/critical | allowedOrigins=["*"] deshabilita la lista blanca de orígenes del navegador | gateway.controlUi.allowedOrigins | no |
gateway.control_ui.host_header_origin_fallback | warn/critical | Enables Host-header origin fallback (DNS rebinding hardening downgrade) | gateway.controlUi.dangerouslyAllowHostHeaderOriginFallback | no |
gateway.control_ui.insecure_auth | warn | Insecure-auth compatibility toggle enabled | gateway.controlUi.allowInsecureAuth | no |
gateway.control_ui.device_auth_disabled | critical | Disables device identity check | gateway.controlUi.dangerouslyDisableDeviceAuth | no |
gateway.real_ip_fallback_enabled | warn/critical | Confiar en la alternativa X-Real-IP puede habilitar la suplantación de IP de origen mediante una configuración incorrecta del proxy | gateway.allowRealIpFallback, gateway.trustedProxies | no |
gateway.token_too_short | warn | Short shared token is easier to brute force | gateway.auth.token | no |
gateway.auth_no_rate_limit | warn | Exposed auth without rate limiting increases brute-force risk | gateway.auth.rateLimit | no |
gateway.trusted_proxy_auth | critical | Proxy identity now becomes the auth boundary | gateway.auth.mode="trusted-proxy" | no |
gateway.trusted_proxy_no_proxies | critical | Trusted-proxy auth without trusted proxy IPs is unsafe | gateway.trustedProxies | no |
gateway.trusted_proxy_no_user_header | critical | Trusted-proxy auth cannot resolve user identity safely | gateway.auth.trustedProxy.userHeader | no |
gateway.trusted_proxy_no_allowlist | warn | Trusted-proxy auth accepts any authenticated upstream user | gateway.auth.trustedProxy.allowUsers | no |
gateway.trusted_proxy_allow_loopback | warn | La autenticación de proxy de confianza acepta fuentes de proxy de bucle invertido explícitamente permitidas | gateway.auth.trustedProxy.allowLoopback | no |
gateway.probe_auth_secretref_unavailable | advertir | El sondeo profundo no pudo resolver las referencias secretas 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 de la puerta de enlace | alcanzabilidad/autenticación de la puerta de enlace | no |
discovery.mdns_full_mode | advertir/crítico | El modo completo de mDNS anuncia los metadatos de cliPath/sshPort en la red local | discovery.mdns.mode, gateway.bind | no |
config.insecure_or_dangerous_flags | warn | Una bandera de depuración insegura/peligrosa está habilitada | clave nombrada en el detalle del hallazgo | no |
security.audit.suppressions.active | información | La salida de auditoría tiene supresiones configuradas y puede filtrarse | security.audit.suppressions | no |
config.secrets.gateway_password_in_config | advertir | La contraseña del Gateway se almacena directamente en la configuración | gateway.auth.password | no |
config.secrets.hooks_token_in_config | advertencia | El token bearer del Hook se almacena directamente en la configuración | hooks.token | no |
hooks.token_reuse_gateway_token | crítico | El token de entrada del Hook también desbloquea la autenticación del Gateway | hooks.token, gateway.auth.token | no |
hooks.token_too_short | advertir | Fuerza bruta más fácil en la entrada del Hook | hooks.token | no |
hooks.default_session_key_unset | advertencia | El agente de Hook ejecuta una distribución en sesiones generadas por solicitud | hooks.defaultSessionKey | no |
hooks.allowed_agent_ids_unrestricted | warn/critical | Los llamadores autenticados del Hook pueden enrutar a cualquier agente configurado | hooks.allowedAgentIds | no |
hooks.request_session_key_enabled | advertir/crítico | El llamador externo puede elegir sessionKey | hooks.allowRequestSessionKey | no |
hooks.request_session_key_prefixes_missing | advertencia/crítico | Sin límite en las formas de clave de sesión externa | hooks.allowedSessionKeyPrefixes | no |
hooks.path_root | crítico | La ruta del Hook es /, lo que facilita la colisión o el enrutamiento incorrecto de entrada | hooks.path | no |
hooks.installs_unpinned_npm_specs | warn | Los registros de instalación del Hook no están fijados a especificaciones npm inmutables | metadatos de instalación del hook | no |
hooks.installs_missing_integrity | warn | A los registros de instalación del Hook les faltan metadatos de integridad | metadatos de instalación de hook | no |
hooks.installs_version_drift | warn | Los registros de instalación del Hook difieren de los paquetes instalados | metadatos de instalación del hook | no |
logging.redact_off | advertencia | Valores sensibles se filtran a los registros/estado | logging.redactSensitive | sí |
browser.control_invalid_config | advertencia | La configuración de control del navegador no es válida antes del tiempo de ejecución | browser.* | no |
browser.control_no_auth | crítico | El control del navegador está expuesto sin autenticación de token/contraseña | gateway.auth.* | no |
browser.remote_cdp_http | advertencia | CDP remoto a través de HTTP sin cifrar carece de cifrado de transporte | perfil del navegador cdpUrl | no |
browser.remote_cdp_private_host | advertencia | El CDP remoto tiene como objetivo un host privado/interno | perfil del navegador cdpUrl, browser.ssrfPolicy.* | no |
sandbox.docker_config_mode_off | advertencia | La configuración de Docker de Sandbox está presente pero inactiva | agents.*.sandbox.mode | no |
sandbox.bind_mount_non_absolute | advertencia | Los montajes de enlace relativos pueden resolverse de manera impredecible | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_bind_mount | crítico | Los destinos de montaje de enlace de Sandbox bloquean rutas del sistema, credenciales o sockets de Docker | agents.*.sandbox.docker.binds[] | no |
sandbox.dangerous_network_mode | crítico | La red de Docker de Sandbox utiliza el modo de unión de espacio de nombres host o container:* | agents.*.sandbox.docker.network | no |
sandbox.dangerous_seccomp_profile | crítico | El perfil seccomp de Sandbox debilita el aislamiento del contenedor | agents.*.sandbox.docker.securityOpt | no |
sandbox.dangerous_apparmor_profile | crítico | El perfil AppArmor de Sandbox debilita el aislamiento del contenedor | agents.*.sandbox.docker.securityOpt | no |
sandbox.browser_cdp_bridge_unrestricted | advertencia | El puente del navegador de Sandbox está expuesto sin restricción de rango de origen | sandbox.browser.cdpSourceRange | no |
sandbox.browser_container.non_loopback_publish | crítico | El contenedor del navegador existente publica CDP en interfaces que no son de bucle local | configuración de publicación del contenedor de espacio aislado del navegador | no |
sandbox.browser_container.hash_label_missing | advertencia | El contenedor del 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 | advertir | El contenedor del navegador existente es anterior a la época de configuración del navegador actual | openclaw sandbox recreate --browser --all | no |
tools.exec.host_sandbox_no_sandbox_defaults | advertencia | exec host=sandbox falla cerrado cuando el espacio aislado está desactivado | tools.exec.host, agents.defaults.sandbox.mode | no |
tools.exec.host_sandbox_no_sandbox_agents | advertencia | El exec host=sandbox por agente falla cerrado cuando el espacio aislado está desactivado | agents.list[].tools.exec.host, agents.list[].sandbox.mode | no |
tools.exec.security_full_configured | advertencia/crítico | La ejecución en el host se está ejecutando con security="full" | tools.exec.security, agents.list[].tools.exec.security | no |
tools.exec.fs_tools_disabled_but_exec_enabled | advertir | La política de herramientas del sistema de archivos no hace que la ejecución del shell sea de solo lectura | tools.deny, agents.list[].tools.deny, agents.*.sandbox.workspaceAccess | no |
tools.exec.auto_allow_skills_enabled | advertir | Las aprobaciones de ejecución confían implícitamente en los contenedores de habilidades | ~/.openclaw/exec-approvals.json | no |
tools.exec.allowlist_interpreter_without_strict_inline_eval | advertir | Las listas de permitidos del intérprete permiten la evaluación en línea sin reprobació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 | advertir | Los contenedores del intérprete/ejecución 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 | advertir | Las herramientas de comportamiento amplio en safeBins debilitan el modelo de confianza de filtro stdin de bajo riesgo | tools.exec.safeBins, agents.list[].tools.exec.safeBins | no |
tools.exec.safe_bin_trusted_dirs_risky | advertir | safeBinTrustedDirs incluye directorios mutables o riesgosos | tools.exec.safeBinTrustedDirs, agents.list[].tools.exec.safeBinTrustedDirs | no |
skills.workspace.symlink_escape | advertir | El skills/**/SKILL.md del espacio de trabajo se resuelve fuera de la raíz del espacio de trabajo (desviación de la cadena de enlaces simbólicos) | estado del sistema de archivos del skills/** del espacio de trabajo | no |
plugins.extensions_no_allowlist | advertir | Los complementos están instalados sin una lista de permitidos de complementos explícita | plugins.allowlist | no |
plugins.installs_unpinned_npm_specs | advertencia | Los registros del índice de complementos no están fijados a especificaciones npm inmutables | metadatos de instalación del complemento | no |
plugins.installs_missing_integrity | advertencia | A los registros del índice de complementos les faltan metadatos de integridad | metadatos de instalación del complemento | no |
plugins.installs_version_drift | advertencia | Los registros del índice de complementos se desvían de los paquetes instalados | metadatos de instalación del complemento | no |
plugins.code_safety | advertencia/crítico | El escaneo de código del complemento encontró patrones sospechosos o peligrosos | código del complemento / fuente de instalación | no |
plugins.code_safety.entry_path | advertencia | La ruta de entrada del complemento apunta a ubicaciones ocultas o node_modules | manifiesto del complemento entry | no |
plugins.code_safety.entry_escape | crítico | La entrada del complemento escapa del directorio del complemento | manifiesto del complemento entry | no |
plugins.code_safety.scan_failed | advertencia | No se pudo completar el análisis del código del complemento | ruta del complemento / entorno de análisis | no |
skills.code_safety | advertencia/crítico | Los metadatos/código del instalador de habilidades contienen patrones sospechosos o peligrosos | fuente de instalación de habilidad | no |
skills.code_safety.scan_failed | advertencia | No se pudo completar el análisis del código de la habilidad | entorno de análisis de habilidad | 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 prompt 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 comando/archivo sin guardias de espacio aislado/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 de la puerta de enlace es asistente personal | dividir los límites de confianza o endurecimiento para usuarios compartidos (sandbox.mode, denegación de herramientas/alcance del espacio de trabajo`) | no |
tools.profile_minimal_overridden | advertencia | Las anulaciones del agente omiten el perfil mínimo global | agents.list[].tools.profile | no |
plugins.tools_reachable_permissive_policy | advertencia | Herramientas de extensión accesibles en contextos permisivos | tools.profile + permitir/denegar herramientas | no |
models.legacy | advertencia | Las familias de modelos heredadas todavía están configuradas | selección de modelo | no |
models.weak_tier | advertencia | Los modelos configurados están por debajo de los niveles recomendados actuales | 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 del modelo + política de espacio aislado/herramienta | no |
summary.attack_surface | información | Resumen acumulativo de la postura de autenticación, canal, herramienta y exposición | múltiples claves (ver detalles del hallazgo) | no |