Foi publicada uma nova versão da ferramenta para organização de ambientes isolados Bubblewrap 0.11, utilizada para restringir aplicativos de usuários não privilegiados. Na prática, o Bubblewrap é empregado pelo projeto Flatpak como uma camada de isolação para aplicativos executados a partir de pacotes. Para a isolação, são utilizadas tecnologias tradicionais de virtualização de contêineres do Linux, baseadas em cgroups, espaços de nomes (namespaces), Seccomp e SELinux. O código do projeto é escrito em C e distribuído sob a licença LGPLv2+.
O isolamento no nível do sistema de arquivos é realizado através da criação por padrão de um novo namespace de pontos de montagem (mount namespace), onde um sistema de arquivos raiz vazio é criado utilizando tmpfs. Nesse sistema, partes da FS externa podem ser anexadas conforme necessário no modo "mount --bind" (por exemplo, ao executar com a opção "bwrap --ro-bind /usr /usr", a partição /usr é passada do sistema principal em modo somente leitura). As capacidades de rede são restritas ao acesso ao loopback, isolando a pilha de rede através das flags CLONE_NEWNET e CLONE_NEWUTS.
Para excluir todos os identificadores de usuário e processos desnecessários do ambiente isolado criado, podem ser utilizados os modos CLONE_NEWUSER (namespace de usuário) e CLONE_NEWPID (namespace PID), enquanto que para proibir a aquisição de novas privilégios, é aplicado o modo PR_SET_NO_NEW_PRIVS. Em sistemas com "user namespace", o Bubblewrap pode ser executado sob um usuário comum, enquanto que em sistemas sem "user namespace" pode ser utilizado com a flag suid root para realizar a inicialização necessária do ambiente isolado.
No novo lançamento:
- Foi disponibilizada a criação de pontos de montagem, onde é utilizada a camada de sistema de arquivos OverlayFS, combinando várias partes de outros sistemas de arquivos. Novas opções de linha de comando foram propostas para gerenciar o uso do OverlayFS: “--overlay”, “--tmp-overlay”, “--ro-overlay” e “--overlay-src”.
- Adicionada a opção “--level-prefix” para inserir no output de diagnóstico o nível de prioridade no estilo syslog, permitindo o uso de utilitários como “logger” e “systemd-cat” para processar a saída.
- O suporte ao sistema de build Autotools foi descontinuado. Agora, a ferramenta Meson é necessária para a construção.
Fonte: opennet.ru
