Segura essa: uma falha silenciosa, que estava escondida no coração do Linux por anos, acaba de ser revelada e está botando milhões de servidores em risco.
Pesquisadores de segurança da Qualys desvendaram um conjunto de nove vulnerabilidades críticas no AppArmor, o módulo de proteção nativo do Linux. Batizado de 'CrackArmor', o problema existe desde 2017 e afeta mais de 12,6 milhões de servidores empresariais ativos globalmente.
Quando a Proteção Vira Porta Aberta: O Risco do CrackArmor
Imagina só: o AppArmor, que deveria ser o escudo do seu sistema Linux, na verdade, tinha uma brecha enorme. Essa falha permite que um invasor, mesmo sem a senha de administrador, consiga acesso total e faça um estrago gigantesco.
Pense em infraestruturas corporativas, plataformas de nuvem que você usa todo dia e até aqueles dispositivos IoT inteligentes. Todos eles estão na mira, vulneráveis a ataques que podem derrubar serviços ou roubar dados críticos.
A coisa é séria porque o AppArmor vem ativado por padrão em distribuições populares como Ubuntu, Debian e SUSE. Ou seja, a exposição é massiva e afeta uma galera que nem imagina que está em risco.
Não é o conceito do AppArmor que está errado, mas sim a forma como o código foi implementado lá no kernel. É tipo ter uma porta supersegura, mas com a fechadura instalada de um jeito que qualquer um com uma chave de fenda consegue abrir.
Desvendando o 'Confused Deputy': Como o CrackArmor Ataca o Kernel
O ataque do CrackArmor é um clássico "confused deputy", ou "subordinado confuso", em bom português. É como se o AppArmor, o gerente do prédio, fosse enganado para abrir cofres que o invasor jamais conseguiria acessar sozinho.
Para começar a festa, o atacante só precisa de uma conta local comum. A partir daí, ele manipula uns pseudo-arquivos especiais que ficam escondidos no diretório /sys/kernel/security/apparmor/ dentro do kernel.
É por meio desses arquivos que o invasor consegue carregar, substituir ou até remover perfis de segurança sem nenhuma autorização. Isso abre um leque de possibilidades para bagunçar o sistema.
Escalada de Privilégios: De Usuário Comum a Dono do Sistema
No nível do espaço de usuário, a jogada é inteligente. O invasor carrega um perfil que bloqueia uma capacidade específica do comando sudo, que é o "superpoder" do Linux.
Em seguida, ele manipula uma variável de ambiente chamada MAIL_CONFIG. Isso faz com que o sudo envie um e-mail como root usando o Postfix, e o resultado? Um shell com privilégios totais nas mãos do atacante.
Mas a coisa fica ainda mais sinistra no nível do kernel. Uma falha do tipo "use-after-free" no componente aa_loaddata permite realocar uma página de memória que já deveria estar livre.
Essa página pode ser usada para sobrescrever diretamente o arquivo /etc/passwd, onde o Linux guarda as senhas de todos os usuários. O invasor reescreve a senha do root, usa o comando su e pronto: controle total do sistema.
Além do Acesso: Derrubando e Bloqueando Tudo
A escalada de privilégios é só o começo. O CrackArmor também pode travar o sistema inteiro. Perfis com subperfis muito profundos fazem o kernel entrar em um loop recursivo durante a remoção.
Esse processo esgota a pilha do kernel, que em sistemas x86-64 tem cerca de 16 KB. O esgotamento causa um "kernel panic", que é basicamente a tela azul do Linux, e uma reinicialização forçada.
Apenas uma hierarquia de 1024 subperfis já é suficiente para derrubar o sistema. É como um efeito dominó digital, onde uma pequena ação causa um colapso total.
E tem mais: o atacante pode bloquear serviços críticos. Carregar um perfil de "negar tudo" contra o SSH, por exemplo, impede qualquer acesso remoto legítimo. Adeus, acesso remoto!
Remover perfis de serviços como rsyslogd ou cupsd também elimina proteções importantes contra atacantes externos, deixando a porta ainda mais escancarada.
Vazamento de Memória e Fuga de Contêineres
Há ainda a possibilidade de vazar endereços da memória do kernel, o que quebra uma proteção importante chamada KASLR. Isso abre caminho para ataques remotos ainda mais sofisticados e difíceis de detectar.
Por fim, o invasor pode escapar de contêineres. Ao carregar um perfil específico para o binário /usr/bin/time, usuários sem privilégios conseguem criar namespaces de usuário com capacidades completas.
Isso contorna diretamente as restrições que o Ubuntu aplica para limitar o uso de namespaces, transformando um ambiente isolado em uma porta de saída para o sistema principal.
As correções para o CrackArmor estão sendo implementadas para proteger os sistemas Linux afetados.