Versión de aislamiento de aplicaciones de Firejail 0.9.72

Se ha publicado el lanzamiento del proyecto Firejail 0.9.72, que desarrolla un sistema para la ejecución aislada de aplicaciones gráficas, de consola y de servidor, que permite minimizar el riesgo de comprometer el sistema principal al ejecutar programas no confiables o potencialmente vulnerables. El programa está escrito en C, se distribuye bajo la licencia GPLv2 y puede ejecutarse en cualquier distribución de Linux con un kernel anterior a 3.0. Los paquetes Ready con Firejail se preparan en formatos deb (Debian, Ubuntu) y rpm (CentOS, Fedora).

Para el aislamiento, Firejail usa espacios de nombres (namespaces), AppArmor y filtrado de llamadas del sistema (seccomp-bpf) en Linux. Una vez iniciado, el programa y todos sus procesos secundarios usan representaciones separadas de los recursos del núcleo, como la pila de red, la tabla de procesos y los puntos de montaje. Las aplicaciones que dependen unas de otras se pueden combinar en un entorno limitado común. Si lo desea, Firejail también se puede usar para ejecutar contenedores Docker, LXC y OpenVZ.

A diferencia de las herramientas de aislamiento de contenedores, firejail es extremadamente simple de configurar y no requiere la preparación de una imagen del sistema: la composición del contenedor se forma sobre la marcha en función del contenido del sistema de archivos actual y se elimina después de que finaliza la aplicación. Se proporcionan herramientas flexibles para establecer reglas de acceso al sistema de archivos, puede determinar qué archivos y directorios tienen permitido o denegado el acceso, conectar sistemas de archivos temporales (tmpfs) para datos, restringir el acceso a archivos o directorios para solo lectura, combinar directorios a través de bind-mount y superposiciones.

Una gran cantidad de aplicaciones populares, incluidas Firefox, Chromium, VLC y Transmission, tienen perfiles de aislamiento de llamadas del sistema preconfigurados. Para obtener los privilegios necesarios para configurar un entorno de espacio aislado, el ejecutable firejail se instala con el indicador raíz SUID (los privilegios se restablecen después de la inicialización). Para ejecutar un programa en modo aislado, basta con especificar el nombre de la aplicación como argumento de la utilidad firejail, por ejemplo, "firejail firefox" o "sudo firejail /etc/init.d/nginx start".

En el nuevo lanzamiento:

  • Se agregó el filtro de llamadas al sistema seccomp para bloquear las creaciones de espacios de nombres (se agregó la opción "--restrict-namespaces" para habilitar). Se actualizaron las tablas de llamadas del sistema y los grupos seccomp.
  • Se mejoró el modo force-nonewprivs (NO_NEW_PRIVS) para evitar que los nuevos procesos obtengan privilegios adicionales.
  • Se agregó la capacidad de usar sus propios perfiles de AppArmor (se ofrece la opción "--apparmor" para la conexión).
  • El sistema de seguimiento del tráfico de la red nettrace, que muestra información sobre la IP y la intensidad del tráfico de cada dirección, es compatible con ICMP y ofrece las opciones "-dnstrace", "--icmptrace" y "--snitrace".
  • Se eliminaron los comandos --cgroup y --shell (el valor predeterminado es --shell=none). La compilación de Firetunnel se detiene de forma predeterminada. Configuración de chroot, private-lib y tracelog deshabilitada en /etc/firejail/firejail.config. Se eliminó el soporte para grsecurity.

Fuente: opennet.ru

Añadir un comentario