Enquanto fazia alguns testes, um engenheiro da Microsoft descobriu código malicioso em software usado na maior parte das distribuições do sistema operativo Linux e pode ter salvo o mundo de um problema massivo e capaz de afetar sistemas em todo o planeta em simultâneo.

Andres Freund identificou fragmentos de código malicioso escondidos em duas versões de uma ferramenta de compressão de dados open-source altamente popular e usada em quase todas as principais distribuições Linux. A backdoor no xz Utils foi identificada no passado dia 29 de março, dias antes de diferentes distribuições do sistema operativo de código aberto atualizarem as versões em produção daquele SO para integrar a versão mais recente da biblioteca xz Utils.

Como chegou à descoberta? Pura curiosidade e impaciência com um processo que estava a levar mais tempo do que o esperado. Quanto tempo a mais? meio segundo. Os testes que levaram à descoberta de Andres Freund foram feitos numa versão beta do Debian, com um desempenho mais lento que o suposto nos logins com ligações encriptadas.

O processo passou a levar 0,8 segundos e a consumir mais recursos de CPU que o habitual e isso foi o suficiente para o engenheiro perceber que algo não estava bem e querer descobrir porquê. E descobriu. Identificou fragmentos de código malicioso no pacote de utilitários que permite deixar uma espécie de porta aberta (backdoor) para futuros ataques nos sistemas que o usem, com potencial para afetar toda a cadeia de distribuição Linux, já que visa uma biblioteca amplamente utilizada naquele ecossistema.

Um estudo mais aprofundado da descoberta já permitiu perceber que o código malicioso estava a ser injetado nesta “peça” fundamental de várias distribuições Linux há dois anos, lenta e discretamente.

O software de código aberto é a base de quase tudo na internet. São os sistemas Linux e o seu software e bibliotecas, mantidos muitas vezes por programadores independentes, que fazem mexer o mundo digital, sobretudo no universo dos servidores e das infraestruturas de internet.

Apague imediatamente estas 28 apps se as tiver no telemóvel. O aviso é da Google
Apague imediatamente estas 28 apps se as tiver no telemóvel. O aviso é da Google
Ver artigo

Ferramentas tão abrangentes como o xz são muitas vezes mantidas por uma pequena comunidade ou até por uma única pessoa, como era aparentemente o caso. O “sabotador” do utilitário juntou-se à comunidade em 2021. Esteve desde então a dar contributos aparentemente válidos para vários projetos, e desde 2022 começou a trabalhar com o Xz, escreve o The Guardian. Este sabotador identifica-se como Jia Tan na conta que mantém no Github desde 2021, o que diz muito pouco sobre a verdadeira identidade de quem está por trás do perfil. Pode ser um utilizador individual, pode ser um grupo ao serviço de um Estado, ainda ninguém sabe.

Falta também perceber que tipo de ataque dali poderia resultar, mas o que já é claro é que o trabalho foi feito com tempo, para ganhar a confiança da comunidade, que nestes últimos dois anos lidou com um infiltrado, com propósitos que ainda ninguém conhece.

A primeira tentativa de submeter alterações ao xz Utils foi apresentada por Jia Tan em 2022 e, segundo um relato da Ars Technica, terá até dado azo a algum debate sobre o nível de envolvimento dos programadores que asseguram o projeto naquela tarefa e a alguma pressão para que fosse aceite. Essa pressão terá vindo de outro membro novo na comunidade.

Foi já em fevereiro deste ano que o mesmo utilizador Jia Tan submeteu alterações para duas versões do Xz Utils (5.6.0 e 5.6.1), que introduziram a backdoor entretanto detectada. Esta vulnerabilidade permite a um atacante ligar-se a máquinas que corram aquelas versões do software através do protocolo SSH e contornar o processo de autenticação para tomar conta do sistema.

Como admitiu em declarações ao Político Anjana Rajan, assistente da Casa Branca para a área da cibersegurança , "isto é como uma ameaça interna no ecossistema de código aberto, que nunca vimos antes". As fragilidades muitas vezes debatidas de um ecossistema aberto, com software que qualquer pessoa pode ver, usar, editar ou distribuir, também têm sido pontos fortes na evolução do Linux, que bebe do conhecimento de milhões de técnicos e tira partido de muitos olhos para corrigir erros e falhas e fazer evoluir o sistema.

Desta vez alguém, que para muitos especialistas só pode ter o apoio de um Estado, usou esta mecânica para ganhar a confiança da comunidade e tirar partido das limitações de tempo dos voluntários que fazem avançar o Linux.

O problema afeta várias distribuições Linux como Fedora Rawhide, Fedora 40 Beta, Kali Linux, openSUSE Tumbleweed, openSUSE MicroOS e as distribuições experimentais Debian. A solução imediata passa por fazer o downgrade da biblioteca afetada para versões anteriores às que têm o problema, embora alguns especialistas digam que isso ainda não é uma garantia 100% fiável de que o problema fique completamente contido.

Ainda assim, o facto desta backdoor ter sido descoberta antes da versão afetada do xz Utils ter sido adicionada a versões em produção do Linux faz com que não “não tenha chegado a afetar ninguém na vida real” sublinhou Will Dormann, analista sénior da Analygence à Ars Technica. O mesmo responsável reconhece, no entanto, que se a falha não tivesse sido descoberta nesta fase, podia ter efeitos “catastróficos para o mundo”.