Lançamento do Bubblewrap 0.12, uma camada para criar ambientes isolados

Foi lançada uma nova versão do conjunto de ferramentas para organizar o trabalho em ambientes isolados Bubblewrap 0.12, que é utilizado para restringir aplicativos de usuários não privilegiados. Na prática, o Bubblewrap é usado pelo projeto Flatpak como uma camada para isolar a execução de aplicativos empacotados. Para o isolamento, são utilizadas tecnologias tradicionais de virtualização em contêineres do Linux, baseadas no uso de cgroups, namespaces, Seccomp e SELinux. O código do projeto é escrito em C e está disponível sob a licença LGPLv2.1+.

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 desnecessários de usuários e processos do ambiente isolado criado, podem ser utilizados os modos CLONE_NEWUSER (user namespace) e CLONE_NEWPID (PID namespace), e para proibir a obtenção de novos privilégios, utiliza-se o modo PR_SET_NO_NEW_PRIVS. Para obter os privilégios necessários, é usado o "user namespace".

No novo lançamento:

  • A licença do código foi alterada de LGPL 2.0+ para LGPL 2.1+.
  • O suporte para compilação na forma de um arquivo executável que obtém privilégios adicionais através da flag suid root foi encerrado. A presença do suporte a "user namespace" no sistema agora é obrigatória. A dificuldade de manutenção da versão com a flag suid foi citada como motivo, devido ao amplo suporte a "user namespace" em distribuições.
  • Foi adicionada a opção "--not-a-security-boundary", que quando marcada faz com que algumas falhas na configuração do ambiente sandbox isolado, como a remontagem de uma subpartição, não levem a um término anômalo.
  • Uma opção de compilação chamada "assume_kernel" foi adicionada, que desabilita a garantia de retrocompatibilidade com versões do kernel Linux mais antigas que a versão especificada. Por exemplo, a indicação de versões 5.6.0+ levará à exclusão da implementação alternativa da funcionalidade "openat2(RESOLVE_IN_ROOT)".

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