Cibercriminosos desconhecidos comprometeram várias versões de uma biblioteca JavaScript popular, UAParser.js, injetando código malicioso. De acordo com estatísticas na página dos desenvolvedores, muitos projetos usam a biblioteca, que é baixada de 6 a 8 milhões de vezes por semana.
Os malfeitores comprometeram três versões da biblioteca: 0.7.29, 0.8.0 e 1.0.0. Todos os usuários e administradores devem atualizar a para as versões 0.7.30, 0.8.1 e 1.0.1, respectivamente, o mais rápido possível.
O que é UAParser.js e o motivo de sua popularidade
Os desenvolvedores de JavaScript usam a biblioteca UAParser.js para analisar os dados User-Agent enviados pelos navegadores. Ele é implementado em muitos sites e usado no processo de desenvolvimento de software de várias empresas, incluindo Facebook, Apple, Amazon, Microsoft, Slack, IBM, HPE, Dell, Oracle, Mozilla e muito mais. Além disso, alguns desenvolvedores de software usam aplicações de terceiros, como o framework Karma para teste de código, que também depende dessa biblioteca, aumentando ainda mais a escala do ataque ao adicionar um link adicional à cadeia de suprimentos.
A introdução do código malicioso
Os invasores incorporaram scripts maliciosos à biblioteca para baixar o código infectado e executá-lo nos computadores das vítimas, tanto no Linux quanto no Windows. O objetivo de um módulo era extrair criptomoeda. Um segundo (apenas para Windows) era capaz de roubar informações confidenciais, como cookies do navegador, senhas e credenciais do sistema operacional.
No entanto, isso pode não ser tudo: de acordo com o aviso da Agência de Proteção Cibernética e de Infraestrutura dos EUA (CISA, sigla em inglês), a instalação de bibliotecas comprometidas pode permitir que invasores assumam o controle dos sistemas infectados.
De acordo com os usuários do GitHub, o malware cria arquivos binários: jsextension (no Linux) e jsextension.exe (no Windows). A presença desses arquivos é um claro indicador de comprometimento do sistema.
Como o código malicioso entrou na biblioteca UAParser.js
Faisal Salman, o desenvolvedor do projeto UAParser.js, afirmou que um invasor não identificado obteve acesso à sua conta no repositório npm e publicou três versões maliciosas da biblioteca UAParser.js. O desenvolvedor imediatamente adicionou um aviso aos pacotes comprometidos e contatou o suporte do npm, que removeu rapidamente as versões perigosas. No entanto, enquanto os pacotes estavam online, um número significativo de máquinas poderia ter baixado.
Aparentemente, eles ficaram online por pouco mais de quatro horas, das 14h15 às 18h23 CET (Central European Time) do dia 22 de outubro. À noite, o desenvolvedor notou atividade incomum de spam em sua caixa de entrada – ele disse ficou alerta sobre atividades suspeitas – e descobriu a causa raiz do problema.
O que fazer se você baixou bibliotecas infectadas
A primeira etapa é verificar se há malware nos computadores. Todos os componentes usados no ataque são detectados com sucesso por nossos produtos.
Em seguida, atualize suas bibliotecas para as versões corrigidas – 0.7.30, 0.8.1 e 1.0.1. No entanto, isso não é suficiente: de acordo com o comunicado, qualquer computador no qual uma versão infectada da biblioteca foi instalada ou executada deve ser considerado completamente comprometido. Portanto, os usuários e administradores devem alterar todas as credenciais usadas nesses computadores.
De maneira geral, os ambientes de desenvolvimento ou construção são alvos convenientes para invasores que tentam organizar ataques à cadeia de suprimentos. Isso significa que esses ambientes exigem urgentemente proteção antimalware.