Agent Sandboxing
El aislamiento de agentes ejecuta sus comandos y el código generado en un entorno aislado que limita el acceso a archivos, red, credenciales y recursos de computación.
El aislamiento en un entorno controlado para agentes consiste en ejecutar las acciones de un agente de IA, como comandos de shell, código generado, ediciones de archivos y navegación web, en un entorno aislado que limita a qué archivos, redes, credenciales y recursos informáticos pueden acceder. Un agente basado en un modelo de lenguaje grande (LLM) elige cada comando a partir del texto que ha leído, y ese texto puede ser erróneo o malicioso. El entorno controlado hace cumplir sus límites en el sistema operativo o el hipervisor, que se mantienen incluso si el modelo sigue una inyección de instrucciones oculta en una página web o un README, o simplemente comete un error.
Por qué los agentes necesitan entornos aislados#
La invocación de funciones y el uso de herramientas convierten el texto de un modelo en acciones reales, así que un agente que puede ejecutar comandos de shell también puede borrar archivos, leer claves SSH o subir código fuente. La guía de seguridad de agentes de IA de OWASP incluye entre las prácticas que deben evitarse permitir que los agentes ejecuten código arbitrario sin aislamiento, y el OWASP Top 10 para aplicaciones agénticas, publicado en diciembre de 2025, señala la ejecución inesperada de código como uno de los diez riesgos principales de los sistemas agénticos. Los entornos aislados también facilitan el uso de los agentes: pedir a una persona que apruebe cada comando provoca fatiga por aprobación, y Anthropic descubrió que el aislamiento de Claude Code redujo un 84 % las solicitudes de permiso en su uso interno, porque los comandos que se mantienen dentro del límite ya no necesitan aprobación.
Qué restringe un entorno aislado#
Un entorno aislado para un agente suele controlar cinco aspectos:
- Sistema de archivos: El agente ve un espacio de trabajo temporal o un único repositorio, a menudo sobre una imagen base de solo lectura, y no puede leer credenciales, perfiles del navegador ni otros proyectos.
- Red: Se bloquea el tráfico saliente o se enruta a través de un proxy que solo permite los dominios incluidos en una lista, como un registro de paquetes, para impedir que un agente comprometido envíe datos al servidor de un atacante.
- Credenciales: Los secretos se mantienen fuera del entorno aislado o se proporcionan como tokens de corta duración limitados a una tarea, según el principio de mínimo privilegio de la seguridad de los datos.
- Capacidad de cálculo: Los límites de tiempo de CPU, memoria, número de procesos y tiempo de ejecución detienen los bucles descontrolados y las bombas de bifurcación.
- Llamadas al sistema: Filtros como seccomp bloquean las interfaces del kernel que las herramientas del agente no necesitan.
La solidez del aislamiento depende de dónde se sitúe el límite. Los contenedores de Docker comparten el kernel del anfitrión, por lo que un exploit del kernel puede escapar de ellos. gVisor añade un kernel en el espacio de usuario que intercepta las llamadas al sistema de cada contenedor, y las microVM, como Firecracker, que AWS creó para Lambda, proporcionan a cada entorno aislado su propio kernel mínimo y arrancan en menos de 125 ms con menos de 5 MiB de sobrecarga de memoria. Los intérpretes de código alojados y los agentes de programación en la nube suelen ejecutar cada tarea en un contenedor o una microVM nuevos que se destruyen al terminar. En los equipos de los desarrolladores, el entorno aislado de Claude Code usa Seatbelt en macOS y bubblewrap en Linux, permite que los comandos de shell escriban solo en el directorio de trabajo y en un directorio temporal, y envía el tráfico de red a través de un proxy que comprueba cada host con una lista de permitidos.
El entorno aislado es una capa del armazón del agente, el software que ejecuta las llamadas a herramientas del modelo. El armazón comprueba cada acción propuesta según las políticas, ejecuta las acciones permitidas dentro del entorno aislado y se detiene para pedir la aprobación de una persona antes de acciones irreversibles, como pagos, despliegues o mensajes enviados fuera de la organización:
Aislamiento del código generado#
Los agentes que escriben y ejecutan código, desde asistentes de análisis de datos hasta herramientas de programación agéntica, necesitan los límites más estrictos, porque el código generado puede hacer cualquier cosa que permita el intérprete. La capa más interna es el aislamiento normal de procesos, que se puede mostrar con la biblioteca estándar de Python: este script ejecuta código escrito por un modelo en un directorio desechable, con un entorno vacío y un límite de tiempo de CPU configurado mediante el módulo resource (Linux y macOS).
import os
import resource
import subprocess
import sys
import tempfile
os.environ["API_KEY"] = "sk-live-123" # Un secreto que conserva el propio proceso del agente
# Código escrito por el modelo: lee el entorno y después entra en un bucle infinito
generated = "import os\nprint('API_KEY =', os.environ.get('API_KEY'), flush=True)\nwhile True: pass"
def limit_cpu():
"""Stop the child process after 2 seconds of CPU time."""
resource.setrlimit(resource.RLIMIT_CPU, (2, 2))
# Ejecútalo en modo aislado, en un directorio desechable y con un entorno vacío
cmd = [sys.executable, "-I", "-c", generated]
with tempfile.TemporaryDirectory() as workspace:
proc = subprocess.run(cmd, cwd=workspace, env={}, capture_output=True, text=True, preexec_fn=limit_cpu)
print(proc.stdout.strip())
print("exit code:", proc.returncode)El proceso secundario muestra API_KEY = None, porque empieza con un entorno vacío y no puede ver el secreto del proceso principal, y termina con el código -24, lo que significa que el kernel lo ha detenido con SIGXCPU al alcanzar el límite de 2 segundos de CPU del bucle infinito. Un contenedor o una microVM añade a este proceso los límites del sistema de archivos y de la red.
Aislamiento de agentes y controles relacionados#
- Medidas de protección de IA: Clasificadores y reglas que filtran entradas, salidas o acciones propuestas antes de ejecutarlas. El entorno aislado contiene lo que haga una acción después de que una medida de protección la deje pasar.
- Permisos: El control de acceso determina qué herramientas y recursos puede utilizar un agente. El aislamiento hace cumplir esas decisiones en el nivel del sistema operativo, por debajo de cualquier comprobación que el modelo pudiera sortear con palabras.
- Contenerización: Empaquetado de software con sus dependencias para lograr un despliegue reproducible. Un contenedor sirve como entorno aislado cuando se ejecuta con privilegios eliminados, montajes restringidos y reglas de tráfico saliente.
- Entornos de prueba aislados: Copias de un sistema que no son de producción y donde se prueba el software de forma segura. Los entornos aislados para agentes envuelven todas sus acciones, tanto en producción como durante el desarrollo.
Dónde se usan los entornos aislados para agentes#
- Agentes de programación: Cada tarea recibe un contenedor o una máquina virtual nuevos con un único repositorio, donde el agente instala dependencias, ejecuta pruebas y devuelve un diff para que lo revise una persona.
- Agentes que usan el ordenador: Los agentes que manejan un escritorio o un navegador mediante capturas de pantalla y clics se ejecutan en una máquina virtual con sus propias cuentas, ya que cualquier página que vean puede contener instrucciones dirigidas a ellos.
- Intérpretes de código: Los asistentes que analizan hojas de cálculo o imágenes subidas ejecutan Python en un entorno aislado por sesión, a menudo sin acceso a Internet.
- Servidores MCP y habilidades de agentes: Las herramientas de terceros y los scripts de habilidades se ejecutan con las credenciales del usuario, así que los sistemas anfitriones prudentes inician los servidores y scripts locales dentro del mismo límite que el shell del agente.
Las plataformas de agentes alojadas aplican los mismos límites a sus propios flujos de trabajo. Los agentes de Ultralytics Platform, que encadenan la detección de YOLO26, modelos de visión y lenguaje y bloques de alerta, limitan cada ejecución de prueba compartida a 60 segundos, 20 imágenes de entrada y 20 llamadas a modelos o proveedores. Además, su bloque Webhook solo envía solicitudes a URL HTTPS públicas, no sigue redirecciones y agota el tiempo de espera tras 5 segundos.










