Table of Contents
Três pacotes maliciosos publicados no registro npm em setembro de 2024 foram encontrados contendo um malware conhecido como BeaverTail, um downloader JavaScript e ladrão de informações ligado a uma campanha contínua da Coreia do Norte, rastreada como Entrevista Contagiosa.
A equipe de Pesquisa de Segurança da Datadog está monitorando a atividade sob o nome Pungsan Tenaz, que também é conhecido pelos apelidos CL-STA-0240 e Chollima Famosa.
Os nomes dos pacotes maliciosos, que não estão mais disponíveis para download no registro de pacotes, estão listados abaixo –
- passports-js, uma cópia com backdoor do passport (118 downloads)
- bcrypts-js, uma cópia com backdoor do bcryptjs (81 downloads)
- blockscan-api, uma cópia com backdoor do etherscan-api (124 downloads)
A Entrevista Contagiosa refere-se a uma campanha de um ano realizada pela República Popular Democrática da Coreia (RPDC), que envolve enganar desenvolvedores para que baixem páginas maliciosas ou aparentemente inócuas de aplicativos de videoconferência como parte de um teste de codificação. Isso veio à tona pela primeira vez em novembro de 2023.
Esta não é a primeira vez que os atores de ameaça usaram pacotes npm para distribuir o BeaverTail. Em agosto de 2024, a empresa de segurança da cadeia de suprimentos de software Phylum divulgou outro grupo de pacotes npm que abriu caminho para a implantação do BeaverTail e um backdoor em Python chamado InvisibleFerret.
Os nomes dos pacotes maliciosos identificados na época eram temp-etherscan-api, ethersscan-api, telegram-con, helmet-validate e qq-console. Um aspecto comum entre os dois conjuntos de pacotes é o esforço contínuo por parte dos atores de ameaça para imitar o pacote etherscan-api, sinalizando que o setor de criptomoedas é um alvo persistente.
Então, no mês passado, a Stacklok disse que detectou uma nova onda de pacotes falsificados – eslint-module-conf e eslint-scope-util – que são projetados para colher criptomoedas e estabelecer acesso persistente a máquinas de desenvolvedores comprometidas.
A Palo Alto Networks Unidade 42 disse ao The Hacker News no início deste mês que a campanha provou ser uma maneira eficaz de distribuir malware, explorando a confiança e a urgência de um buscador de emprego ao se candidatar a oportunidades online.
As descobertas destacam como os atores de ameaça estão cada vez mais abusando da cadeia de suprimentos de software de código aberto como um vetor de ataque para infectar alvos em downstream.
Copiar e backdoorizar pacotes npm legítimos continua sendo uma tática comum de atores de ameaça neste ecossistema. Essas campanhas, juntamente com a Entrevista Contagiosa de forma mais ampla, destacam que desenvolvedores individuais continuam sendo alvos valiosos para esses atores de ameaça vinculados à RPDC.
Quais as etapas para identificar pacotes npm maliciosos?
Para identificar pacotes npm maliciosos, são necessárias várias etapas e estratégias de segurança. Este artigo apresenta um guia abrangente para desenvolvedores que desejam proteger seus projetos contra malware e pacotes prejudiciais.
1. Gather Information and Monitor Packages
- Antes de instalar qualquer pacote, é crucial gather informações sobre o pacote, incluindo sua origem, mantenedores e histórico de atualizações. Isso pode ajudar a identificar pacotes suspeitos.
2. Use Security Scanning Tools
- Utilize ferramentas de análise de segurança como
npm audit
ou Retire.js para escanear as dependências do projeto em busca de vulnerabilidades conhecidas. Essas ferramentas podem identificar dependências obsoletas ou vulneráveis.
3. Analyze Package Code and Dependencies
- Realize análises estáticas e dinâmicas do código do pacote. Ferramentas como ESLint, SonarQube, OWASP ZAP, ou Burp Suite podem ajudar a identificar problemas de segurança no código fonte e durante a execução.
4. Verify Package Integrity
- Verifique se o pacote é verificado e assinado. A autenticidade do pacote pode ser verificada através de mecanismos de assinatura digital e verificação de integridade do tarball do componente.
5. Report Malware
- Se um pacote malicioso for identificado, reporte-o imediatamente à equipe de segurança do npm. O processo de relatório inclui fornecer informações detalhadas sobre o pacote, a versão afetada, e uma descrição do malware.
6. Continuous Monitoring and Updates
- Mantenha as dependências atualizadas regularmente. As dependências desatualizadas podem herdar vulnerabilidades de segurança, tornando o pacote principal vulnerável.
7. Use Malware Early Warning Systems
- Utilize sistemas de alerta antecipado de malware, como o Xygeni Malware Early Warning (MEW), que analisam componentes em tempo real e capturam evidências de irregularidades através de análise estática, análise de capacidades e outras técnicas.
8. Be Cautious with Package Names and Sources
- Tenha cuidado com os nomes e fontes dos pacotes. Os atacantes frequentemente imitam pacotes legítimos para distribuir malware. Verifique se o pacote é mantido por uma fonte confiável e se o nome não é uma variação suspeita de um pacote conhecido.
9. Implement Strict Input Validation and Sanitization
- Implemente mecanismos estritos de validação e desinfecção de entrada para evitar a injeção de código malicioso. Isso é especialmente importante para prevenir ataques como injeção de SQL ou XSS.
10. Follow Security Best Practices
- Siga as melhores práticas de segurança, incluindo a implementação de mecanismos sólidos de autenticação e autorização, proteção de dados confidenciais, e manejo seguro de erros e logs.
Conclusão
Identificar pacotes npm maliciosos é uma tarefa essencial para desenvolvedores que buscam garantir a segurança de seus projetos. Ao seguir as etapas e estratégias mencionadas, é possível reduzir significativamente o risco de exposição a malware. A vigilância contínua e a atualização regular das dependências são fundamentais para manter a integridade do software e proteger os usuários finais.
Fontes de Pesquisa:
- Reporting malware in an npm package
- Malware en paquetes de código abierto
- Describa las vulnerabilidades que se pueden encontrar en los paquetes de Node.js
- Pacotes maliciosos de código aberto: a abordagem Xygeni
#cryptoalch, #npm, #malware, #desenvolvedores, #DPRK, #segurança