Volver

11. Mejores prácticas de seguridad en OpenClaw

La seguridad es una consideración clave en el despliegue de OpenClaw. Este artículo detalla el mecanismo de emparejamiento DM, el modo sandbox, el control de permisos, el manejo de datos sensibles, la seguridad de red y más, ayudándote a construir un sistema de asistente IA seguro y confiable.

Aplica a OpenClaw v2026.2 | Este artículo es adecuado para todos los usuarios de OpenClaw, especialmente aquellos que preparan despliegues en producción o uso en equipo.

TL;DR: El emparejamiento DM previene el acceso no autorizado: "dmPolicy": "pairing". El sandbox aísla operaciones peligrosas: "sandbox": {"mode": "non-main"}. Filtrado de datos sensibles: "security": {"sensitiveData": {"patterns": ["sk-*"]}}. Para acceso remoto usa Tailscale en lugar de exponer puertos públicos. Ejecuta openclaw doctor --security para verificar el estado de seguridad.

Descripción general de riesgos de seguridad

Principales tipos de riesgos

Tipo de riesgo Descripción Consecuencias potenciales
Acceso no autorizado Desconocidos pueden usar tu Agent Abuso de recursos, fuga de privacidad
Abuso de permisos El Agent ejecuta operaciones más allá de lo esperado Daño a datos, destrucción del sistema
Fuga de datos Información sensible manejada inadecuadamente Fuga de privacidad, problemas de cumplimiento
Ataques de red Atacantes externos explotan vulnerabilidades Intrusión al sistema, robo de datos
Inyección de Prompt Instrucciones maliciosas eluden restricciones de seguridad Operaciones no autorizadas

Modelo de seguridad

flowchart TB
    subgraph Exterior["Capa de red"]
        FW[Firewall]
        TLS[HTTPS/TLS]
    end
    
    subgraph Medio["Control de acceso"]
        DM[Emparejamiento DM]
        WL[Lista blanca]
        AUTH[Autenticación]
    end
    
    subgraph Interior["Control de ejecución"]
        SBX[Sandbox]
        PERM[Permisos]
        AUDIT[Auditoría]
    end
    
    subgraph Nucleo["Agent"]
        AG[Núcleo del Agent]
    end
    
    Exterior --> Medio --> Interior --> Nucleo

Mecanismo de emparejamiento DM

¿Qué es el emparejamiento DM?

El emparejamiento DM (Direct Message) es un mecanismo de protección que requiere que los nuevos usuarios completen el emparejamiento antes de poder conversar con el Agent.

Flujo de emparejamiento

sequenceDiagram
    participant S as Desconocido
    participant B as Bot
    participant G as Gateway
    participant O as Propietario
    
    S->>B: Envía mensaje "Hola"
    B->>G: Mensaje recibido
    G->>G: Verificar estado de emparejamiento
    G-->>B: No emparejado, generar código
    B-->>S: "Por favor empareja: código ABC123"
    S->>O: Comunica el código al propietario
    O->>G: openclaw pairing approve telegram ABC123
    G->>G: Añadir a lista blanca
    G-->>S: Emparejamiento exitoso
    S->>B: Envía mensaje "Hola"
    B-->>S: Respuesta normal

Configurar emparejamiento DM

{
  "channels": {
    "telegram": {
      "botToken": "your_token",
      "dmPolicy": "pairing"
    },
    "whatsapp": {
      "dmPolicy": "pairing"
    },
    "discord": {
      "dmPolicy": "pairing"
    }
  }
}

Modos de emparejamiento

Modo Descripción Nivel de seguridad Caso de uso
pairing Requiere código de emparejamiento ⭐⭐⭐⭐ Uso personal (predeterminado)
open Cualquiera puede usar Servicio público
whitelist Solo usuarios en lista blanca ⭐⭐⭐⭐⭐ Alta seguridad requerida

Gestión de emparejamiento

# Ver solicitudes de emparejamiento pendientes
openclaw pairing list

# Ejemplo de salida:
# Channel    Code     User        Created
# telegram   ABC123   @stranger   2026-02-26 10:30:00
# discord    XYZ789   user#1234   2026-02-26 10:35:00

# Aprobar emparejamiento
openclaw pairing approve telegram ABC123

# Rechazar emparejamiento
openclaw pairing reject telegram ABC123

# Ver usuarios emparejados
openclaw pairing show telegram

Configuración de lista blanca

