Dois pacotes maliciosos foram descobertos no npm (Node package manager) que, de forma sorrateira, patcheiam pacotes legítimos instalados localmente para injetar um backdoor de reverse shell persistente.
Dessa forma, mesmo que a vítima remova os pacotes maliciosos, o backdoor permanece no sistema.
A nova tática foi descoberta por pesquisadores da Reversing Labs, que alertaram sobre o risco que ela representa, mesmo que os pacotes não tenham sido baixados em grande quantidade.
"Não é incomum encontrar downloaders no npm; talvez eles não sejam tão comuns quanto infostealers, mas estão longe de ser raros," explica a Reversing Labs.
No entanto, este downloader merece discussão devido às estratégias excepcionais empregadas pelos atacantes para esconder o payload malicioso que ele entrega.
Os dois pacotes descobertos pela Reversing Labs durante investigações de segurança de rotina na cadeia de suprimentos de código aberto são 'ethers-provider2' e 'ethers-providerz'.
O primeiro pacote, que ainda está disponível no npm no momento deste relato, é baseado no popular pacote 'ssh2' do npm, mas com um script 'install.js' modificado que baixa um payload de segunda fase de uma fonte externa, que é executado e depois apagado ao terminar para eliminar todos os vestígios.
A segunda etapa monitora o pacote legítimo 'ethers' e, uma vez que o encontra, substitui o arquivo legítimo 'provider-jsonrpc.js' por uma versão trojanizada.
O arquivo injetado agora busca um payload de terceira fase do host remoto, que habilita um reverse shell usando um cliente SSH modificado, imitando o comportamento do cliente SSH2 legítimo.
O que torna esse ataque tão perigoso é o fato de que, mesmo se 'ethers-provider2' for desinstalado, o backdoor no pacote ethers não será removido, e assim, o pacote legítimo permanece infectado.
O pacote 'ethers-providerz' apresenta um comportamento semelhante, mas tem como alvo o pacote @ethersproject/providers ao invés.
Seu objetivo final, baseado na análise do código, é também patchear o pacote alvo com um reverse shell que aponta para o mesmo endereço IP malicioso (5[.]199[.]166[.]1:31337)
A Reversing Labs relata que versões iniciais deste pacote tinham erros de caminho, o que impedia seu funcionamento conforme pretendido.
O autor removeu-o do npm e pode planejar reintroduzi-lo após corrigir esses erros.
Os pesquisadores também mencionaram mais dois pacotes, nomeadamente 'reproduction-hardhat' e '@theoretical123/providers', que parecem estar ligados à mesma campanha.
A Reversing Labs incluiu uma regra YARA para detectar malware conhecido associado a esta campanha, portanto, os desenvolvedores devem usá-la para escanear seus ambientes em busca de ameaças remanescentes.
Em geral, ao baixar pacotes de índices de pacotes como PyPI e npm, é recomendado verificar duas vezes a legitimidade deles (e de seu publicador) e examinar seu código em busca de sinais de risco, como código ofuscado e chamadas para servidores externos.
Publicidade
Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...