Repositorio con una skill de seguridad para OpenClaw enfocada en endurecer agentes con un checklist obligatorio y un gate de reinicio del gateway.
- Evitar que agentes nuevos/actualizados queden con permisos peligrosos (por error u omisión).
- Forzar guardrails mínimos para
exec(allowlist/denylist) cuando se habilita. - Hacer que el reinicio del gateway ocurra solo si el checklist pasa (sin warnings).
- Los cambios de agentes/config tienden a crecer “orgánicamente” y el riesgo se acumula.
- Un agente con
exec+ mensajería abierta es una superficie de ataque enorme. - Un gate determinístico (script) es más confiable que “acordarse” de revisar a mano.
Esta skill aporta dos piezas:
- Validador:
enforce_agent_security.py
- Audita
/home/node/.openclaw/openclaw.json - Devuelve exit codes:
0PASS1WARN2FAIL
- Wrapper:
agent_change_wrapper.py
- Corre el validador
- Solo si PASS (0) reinicia el gateway
- Si WARN (1) o FAIL (2) no reinicia
- Política: no warnings allowed (WARN bloquea igual que FAIL)
Checklist humano (fuente de verdad): skills/public/agent-security-checklist/references/checklist.md
Copiá la carpeta de la skill dentro del workspace que use tu agente principal:
skills/public/agent-security-checklist/
Ejemplo (ajustá paths según tu instalación):
cp -a skills/public/agent-security-checklist /home/node/.openclaw/workspace-main/skills/public/Cloná el repo en el host donde corre OpenClaw y copiá la skill al workspace correspondiente.
Nota: el mecanismo exacto de “instalación de skills” puede variar según cómo tengas configurado OpenClaw (skills bundled vs skills locales). La parte importante es que la ruta de la skill quede accesible donde vayas a ejecutar los scripts.
- Editás
/home/node/.openclaw/openclaw.json - Corrés el wrapper:
python3 skills/public/agent-security-checklist/scripts/agent_change_wrapper.py \
--config /home/node/.openclaw/openclaw.jsonResultados esperados:
- Si el checklist pasa: reinicia gateway.
- Si hay WARN/FAIL: imprime hallazgos y no reinicia.
python3 skills/public/agent-security-checklist/scripts/enforce_agent_security.py \
--config /home/node/.openclaw/openclaw.jsonUsos típicos:
- CI: bloquear merge si el exit code != 0
- pre-commit hook: bloquear commit si el exit code != 0
python3 skills/public/agent-security-checklist/scripts/agent_change_wrapper.py --no-restart- Un agente tiene
tools.alsoAllow: ["exec"]pero no existeopenclaw-security.config.exec.policies[agentId]. defaultPolicyno niega metacaracteres (riesgo de chaining/injection).tools.elevated.enabled=trueperoallowFromcontiene*.- Allowlist excesivamente amplia (
.*,^.*$, etc.).
- Runner “shell=false”: reemplazar regex allowlist por un runner de acciones (intents) validado estrictamente.
- Autofix / patch generator: modo
--fixque proponga cambios seguros enopenclaw.json(sin aplicarlos automáticamente). - Integración nativa en OpenClaw: hook/plugin que corra el checklist automáticamente ante cambios en
agents.list(en vez de wrapper externo). - Reglas de comunicación entre agentes: allowlist de
sessions_send/destinos y prevención de “tool laundering”. - Políticas por canal: checks más estrictos para WhatsApp/Telegram/Slack según exposición y bindings.