Lançamento do Bubblewrap 0.6, uma camada para a criação de ambientes isolados

Está disponível a versão da ferramenta para organização do trabalho em ambientes isolados Bubblewrap 0.6, utilizada principalmente para restringir aplicativos de usuários não privilegiados. Na prática, o Bubblewrap é utilizado pelo projeto Flatpak como uma camada para isolar a execução de aplicativos empacotados. O código do projeto é escrito em C e distribuído sob a licença LGPLv2+.

Para isolamento, são utilizadas tecnologias tradicionais de virtualização de contêineres do Linux, baseadas no uso de cgroups, namespaces, Seccomp e SELinux. Para realizar operações privilegiadas de configuração do contêiner, o Bubblewrap é executado com privilégios de root (arquivo executável com a flag suid), com a posterior revogação das permissões após a inicialização do contêiner.

A ativação do sistema de namespaces de identificadores de usuário (user namespaces), permitindo o uso de um conjunto separado de identificadores em contêineres, não é necessária para o funcionamento, já que, por padrão, não funciona em muitas distribuições (o Bubblewrap é posicionado como uma implementação suid limitada de um subconjunto das capacidades de user namespaces — para excluir todos os identificadores de usuários e processos do ambiente, exceto o atual, são utilizados os modos CLONE_NEWUSER e CLONE_NEWPID). Para proteção adicional, os programas executados sob Bubblewrap são iniciados no modo PR_SET_NO_NEW_PRIVS, que proíbe a obtenção de novos privilégios, por exemplo, quando a flag setuid está presente.

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.

A principal diferença em relação ao projeto semelhante Firejail, que também utiliza o modelo de execução com setuid, é que no Bubblewrap a camada para a criação de contêineres inclui apenas o mínimo necessário de funcionalidades, enquanto todas as funções avançadas necessárias para a execução de aplicativos gráficos, interação com a área de trabalho e filtragem de chamadas ao Pulseaudio, foram transferidas para o Flatpak e são executadas já após a revogação de privilégios. O Firejail, por sua vez, combina em um único arquivo executável todas as funções auxiliares, o que dificulta sua auditoria e manutenção de segurança em níveis adequados.

No novo lançamento:

  • Foi adicionado suporte ao sistema de montagem Meson. O suporte para compilação utilizando Autotools ainda está mantido, mas será removido em uma das próximas versões.
  • A opção «—add-seccomp» foi implementada para adicionar mais de um programa seccomp. Um aviso foi adicionado de que, ao especificar a opção «—seccomp» novamente, apenas o último parâmetro será aplicado.
  • A branch master no repositório git foi renomeada para main.
  • Adicionada suporte parcial à especificação REUSE, que unifica o processo de indicação de informações sobre licenças e direitos autorais. Cabeçalhos SPDX-License-Identifier foram adicionados a muitos arquivos de código. Seguir as diretrizes REUSE permite simplificar a identificação automática de qual licença se aplica a quais partes do código do aplicativo.
  • Adicionada verificação do valor do contador de argumentos da linha de comando (argc) e implementada uma saída de emergência caso o contador seja igual a zero. Essa alteração permite bloquear problemas de segurança gerados pelo tratamento incorreto de argumentos da linha de comando, como o CVE-2021-4034 no Polkit.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster