El aislamiento de software (sandboxing) es la práctica de restringir programáticamente los privilegios de un proceso sin requerir autoridad administrativa. Aunque históricamente ha sido complejo y a menudo dependiente de técnicas heredadas, el sandboxing moderno se centra en la 'revocación discrecional de privilegios', un diseño donde los desarrolladores limitan explícitamente lo que un proceso puede hacer, complementando las políticas administrativas de todo el sistema en lugar de reemplazarlas. Un desafío principal en el sandboxing es que las interfaces tradicionales de los sistemas operativos, como los permisos estándar del sistema de archivos UNIX, a menudo son insuficientes para las necesidades de las aplicaciones modernas, como el aislamiento de complementos de terceros dentro de un navegador web. Históricamente, los desarrolladores han recurrido a binarios 'suid' o trucos a nivel de núcleo para imponer restricciones, pero estos métodos a menudo aumentan la superficie de ataque del núcleo o introducen vulnerabilidades de seguridad. Por ejemplo, el uso indebido de los espacios de nombres de usuario de Linux para el sandboxing general ha generado importantes preocupaciones de seguridad, ya que puede exponer inadvertidamente rutas de código del núcleo destinadas solo a superusuarios. En lugar de depender de mecanismos tan amplios, las mejores prácticas actuales favorecen la compartimentación a nivel de proceso. Al tratar cada componente de una aplicación como un proceso separado, los desarrolladores pueden asignar privilegios específicos a cada compartimento y gestionar la comunicación mediante el paso de mensajes. Este enfoque se alinea con el modelo de actor, donde los procesos actúan como entidades independientes que no comparten memoria y se comunican a través de interfaces definidas, como los sockets de dominio UNIX. Este modelo permite el intercambio seguro de descriptores de archivos, lo que posibilita un control preciso sobre recursos como archivos, tuberías y memoria compartida sin otorgar al proceso aislado acceso completo al sistema. Si bien plataformas como FreeBSD ofrecen mecanismos especializados como Capsicum para este propósito, y OpenBSD proporciona herramientas simplificadas como pledge(2) y unveil(2), el principio fundamental sigue siendo el mismo: reducir la autoridad ambiental de un proceso al mínimo necesario para su funcionamiento.

El artículo analiza cómo el sandboxing moderno tiene como objetivo reducir la autoridad ambiental de un proceso al mínimo necesario para su función, contrastando esto con los permisos tradicionales de todo el sistema.

El texto explica que los permisos tradicionales del sistema de archivos a menudo son insuficientes para las necesidades modernas, como el aislamiento de complementos de terceros, y muestra cómo la compartimentación puede imponer controles más estrictos.