Acesso aos namespaces de usuário é restrito no Ubuntu 23.10

Para melhorar a segurança do sistema, agora o acesso aos namespaces de usuário é restrito no Ubuntu 23.10 Mantic Minotaur.

Após o lançamento da nova versão do Ubuntu 23.10 “Mantic Minotaur” todos os detalhes desta nova versão da popular distribuição Linux já foram divulgados (você pode consultar a publicação sobre o assunto neste link).

Do grande número de alterações que acompanham o lançamento, existem várias específicas que alteram determinados aspectos do sistema.

A razão para mencionar isso é que uma dessas mudanças é a nova restrição imposta aos namespaces de usuários.

A nova mudança implementada pela Canonical no Ubuntu 23.10 tem como objetivo restringir o acesso de usuários não privilegiados a namespaces, tornando os sistemas que dependem do isolamento de contêineres mais seguros contra vulnerabilidades que exigem a manipulação do espaço de nomes de usuários a serem explorados.

Acesso aos namespaces de usuário é restrito no Ubuntu 23.10

Acesso aos namespaces de usuário é restrito no Ubuntu 23.10
Acesso aos namespaces de usuário é restrito no Ubuntu 23.10

Namespaces de usuários sem privilégios são um recurso do kernel que pode ser usado para substituir muitos usos dos programas setuid e setguid e permitir que aplicativos criem sandboxes mais seguras.

E os Namespaces no kernel Linux permitem que diferentes representações de recursos sejam atribuídas a diferentes processos; Por exemplo, um processo pode ser colocado em um ambiente com seus próprios pontos de montagem, UTS, IPC, PID e pilha de rede, que não se sobrepõem ao ambiente de outros processos.

Os Namespaces sem privilégios permitem criar namespaces não apenas para o usuário root, mas também para usuários normais sem privilégios (por exemplo, usados ​​para navegadores em área restrita).

Entre outras coisas, você pode criar namespaces de usuário e namespaces de rede, que permitem que um processo em uma sandbox separada obtenha privilégios de root ou acesse recursos avançados da pilha de rede, mas permaneça sem privilégios fora do contêiner.

Em teoria, as operações privilegiadas dentro de um namespace são isoladas do sistema principal, mas na prática, vulnerabilidades surgem regularmente em subsistemas do kernel que são inacessíveis a um usuário sem privilégios no ambiente principal, mas podem ser exploradas através de manipulações a partir de namespaces.

O problema com este modelo é que eles expõem interfaces de kernel que normalmente são restritas a processos com capacidades privilegiadas (root) para uso por usuários sem privilégios.

É por isso que isso se torna um processo que introduz riscos de segurança adicionais, expondo mais interfaces de kernel do que o necessário, e agora é amplamente utilizado como uma etapa em várias cadeias de exploração de escalonamento de privilégios.

No caso do Ubuntu, isso mudou agora, pois o acesso aos namespaces de usuário agora é concedido apenas a programas para os quais um perfil AppArmor especial foi adicionado, que pode ser usado como exemplo para abrir o acesso ao namespace de usuário para outros programas.

A mudança é mencionada para melhorar a segurança de sistemas que utilizam isolamento de contêineres de vulnerabilidades que exigem acesso ao namespace do usuário para explorá-las.

“Embora a desativação de namespaces de usuários sem privilégios possa impedir uma exploração, ela também pode interromper os aplicativos que os utilizam. Normalmente, uma exploração tem como alvo um aplicativo específico e, desde que namespaces de usuários sem privilégios possam ser desabilitados para esses aplicativos, não há necessidade de desabilitá-los em todo o sistema.”

É mencionado que nenhuma versão anterior ao Ubuntu 23.10 “Mantic Minotaur” será afetada por esta mudança, mesmo usando o kernel 6.5, já que a função não está habilitada diretamente no kernel, mas dentro do pacote apparmor específico para Ubuntu 23.10 “Mantic ” Minotauro.”

Por fim, menciona-se que para quem deseja desabilitar esta alteração, pode fazê-lo digitando o seguinte em um terminal:
sudo sysctl -w kernel.apparmor_restrict_unprivileged_unconfined=0
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
Se você tiver interesse em saber mais sobre esse assunto, pode consultar os detalhes no seguinte endereço.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.