… …
Módulo 4 · Parte A de 3

El sandbox de OpenShell

En el módulo 3, los archivos aportaban contexto persistente y las tareas programadas iniciaban trabajo sin supervisión. Estas operaciones dependen de los permisos disponibles para el proceso del agente. OpenShell limita esos permisos mediante la política activa y su aplicación.

Ejecuta comandos en el sandbox, examina su salida y estado de salida e investiga la causa. Después, comprueba el acceso de lectura mediante el plano de control del operador.

OpenShell separa la entrada de control, la aplicación de políticas, el estado del agente, el acceso a herramientas y el enrutamiento de modelos. Mantén este mapa a la vista mientras la página avanza desde el propósito del sandbox hasta las comprobaciones de la política activa.
Separa claramente los tres roles del producto mientras sigues el flujo de aplicación de políticas:

OpenShell no depende de un agente específico. El mismo límite puede contener OpenClaw, Hermes, LangChain deepagents u otro proceso que necesite contención a nivel del sistema operativo.

Dónde interviene cada capa de defensa

Supongamos que un contenido no confiable le ordena a un agente leer una credencial y enviarla fuera del sistema. Tres capas distintas tienen la oportunidad de detener esa acción, y cada una responde a una pregunta diferente:

Por qué la aplicación de políticas debe estar por debajo del modelo

Supón que una solicitud aparentemente válida aún puede causar daño

Zero trust rechaza la confianza implícita basada únicamente en el origen de una solicitud. La guía de OWASP sobre inyección de prompts aplica la misma disciplina a los agentes: limita las herramientas, restringe los privilegios y supone que el contenido externo puede dirigir al modelo.

Concede únicamente la autoridad que necesita la tarea

Saltzer y Schroeder lo describieron como el principio de mínimo privilegio: cada componente recibe únicamente los permisos necesarios para su trabajo. Esta disciplina es anterior a los agentes y se aplica directamente en este contexto.

Mide los límites en lugar de intentar demostrar la intención

El teorema de Rice descarta una prueba general para el comportamiento no trivial de programas arbitrarios. Un agente que ejecuta código merece la misma cautela: mide los límites de lo que se ejecuta, en lugar de suponer que una comprobación estática puede demostrar que toda acción futura será segura.

Cómo responden los mecanismos del sandbox a preguntas verificables

Este launchable combina cuatro mecanismos del sistema operativo. Cada uno responde a una pregunta que puede comprobar, y juntos aplican la política en más de un límite. Lee la política activa más adelante en la página antes de considerar universal cualquier garantía.

La flecha bloqueada ilustra una posible acción denegada. El resultado de un comando por sí solo no identifica el mecanismo que la impidió.

1 · ¿Dónde puede conectarse este proceso?

Un espacio de nombres de red (netns) proporciona al agente una red aislada. El acceso saliente comienza cerrado. Un proxy HTTP CONNECT ofrece la única ruta de salida. Open Policy Agent (OPA) compara con la política el binario solicitante, el host, el puerto y la ruta. Quien edite esa política decide qué conexiones están permitidas.

2 · ¿Qué archivos puede alcanzar?

Landlock es un módulo de seguridad de Linux que restringe el acceso futuro al sistema de archivos. Aquí limita las nuevas operaciones de archivos a las rutas otorgadas por la política. Es una aplicación estricta, pero el modo de compatibilidad, OverlayFS y los descriptores abiertos antes de la restricción siguen siendo importantes. Revisa la política en vivo y prueba la ruta que pretendes exponer.

3 · ¿Qué operaciones del núcleo puede solicitar?

Una llamada al sistema, o syscall, pide al kernel de Linux que realice una operación. seccomp filtra las syscalls; su filtro BPF compara cada solicitud con una lista de permitidos. Una llamada denegada devuelve EPERM, «operación no permitida», antes de ejecutar la operación. Este launchable excluye primitivas peligrosas como ptrace, mount y setuid.

4 · ¿Con qué autoridad comienza?

El agente se ejecuta como un proceso que no es root mediante el usuario sin privilegios sandbox. Por tanto, un exploit que tenga éxito comienza con menos autoridad. Esa autoridad inicial menor reduce el alcance del impacto, pero no demuestra que sea imposible escalar privilegios. El host, la configuración del contenedor y la política de syscalls siguen formando parte del límite de seguridad.

Vocabulario en estos cuatro mecanismos

Política de red

Espacio de nombres de red / netns
Stack de red Linux aislado: dispositivos, rutas, reglas de firewall y puertos de sockets. network_namespaces(7)
Entrada / salida
Ingress es el tráfico que entra en el sandbox; egress es el que sale. Denegar de forma predeterminada significa que ninguna dirección está abierta salvo que la política la conceda.
Proxy CONNECT
Proxy de túnel HTTP hacia el host y el puerto solicitados; las implementaciones seguras restringen los destinos permitidos. MDN CONNECT
OPA
Motor de políticas que evalúa una entrada estructurada y devuelve decisiones al código que las aplica. Documentación de OPA
Binario, host, puerto, ruta
Entradas de la política de egress: identidad del ejecutable, nombre del destino, puerto TCP y ruta URL solicitada.

Límite del sistema de archivos

Landlock
Módulo de seguridad de Linux que permite a un proceso sin privilegios restringir su propio acceso futuro. Documentación del kernel
Privilegios del entorno
Acceso que, de otro modo, un proceso heredaría del sistema operativo, del proceso padre, de los montajes o de las credenciales.
Árbol del workspace
Subárbol de directorios que concede una política. Comprueba la política activa y la compatibilidad del kernel antes de tratarlo como un límite completo del sistema de archivos.
Montaje enlazado
Subárbol del sistema de archivos que se hace visible en otra ruta, incluso a través de límites de chroot. mount(2)
Condiciones de carrera con enlaces simbólicos
Una ruta ya comprobada cambia mediante un enlace simbólico antes de utilizarse. symlink(7)

Límite de syscalls

seccomp
Filtrado de syscalls de Linux que reduce la superficie del kernel que puede alcanzar un proceso. Documentación del kernel
Lista de syscalls permitidas
Conjunto de syscalls que pueden ejecutarse; todas las demás reciben una acción de la política.
Capa BPF
Programa de filtrado que comprueba los números y argumentos de las syscalls antes de ejecutarlas. Documentación del kernel
TOCTOU / carrera de inspección
Fallo entre el momento de la comprobación y el del uso; seccomp evita carreras de desreferencia de punteros dentro del filtro. Documentación del kernel
EPERM / EACCES
Nombres errno de Linux para «operación no permitida» y «permiso denegado». errno(3)

Identidad del proceso

Proceso del agente
Proceso del sistema operativo que ejecuta el agente y sus herramientas dentro de estos límites.
Usuario sin privilegios de root
Un UID distinto de cero sujeto a las comprobaciones habituales de permisos del kernel. capabilities(7)
Capacidad de Linux
Privilegio de root separado, como CAP_SYS_ADMIN o bien CAP_SETUID. capabilities(7)
ptrace, mount, setuid
Primitivas peligrosas para el control de procesos, el montaje del sistema de archivos y el cambio de identidad. ptrace(2) · mount(2) · setuid(2)
Escalada de privilegios
Obtención de autoridad superior a la asignada: root, capacidades adicionales, acceso más amplio a archivos o a la red.

Da forma primero al runtime

Antes de que controles el sandbox tú mismo, asegúrate de que el agente esté en un estado óptimo recuperando el entorno de ejecución si está degradado; así, cada celda en vivo de abajo tendrá un agente funcional con el que comunicarse.

El diagrama representa los límites de aplicación. Los siguientes comandos devuelven observaciones; identificar el mecanismo responsable requiere pruebas de la política o de auditoría.

El mismo runtime de Kickstart. Cada celda controla al agente OpenClaw conectado en esa página.

La flecha bloqueada ilustra una posible acción denegada. El resultado de un comando por sí solo no identifica el mecanismo que la impidió.

Examinar los resultados de los comandos

Ejecuta un comando cada vez y examina su salida, su estado de salida y si terminó. Un fallo puede deberse a la política, a software ausente, a una solicitud no válida o al propio servicio. Usa las pruebas y la política actual para investigar la causa.

El catálogo inicial recorre las preguntas que plantearías sobre un entorno como este, desde el acceso abierto a Internet hasta la modificación de la personalidad del agente. Puedes editar cualquier comando o añadir tu propia sonda.

¿Ejecutar una trayectoria de varios comandos en el sandbox?

Avanza: una trayectoria completa

Un agente puede planificar varios comandos para un objetivo. Examina el plan y compara cada comando con la salida y el estado de salida que devuelve tu sandbox. Determina qué resultados aportan pruebas de denegación de acceso y cuáles requieren más investigación.

Un secreto que imprime un comando permitido ya ha llegado al canal de salida. Examina tanto los pasos exitosos como los fallidos: una denegación de red posterior no puede deshacer una divulgación anterior.

Lee la política activa del launchable y visualízala como un mapa

Lee la política del entorno de ejecución antes de interpretar los resultados de los comandos. La celda llama a helpers.policyGet() a través del terminal del operador y muestra su estado y el YAML analizado. Comprueba si la política devuelta está activa.

