docs: documentacion de seguridad y requisitos en reglas operativas

Cambios en documentacion para completar fase 7 del issue 0019:

- CLAUDE.md: nueva seccion Seguridad con resumen de protecciones
- create_agent.md: requisito obligatorio de seccion anti-injection en
  system prompts + item en checklist de verificacion
- create_tool.md: nueva seccion Seguridad con requisitos para tools
  que hacen I/O (deny-by-default, path traversal, SSRF, command
  injection, rate limiting)
- docs/security.md: documentacion completa de las 5 capas de defensa
  (sanitizacion, prompt hardening, tool validation, rate limiting,
  filesystem isolation) con ejemplos de configuracion

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 19:52:27 +00:00
parent aeba5d1e86
commit 690cbf4a64
4 changed files with 165 additions and 0 deletions
+16
View File
@@ -88,6 +88,22 @@ Guias detalladas en `.claude/rules/index.md`:
- CGO_ENABLED=0 (pure-Go SQLite via modernc, shim en `cmd/launcher/sqlite.go`)
- Secrets via env vars (`.env.example`), nunca commitear `.env`
## Seguridad
Protecciones contra prompt injection y abuso de tools (issue 0019):
- **`pkg/sanitize/`** — deteccion pura de patrones de injection en mensajes entrantes
- **Tools deny-by-default** — allowlist vacia = todo denegado (file, ssh, http, matrix)
- **Path traversal** — EvalSymlinks + prefix validation en `tools/file/`
- **SSRF** — bloqueo de IPs privadas en `tools/http/`
- **SSH** — AllowedCommands allowlist + validacion de sintaxis shell en `tools/ssh/`
- **Rate limiting** — por room en `tools/registry.go` via `security.tool_rate_limit`
- **System prompts** — seccion anti-injection obligatoria (template en `.claude/templates/security-prompt.md`)
- **`storage.base_path`** — permite aislar datos de runtime fuera del arbol del proyecto
Config YAML relevante: `security.sanitize.*`, `security.tool_rate_limit.*`, `storage.base_path`
Documentacion completa: `docs/security.md`
## Preferencias
- Espanol en configs/comentarios de dominio, ingles en codigo Go