Drop es una herramienta de aislamiento para Linux diseñada para separar programas y agentes de codificación del entorno de trabajo principal sin requerir privilegios de administrador. Su objetivo es mitigar riesgos de seguridad en entornos de desarrollo, permitiendo ejecutar código con permisos restringidos o instalar software de terceros sin acceso completo al sistema de archivos del usuario.
El funcionamiento de Drop se basa en la creación de entornos efímeros e aislados, inspirados en los virtualenv de Python. A diferencia de contenedores como Docker o Podman, Drop utiliza la distribución de Linux existente, lo que elimina la necesidad de configurar entornos de contenedores adicionales y garantiza que todos los programas instalados en el sistema estén disponibles dentro del sandbox. La herramienta ofrece un lenguaje de configuración flexible basado en TOML, que permite definir qué archivos, directorios y servicios de red locales deben exponerse al entorno aislado. Por defecto, los entornos de Drop comparten una configuración base, facilitando la gestión de múltiples contextos sin trabajo de configuración repetitivo.
Una característica clave de Drop es su capacidad para operar sin privilegios de root. Al ejecutar un programa en sandbox, la herramienta utiliza un espacio de usuario Linux con sus propios namespaces para proceso, montajes, red, IPC y cgroups. Antes de ejecutar el programa, Drop elimina todas las capacidades del espacio de usuario, impidiendo así operaciones privilegiadas dentro del namespace, como los montajes de enlace. Además, Drop ofrece una integración opcional con el kernel de espacio de usuario gVisor, lo que añade una capa adicional de aislamiento al prevenir el acceso directo del programa al kernel del host, reduciendo significativamente el riesgo de explotación de vulnerabilidades del kernel.
