Atacantes abusaram de contratos inteligentes Ethereum para esconder malware npm, descobre ReversingLabs

Última atualização: 09/05/2025
  • Dois pacotes npm, 'colortoolsv2' e 'mimelib2', rotearam o C2 por meio de um contrato inteligente Ethereum para evitar a detecção.
  • Repositórios falsos de bots de negociação do GitHub inflaram a confiança com confirmações e contas preparadas antes de adicionar a dependência maliciosa.
  • O mesmo contrato on-chain (0x1f171a1b07c108eae05a5bccbe86922d66227e2b) forneceu URLs de segundo estágio.
  • Os IoCs incluem versões específicas de pacotes e hashes SHA1; as equipes devem monitorar chamadas inesperadas de blockchain em scripts de instalação.

Contratos inteligentes Ethereum escondendo malware npm

O ReversingLabs sinalizou dois pacotes npm que roteou silenciosamente a lógica de instalação por meio de um contrato inteligente Ethereum, transformando uma blockchain pública em um diretório secreto para infraestrutura de comando e controle (C2). Os pacotes "colortoolsv2" e "mimelib2" se apresentaram como utilitários simples, permitindo a recuperação de uma carga útil de segundo estágio.

Ao terceirizar o endereço C2 para um contrato on-chain, os operadores envolveram seu tráfego no que parece ser uma atividade comum de blockchain, uma mudança que complica a detecção estática e baseada em reputação. O contrato em 0x1f171a1b07c108eae05a5bccbe86922d66227e2b expôs funções de leitura que retornavam uma URL que os instaladores contatariam posteriormente.

Contratos inteligentes Ethereum em npm
Artigo relacionado:
Pacotes npm maliciosos usaram contratos inteligentes Ethereum para ocultar links de payload

Do carregador npm para um C2 on-chain

Como funcionava a cadeia de contratos inteligentes npm-to-Ethereum

Dentro do 'colortoolsv2', uma fina carregador index.js invocou um comando externo cuja localização não estava codificada localmente. Em vez disso, consultou um contrato inteligente Ethereum para o endpoint que direcionaria o host para o comando e controle.

Exploradores públicos como Etherscan mostra o contrato expondo funções de leitura simples que retornam uma URL, usando efetivamente a cadeia como um ponteiro resiliente para a infraestrutura do invasor. Como o salto final é derivado de uma chamada de blockchain, os defensores não veem um domínio estático incorporado ao pacote npm.

Após sua descoberta, 'colortoolsv2' foi bloqueado no npm em 7 de julho. Pouco depois, os operadores publicaram 'mimelib2', que reutilizou lógica quase idêntica e o mesmo contrato inteligente para entregar o segundo estágio, de acordo com a análise.

Uma vez executado, o carregador buscou um componente de segundo estágio cujo hash foi publicado por pesquisadores (SHA1: 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21). Essa indireção permitiu que os invasores rotacionassem os destinos à vontade, editando dados on-chain em vez de reempacotar o código.

Uma jogada de credibilidade do GitHub para mascarar dependências maliciosas

Repositórios do GitHub preparados para ocultar malware npm

O ReversingLabs também rastreou uma rede de projetos falsos do GitHub que se apresentaram como bots de negociação de criptografia, completo com milhares de commits, múltiplos mantenedores, estrelas e observadores. Repositórios como 'solana-trading-bot-v2' pareciam ativos, mas grande parte da atividade era desorganização automatizada.

Muitos commits produziram arquivos triviais (por exemplo, edições repetidas de LICENÇA), enquanto clusters de contas semelhantes criadas por volta de 10 de julho não continha quase nenhum conteúdo real — alguns arquivos README diziam apenas "Olá". Nomes de usuário como "slunfuedrac", "cnaovalles" e "pasttimerles" apareciam com frequência, inflando sinais de legitimidade.

As diferenças de código mostraram a dependência maliciosa sendo adicionada ao código do bot de negociação (por exemplo, em bot.ts e importações em src/index.ts), primeiro via 'colortoolsv2' e depois via 'mimelib2'. Essa associação tornou-se bem menos óbvia para um revisor casual em meio ao histórico de commits barulhento.

Ao semear o npm e o GitHub juntos, os atores sinais de confiança tradicionais turvos, fazendo com que a dependência oculta se misturasse em um projeto que parecia ativo, bem mantido e apoiado pela comunidade.

IoCs, escopo e o que os defensores devem observar

Indicadores-chave vinculados ao esquema de contrato npm e Ethereum

ReversingLabs publicou o seguinte indicadores de comprometimento (IoCs) vinculado a esta campanha:

  • Pacotes npm: ferramentas de cores v2 1.0.0 (SHA1 678c20775ff86b014ae8d9869ce5c41ee06b6215), 1.0.1 (1bb7b23f45ed80bce33a6b6e6bc4f99750d5a34b), 1.0.2 (db86351f938a55756061e9b1f4469ff2699e9e27)
  • pacote npm: mimelib2 1.0.0 (bda31e9022f5994385c26bd8a451acf0cd0b36da), 1.0.1 (c5488b605cf3e9e9ef35da407ea848cf0326fdea)
  • Segundo estágio: SHA1 021d0eef8f457eb2a9f9fb2260dd2e39ff009a21
  • Contrato inteligente: 0x1f171a1b07c108eae05a5bccbe86922d66227e2b

Esta abordagem ecoa o abuso anterior de hospedagem confiável, como Gists ou armazenamento em nuvem, mas a torção na cadeia prejudica as listas de bloqueio estáticas e verificações simples de origem. A localização do C2 pode ser alterada no contrato sem afetar o pacote, e o tráfego de blockchain pode ser interpretado erroneamente como rotina em ambientes adjacentes a criptomoedas.

As etapas práticas incluem a revisão da procedência da dependência além das estrelas e confirmações, monitoramento de chamadas RPC inesperadas de blockchain Durante as fases de instalação/compilação, validar quaisquer URLs resolvidas em tempo de execução e fixar versões conhecidas e em boas condições com verificações de integridade. As equipes de segurança também devem procurar repositórios cuja atividade seja inflada artificialmente por confirmações triviais e automatizadas.

O caso mostra como Os contratos inteligentes do Ethereum podem ser reaproveitados como indicadores resilientes para distribuição de malware no ecossistema npm, enquanto a atividade encenada do GitHub oculta dependências maliciosas à vista de todos; a conscientização sobre essas sobreposições entre infraestrutura de código aberto e on-chain agora é essencial para as defesas de desenvolvedores e empresas.

Artigos relacionados: