Em 30 de março de 2024, a Red Hat junto a Agência de Segurança Cibernética e de Infraestrutura dos EUA (CISA) emitiram em conjunto um aviso informando que a popular ferramenta de compactação Linux XZ Utils tem uma vulnerabilidade de alto risco com amplo impacto (pontuação CVSS 10). Verificar e corrigir essa vulnerabilidade esta sendo a prioridade máxima para varias equipes corporativas de TI e segurança esta semana.
A vulnerabilidade, numerada CVE-2024-3094, afeta a ferramenta XZ-Utils (anteriormente LZMA Utils) nas versões 5.6.0
e 5.6.1
, essa biblioteca é um conjunto de ferramentas amplamente usado para processar arquivos .xz em sistemas compatíveis com POSIX, como Linux e Unix. Inclui componentes como liblzma e xz e está integrado na maioria dos repositórios de distribuição Linux.
Esta vulnerabilidade afeta OpenSSH, embora o OpenSSH não esteja vinculado diretamente à biblioteca liblzma, ele se comunica com o systemd de uma forma que deixa o OpenSSH exposto a ataques de malware, uma vez que o systemd está vinculado ao liblzma.
Histórico do evento
Em outubro de 2021, JiaT75, o desenvolvedor que implantou a vulnerabilidade do tipo backdoor, começou a participar do desenvolvimento do projeto XZ-Utils, gradualmente ganhou confiança e assumiu a autoridade de manutenção do projeto em 2023.
Em fevereiro de 2024, ele enviou um arquivo malicioso para liblzma/xz, introduzindo um backdoor secreto que permite que invasores acessem SSH sem autorização, e os mantenedores da distribuição Linux foram contatados para solicitar que a biblioteca com o código malicioso fosse empacotada e distribuída aos usuários finais.
Em 29 de março, o desenvolvedor Andres Freund estava analisando Falhas de desempenho SSH, descobrindo assim o ataque de supply chain.
Atualmente, o GitHub encerrou todo o projeto XZ-Utils.
O usuário Evan Boehs documentou a cronologia dos eventos em seu blog, o post intitulado “Tudo oque sei sobre o backdoor XZ”, descreve em detalhes todos fatos que precederam a inserção da falha revelando como é simples se infiltrar-se na esteira de desenvolvimento de um software open-source.
Impacto
Versões afetadas: 5.6.0
– 6.1.0
Nota: Nenhum código malicioso foi encontrado na distribuição Git do XZ, ele estava presente apenas no pacote completo de download.
Distribuições Linux afetadas atualmente conhecidas:
- Fedora Rawhide (versão de desenvolvimento)
- Fedora 41
- MACOS HomeBrew x64
- openSUSE Tumbleweed e MicroOS (lançado de 7 a 28 de março)
- Kali Linux (xz-utils 5.6.0-0.2 lançado de 26 a 28 de março)
- Debian (XZ beta versão 5.5 .1alpha-0.1 a 5.6.1- 1)
Para consultar todos os impactos visite: https://repology.org/project/xz/versions
Versão não afetada: <5.6.0
Nota: Como o desenvolvedor que implantou o backdoor começou a participar da manutenção do projeto em 2021, é aconselhado a fazer o downgrade do XZ-Utils para a versão
5.4
ou versões anteriores por motivos de segurança.
Repositórios LTS estáveis como CentOS/Redhat/Ubuntu/Debian/Fedora não são afetados.
Como detectar a vulnerabilidade?
Para verificar se a versão do xz que está usando é afetada executando o seguinte comando:
xz –version
Visando solucionar o problema rapidamente, um usuário da comunidade disponibilizou uma correção automática, basta executar o script:
#! /bin/bash
# Modified to run both (redudantly, yes, I know, I am paranoid, you should be too) checks
#
set -eu
# find path to liblzma used by sshd
path="$(ldd $(which sshd) | grep liblzma | grep -o '/[^ ]*')"
echo 'Check one: does it even exist?'
# does it even exist?
if [ "$path" == "" ]
then
echo probably not vulnerable
# exit
fi
echo 'Check 2: function signature'
# check for function signature
if hexdump -ve '1/1 "%.2x"' "$path" | grep -q f30f1efa554889f54c89ce5389fb81e7000000804883ec28488954241848894c2410
then
echo probably vulnerable
else
echo probably not vulnerable
fi
Fonte do código: https://gist.github.com/darkerego/b8fe6b2ebf2949b5dbfa1593204ae659
Correção
Atualmente não há anúncio oficial ou atualização de versão para esta vulnerabilidade.
Os usuários relevantes podem fazer downgrade do xz-utils para versões anteriores a 5.6.0 ou substituí-lo por componentes como 7zip.
A atualização do brew foi revertida de 5.6.1 para 5.4.6; O Debian lançou uma atualização de utilitários xz com o número de versão 5.6.1+really5.4.5;
Reflexões
Este incidente tem e terá muito impacto sobre a comunidade open-source, as bibliotecas deve priorizar a segurança e a qualidade, e não a quantidade de entregas.
No futuro, a introdução do mantenedores nos projetos abertos deveram se tornar mais conservadora, especialmente para a pacotes considerados primordiais ou frequentemente usados.
A cadeia de fornecimento de um software será levada mais a sério, a construção de softwares livres deverá consistentemente passar por inspeções amortizando ataques na cadeia de suprimentos, tornando-as ainda mais voltadas ao Open-Closed Principle.
Ferramentas de analise serão consequentemente mais demandadas, tornando o mercado mais competitivo.
O software livre sempre foi grande empreendimento, a abertura do código fonte dissemina a tecnologia de forma mais justa, com bibliotecas de alta qualidade que são fornecidas aos desenvolvedores “downstream” a custo quase zero.
No entanto, os requisitos de entrada para a comunidade FOSS só irão piorar a medida comunidade que aumentar a probabilidade de tais problemas de segurança – aumentando assim os custos para os desenvolvedores.
Há uma necessidade de financiamento contínuo no apoio a projetos FOSS, para garantir e encorajar mais desenvolvedores a se dedicarem ao desenvolvimento e manutenção de software livre de forma consistente.
O open-soure é um dos milagre desta era tecnológica, é a sorte desta era, precisa ser protegido e mantido por todos.
Seja o primeiro a comentar