{
  "channels": {
    "telegram": {
      "dmPolicy": "open",
      "allowFrom": [
        123456789,
        987654321
      ]
    },
    "whatsapp": {
      "dmPolicy": "open",
      "allowFrom": [
        "+8613800138000",
        "+8613800138001"
      ]
    }
  }
}

Obtener ID de usuario

# Telegram: envía un mensaje a @userinfobot
# Discord: usa el comando /id en un canal o consulta el perfil del usuario
# WhatsApp: obtén el número desde la información de contacto

Modo sandbox

¿Qué es el sandbox?

El sandbox es un mecanismo de aislamiento que limita el alcance de las operaciones del Agent, previniendo modificaciones accidentales o maliciosas al sistema.

Modos de sandbox

Modo Descripción Caso de uso
off Sin sandbox, confianza total Sesión principal, entorno confiable
non-main Sandbox activado para sesiones no principales Multiusuario, uso compartido en equipo
always Sandbox siempre activado Entorno no confiable, servicio público

Configurar sandbox

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowlist": ["read", "write", "edit", "bash"],
        "denylist": ["browser", "canvas", "nodes"],
        "container": {
          "image": "openclaw/sandbox:latest",
          "timeout": 30000,
          "memory": "512m",
          "cpu": "0.5"
        }
      }
    }
  }
}

Control de permisos de herramientas

{
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main",
        "allowlist": [
          "read",
          "write",
          "edit",
          "bash",
          "web_search",
          "sessions_list",
          "sessions_history",
          "sessions_send"
        ],
        "denylist": [
          "browser",
          "canvas",
          "nodes",
          "cron",
          "discord",
          "gateway"
        ]
      }
    }
  }
}

Permisos del sistema de archivos

{
  "agents": {
    "defaults": {
      "permissions": {
        "filesystem": {
          "read": ["~/workspace", "~/documents"],
          "write": ["~/workspace/output"],
          "deny": ["~/.ssh", "~/.gnupg", "~/.openclaw/credentials"]
        }
      }
    }
  }
}

Permisos de red

{
  "agents": {
    "defaults": {
      "permissions": {
        "network": {
          "outbound": {
            "allow": [
              "api.anthropic.com",
              "api.openai.com",
              "github.com"
            ],
            "deny": ["*"]
          }
        }
      }
    }
  }
}

Permisos Elevated

¿Qué son los permisos Elevated?

Los permisos Elevated son un mecanismo de elevación temporal de permisos, utilizado para operaciones que requieren privilegios más altos.

Configurar permisos Elevated

{
  "agents": {
    "defaults": {
      "elevatedAccess": {
        "enabled": true,
        "allowlist": [123456789, 987654321],
        "requireConfirmation": true,
        "timeout": 300000
      }
    }
  }
}

Usar permisos Elevated

# Solicitar elevación de permisos en el chat
/elevated on

# Ejecutar operaciones que requieren permisos elevados
# ...

# Desactivar permisos elevados
/elevated off

Manejo de datos sensibles

Tipos de información sensible

Tipo Ejemplo Tratamiento
API Keys sk-ant-xxx, sk-xxx No registrar, no mostrar
Contraseñas Contraseñas de inicio de sesión, de base de datos No almacenar, no transmitir
Tokens OAuth token, Session token Almacenamiento cifrado
Información personal DNI, tarjeta bancaria No registrar, anonimizar

Configurar filtrado de información sensible

{
  "security": {
    "sensitiveData": {
      "patterns": [
        "sk-[a-zA-Z0-9]{20,}",
        "xox[baprs]-[a-zA-Z0-9-]+",
        "[0-9]{15,19}",
        "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}"
      ],
      "redact": true,
      "log": false
    }
  }
}

Almacenamiento de credenciales

# Ubicación de almacenamiento de credenciales
~/.openclaw/credentials/

# Almacenamiento cifrado
# OpenClaw utiliza el llavero del sistema para cifrar credenciales sensibles

Gestión de credenciales

# Ver credenciales almacenadas
openclaw credentials list

# Ejemplo de salida:
# Name           Type        Created
# telegram-bot   api_key     2026-02-20
# gmail-oauth    oauth       2026-02-21

# Eliminar credencial
openclaw credentials delete telegram-bot

# Exportar credenciales (cifradas)
openclaw credentials export --output credentials.enc

# Importar credenciales
openclaw credentials import --input credentials.enc

Seguridad de red

Configuración de enlace

