Tu agente de código hereda tus permisos: cómo recortarlos antes de ejecutar

Para ejecutar un agente de programación con seguridad, primero reduce lo que su proceso puede leer, modificar y alcanzar. Limita el sistema de archivos, bloquea la red por defecto, mantén las credenciales fuera de su entorno y separa cualquier acción externa de alto impacto.
Las aprobaciones ayudan a supervisar, pero no sustituyen esas barreras. Una regla puede interpretar mal un comando y una operación aparentemente inocua puede activar scripts, servicios o credenciales ya disponibles; la autonomía solo debe aumentar dentro de un entorno cuyo impacto máximo ya esté acotado.
Parte de los permisos reales del proceso
El agente no necesita vulnerar el equipo para borrar archivos o actuar fuera del repositorio: le basta con utilizar las capacidades de la sesión, la terminal y las herramientas conectadas. La guía de seguridad de VS Code indica que las tareas de desarrollo operan con los permisos del usuario y pueden modificar archivos, ejecutar comandos con sus privilegios o emplear sus credenciales en servicios externos; también aclara que las evaluaciones asistidas y las reglas de autoaprobación no son fronteras de seguridad.
Antes de iniciar una sesión, inventaría capacidades, no solo comandos: carpetas montadas, variables de entorno, sockets locales, agentes SSH, servidores MCP, utilidades externas e identidades de Git, nube o registros de paquetes. Un montaje de solo lectura impide modificar archivos, pero no evita copiar un secreto visible; una credencial de escritura puede convertir una orden de terminal en un cambio remoto.
Construye cuatro límites independientes
Sistema de archivos: expón únicamente la copia de trabajo necesaria. Para análisis, monta el código como solo lectura; si el agente debe generar cambios, reserva un directorio desechable o un worktree dedicado. Deja fuera el directorio personal, archivos de entorno, claves, configuraciones de nube y Kubernetes, credenciales de Git y el socket de Docker.
Ejecución: usa el sandbox de la herramienta cuando aplique restricciones verificables en el sistema operativo. Para código desconocido, trabajos repetidos o datos sensibles, añade un contenedor, una máquina virtual o un ejecutor efímero sin privilegios. La documentación de seccomp de Docker explica que el perfil predeterminado funciona como una lista de llamadas al sistema permitidas y desaconseja desactivarlo; el contenedor también debe retirar capacidades innecesarias y evitar recursos sensibles del anfitrión.
Red: empieza sin salida a Internet. Abre solo los destinos imprescindibles mediante controles de red o un proxy y registra las solicitudes. Configurar una lista de dominios en la aplicación no basta si otros clientes pueden ignorar el proxy o si un destino autorizado también puede recibir datos confidenciales.
Herramientas: habilita solo las operaciones necesarias. Conviene separar lectura, edición, publicación y despliegue: una interfaz que permite crear una rama o propuesta de cambio ofrece una superficie menor que una terminal con acceso simultáneo al repositorio y a producción.
Mantén las credenciales fuera del agente
No introduzcas tokens duraderos en el repositorio, la imagen ni variables de entorno que el agente pueda consultar. La guía de despliegue seguro de Claude Code propone colocar fuera del aislamiento un proxy que valide destinos, añada las credenciales y registre las solicitudes; así, el proceso puede pedir una operación autenticada sin conocer el secreto.
Si ese patrón no es viable, utiliza una identidad exclusiva, de corta duración y con el alcance mínimo. Separa lectura de escritura y evita reutilizar la identidad personal del desarrollador. Para publicar paquetes, desplegar, modificar infraestructura o alterar datos, haz que un componente externo valide parámetros y autorice la operación: el agente puede preparar la solicitud, pero no debe poseer por sí solo todas las capacidades para ejecutarla.
Tres perfiles según el riesgo
Proyecto desconocido
Trata el repositorio y sus instrucciones como contenido no confiable. Ábrelo en modo restringido antes de habilitar el agente; después, trabaja con una copia aislada, código de solo lectura y escritura limitada a una carpeta temporal. Bloquea la red y no expongas secretos, sockets, agentes SSH ni herramientas externas.
Si necesitas un parche, extrae únicamente el diff para revisarlo fuera del aislamiento. Mantén la aprobación por acción, pero no la confundas con contención: una instrucción maliciosa encontrada más tarde seguirá siendo peligrosa si el proceso conserva acceso al anfitrión.
Repositorio interno
Permite lectura y escritura dentro de un worktree dedicado. Limita la red al proveedor del modelo, los registros de dependencias y los servicios internos indispensables; entrega una identidad capaz de crear una rama o propuesta, pero no de modificar ramas protegidas. Las credenciales de desarrollo deben ser temporales o intermediadas.
Puedes autoaprobar búsquedas, formateo y pruebas locales si permanecen dentro del sandbox. Conserva confirmación explícita para instalar dependencias, tocar archivos sensibles, habilitar nuevas herramientas o ampliar la red. La comodidad se concede dentro del límite técnico, no en lugar de él.
Automatización de producción
Ejecuta cada trabajo en un entorno efímero y con una identidad de servicio limitada al recurso y la operación requeridos. Canaliza la red mediante un proxy controlado, registra las acciones externas y separa al agente que prepara el cambio del componente que lo valida y aplica.
Ningún proceso debería combinar acceso a datos sensibles, modificación de infraestructura y comunicación abierta con Internet. Añade límites de tiempo y consumo, validación estricta de parámetros, revocación y autorización independiente para efectos irreversibles. Si el flujo exige autonomía, redúcela a un conjunto pequeño y comprobable de acciones.
Comprobación antes de activar la autonomía
- Usa una identidad dedicada y sin privilegios administrativos.
- Expón solo los archivos necesarios y excluye secretos incluso de la lectura.
- Aplica sandbox, contenedor o máquina virtual según el riesgo.
- Bloquea la red por defecto y autoriza únicamente destinos justificados.
- Entrega acceso autenticado mediante un intermediario o credenciales breves y acotadas.
- Deshabilita herramientas ajenas a la tarea.
- Exige autorización externa para publicación, despliegue y cambios irreversibles.
- Registra comandos, solicitudes, modificaciones y decisiones de autorización.
La prueba final es asumir que el agente interpreta mal una instrucción y utiliza todas las capacidades disponibles. Si en ese escenario todavía puede borrar datos importantes, leer secretos o ejecutar una acción externa de alto impacto, recorta esos permisos antes de eliminar confirmaciones.
Suscríbete a nuestro boletín
Reciba las últimas noticias sobre Web3, IA y criptomonedas directamente en su bandeja de entrada.