openclaw security
Herramientas de seguridad: auditoría y correcciones seguras opcionales. Relacionado: Seguridad.
Modos de auditoría
security audit simple se mantiene en la ruta fría de configuración/sistema de archivos/solo lectura: no descubre recopiladores de seguridad del runtime de plugins, por lo que las auditorías rutinarias no cargan todos los runtimes de plugins instalados. --deep añade sondeos del Gateway en vivo de mejor esfuerzo y recopiladores de auditoría de seguridad propios de plugins (los llamadores internos explícitos también pueden optar por esos recopiladores cuando ya tienen un ámbito de runtime adecuado).
Si la autenticación por contraseña del Gateway se proporciona solo al inicio, pasa el mismo valor con --auth password --password <password> para que la auditoría pueda comprobarlo contra hooks.token.
Qué comprueba
Modelo de DM/confianza- Advierte cuando varios remitentes de DM comparten la sesión principal y recomienda el modo de DM seguro:
session.dmScope="per-channel-peer"(oper-account-channel-peerpara canales multicuenta) para bandejas de entrada compartidas. Esto es endurecimiento cooperativo/de bandeja compartida, no aislamiento para operadores mutuamente no confiables; separa los límites de confianza con gateways separados (o usuarios/hosts de SO separados) para eso. - Emite
security.trust_model.multi_user_heuristiccuando la configuración sugiere una entrada probablemente de usuarios compartidos (por ejemplo, política abierta de DM/grupo, destinos de grupo configurados o reglas comodín de remitente): el modelo de confianza predeterminado de OpenClaw es de asistente personal (un operador), no aislamiento multiinquilino hostil. Para configuraciones intencionales de usuarios compartidos: aísla todas las sesiones, mantén el acceso al sistema de archivos limitado al espacio de trabajo y mantén las identidades o credenciales personales/privadas fuera de ese runtime. - Advierte cuando se usan modelos pequeños (parámetros
<=300B) sin aislamiento y con herramientas web/navegador habilitadas.
hooks.token de valores activos de autenticación por secreto compartido del Gateway (gateway.auth.token / OPENCLAW_GATEWAY_TOKEN, gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD). También advierte cuando:
hooks.tokenes cortohooks.path="/"hooks.defaultSessionKeyno está definidohooks.allowedAgentIdsno tiene restricciones- las sobrescrituras de
sessionKeyde solicitudes están habilitadas - las sobrescrituras están habilitadas sin
hooks.allowedSessionKeyPrefixes
openclaw doctor --fix para rotar un hooks.token persistido reutilizado y luego actualiza los emisores externos de hooks para que usen el nuevo token.
Aislamiento/herramientas
- Advierte cuando la configuración de Docker del aislamiento está configurada mientras el modo de aislamiento está desactivado.
- Advierte cuando
gateway.nodes.denyCommandsusa entradas ineficaces con aspecto de patrón/desconocidas (la coincidencia es solo con el nombre exacto del comando de nodo, no filtrado de texto de shell). - Advierte cuando
gateway.nodes.allowCommandshabilita explícitamente comandos de nodo peligrosos. - Advierte cuando el
tools.profile="minimal"global es sobrescrito por perfiles de herramientas de agentes. - Advierte cuando las herramientas de escritura/edición están deshabilitadas pero
execsigue disponible sin un límite restrictivo de sistema de archivos aislado. - Advierte cuando DM o grupos abiertos exponen herramientas de runtime/sistema de archivos sin protecciones de aislamiento/espacio de trabajo.
- Advierte cuando las herramientas de plugins instalados pueden ser accesibles bajo una política de herramientas permisiva.
- Advierte cuando el navegador aislado usa la red Docker
bridgesinsandbox.browser.cdpSourceRange. - Marca modos peligrosos de red Docker del aislamiento, incluidos
hosty uniones de espacios de nombrescontainer:*. - Advierte cuando los contenedores Docker existentes del navegador aislado tienen etiquetas hash faltantes/obsoletas (por ejemplo, contenedores previos a la migración sin
openclaw.browserConfigEpoch) y recomiendaopenclaw sandbox recreate --browser --all.
- Marca
gateway.allowRealIpFallback=true(riesgo de suplantación de cabeceras si los proxies están mal configurados). - Marca
discovery.mdns.mode="full"(filtración de metadatos mediante registros TXT de mDNS). - Advierte cuando
gateway.auth.mode="none"deja las API HTTP del Gateway accesibles sin un secreto compartido (/tools/invokemás cualquier endpoint/v1/*habilitado).
- Advierte cuando los registros de instalación de plugins/hooks basados en npm no están fijados, carecen de metadatos de integridad o difieren de las versiones de paquetes instaladas actualmente.
- Advierte cuando las listas de permitidos de canales dependen de nombres/correos/etiquetas mutables en lugar de ID estables (Discord, Slack, Google Chat, Microsoft Teams, Mattermost, ámbitos IRC cuando corresponda).
dangerous/dangerously son sobrescrituras explícitas de emergencia del operador; habilitar una no es, por sí mismo, un informe de vulnerabilidad de seguridad. Para ver el inventario completo de parámetros peligrosos, consulta “Resumen de indicadores inseguros o peligrosos” en Seguridad.
Comportamiento de SecretRef
security audit resuelve SecretRefs admitidos en modo de solo lectura para sus rutas objetivo. Si un SecretRef no está disponible en la ruta de comando actual, la auditoría continúa e informa secretDiagnostics en lugar de fallar. --token y --password solo sobrescriben la autenticación de sondeo profundo para esa invocación del comando; no reescriben la configuración ni los mapeos de SecretRef.
Supresiones
Acepta hallazgos permanentes intencionales consecurity.audit.suppressions. Cada supresión coincide con un checkId exacto y puede acotarse con subcadenas titleIncludes y/o detailIncludes sin distinción entre mayúsculas y minúsculas:
summary activo y de la lista findings. La salida JSON los mantiene bajo suppressedFindings para auditabilidad. Cuando las supresiones están configuradas, la salida activa también mantiene un hallazgo informativo no suprimible security.audit.suppressions.active para que los lectores puedan saber que la auditoría fue filtrada. Las marcas de configuración peligrosas se emiten una marca por hallazgo, por lo que aceptar una marca peligrosa no oculta otras marcas habilitadas que comparten el mismo config.insecure_or_dangerous_flags checkId.
Como las supresiones pueden ocultar riesgos permanentes, añadirlas o eliminarlas mediante comandos de shell ejecutados por agentes requiere aprobación de exec, a menos que exec ya se esté ejecutando con security="full" y ask="off" para automatización local confiable.
Salida JSON
--fix --json, la salida incluye tanto las acciones de corrección como el informe final:
Qué cambia --fix
Aplica remediaciones seguras y deterministas:
- cambia el
groupPolicy="open"común agroupPolicy="allowlist"(incluidas variantes de cuenta en canales compatibles) - cuando la política de grupos de WhatsApp cambia a
allowlist, inicializagroupAllowFromdesde el archivoallowFromalmacenado cuando esa lista existe y la configuración aún no defineallowFrom - cambia
logging.redactSensitivede"off"a"tools" - endurece los permisos de estado/configuración y archivos sensibles comunes (
credentials/*.json,auth-profiles.json,sessions.json,*.jsonlde sesión) - también endurece los archivos de inclusión de configuración referenciados desde
openclaw.json - usa
chmoden hosts POSIX y restablecimientos deicaclsen Windows
--fix no:
- rota tokens/contraseñas/claves de API
- deshabilita herramientas (
gateway,cron,exec, etc.) - cambia las opciones de bind/autenticación/exposición de red del gateway
- elimina ni reescribe plugins/skills