La integración de agentes de IA en flujos de trabajo operativos introduce un nuevo vector de riesgo de seguridad: el "blast radius" o radio de impacto de una acción no intencionada o maliciosa. A medida que las capacidades de los modelos de lenguaje crecen, también lo hace su autonomía y el potencial de interactuar con sistemas críticos. Este problema fundamental de la computación distribuida, la gestión de la confianza y el aislamiento de componentes, se agrava con la naturaleza probabilística y emergente de los comportamientos de la IA.
Tradicionalmente, la seguridad se ha centrado en la autenticación, autorización y auditoría de entidades humanas o de software predecible. Sin embargo, los agentes de IA pueden exhibir "model misbehavior" (comportamiento inesperado del modelo) o ser susceptibles a "prompt injection" (inyección de instrucciones maliciosas), sorteando las defensas convencionales. La urgencia de abordar este desafío radica en el imperativo de desplegar agentes de IA para aumentar la productividad, lo que exige soluciones de seguridad que limiten el daño potencial sin sofocar la utilidad.
Este artículo argumenta que la contención a nivel de entorno —utilizando técnicas de aislamiento de procesos y sistemas operativos— es la estrategia más efectiva para limitar el radio de impacto. Complementa, pero no reemplaza, las defensas a nivel de modelo y la supervisión humana, que han demostrado ser falibles debido a la fatiga de aprobación y la naturaleza probabilística de la IA. La aplicación de principios de aislamiento de sistemas operativos, como los utilizados en contenedores y máquinas virtuales, se convierte en una defensa determinista crucial cuando las capas probabilísticas fallan.
Arquitectura del Sistema
La arquitectura de seguridad de Anthropic para sus agentes de IA se basa en un enfoque de defensa en profundidad, priorizando la contención a nivel de entorno. Se distinguen tres productos principales, cada uno con una estrategia de aislamiento adaptada a su caso de uso y perfil de usuario.
Para claude.ai, que ejecuta código en un entorno de chat, se utiliza un contenedor gVisor en infraestructura aislada. Este entorno es efímero y server-side, sin acceso al filesystem local del usuario. La seguridad se centra en proteger la infraestructura de Anthropic y aislar a los inquilinos entre sí, empleando configuraciones de red tradicionales, autenticación de servicios internos y orquestación. gVisor, un sandbox a nivel de kernel, proporciona un aislamiento robusto de syscalls, limitando el "blast radius" a un contenedor de corta duración.
Claude Code, diseñado para desarrolladores y con acceso al filesystem, shell y red del usuario, emplea un sandbox a nivel de sistema operativo (Seatbelt en macOS, bubblewrap en Linux). Inicialmente, se basó en la supervisión humana con aprobaciones explícitas para escrituras, bash y acceso a la red. Sin embargo, la fatiga de aprobación llevó a la implementación de un sandbox que permite lecturas y escrituras dentro del workspace, pero deniega el acceso a la red por defecto. Este sandbox se ejecuta en la máquina del usuario, con un proceso privilegiado externo que decide la aplicación de las políticas. Para Claude Cowork, dirigido a usuarios no técnicos, se optó por una máquina virtual completa (usando Apple's Virtualization framework o HCS en Windows). La VM tiene su propio kernel Linux, filesystem y tabla de procesos. Solo el workspace seleccionado por el usuario se monta en la VM, y las credenciales permanecen en el keychain del host. Esta arquitectura de "full-VM mode" inicialmente ejecutaba el bucle del agente dentro de la VM, sin conciencia de estar en un sandbox. Posteriormente, el bucle del agente se movió fuera de la VM para mejorar la resiliencia, manteniendo la ejecución de código dentro del entorno virtualizado. Los servidores MCP (Managed Compute Platform) locales también se movieron fuera de la VM para simplificar la auditoría y la gestión de dependencias. Para el control de acceso a archivos, se implementaron modos de montaje granular (read-only, read-write, read-write-no-delete) y se enfatizó la validación de rutas antes de la resolución de symlinks. Un incidente de exfiltración a través de un dominio aprobado (api.anthropic.com) llevó a la implementación de un proxy defensivo "man-in-the-middle" dentro de la VM, que intercepta el tráfico a la API de Anthropic y valida los tokens de sesión, bloqueando claves embebidas por atacantes y cabeceras que permitirían "server-side fetch".
En todos los casos, la estrategia se basa en la superposición de defensas: el entorno establece límites duros, el modelo guía el comportamiento y los controles de contenido externo (MCPs, plugins) limitan la superficie de ataque. La inspección de la salida de herramientas y la aplicación de clasificadores (modelos pequeños y rápidos) antes de que el contenido entre en el contexto del modelo principal son cruciales para mitigar la inyección de prompts a través de fuentes externas.
Flujo de Ejecución de Código en Claude Code (con Sandbox)
- 1 Usuario Inicia Agente El usuario lanza Claude Code en su máquina.
- 2 Carga Configuración Claude Code carga la configuración del proyecto (después de la aprobación de ...
- 3 Agente Genera Comando El agente de IA genera un comando bash o una acción de escritura.
- 4 Clasificador de Modelo Un clasificador basado en modelo evalúa el riesgo del comando.
- 5 Ejecución en Sandbox El comando se ejecuta dentro de un sandbox OS-level (Seatbelt/bubblewrap).
- 6 Controles de Sandbox El sandbox permite lecturas, escrituras en workspace; niega red por defecto.
- 7 Resultado a Usuario El resultado de la ejecución se devuelve al usuario.
Flujo de Exfiltración Mitigado en Claude Cowork (con Proxy)
- 1 Agente Lee Archivo Malicioso Claude lee un archivo en el workspace montado con instrucciones de exfiltración.
- 2 Agente Genera Petición API Claude intenta llamar a api.anthropic.com con clave de atacante.
- 3 Proxy Intercepta Tráfico Un proxy defensivo 'man-in-the-middle' dentro de la VM intercepta la petición.
- 4 Validación de Token El proxy verifica si la petición usa el token de sesión provisionado de la VM.
- 5 Bloqueo de Petición Si la clave es de atacante o hay headers de server-side fetch, la petición es...
- 6 Petición Válida a API Si es válida, la petición se envía a api.anthropic.com.
| Capa | Tecnología | Justificación |
|---|---|---|
| security | gVisor | Proporciona un sandbox de syscalls a nivel de kernel para claude.ai, aislando el entorno de ejecución del agente. |
| security | seccomp | Filtra llamadas al sistema para limitar las acciones de los procesos, utilizado en conjunto con gVisor y otros sandboxes. |
| security | Seatbelt (macOS) | Sandbox a nivel de sistema operativo para Claude Code, endureciendo los límites de acceso a archivos y red. |
| security | bubblewrap (Linux) | Sandbox a nivel de sistema operativo para Claude Code, proporcionando aislamiento de procesos y filesystem. |
| orchestration | Apple's Virtualization framework (macOS) | Hipervisor para ejecutar máquinas virtuales completas en Claude Cowork, proporcionando aislamiento de SO. |
| orchestration | HCS (Windows) | Hipervisor para ejecutar máquinas virtuales completas en Claude Cowork en entornos Windows. |
| networking | Custom Egress Proxy | Intercepta y valida el tráfico de red saliente dentro de la VM de Claude Cowork para prevenir exfiltración de datos. |
| security | Classifiers (ML Models) | Modelos pequeños y rápidos utilizados para inspeccionar la salida de herramientas y el comportamiento del agente, detectando acciones riesgosas o inyecciones de prompts. |
Trade-offs
Ganancias
- ▲ Reducción de prompts de permiso en Claude Code
- ▲▲ Contención del blast radius
- ▲ Productividad del desarrollador
Costes
- △ Overhead de aislamiento (VM boot, spin-up de contenedor)
- ▲ Visibilidad para EDR en VMs
- △ Fricción para usuarios expertos (exceso de prompts)
Fundamentos Teóricos
El problema de la contención y el aislamiento de procesos tiene profundas raíces en la ciencia de la computación, remontándose a los primeros sistemas operativos multiusuario. Conceptos como la protección de memoria, los anillos de privilegio y las llamadas al sistema (syscalls) fueron desarrollados para aislar procesos y prevenir que uno interfiera con otro. El trabajo seminal de Butler Lampson en los años 70 sobre la protección en sistemas operativos, particularmente su paper "Protection" (1971), sentó las bases teóricas para la gestión de permisos y el aislamiento de recursos.
La evolución de estos principios se observa en tecnologías modernas como los contenedores (Docker, containerd) y los sandboxes (gVisor, seccomp, bubblewrap), que aplican técnicas de virtualización ligera y filtrado de syscalls para crear entornos de ejecución aislados. gVisor, por ejemplo, es una reimplementación del kernel de Linux en userspace que intercepta y valida las syscalls, proporcionando un aislamiento más fuerte que los contenedores tradicionales sin la sobrecarga de una VM completa. La necesidad de aislar componentes no confiables también se refleja en el diseño de microkernels y sistemas operativos basados en capacidades, como se discute en trabajos de J. S. Shapiro et al. sobre el sistema EROS (Extremely Reliable Operating System), que buscan minimizar la superficie de ataque y aplicar el principio de menor privilegio de forma rigurosa. La aparición de agentes de IA solo subraya la relevancia continua de estos fundamentos, ya que la naturaleza impredecible de la IA exige un retorno a los principios de aislamiento determinista para garantizar la seguridad del sistema.