Meu computador Linux escapou de um potencial perigo que teria comprometido a sua segurança, mas esta não é a história habitual de uma vulnerabilidade correta (você sabe instalar Linux no Windows?).

Não, desta vez um hacker que fingiu ser voluntário por 2 anos para manter uma componente do sistema operacional e um voluntário descobriu o problema por acaso. Vamos descobrir como e o que isso implicaria, mas acima de tudo os riscos de um sistema extremamente vulnerável, que não investe no trabalho em que se baseia o servidor dos gigantes da Web.

O que aconteceu

O ataque

Em 29 de março, foi descoberto um ataque ao sistema Linux que injetou código malicioso no pacote XZ. Este código modifica as funções dentro liblzma, que é uma biblioteca de compactação de dados que faz parte do pacote Utilitários XZ e é uma parte essencial de várias distribuições Linux importantes.

O pacote Utilitários XZ é um projeto pequeno Código aberto mantido gratuitamente por um desenvolvedor desde pelo menos 2009, mas é extremamente importante.

A incrível história da vulnerabilidade: como ela foi descoberta

A descoberta desta vulnerabilidade dá uma ideia de quão frágil é o mundo do Linux. Em 29 de março, um amigo do André, um desenvolvedor da Microsoft que também é voluntário no PostgreSQL, está fazendo algumas micro-benchmarking rotineiramente quando percebe um pequeno atraso de 600ms nos processos ssh. Eles estão usando uma quantidade surpreendente de CPU, mesmo que falhem imediatamente.

Ele imediatamente fica desconfiado e lembra que algumas semanas antes tinha notado uma “reclamação estranha” por um usuário do Postgres no Valgrind, o programa Linux que verifica erros de memória.

Depois de investigar, Freund descobre o problema e publica sua descoberta na Lista de discussão de segurança de código aberto com o título “Um backdoor foi aberto no repositório xz e no tarball xz”.

Um ataque planejado há dois anos e pode não ter acabado

A comunidade então tenta entender o que havia acontecido e descobre que o responsável era um desenvolvedor que assumiu o controle do Projeto XZ.

Como vimos o XZ é mantido por um único desenvolvedor, Lasse Collin. Em 2021, Jia Tan, começa a enviar contribuições para o projeto e depois dois desenvolvedores, provavelmente fictícios, Kumar e Ens, começam a reclamar do pouco progresso no desenvolvimento.

Collin pede desculpas dizendo que tem problemas de saúde mental e, por insistência de Kumar e Ens, confia primeiro a Jia Tan um papel maior e em 2022 a manutenção do projeto.

Por dois anos, Jia Tan trabalha no pacote XZ e injeta o código malicioso para abrir a porta dos fundos. Mas dado o esforço e os recursos envolvidos, muitos na Web especulam que o autor do código malicioso é um atacante sofisticado, possivelmente afiliado a uma agência estadual.

A situação ainda está em desenvolvimento e mais pode ser descoberto sobre a vulnerabilidade.

O problema dos mantenedores

O acidente e suas possíveis consequências são um exemplo da vulnerabilidade do código aberto. Na prática, muitos sistemas que alimentam os servidores de organizações multibilionárias são mantidos gratuitamente por voluntários.

Esses investimentos não são considerados tentadores, embora provavelmente sim eles pagariam milhares de vezes ao longo do tempo. Os detalhes deste ataque foram descobertos sem o apoio financeiro direto de muitas das empresas e organizações que beneficiam destas bibliotecas.

Meu computador está comprometido?

Quais distribuições são afetadas? Digamos desde já que as versões estáveis do Debian Linux (como Ubuntu) são seguros, mas versões de teste, instáveis e experimentais exigem atualizações do xz-utils devido a pacotes comprometidos.

O chapéu vermelho identificou pacotes vulneráveis em Fedora 41 e Couro cru Fedora, mas não no Red Hat Enterprise Linux (RHEL), e desaconselha seu uso até que uma atualização esteja disponível.

O SUSE lançou atualizações para openSUSE (Tumbleweed ou MicroOS). Os usuários de KaliLinux que atualizaram seu sistema entre 26 e 29 de março devem atualizar novamente por uma correção, enquanto aqueles que atualizaram antes de 26 de março não são afetados por esta vulnerabilidade.

Lembramos que o pacote em risco é o XZ Utils, versões 5.6.0 e 5.6.1, mas como sabemos se nosso computador foi afetado? Simples, você pode descobrir a versão dos Utilitários XZ executando o comando em SSH.