Lanzamiento de Bubblewrap 0.12, una capa para crear entornos aislados

Se ha publicado una nueva versión de la herramienta para organizar el trabajo en entornos aislados Bubblewrap 0.12, utilizada para limitar aplicaciones específicas de usuarios no privilegiados. En la práctica, Bubblewrap es usado por el proyecto Flatpak como una capa para aislar las aplicaciones que se ejecutan desde paquetes. Para el aislamiento se utilizan tecnologías tradicionales de virtualización en contenedores de Linux, basadas en el uso de cgroups, espacios de nombres, Seccomp y SELinux. El código del proyecto está escrito en lenguaje C y se distribuye bajo la licencia LGPLv2.1+.

El aislamiento a nivel del sistema de archivos se realiza mediante la creación por defecto de un nuevo espacio de nombres de puntos de montaje, en el cual se crea una partición raíz vacía usando tmpfs. En esta partición se montan, si es necesario, particiones de sistemas de archivos externos en modo ‘mount --bind’ (por ejemplo, al ejecutar con la opción ‘bwrap --ro-bind /usr /usr’, la partición /usr se pasa desde el sistema principal en modo solo lectura). Las capacidades de red se limitan al acceso a la interfaz de loopback con el aislamiento de la pila de red a través de las banderas CLONE_NEWNET y CLONE_NEWUTS.

Para excluir todos los identificadores de usuarios y procesos innecesarios del entorno aislado creado, se pueden utilizar los modos CLONE_NEWUSER (espacio de nombres de usuario) y CLONE_NEWPID (espacio de nombres PID), y para prohibir la obtención de nuevos privilegios se aplica el modo PR_SET_NO_NEW_PRIVS. Para obtener los privilegios necesarios se utiliza el 'espacio de nombres de usuario'.

En esta nueva versión:

  • La licencia del código se ha modificado de LGPL 2.0+ a LGPL 2.1+.
  • Se ha interrumpido el soporte para la construcción en forma de archivo ejecutable, que obtiene privilegios adicionales mediante la bandera suid root. La existencia del soporte para ‘espacio de nombres de usuario’ en el sistema ahora es obligatoria. La razón dada es la complejidad de mantener la variante con la bandera suid frente al apoyo generalizado de ‘espacio de nombres de usuario’ en las distribuciones.
  • Se ha añadido la opción ‘--not-a-security-boundary’, al establecer la cual ciertos fallos al configurar el entorno de sandbox aislado, como el remonte de un subvolumen, no conducen a un cierre inesperado.
  • Se ha añadido la opción de compilación ‘assume_kernel’, que desactiva la garantía de compatibilidad con núcleos de Linux más antiguos que la versión especificada. Por ejemplo, especificar versiones 5.6.0+ resultará en la exclusión de la implementación alternativa de la funcionalidad ‘openat2(RESOLVE_IN_ROOT)’.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster