O caso do backdoor no xz Utils: o que sabemos sobre o incidente que quase infectou o mundo todo
- xz Utils é um utilitário de compressão de dados instalado em quase todos os sistemas operacionais da família Unix, incluindo Linux.
- Ocorreu um incidente em que uma atualização maliciosa quase inseriu um backdoor nesse software.
- Um desenvolvedor da Microsoft descobriu e divulgou esse backdoor, evitando uma crise pouco antes de ele ser incorporado a grandes distribuições Linux como Debian e Red Hat.
Como o backdoor funciona?
- O código malicioso adicionado nas versões 5.6.0 e 5.6.1 manipula o
sshd, ou seja, o executável responsável por conexões SSH.
- Alguém com uma chave criptográfica específica pode ocultar código em um certificado de autenticação de login SSH, enviá-lo e executá-lo em um dispositivo com o backdoor instalado.
- Não se sabe qual código foi efetivamente enviado, mas, em teoria, seriam possíveis várias ações, como roubo de chaves criptográficas ou instalação de malware.
Como o backdoor foi inserido
- O backdoor parece ter sido construído ao longo de vários anos.
- Em 2021, um usuário chamado JiaT75 contribuiu pela primeira vez para um projeto de código aberto.
- Em janeiro de 2023, JiaT75 fez sua primeira contribuição ao xz Utils e, depois disso, passou a assumir gradualmente mais funções sob o nome Jia Tan.
- Tan substituiu, no projeto
oss-fuzz, as informações de contato de Collins pelas suas e pediu que o recurso ifunc fosse desativado durante os testes.
- Essas mudanças dificultaram a detecção quando Tan introduziu alterações maliciosas no xz Utils.
Distribuições afetadas
- Fedora Rawhide, Fedora 41, Debian testing/unstable/experimental, openSUSE Tumbleweed e MicroOS, Kali Linux e outras incluíam versões do xz com o backdoor.
Opinião do GN⁺
- Esse incidente expõe fragilidades de segurança no ecossistema de código aberto e serve de alerta para a comunidade de desenvolvedores.
- Como o software comprometido é amplamente usado, o caso reforça para usuários e administradores de Linux a importância de atualizações rápidas e verificações de segurança.
- Um caso semelhante foi o hack da SolarWinds, que também mostrou os riscos de ataques à cadeia de suprimentos.
- É necessário verificar a identidade dos desenvolvedores que contribuem para projetos de código aberto e reforçar o processo de revisão de código.
- Espera-se que, a partir deste caso, a importância de auditorias de segurança e de ferramentas de detecção de vulnerabilidades ganhe ainda mais destaque.
1 comentários
Opinião do Hacker News
O OpenSSH é a implementação de
sshdmais popular e não se vincula à bibliotecaliblzma, mas o Debian e muitas outras distribuições Linux adicionam patches para vincular osshdaosystemd. Osystemdse vincula àliblzma, então o xz Utils pôde afetar osshd.Xz é um programa e biblioteca de compressão de código aberto, útil para escrever seus próprios programas para lidar com dados comprimidos. É usado por muitos outros programas, incluindo o OpenSSH.
O
binutilsdo GNU também se vincula àliblzmae é ainda mais amplamente usado do que o OpenSSH. Na maioria dos casos, obinutilsé usado para compilar o OpenSSH, o sistema operacional em que osshdroda etc. Isso sugere que os agentes maliciosos escolheram um bom projeto para se infiltrar profundamente no software de código aberto.O objetivo é usar um framework de testes padronizado que ajude a escrever mais testes para apoiar a estabilidade do projeto XZ no longo prazo. Muitas funcionalidades ainda não são testadas, então esses testes seriam úteis.
Não houve muita discussão sobre o mecanismo de linkagem que permite se conectar à função
RSA_public_decrypt. Houve muita discussão sobre o que poderia ser alcançado com separação de processos e afins, mas pouco sobre esse redirecionamento de chamada de função. Fica a dúvida se seria possível estabelecer uma forma de conectar componentes importantes em camadas de confiança.Dizem que “quase” infectou o mundo, mas, na prática, distribuições Linux populares como Arch, Gentoo e openSUSE Tumbleweed foram distribuídas por semanas com o backdoor incluído, e no Tumbleweed ele definitivamente funcionou. A expressão “quase” é inadequada.
Há a previsão de que um caso semelhante será encontrado nos próximos 12 meses. Isso começará com mantenedores desconfiando dos commits antigos uns dos outros.
Lições pessoais tiradas deste incidente:
autotoolse a cultura deautotoolssão ruins.libsystemdcausa problemas no ecossistema. As pessoas que criticam osystemdmuitas vezes são ignoradas, mas osystemdé grande, complexo, tem muitas dependências, e a maioria dos programas usa apenas uma pequena parte dele.liblzmaexz-utilstêm dezenas de milhões de instalações, mas havia um único mantenedor com problemas de saúde mental.Agradecimento ao fato de que quem descobriu o problema era um engenheiro da Microsoft que trabalhava no Azure Postgres. Agora passou a gostar do Azure.
O mantenedor original do xz pode ter transferido a responsabilidade para Jia Tan sem jamais tê-lo encontrado pessoalmente nem falado por telefone. Fica a dúvida se é comum se comunicar apenas por e-mail/GitHub. A expectativa é de que, depois dessa história, os mantenedores de projetos open source fiquem mais cautelosos.
Embora se pense que esse backdoor foi descoberto cedo, ele pode já ter atingido seu objetivo. Isso é ainda mais provável se os alvos fossem desenvolvedores que usam distribuições rolling release como Kali e Debian.
A alegação de que Lasse Collin, mantenedor de longa data do xz Utils, não atualizava o software com frequência ou rapidez suficientes parece ter sido um equívoco.