O código-fonte aberto é uma bênção para o setor de TI — ajuda os programadores a economizar tempo e criar produtos com mais rapidez e eficiência, eliminando a necessidade de escrever código comum repetitivo. Para facilitar esse compartilhamento de conhecimento, existem repositórios — plataformas abertas onde qualquer desenvolvedor pode publicar seus próprios pacotes com seu código para agilizar o processo de desenvolvimento para outras pessoas.
Esses repositórios atendem a inúmeras necessidades da comunidade de TI e são amplamente utilizados no desenvolvimento de basicamente qualquer software moderno: aplicativos da web, aplicativos móveis, dispositivos inteligentes, robôs, o que você quiser. Os pacotes mais populares recebem milhões de downloads semanais e são a base de muitos aplicativos, desde projetos de estimação até startups de tecnologia bem conhecidas.
De acordo com algumas estimativas, 97% do código em aplicativos da Web modernos vem de módulos npm. No entanto, sua popularidade e facilidade no upload de qualquer pacote inevitavelmente atraem cibercriminosos. Por exemplo, em 2021, invasores desconhecidos comprometeram várias versões de uma biblioteca JavaScript popular, UAParser.js, injetando código malicioso. Esta biblioteca era baixada de 6 a 8 milhões de vezes por semana. Ao infectá-la, os cibercriminosos conseguiram minerar criptomoedas e roubar informações confidenciais, como cookies do navegador, senhas e credenciais do sistema operacional de dispositivos infectados.
E aqui está um exemplo mais recente: em 26 de julho de 2022, nossos pesquisadores descobriram uma nova ameaça que apareceu no repositório npm de código aberto que eles apelidaram de LofyLife.
Então, o que é LofyLife?
Usando um sistema automatizado interno para monitorar repositórios de código aberto, nossos pesquisadores identificaram a campanha maliciosa LofyLife. A campanha empregou quatro pacotes maliciosos espalhando os malwares Volt Stealer e Lofy Stealer no repositório npm para coletar várias informações das vítimas, incluindo tokens Discord e informações de cartão de crédito vinculadas, e espioná-las ao longo do tempo.
Os pacotes maliciosos identificados pareciam ser usados para tarefas comuns, como formatação de títulos ou certas funções de jogos. As descrições dos pacotes estavam incompletas e, no geral, parece que os invasores não se esforçaram muito. No entanto, o pacote de ‘formatação de títulos’ estava em português do Brasil com a hashtag #brazil, o que mostra que os invasores que procuram atingir usuários baseados no Brasil. Outros pacotes foram apresentados em inglês, para que pudessem ser direcionados a usuários de outros países.
Esses pacotes, no entanto, continham códigos JavaScript e Python maliciosos altamente ofuscados. Isso os tornou mais difíceis de analisar ao serem carregados no repositório. A carga maliciosa consistia em um malware escrito em Python chamado Volt Stealer – um script malicioso de código aberto e um malware JavaScript chamado Lofy Stealer, que possui vários recursos.
O Volt Stealer foi usado para roubar tokens Discord das máquinas infectadas junto com o endereço IP da vítima e carregá-los via HTTP. O Lofy Stealer, um novo desenvolvimento dos invasores, é capaz de infectar arquivos do cliente Discord e monitorar as ações da vítima — detectando quando um usuário faz login, altera e-mail ou senha cadastrados, ativa ou desativa a autenticação multifator e adiciona novos métodos de pagamentos (nesse caso, ele rouba detalhes completos do cartão de crédito). Ele carrega as informações coletadas para o endpoint remoto.
Como se proteger de pacotes maliciosos
Os repositórios de código aberto permitem que qualquer pessoa publique seus próprios pacotes, e nem todos são completamente seguros. Por exemplo, os invasores podem se passar por pacotes npm populares alterando uma ou duas letras no nome para enganar o usuário e fazê-lo pensar que está baixando o pacote original. Portanto, recomendamos estar atento e não tratar os pacotes como confiáveis.
Em geral, 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 uma forte proteção antimalware, a Kaspersky Hybrid Cloud Security. Nossos produtos detectam com sucesso o ataque LofyLife com veredictos HEUR:Trojan.Script.Lofy.gen e Trojan.Python.Lofy.a.
Se você quiser ser um dos primeiros a saber sobre novas campanhas maliciosas espalhadas por meio de código-fonte aberto, assine feeds e relatórios de inteligência de ameaças, como os fornecidos pelo Threat Intelligence Portal.