Mejores prácticas de seguridad en OpenFang: Análisis detallado de las 16 capas de protección
Slug: openfang-security-best-practices
Categoría: usage-guides (Guías de uso)
Palabras clave objetivo: Seguridad de OpenFang, Configuración de seguridad de OpenFang, Mejores prácticas de seguridad para agentes
Intención de búsqueda: Informativa (el usuario desea desplegar OpenFang de forma segura)
Longitud objetivo: ~2000 palabras
Idioma: es
¿Por qué es crucial la seguridad de los agentes?
Los agentes autónomos de IA poseen la capacidad de ejecutar comandos, acceder a la red y leer/escribir archivos; si estas capacidades no se limitan, son la receta para un desastre de seguridad. Un agente sin protección puede ser inducido mediante ataques de Prompt Injection a ejecutar comandos peligrosos, filtrar datos sensibles o ser utilizado como trampolín para ataques.
OpenFang ha integrado la seguridad como parte fundamental de su arquitectura desde el diseño, proporcionando un mecanismo de protección de 16 capas. Este artículo explica los métodos de configuración y las mejores prácticas de cada capa, desde lo básico hasta lo avanzado.
Resumen de la arquitectura de seguridad
Las 16 capas de protección de OpenFang se dividen en cuatro categorías principales:
| Categoría | Capas | Objetivo de protección |
|---|---|---|
| Aislamiento en Sandbox | 1–4 | Limitar el entorno de ejecución del agente |
| Seguridad de red | 5–8 | Controlar el acceso a la red del agente |
| Seguridad de datos | 9–12 | Proteger los datos sensibles contra filtraciones |
| Auditoría y cumplimiento | 13–16 | Registrar y auditar el comportamiento del agente |
Categoría 1: Aislamiento en Sandbox
Capa 1: Sandbox del sistema de archivos
Limita las rutas del sistema de archivos a las que el agente puede acceder:
[security.sandbox.filesystem]mode = "strict" # off / basic / strictallowed_paths = [ "./workspace/", "/tmp/openfang/",]denied_paths = [ "/etc/", "~/.ssh/", "~/.aws/",]read_only_paths = [ "./config/", "/usr/share/openfang/",]En modo strict, el agente no puede acceder a ninguna ruta que no esté listada en allowed_paths. Se recomienda crear siempre un directorio de trabajo dedicado para el agente.
Capa 2: Sandbox de procesos
Limita los comandos del sistema que el agente puede ejecutar:
[security.sandbox.process]allow_shell = false # Prohibir acceso directo a Shellallowed_commands = [ "git", "curl", "python3", "node",]denied_commands = [ "rm", "sudo", "chmod", "wget",]command_timeout = 30 # Tiempo máximo de ejecución de comandos (segundos)allow_shell = false es una configuración obligatoria para entornos de producción. El agente solo puede interactuar con el sistema a través de los comandos listados en allowed_commands.
Capa 3: Límites de memoria
Evita que el agente agote los recursos del sistema debido a fugas de memoria o código malicioso:
[security.sandbox.memory]max_memory_mb = 512 # Límite de memoria del agentemax_per_hand_mb = 128 # Límite de memoria por Handoom_policy = "kill_hand" # kill_hand / restart / notifyCapa 4: Límites de CPU
[security.sandbox.cpu]max_cores = 2 # Uso máximo de 2 núcleos de CPUpriority = "low" # low / normal / highcfs_period_us = 100000cfs_quota_us = 50000 # 50% de cuota de CPUCategoría 2: Seguridad de red
Capa 5: Aislamiento de red
Controla el acceso a la red saliente del agente:
[security.network]mode = "allowlist" # allowlist / blocklist / unrestrictedallowed_domains = [ "api.anthropic.com", "api.openai.com", "github.com",]allowed_ports = [443, 80]block_ip_ranges = [ "10.0.0.0/8", # Bloquear acceso a red interna "172.16.0.0/12", "192.168.0.0/16",]dns_over_https = true # Usar DNS cifradoCapa 6: Cifrado de tráfico
[security.network.tls]min_version = "1.2"verify_certificates = truecertificate_pinning = [ { domain = "api.anthropic.com", pin = "sha256/..." },]Capa 7: Limitación de tasa (Rate Limiting)
Evita que el agente sea utilizado para enviar un volumen masivo de solicitudes:
[security.network.rate_limit]requests_per_minute = 60tokens_per_minute = 100000burst_multiplier = 2cooldown_after_exceeded = "5m"Capa 8: Control de proxy y salida
Todo el tráfico del agente pasa a través del proxy corporativo:
[security.network.proxy]http_proxy = "${HTTP_PROXY}"https_proxy = "${HTTPS_PROXY}"no_proxy = ["localhost", "127.0.0.1"]enforce_proxy = true # Forzar que todo el tráfico pase por el proxyCategoría 3: Seguridad de datos
Capa 9: Limpieza de entrada (Input Guard)
Defensa contra ataques de Prompt Injection:
[security.data.input_guard]enabled = truemode = "strict"[security.data.input_guard.rules]detect_jailbreak = truedetect_prompt_leak = truedetect_code_injection = truemax_input_length = 8000sanitize_markdown = trueEl limpiador de entrada escanea en busca de posibles ataques de inyección antes de que el agente procese la entrada del usuario, incluyendo intentos de jailbreak, fugas de prompts e inyección de código.
Capa 10: Filtrado de salida
Evita la filtración de datos sensibles a través de las respuestas del agente:
[security.data.output_guard]enabled = true[security.data.output_guard.patterns]credit_cards = trueapi_keys = true # Detectar y bloquear formato de API keysemails = "mask" # mask / block / allowphone_numbers = "mask"custom_patterns = [ "\\b(?:sk|pk)_[a-zA-Z0-9]{32,}\\b", "\\bAKIA[A-Z0-9]{16}\\b", # AWS Access Key]Capa 11: Cifrado de datos sensibles
[security.data.encryption]encrypt_workspace = trueencrypt_logs = truekey_derivation = "argon2id"rotation_days = 30Capa 12: Minimización de datos
[security.data.minimization]log_user_inputs = false # No registrar entradas de usuariolog_agent_outputs = false # No registrar salidas del agenteretention_days = 7 # Retención de logs por 7 díasstrip_pii = true # Eliminar PII automáticamenteCategoría 4: Auditoría y cumplimiento
Capa 13: Auditoría de operaciones
[security.audit]enabled = truelog_level = "info"[security.audit.events]command_execution = truefile_access = truenetwork_request = trueconfig_change = truehand_start_stop = trueLos logs de auditoría están en formato JSON e incluyen marca de tiempo, tipo de operación, operador, detalles y resultados:
{ "timestamp": "2026-07-10T08:30:15.123Z", "event": "command_execution", "hand": "researcher", "command": "git clone https://github.com/...", "sandbox": "strict", "result": "allowed", "duration_ms": 1240}Capa 14: Detección de anomalías
[security.audit.anomaly_detection]enabled = truebaseline_days = 7sensitivity = "medium" # low / medium / highalert_on = ["unusual_command", "off_hours_activity", "unusual_destination"]Capa 15: Informes de cumplimiento
[security.compliance]generate_reports = trueschedule = "0 0 1 * *" # Generación mensualframeworks = ["SOC2", "ISO27001"]export_format = "pdf"Capa 16: Respuesta ante incidentes de seguridad
[security.incident_response]auto_contain = true # Aislar agente automáticamente ante anomalíascontainment_action = "pause_all_hands"notify_channels = ["slack:#security", "email:[email protected]"]forensic_snapshot = true # Guardar instantánea forense al activarsePlantillas de configuración de seguridad rápida
Según su escenario de despliegue, elija la configuración de seguridad preestablecida correspondiente:
Entorno de desarrollo (bajos requisitos de seguridad)
openfang security preset developmentEntorno de producción (requisitos de seguridad estándar)
openfang security preset productionEntorno de alta seguridad (Finanzas/Salud/Gobierno)
openfang security preset hardenedDiferencias clave entre las tres plantillas:
| Configuración | Development | Production | Hardened |
|---|---|---|---|
| Sistema de archivos | basic | strict | strict |
| Acceso Shell | Permitido | Prohibido | Prohibido |
| Modo de red | blocklist | allowlist | allowlist |
| Filtrado de salida | Desactivado | Activado | Activado |
| Logs de auditoría | Desactivado | Activado | Activado |
| Cifrado de datos | Desactivado | Activado | Activado |
| Detección anomalías | Desactivado | medium | high |
| Aislamiento auto. | Desactivado | Desactivado | Activado |
Lista de verificación de seguridad
Antes de desplegar en producción, utilice el comando openfang security audit para verificar cada punto:
openfang security audit# Ejemplo de salida:# ✅ [1/16] Sandbox de sistema de archivos: strict# ✅ [2/16] Sandbox de procesos: sin acceso a shell# ✅ [3/16] Límite de memoria: 512 MB# ✅ [4/16] Límite de CPU: 2 núcleos# ✅ [5/16] Red: modo allowlist# ⚠️ [6/16] TLS cert pinning: no configurado# ✅ [7/16] Limitación de tasa: activada# ...# Puntuación: 14/16 — 2 recomendaciones pendientesPreguntas frecuentes
¿Qué hacer si la configuración de seguridad es demasiado estricta y el agente no funciona correctamente?
hardened y observe el comportamiento del agente. Para las operaciones necesarias que sean bloqueadas, utilice los logs de auditoría para identificar el elemento bloqueado y añádalo específicamente a la lista de permitidos.¿Es realmente posible defenderse contra el Prompt Injection?
¿Cómo añadir capas de seguridad en entornos contenedorizados (Docker/K8s)?
¿Qué hacer si ocurre un incidente de seguridad?
2. Si
auto_contain = true está configurado, el agente ya habrá sido aislado automáticamente.3. Descargue la instantánea forense:
openfang security forensics download --run-id xxx4. Analice la causa raíz y parche la vulnerabilidad.
5. Restaure desde una instantánea o reinicialice el agente.
Siguientes pasos
- Guía de instalación y configuración de OpenFang: Despliegue seguro desde cero.
- Guía de creación de flujos de trabajo automatizados en OpenFang: Construya procesos automatizados seguros.