Se ha publicado la versión 0.9.78 del proyecto Firejail, que desarrolla un sistema para la ejecución aislada de aplicaciones gráficas, de consola y de servidor, permitiendo minimizar el riesgo de comprometer el sistema principal al ejecutar programas poco confiables o potencialmente vulnerables. El programa está escrito en C, se distribuye bajo la licencia GPLv2 y puede funcionar en cualquier distribución de Linux con un núcleo superior a 3.0. Se han preparado paquetes listos de Firejail en formatos deb (Debian, Ubuntu) y rpm (CentOS, Fedora).
Para la aislamiento en Firejail se utilizan espacios de nombres (namespaces), AppArmor y filtrado de llamadas al sistema (seccomp-bpf) en Linux. Una vez que se inicia, el programa y todos sus procesos hijos utilizan 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 entre sí se pueden agrupar en un solo sandbox. Si se desea, Firejail también se puede aplicar para ejecutar contenedores Docker, LXC y OpenVZ.
A diferencia de las herramientas de aislamiento de contenedores, Firejail es extremadamente sencillo de configurar y no requiere preparar una imagen del sistema: el contenido del contenedor se forma al vuelo en función del contenido del sistema de archivos actual y se elimina una vez que se finaliza la ejecución de la aplicación. Se proporcionan herramientas flexibles para establecer reglas de acceso al sistema de archivos, permitiendo definir a qué archivos y directorios se permite o se prohíbe el acceso, montar sistemas de archivos temporales (tmpfs), limitar el acceso a archivos o directorios solo para lectura, y combinar directorios a través de bind-mount y overlayfs.
Se han preparado perfiles de aislamiento de llamadas al sistema para un gran número de aplicaciones populares, incluyendo Firefox, Chromium, VLC y Transmission. Para obtener los privilegios necesarios para configurar un entorno aislado, el archivo ejecutable de Firejail se instala con la bandera SUID root (después de la inicialización, los privilegios se restablecen). Para ejecutar el programa en modo de aislamiento, basta con indicar 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 esta nueva versión:
- Se han agregado las opciones arg-max-count, arg-max-len, env-max-count y env-max-len al archivo de configuración firejail.config para modificar los límites en el número y tamaño de las opciones de línea de comandos y de las variables de entorno. Por defecto, el número de argumentos está limitado a 128, el número de variables de entorno a 256 y el tamaño de cada argumento es PATH_MAX de limits.h (en Linux 40196) + 32.
- Se ha añadido la opción ‘—xephyr-extra-params’ para especificar opciones adicionales para Xephyr (utilizado para crear entornos en sandbox X11 con su propio servidor X ejecutándose en una ventana) en la línea de comandos sin modificar firejail.config.
- La utilidad instalada en el entorno sandbox bwrap (bubblewrap) ha sido reemplazada por la capa fbwrap, que ejecuta programas sin aislamiento para solucionar problemas al iniciar Firefox, Thunderbird y GIMP debido a la llamada glycin 2.0.0 de gdk-pixbuf2 usando bwrap. Se ha añadido la opción ‘—allow-bwrap’ para copiar bwrap en lugar de la capa.
- Se han actualizado las tablas de llamadas al sistema para seccomp. Se han añadido nuevas llamadas al sistema, como epoll_pwait2 y futex_wait.
- Se ha eliminado la opción de compilación ‘—disable-globalcfg’, se ha descontinuado el soporte para overlayfs (‘—overlay’) y el modo IDS (Intrusion Detection System, ‘—ids’).
- Se han añadido perfiles de aislamiento para el editor de texto ne, el navegador Trivalent y los motores de juego OpenRA, quakespasm, gzdoom, lzdoom, uzdoom.
- Se han actualizado los perfiles para thunderbird, wine, qutebrowser, firefox, godot, wusc, mullvad-browser, blink, steam, ssh, brave y hashcat.
Fuente: opennet.ru
