Após seis meses de desenvolvimento lançamento do projeto , no qual se desenvolve um sistema para a execução isolada de aplicações gráficas, de console e servidor. A utilização do Firejail minimiza o risco de comprometimento do sistema principal ao executar programas desconfiáveis ou potencialmente vulneráveis. O programa é escrito em C, sob a licença GPLv2 e pode funcionar em qualquer distribuição Linux com núcleo superior a 3.0. Pacotes prontos com o Firejail nos formatos deb (Debian, Ubuntu) e rpm (CentOS, Fedora).
Para isolamento no Firejail namespaces, AppArmor e filtragem de chamadas de sistema (seccomp-bpf) no Linux. Após a inicialização, o programa e todos os seus processos filhos utilizam visões separadas dos recursos do kernel, como a pilha de rede, tabela de processos e pontos de montagem. Aplicações interdependentes podem ser agrupadas em um sandbox comum. Se desejado, o Firejail também pode ser usado para executar contêineres Docker, LXC e OpenVZ.
Ao contrário das ferramentas de isolamento de contêineres, o firejail é extremamente na configuração e não requer preparação de imagem do sistema — o conteúdo do contêiner é formado dinamicamente com base no conteúdo do sistema de arquivos atual e é eliminado após a conclusão do aplicativo. São fornecidos meios flexíveis para definir regras de acesso ao sistema de arquivos, possibilitando determinar a quais arquivos e diretórios o acesso é permitido ou negado, conectar sistemas de arquivos temporários (tmpfs) para os dados, limitar o acesso a arquivos ou diretórios apenas para leitura, e combinar diretórios através de bind-mount e overlayfs.
Para um grande número de aplicações populares, incluindo Firefox, Chromium, VLC e Transmission, perfis prontos foram preparados isolamento de chamadas de sistema. Para obter as permissões necessárias para configurar um ambiente isolado, o executável firejail é instalado com a flag SUID root (após a inicialização, as permissões são descartadas). Para executar o programa em modo de isolamento, basta especificar o nome do aplicativo como argumento da utilidade firejail, por exemplo, "firejail firefox" ou "sudo firejail /etc/init.d/nginx start".
No novo lançamento:
- No arquivo de configuração /etc/firejail/firejail.config a configuração file-copy-limit, que permite limitar o tamanho dos arquivos que serão copiados para a memória ao usar as opções "—private-*" (o limite padrão é 500MB).
- No diretório /usr/share/doc/firejail, foram adicionados modelos para a criação de novos perfis de restrição de aplicativos.
- Nos perfis, é permitida a utilização de depuradores.
- A filtragem de chamadas de sistema foi melhorada através do mecanismo seccomp.
- Implementação de autodetecção das flags do compilador.
- A chamada chroot agora é executada não com base no caminho, mas usando pontos de montagem a partir do descritor de arquivo.
- O diretório /usr/share foi incluído na lista branca de vários perfis.
- Na seção contrib, foram adicionados novos scripts auxiliares gdb-firejail.sh e sort.py.
- Reforçada a proteção na fase de execução de código privilegiado (SUID).
- Para os perfis, foram implementadas novas características condicionais HAS_X11 e HAS_NET para verificar a presença do X-server e o acesso à rede.
- Perfis adicionados para execução isolada de aplicativos (número total de perfis elevado para 884):
- i2p,
- tor-browser (AUR),
- Zulip,
- rsync,
- signal-cli,
- tcpdump,
- tshark,
- qgis,
- OpenArena,
- godot,
- klatexformula,
- klatexformula_cmdl,
- links,
- xlinks,
- pandoc,
- teams-for-linux,
- gnome-sound-recorder,
- newsbeuter,
- keepassxc-cli,
- keepassxc-proxy,
- rhythmbox-client,
- jerry,
- zeal,
- mpg123,
- conplay,
- mpg123.bin,
- mpg123-alsa,
- mpg123-id3dump,
- out123,
- mpg123-jack,
- mpg123-nas,
- mpg123-openal,
- mpg123-oss,
- mpg123-portaudio,
- mpg123-pulse,
- mpg123-strip,
- pavucontrol-qt,
- gnome-characters,
- gnome-character-map,
- Whalebird,
- tb-starter-wrapper,
- bzcat,
- kiwix-desktop,
- bzcat,
- zstd,
- pzstd,
- zstdcat,
- zstdgrep,
- zstdless,
- zstdmt,
- unzstd,
- ar,
- gnome-latex,
- pngquant,
- kalgebra,
- kalgebramobile,
- amuled,
- kfind,
- profanity,
- audio-recorder,
- cameramonitor,
- ddgtk,
- drawio,
- unf,
- gmpc,
- electron-mail,
- gist,
- gist-paste.
Fonte: opennet.ru