{
  "gateway": {
    "bind": "loopback",  // Solo acceso local
    "port": 18789,
    "tls": {
      "enabled": false
    }
  }
}
Opción de enlace Descripción Nivel de seguridad
loopback Solo acceso local ⭐⭐⭐⭐⭐
private Acceso desde red privada ⭐⭐⭐⭐
all Acceso desde todas las interfaces

Configuración de Tailscale

{
  "gateway": {
    "tailscale": {
      "mode": "serve",  // serve o funnel
      "resetOnExit": true
    },
    "auth": {
      "mode": "password",
      "allowTailscale": true
    }
  }
}

Configuración de autenticación

{
  "gateway": {
    "auth": {
      "mode": "password",
      "password": "your-secure-password",
      "sessionTimeout": 3600000
    }
  }
}

Auditoría y registros

Registro de operaciones

{
  "logging": {
    "level": "info",
    "audit": {
      "enabled": true,
      "events": [
        "tool.invoke",
        "session.create",
        "session.reset",
        "pairing.approve",
        "pairing.reject",
        "elevated.enable",
        "elevated.disable"
      ],
      "retention": 30
    }
  }
}

Ver registros de auditoría

# Ver registros de auditoría
openclaw logs --type audit

# Ejemplo de salida:
# [2026-02-26 10:30:00] INFO  tool.invoke session=main tool=bash command="ls -la"
# [2026-02-26 10:30:05] INFO  pairing.approve channel=telegram code=ABC123 user=123456789
# [2026-02-26 10:31:00] INFO  elevated.enable session=telegram:user:123456789

# Filtrar eventos específicos
openclaw logs --type audit --filter "tool.invoke"

# Por rango de fechas
openclaw logs --type audit --from 2026-02-01 --to 2026-02-28

Monitoreo de uso

# Ver uso
openclaw usage --today

# Ejemplo de salida:
# Date: 2026-02-26
# Requests: 128
# Tokens In: 125,000
# Tokens Out: 45,000
# Cost: $2.10
# Top Tools: bash(45), read(32), write(18)

# Detección de anomalías
openclaw usage --alerts

# Ejemplo de salida:
# ⚠️  Alta actividad detectada: más de 1000 solicitudes en 1 hora
# ⚠️  Patrón de herramientas inusual: comandos bash a directorios sensibles

Lista de verificación de seguridad

Seguridad básica

  • Habilitar emparejamiento DM o lista blanca
  • Configurar modo sandbox
  • Establecer permisos de herramientas razonables
  • Habilitar registro de auditoría de operaciones
  • Rotar API Keys periódicamente

Seguridad avanzada

  • Configurar restricciones de permisos del sistema de archivos
  • Establecer lista blanca de red saliente
  • Habilitar filtrado de información sensible
  • Configurar confirmación de permisos Elevated
  • Revisar periódicamente los usuarios emparejados

Seguridad empresarial

  • Usar aislamiento con sandbox Docker
  • Configurar red privada Tailscale
  • Habilitar HTTPS/TLS
  • Configurar alertas de uso
  • Auditoría de seguridad periódica

Diagnóstico de seguridad

# Ejecutar diagnóstico de seguridad
openclaw doctor --security

# Ejemplo de salida:
# ✅ DM Pairing: Enabled
# ✅ Sandbox Mode: non-main
# ⚠️  File Permissions: Some directories not restricted
# ✅ Network Outbound: Restricted to allowlist
# ⚠️  Elevated Access: No confirmation required
# ✅ Audit Logging: Enabled
# ✅ Credentials: Encrypted

# Recomendaciones:
# - Restringir acceso a archivos solo a ~/workspace
# - Habilitar confirmación de acceso elevado

Resumen

La configuración de seguridad es una etapa importante del despliegue de OpenClaw:

  • Emparejamiento DM: Previene el acceso no autorizado
  • Modo sandbox: Limita el alcance de las operaciones
  • Control de permisos: Permisos granulares de herramientas y archivos
  • Datos sensibles: Filtrado y protección de información sensible
  • Seguridad de red: Configuración de enlace y autenticación
  • Registro de auditoría: Seguimiento y monitoreo de operaciones

Resumen de este artículo:

  • Comprendimos los principales riesgos de seguridad y mecanismos de protección
  • Dominamos la configuración de emparejamiento DM y lista blanca
  • Aprendimos el modo sandbox y control de permisos
  • Entendimos el manejo de datos sensibles y configuración de red
  • Dominamos el registro de auditoría y la lista de verificación de seguridad

Registro de actualizaciones:

  • 2026-02-26: Publicación inicial, basada en OpenClaw v2026.2

Navegación de la serie: