Mejores prácticas de seguridad en OpenFang

23 min de lectura

La seguridad de los agentes autónomos de IA no debe pasarse por alto. OpenFang incorpora 16 capas de protección desde su diseño: 4 capas de aislamiento en sandbox, 4 de seguridad de red, 4 de seguridad de datos y 4 de auditoría y cumplimiento. Este artículo ofrece tres plantillas de configuración preestablecidas y una lista de verificación de seguridad completa.

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íaCapasObjetivo de protección
Aislamiento en Sandbox1–4Limitar el entorno de ejecución del agente
Seguridad de red5–8Controlar el acceso a la red del agente
Seguridad de datos9–12Proteger los datos sensibles contra filtraciones
Auditoría y cumplimiento13–16Registrar 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:

toml
[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:

toml
[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:

toml
[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 / notify

Capa 4: Límites de CPU

toml
[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 CPU

Categoría 2: Seguridad de red

Capa 5: Aislamiento de red

Controla el acceso a la red saliente del agente:

toml
[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 cifrado

Capa 6: Cifrado de tráfico

toml
[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:

toml
[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:

toml
[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 proxy

Categoría 3: Seguridad de datos

Capa 9: Limpieza de entrada (Input Guard)

Defensa contra ataques de Prompt Injection:

toml
[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 = true

El 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:

toml
[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

toml
[security.data.encryption]encrypt_workspace = trueencrypt_logs = truekey_derivation = "argon2id"rotation_days = 30

Capa 12: Minimización de datos

toml
[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áticamente

Categoría 4: Auditoría y cumplimiento

Capa 13: Auditoría de operaciones

toml
[security.audit]enabled = truelog_level = "info"[security.audit.events]command_execution = truefile_access = truenetwork_request = trueconfig_change = truehand_start_stop = true

Los logs de auditoría están en formato JSON e incluyen marca de tiempo, tipo de operación, operador, detalles y resultados:

json
{  "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

toml
[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

toml
[security.compliance]generate_reports = trueschedule = "0 0 1 * *"           # Generación mensualframeworks = ["SOC2", "ISO27001"]export_format = "pdf"

Capa 16: Respuesta ante incidentes de seguridad

toml
[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 activarse

Plantillas 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)

bash
openfang security preset development

Entorno de producción (requisitos de seguridad estándar)

bash
openfang security preset production

Entorno de alta seguridad (Finanzas/Salud/Gobierno)

bash
openfang security preset hardened

Diferencias clave entre las tres plantillas:

ConfiguraciónDevelopmentProductionHardened
Sistema de archivosbasicstrictstrict
Acceso ShellPermitidoProhibidoProhibido
Modo de redblocklistallowlistallowlist
Filtrado de salidaDesactivadoActivadoActivado
Logs de auditoríaDesactivadoActivadoActivado
Cifrado de datosDesactivadoActivadoActivado
Detección anomalíasDesactivadomediumhigh
Aislamiento auto.DesactivadoDesactivadoActivado

Lista de verificación de seguridad

Antes de desplegar en producción, utilice el comando openfang security audit para verificar cada punto:

bash
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 pendientes

Preguntas frecuentes

¿Qué hacer si la configuración de seguridad es demasiado estricta y el agente no funciona correctamente?
Utilice una estrategia de relajación gradual. Comience con la plantilla 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?
El limpiador de entrada de OpenFang ofrece múltiples capas de defensa, pero ninguna es perfecta. La mejor práctica es combinar varias capas: limpieza de entrada + restricciones de sandbox + aislamiento de red. Incluso si una inyección logra saltarse la limpieza de entrada, el sandbox y las restricciones de red minimizarán el impacto.
¿Cómo añadir capas de seguridad en entornos contenedorizados (Docker/K8s)?
Las capas de seguridad de OpenFang son complementarias a la seguridad de la capa de aplicación, no sustitutivas. Los perfiles de seccomp/AppArmor de Docker pueden servir como una capa 0 de protección adicional, pero no deben reemplazar los mecanismos de seguridad integrados de OpenFang.
¿Qué hacer si ocurre un incidente de seguridad?
1. Revise los logs de auditoría para determinar el alcance del incidente.
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 xxx
4. Analice la causa raíz y parche la vulnerabilidad.
5. Restaure desde una instantánea o reinicialice el agente.

Siguientes pasos