Devido a atualizações maliciosas feitas no xz Utils, o mundo estava perto de ser infectado por um incidente de backdoor recentemente descoberto. O impacto teve o potencial de causar uma devastação semelhante ao ataque da SolarWinds em 2020, que permitiu que hackers russos penetrassem no núcleo de muitas agências governamentais dos Estados Unidos.
O ataque esteve “terrivelmente próximo” do sucesso e foi descrito pelo engenheiro de software e criptografia Filippo Valsorda como talvez o “ataque à cadeia de suprimentos mais bem executado” já observado até o momento, relata a Ars Technica.
Grande parte do código crowdsourced da Internet é vulnerável à infiltração de maus atores e estados-nação. O software de código aberto está no “coração da Internet”, é mantido em grande parte por um punhado de voluntários e isso o torna um grande risco de segurança para empresas e governos, informou o The Economist . O software de código aberto é comumente implantado em infraestrutura digital devido ao seu baixo custo. Essa infra-estrutura, que está incorporada em todo o mundo digital, está sob ataque de vários Estados-nação inimigos.
Em 29 de março de 2024, Andres Freund, engenheiro de software da Microsoft , encontrou um “backdoor escondido em um software que faz parte do sistema operacional Linux”. Esse backdoor veio do código-fonte do xz Utils, que foi adulterado e permitiu acesso não autorizado aos sistemas que usavam as versões afetadas. O código-fonte comprometido era do utilitário de compactação de dados de código aberto xz Utils em sistemas Linux. O New York Times escreveu que o engenheiro evitou um “ataque cibernético potencialmente histórico”.
Como o xz Utils é um software de código aberto, qualquer pessoa pode ver o código como ele é público e quais alterações foram feitas.
Um desenvolvedor chamado Jia Tan começou a fazer contribuições úteis de código para o projeto e aos poucos ganhou confiança. Com o tempo, o malfeitor contrabandeou malware. O serviço de inteligência estrangeiro da Rússia, SVR, suspeito de estar por trás dos ataques, é o mesmo serviço de inteligência por trás do ataque à SolarWinds.
A Open Source Security Foundation (OSSF) alertou que o ataque xz Utils provavelmente não foi um incidente isolado. Atores mal-intencionados foram pegos usando táticas semelhantes de engenharia social para tentar assumir o controle de outros projetos, como a OpenJS Foundation para projetos JavaScript.
Falando à mídia Frontsight, Ryan Ware, especialista em software de código aberto, explicou a magnitude dos riscos em jogo:
“Nossa infraestrutura digital é muito vulnerável”, segundo Ware. “Até o momento, existem 177.914 CVEs publicados. Digamos, para fins de argumentação, que existam 1 bilhão de linhas de código em código aberto (é muito mais, mas deixaremos esse argumento para outro dia). Digamos também, para fins de argumentação, que metade desses CVEs são de código aberto (90.000 para um bom número redondo). Isso significa que para o código-fonte aberto encontramos apenas uma vulnerabilidade para cada 11.111 linhas de código”, disse ele.
“As empresas matariam para ter um código tão limpo que só fosse encontrada uma vulnerabilidade para cada 11.000 linhas de código”, “Além disso, embora haja uma pequena queda na quantidade de software de código aberto sendo escrito no momento, ainda estamos em máximos históricos na quantidade de código escrito”, explicou Ware. Ele descreveu um cenário em que, para cada vulnerabilidade encontrada, há mais 5 a 10 vulnerabilidades adicionais a serem encontradas antes que o código esteja correto.
A magnitude do quase acidente do XZ Utils serve como um lembrete gritante da fragilidade do software crowdsourced e da necessidade urgente de instalações à prova de falhas, como Ware explica ainda:
“Sabemos absolutamente que os estados-nação procuram subverter a segurança do software. Tudo que você precisa fazer é olhar a lista de APTs que estão por aí.” Ware disse, explicando ainda que “historicamente, esses atores de ameaças têm se concentrado em usar vulnerabilidades de dia zero para atingir seus objetivos”. No entanto, ele também observou que “operacionalmente, esses agentes de ameaças não apenas encontram um dia zero e imediatamente o exploram. Eles acumulam vulnerabilidades de dia zero (descobertas por meio de suas próprias pesquisas ou compradas) e depois as utilizam quando precisam de uma que satisfaça seus objetivos operacionais.”
Enquanto isso, Ware apontou o longo período de tempo entre a existência de uma vulnerabilidade e o tempo que leva para os desenvolvedores de software corrigirem seus sistemas. Os atores da ameaça podem acumular vulnerabilidades por um longo tempo, à medida que esse atraso nos reparos continua.
O que não tem havido muita visibilidade ao longo do tempo é o que os atores do Estado-nação têm feito para manipular o software. “Todo o incidente com xz deu uma pequena visão sobre isso, incluindo mostrar que tipos de recursos esses estados-nação podem utilizar”, disse Ware. No entanto, o incidente xz não é a única evidência de que algo desta sofisticação da engenharia social foi tentado. “Honestamente, minhas preocupações são o que tem sido feito pelos estados-nação tanto no domínio do software de código aberto quanto no do software comercial que não conhecemos no momento”, destacou Ryan.
Quando questionado se o incidente da SolarWinds desapareceu da memória recente, na opinião de Ware, depende de a quem você pergunta:
“Não creio que as lições da SolarWinds tenham desaparecido dos funcionários do governo. Grande parte do trabalho em torno da segurança da cadeia de fornecimento de software no OpenSSF (como SLSA e GUAC) está sendo feito porque a CISA quer ver soluções nesta área”, disse ele.
“Acho que definitivamente saiu da consciência pública, mas ao mesmo tempo não sei o quanto isso permeou a consciência pública”, acrescentou Ware, destacando uma perspectiva com implicações para o desenvolvedor de software amador médio, muitas vezes membro de a “consciência pública”.