Ataques à cadeia de abastecimento desferem um golpe duro no npm: a conta do mantenedor do axios foi comprometida, e todos os 300 milhões de descarregamentos semanais estão em estado de alerta máximo

供應鏈攻擊重挫npm

A organização de investigação de segurança Socket detectou a 31 de março que os pacotes principais do npm, incluindo o axios, foram alvo de um ataque ativo à cadeia de abastecimento. O atacante invadiu a conta npm do principal mantenedor do axios, jasonsaayman, publicou versões maliciosas e injetou pacotes de dependências maliciosas, para descarregar um trojan de acesso remoto multiplataforma (RAT), com alvos nos sistemas macOS, Windows e Linux.

Análise da cadeia de ataque: do comprometimento da conta ao processo completo de autodestruição do RAT

axios供應鏈攻擊 (Fonte: Socket)

Este incidente foi um ataque à cadeia de abastecimento meticulosamente planeado, com vários passos. O atacante começou por invadir a conta do mantenedor, alterando o e-mail para ifstap@proton.me e, de seguida, utilizou as credenciais de acesso do npm obtidas para publicar manualmente as versões maliciosas, contornando completamente o processo legítimo de publicação do axios através de GitHub Actions + OIDC Trusted Publisher. Ambas as versões maliciosas não tinham quaisquer submissões, etiquetas ou registos de publicações correspondentes no repositório do GitHub.

A preparação do atacante foi igualmente precisa: controlou outra conta (nrwise, nrwise@proton.me), que publicou primeiro, cerca de 18 horas antes, uma versão isca limpa plain-crypto-js@4.2.0 para criar histórico e, depois, a 30 de março às 23:59 UTC, publicou a versão maliciosa 4.2.1.

Após a execução do hook postinstall malicioso, o carregador do RAT (setup.js) liga-se ao servidor de comando e controlo sfrclak[.]com:8000 para descarregar cargas específicas da plataforma. Depois de concluído, autodestrói-se e substitui o package.json por um apontador/ficheiro stub limpo, fazendo com que, numa verificação posterior, não seja possível detetar quaisquer indícios de infeção na pasta node_modules.

Indicadores Técnicos de Ataque (IOC) em destaque

Versões do pacote malicioso:axios@1.14.1, axios@0.30.4, plain-crypto-js@4.2.1

Servidor C2:sfrclak[.]com / 142.11.206.73 / [.]com:8000

Indícios de infeção no macOS:/Library/Caches/com.apple.act.mond

Indícios de infeção no Windows:%PROGRAMDATA%\wt.exe, %TEMP%\6202033.vbs

Indícios de infeção no Linux:/tmp/ld.py

Conta do atacante:jasonsaayman (comprometida), nrwise (conta criada pelo atacante)

Guia de Resposta de Emergência: confirmar o impacto e passos de remediação

Como o carregador malicioso se autodestrói após a execução, não é possível confirmar a infeção através da verificação da pasta node_modules. O método correto é verificar diretamente se o lockfile (package-lock.json ou yarn.lock) contém registos da versão axios@1.14.1 ou axios@0.30.4.

Reversão para versão segura: utilizadores 1.x fazem downgrade para axios@1.14.0; utilizadores 0.x fazem downgrade para axios@0.30.3 e, em seguida, remove-se a pasta plain-crypto-js de node_modules e reinstalam-se as dependências.

Se forem detetados quaisquer indícios de infeção por RAT no sistema (com.apple.act.mond, wt.exe, ld.py), não tente limpar no local; deve-se reconstruir a partir de um estado previamente conhecido como normal e, imediatamente, fazer a rotação de todas as credenciais potencialmente expostas, incluindo tokens do npm, chaves de acesso da AWS, chaves privadas SSH, chaves de configuração de CI/CD e valores de ficheiros .env.

Para programadores de criptomoeda e Web3, o axios é uma biblioteca HTTP central para muitos frontends de protocolos DeFi, ferramentas de gestão de ativos criptográficos e serviços de consulta de dados on-chain. Um ambiente de desenvolvimento infetado pode levar à divulgação ao atacante de chaves privadas da carteira, frases mnemónicas ou chaves de API; recomenda-se que a revisão e a rotação de todas as credenciais sensíveis sejam uma prioridade.

Perguntas frequentes

Como confirmar se foram instaladas versões do axios afetadas?

Como o carregador malicioso se autodestrói após a execução, não é possível confirmar a infeção através da pasta node_modules. Deve-se verificar diretamente se o lockfile contém registos de axios@1.14.1 ou axios@0.30.4 e confirmar se existe a pasta plain-crypto-js dentro de node_modules. É possível executar npm list axios ou procurar diretamente no lockfile as strings de versão.

Que impacto específico teve esta campanha de ataque à cadeia de abastecimento para programadores de criptomoeda e Web3?

O axios é uma biblioteca HTTP comum em aplicações Web3 e na interface de protocolos DeFi. Um ambiente de desenvolvimento infetado pode fazer com que credenciais sensíveis, como chaves privadas, frases mnemónicas, chaves de API de exchanges ou configurações de CI/CD, fiquem expostas ao atacante; os programadores devem, por isso, priorizar a revisão e a rotação de todas as credenciais relacionadas com criptografia que possam ter sido expostas.

Como prevenir ataques futuros à cadeia de abastecimento do npm?

As principais medidas de prevenção incluem: em CI/CD, utilizar sempre npm ci --ignore-scripts para desativar os hooks de postinstall; fixar versões de pacotes de dependências críticas; rever regularmente os registos de alterações do lockfile; e implementar ferramentas como Socket e Aikido para monitorizar em tempo real software malicioso nas dependências.

Isenção de responsabilidade: As informações contidas nesta página podem ser provenientes de terceiros e não representam os pontos de vista ou opiniões da Gate. O conteúdo apresentado nesta página é apenas para referência e não constitui qualquer aconselhamento financeiro, de investimento ou jurídico. A Gate não garante a exatidão ou o carácter exaustivo das informações e não poderá ser responsabilizada por quaisquer perdas resultantes da utilização destas informações. Os investimentos em ativos virtuais implicam riscos elevados e estão sujeitos a uma volatilidade de preços significativa. Pode perder todo o seu capital investido. Compreenda plenamente os riscos relevantes e tome decisões prudentes com base na sua própria situação financeira e tolerância ao risco. Para mais informações, consulte a Isenção de responsabilidade.
Comentar
0/400
Nenhum comentário