El mapa evalúa los destinos propuestos según la política cargada. Cambia el binario que realiza la llamada para comparar sus permisos y examina la regla coincidente. Son predicciones del navegador; las solicitudes reales aportan una observación independiente.

Al hacer clic en un destino se abre la regla que lo rige, para que puedas consultar qué binarios permite ese endpoint y qué regla utiliza el evaluador del navegador. El control View policy source muestra el YAML del que se obtuvo la regla, el mismo texto que acabas de recuperar.

Plano del token de operador. La franja ámbar está por encima del punto de aplicación: representa el eje de escalada que las reglas de egress nunca ven.

Compara una predicción de la política con una solicitud real

Elige una acción, predice su resultado a partir de la política cargada y ejecuta la misma solicitud a través del sandbox. Compara las pruebas sin asumir que un error de comando demuestra la aplicación de la política ni que un resultado coincidente demuestra todas sus reglas.

La predicción tiene en cuenta la identidad del binario, el destino, el puerto, el método y la ruta. Confirm ejecuta la solicitud curl seleccionada. Las demás identidades de binario siguen siendo predicciones hasta que pruebes cada programa mediante su propia interfaz.

Examina ambas observaciones. El navegador evalúa la política, mientras que openshell sandbox exec devuelve la salida y el estado de salida del comando. Un error HTTP puede proceder de un proxy o de la aplicación de destino; identifica su origen antes de atribuirle una causa.
La coincidencia respalda la predicción para la acción probada. Una discrepancia indica que conviene revisar la solicitud, la política activa, el origen de la respuesta y los supuestos del evaluador.

Por encima del sandbox: el plano de control

La celda solicita operator.admin con el token de gateway existente y llama a métodos de lectura de la personalidad, horarios, sesiones, modelos y configuración. Examina qué solicitudes funcionan. La configuración del servidor puede permitir escrituras administrativas, pero esta comprobación no las prueba. No envía solicitudes de edición; las conexiones y lecturas sí pueden generar registros.

Lo que el sandbox no puede capturar

La comprobación de lectura no demuestra autoridad de escritura. Por separado, un flujo dañino puede combinar lecturas y canales de salida permitidos individualmente.

La entrada no confiable, el acceso a datos privados y la comunicación externa forman la tríada letal.

El riesgo surge de la composición. La política puede autorizar correctamente un endpoint, pero la conexión sigue siendo bidireccional: la solicitud sale y la respuesta regresa como una entrada nueva. El contenido hostil puede dirigir al modelo para que lea datos privados y los envíe mediante un canal permitido. Un control situado por encima del sandbox debe interrumpir al menos una de esas tres condiciones.

El centro rojo muestra una ruta formada por recursos permitidos, no una acción aislada prohibida. El contenido hostil influye en un runtime que lee estado protegido y usa un canal aprobado. Como el canal también recibe respuestas, una lista de permisos de red no basta para decidir si la conexión es segura.

Considera estos modos de fallo según la configuración real:

Elige el control por el modo de fallo

Un sandbox limita lo que puede alcanzar un proceso comprometido. La aplicación y las prácticas operativas aún deben tomar decisiones cuyo significado resulta invisible para el kernel.

Modo de falloLo que el sandbox contribuyeControl aún necesario
Secuestro de objetivos o inyección de promptsLimita los archivos, procesos y destinos alcanzables después de desviar el modeloProcedencia de entradas, aprobación de acciones con consecuencias y evaluación del comportamiento
Uso indebido de herramientasRestringe el sistema operativo y el conjunto de accesos de red donde se ejecuta la herramientaAutorización por herramienta, validación de argumentos, límites de frecuencia y confirmación de llamadas irreversibles
Abuso de identidad o privilegiosInicia el proceso sin root y bloquea algunas rutas de escaladaIdentidades por carga de trabajo, alcances mínimos, tokens de corta duración, rotación y auditoría
Cadena de suministro o ejecución inesperada de códigoReduce los archivos, syscalls y egress disponibles para el código instaladoDependencias fijadas y verificadas, política de instalación y supervisión de la integridad
Envenenamiento de memoria o contextoPuede proteger archivos específicos cuando la política los establece como solo lecturaProcedencia de escrituras, historial auditable, etiquetas de confianza y restauración a un estado conocido

Las categorías se corresponden con el OWASP Top 10 para aplicaciones de agentes. Utiliza la tabla para elegir un punto de aplicación de políticas en lugar de pedirle a una sola capa que reconozca cada tipo de daño.

Referencias

Lista completa en Para ir más lejos · Referencias.

← Módulo 3c: Siempre activo