SOC Prime Bias: Crítico

30 Jul 2026 15:32 UTC

DEV#POPPER RAT Distribuído Através de Lançamentos Comprometidos do Joyfill no npm

Author Photo
SOC Prime Team linkedin icon Seguir
DEV#POPPER RAT Distribuído Através de Lançamentos Comprometidos do Joyfill no npm
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Duas versões beta comprometidas do @joyfill pacote npm foram encontradas contendo um implante JavaScript de importação. O implante usa transações em blockchain através de Tron, Aptos e BNB Smart Chain para resolver e baixar o trojan de acesso remoto DEV#POPPER (RAT). A campanha tem como alvo estações de trabalho de desenvolvedores e pipelines CI/CD executando código malicioso assim que o módulo afetado é importado.

Investigação

A Equipe de Pesquisa da Socket descobriu o comprometimento enquanto analisava versões beta de @joyfill/layouts and @joyfill/components. Os pesquisadores identificaram uma cadeia de entrega de payloads em várias etapas que combinava JavaScript ofuscado com mecanismos de despacho baseados em blockchain. A investigação ligou o carregador inicial à família PolinRider e confirmou que o payload final pertencia à família de malware DEV#POPPER.

Mitigação

Os desenvolvedores devem remover imediatamente as @joyfill versões beta afetadas de lockfiles, caches de pacotes, ambientes de build e artefatos de implantação. Fixar dependências em versões verificadas como @joyfill/layouts@0.1.1 or @joyfill/components@4.0.0-rc24 é recomendado. As equipes de segurança também devem bloquear as versões comprometidas através de proxies de registro e ferramentas de governança de dependências.

Resposta

Qualquer sistema que importou os pacotes afetados deve ser isolado, e todas as credenciais acessíveis ao processo Node.js comprometido devem ser rotacionadas. Os investigadores devem inspecionar aplicativos de desenvolvedores, incluindo VS Code, GitHub Desktop e Discord, para mudanças inesperadas nos módulos principais. A telemetria de endpoint e CI/CD também deve ser revisada para processos Node.js destacados, endereços C2 conhecidos e tráfego suspeito de RPC em blockchain.

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré-voo de Telemetria & Base deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para disparar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a erros de diagnóstico.

  • Narrativa do Ataque & Comandos: O adversário injetou com sucesso código malicioso em uma dependência amplamente usada do npm (Comprometimento da Cadeia de Suprimentos). Quando um desenvolvedor executa npm install ou inicia um projeto, o script malicioso é executado. O script primeiro tenta ocultar sua intenção ao atribuir a função require a uma variável global ( global.r = requireglobal.r = require), permitindo que ele carregue módulos em qualquer lugar do aplicativo sem chamar função require a uma variável global ( diretamente (ofuscação). Finalmente, ele usa child_process.spawn para lançar um processo de shell destacado que se conecta de volta a um servidor de Comando & Controle (C2), tentando evitar a detecção ao desacoplar o processo malicioso do processo pai Node.js.

  • Script de Teste de Regressão:

    #!/bin/bash
    # Script de simulação para acionar a regra de detecção de injeção de Node.js.
    # Este script cria um arquivo JS malicioso temporário e o executa via Node.js.
    MALICIOUS_FILE="malicious_pkg.js"
    echo "[+] Criando script Node.js malicioso..."
    cat << 'EOF' > $MALICIOUS_FILE
    // Simular injeção global de módulo (T1027)
    global.r = require;
    // Simular execução de processo destacado via child_process.spawn (T1059.006)
    const cp = require('child_process');
    cp.spawn('bash', ['-c', 'sleep 30 &'], { detached: true, stdio: 'ignore' });
    console.log("[!] Payload malicioso executado.");
    EOF
    echo "[+] Executando script malicioso via Node.js..."
    node $MALICIOUS_FILE
    echo "[+] Simulação completa. Verifique SIEM para Alerta: Detecção de Injeção de Módulo Node.js e Execução de Processo Destacado."
  • Comandos de Limpeza:

    # Remover o arquivo malicioso simulado
    rm -f malicious_pkg.js
    # Matar quaisquer processos de sono órfãos gerados pela simulação
    pkill -f "sleep 30"