RAT em tempo de importação a ameaça da cadeia de abastecimento npm que usa blockchains para persistência

Autor: Publicada 4 min de lectura 184 leituras

As imagens deste artigo foram geradas com inteligência artificial. Como publicamos

A infecção descoberta em duas versões beta do espaço de nomes @joyfill confirma uma tendência perigosa na qual pacotes aparentemente inofensivos do ecossistema npm atuam como vetores de acesso remoto persistente: neste caso, um implante de tipo RAT associado à família DEV#POPPER que se ativa no momento da importação do módulo e não através de hooks de ciclo de vida convencionais.

O que distingue este incidente é o uso de uma infraestrutura de comando e controle baseada em múltiplos blockchains (Tron, Aptos e BNB Smart Chain) para resolver e distribuir código encriptado, juntamente com um ramo redundante que lança um processo Node.js separado que consulta um servidor IP para baixar um segundo payload. Essa combinação oferece ao atacante uma resiliência operacional incomum: podem atualizar ou mudar a carga útil sem republicar o pacote em npm e o processo desprendido pode sobreviver à finalização de uma execução de build ou teste, criando persistência fora do fluxo de vida esperado do desenvolvedor.

RAT em tempo de importação a ameaça da cadeia de abastecimento npm que usa blockchains para persistência
Imagem gerada com IA.

Desde a perspectiva de risco, isso tem várias implicações críticas. Primeiro, qualquer processo que montante o pacote é exposto à execução de código arbitrário, incluindo ambientes de desenvolvimento, runners de CI, imagens de build e servidores de renderização. Segundo, a capacidade do malware para coletar credenciais e artefatos de ferramentas de desenvolvimento – como gestores de credenciais, extensões de navegador, dados do GitHub CLI ou tokens armazenados – multiplica o impacto potencial porque permite lateralidade e roubo de segredos que depois facilitam compromissos adicionais.

Outro ponto importante é a sofisticação operacional: o uso de transações em diferentes blockchains como canal covert para entregar hashes ou fragmentos de payload dificulta a remediação convencional e a rastreabilidade, e a utilização de endereços, contas e transações diferentes em cada ramo complica a detecção por assinaturas simples. As investigações públicas que associaram técnicas semelhantes a clusters rastreados como PolinRider e a campanhas atribuídas a atores norte-coreanos sublinham a probabilidade de uma operação deliberada e com recursos.

Se o seu projecto, organização ou imagens da CI utilizarem as versões afectadas, a primeira abordagem deve ser supor que se produziu execução arbitrária e agir em conformidade: remover versões comprometidas de lockfiles, caches, espelhos internos, imagens de build e artefatos implantados; reconstruir imagens de fontes limpas; e rodar imediatamente as credenciais e tokens associados ao processo Node.js ou aos agentes da CI que puderam executar esses pacotes. Também é conveniente procurar evidências de processos Node.js despendidos em registos, ligações salientes invulgares (por exemplo, para o IP mencionado na análise) e atividade de exfiltração.

No plano operacional, convém acrescentar controlos de contenção: restringir a egress a partir de runners e builders, bloquear ligações a hosts e endereços IP suspeitos a nível de rede, e analisar as máquinas de desenvolvimento para detectar artefatos do RAT e do infostealer (por exemplo, ficheiros temporários, binários persistentes, ou sockets abertos). Para resposta a incidentes, capture imagens forenses das máquinas comprometidas antes de as limpar e correlacione logs de CI, registros de pacotes e telemetria de endpoints para estimar alcance e vetores de pivot.

Para reduzir a probabilidade de recorrência, implemente medidas técnicas e organizacionais: use verificação de integridade de dependências e bloqueio de versões, aplique políticas de leiast privilege para tokens de CI e credenciais armazenadas em runners, adopte práticas de assinatura e atestação de artefatos (por exemplo, soluções de attestation como Sigstore e marcos SLSA), e crie Bill of Materials (SBOM) para imagens e releases. Além disso, limite o acesso a segredos a partir de processos de build e use tokens efêmeros quando possível para que a exposição temporal seja menor.

RAT em tempo de importação a ameaça da cadeia de abastecimento npm que usa blockchains para persistência
Imagem gerada com IA.

Desde a comunidade de desenvolvimento, a lição é tangível: os pacotes que se carregam em tempo de importação podem executar código imediatamente, pelo que Mesmo dependências marcadas como "apenas desenvolvimento" podem resultar em compromissos se terminam em imagens ou runners. Rever e endurecer pipelines para evitar que devDependencies alcancem ambientes com segredos ou credenciais é uma boa prática preventiva.

Se você quiser consultar análises técnicas e contextos semelhantes, relatórios e análises públicas sobre campanhas de supply chain e malwares relacionados oferecem mais detalhes e recomendações: a equipe de pesquisa de Checkmarx publica análise dessas ameaças em seu portal de pesquisa ( Checkmarx Research) e veteranos em resposta como eSentire documentaram famílias de infostealers comparáveis ( eSentire blog). Para medidas e guias específicos de segurança na plataforma e no runtime, a página oficial do Node.js sobre segurança é um bom ponto de partida ( Node.js Security).

Finalmente, o tratamento de um pacote como o de @joyfill/layouts na sua versão comprometida deve ser rigoroso: assumir execução remota, revogar e rotar credenciais, reconstruir artefatos de fontes confiáveis e melhorar controles automáticos em CI. A prevenção e a detecção precoce de engenharia da cadeia de abastecimento exigem tanto controlos técnicos como consciência operacional entre desenvolvedores, equipamentos de segurança e administradores de infraestrutura.

Cobertura

Relacionadas

Mas notícias do mesmo assunto.