DEV Community

Molinero
Molinero

Posted on

ALERTA DE SEGURANÇA: POSSÍVEL BACKDOOR SSH ATRAVÉS DO LIBLZMA

Em uma notícia de última hora que foi divulgada logo após a publicação de nossa coluna semanal de segurança, foi descoberta um backdoor no pacote xz, que poderia potencialmente comprometer logins SSH em sistemas Linux. A análise mais detalhada até o momento parece ser de [Andres Freund] na lista oss-security.

Os arquivos tarballs de lançamento do xz a partir da versão 5.6.0 no final de fevereiro e 5.6.1 em 9 de março ambos contêm código malicioso. Um par de arquivos comprimidos no repositório contém a maior parte do patch malicioso, disfarçado como arquivos de teste. Na prática, isso significa que olhar para o repositório não revela nada de errado, mas baixar o release do tarball forece o código comprometido.

Isso foi descoberto porque os logins SSH em um Debian sid estavam demorando mais tempo, com mais ciclos de CPU do que o esperado. E interessantemente, o Valgrind estava gerando erros inesperados ao ser executado na biblioteca liblzma. Essa última parte foi descoberta pela primeira vez em 24 de fevereiro, imediatamente após o lançamento da versão 5.6.0. O pacote xz-utils falhou em seus testes em compilações Gentoo.

Um dos mantenedores do xz, [Jia Tan], comentou sobre esse bug do Gentoo, sugerindo que era um bug do GCC causando os erros do Valgrind. Este é o mesmo desenvolvedor que enviou os arquivos de arquivo maliciosos e lançou as versões contaminadas. E como se para dissipar quaisquer dúvidas restantes, o desenvolvedor reafirmou em um commit no GitHub, contornando os erros do Valgrind e vinculando a um relatório de bug do GCC completamente não relacionado, afirmando ser este o problema.

Neste ponto, a única conclusão razoável é que a pessoa no controle da conta GitHub [JiaT75] é um contribuidor malicioso e completamente não confiável. O que não está claro é se este ainda é o mesmo desenvolvedor que tem sido co-mantenedor do projeto desde agosto de 2022. É possível que [Jia Tan] sempre tenha sido um mau contribuidor, ou que essa conta possa estar completamente comprometida.

E QUANTO AO SSH?
O que pode não estar claro é a conexão com o SSH. E isso é uma doideira ! Muitas distribuições Linux aplicam um patch ao sshd para adicionar recursos do systemd, e o libsystemd usa a biblioteca liblzma. Isso significa que o código de inicialização do liblzma é executado quando o sshd é iniciado. No código malicioso, a biblioteca verifica argv[0], que é o nome do programa em execução, para /usr/bin/sshd. Além disso, parece verificar ferramentas de depuração como rr e gdb. Se as verificações forem positivas, o liblzma substitui algumas chamadas de função pelo seu próprio código. É uma "dança" complicada, mas o exploit está especificamente procurando substituir RSA_public_decrypt.

Essa é uma função muito interessante para ser sobrescrita, pois é uma das funções usadas para validar chaves SSH. Não é difícil imaginar como código malicioso aqui poderia verificar uma assinatura mágica e contornar o processo de login normal. A análise completa ainda está sendo feita, e espere mais informações nos próximos dias.

Mas a conclusão é que uma máquina com um binário sshd patcheado, que também tem os pacotes xz na versão 5.6.0 ou 5.6.1, está vulnerável a logins SSH não autenticados. A boa notícia é que apenas algumas distribuições enviaram a série 5.6.x de pacotes xz. O Fedora Rawhide/41 os enviou, e o Debian Testing e Unstable enviaram essas versões também. Se você estiver em um sistema afetado, procure por uma atualização imediatamente.

Não está claro qual será o caminho a seguir para o projeto xz. Este é obviamente um utilitário de sistema importante para sistemas Linux, e seus mantenedores atuais parecem estar dormindo no volante — ou intencionalmente direcionando-se para o desastre. Espere um ou mais forks difíceis e, em seguida, muito trabalho de limpeza.

Esta é uma história em desenvolvimento. Para mais informações, consulte o alerta de segurança do Redhat, o alerta do Debian e a thread oss-security sobre o assunto.

Fonte: https://hackaday.com/2024/03/29/security-alert-potential-ssh-backdoor-via-liblzma/

Top comments (0)