Análise da Campanha do Pacote npm BigSquatRat
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O relatório perfila um pacote npm malicioso, bigmathix, que instala um trojan de acesso remoto Node.js. Ele usa código multiestágio ofuscado para buscar cargas adicionais a partir de conteúdo no GitHub controlado por atacantes e aurevian.cloud. A detecção é dificultada por chaves de decriptação dinâmicas e um argumento inicializador necessário que bloqueia a execução, consistente com um ataque direcionado à cadeia de suprimentos em desenvolvedores JavaScript.
Investigação
Pesquisadores desofuscaram o pacote para reconstruir uma cadeia que gera um processo filho, realiza a resolução de DNS e decripta URLs embutidas usando chaves derivadas. Forçando o valor do inicializador, eles recuperaram uma carga de segunda fase de aurevian.cloud, que introduziu ofuscação adicional na lógica final do RAT. Analistas também correlacionaram repositórios GitHub relacionados e pacotes npm adicionais publicados em prazos semelhantes para mapear o alcance da campanha.
Mitigação
Evite dependências npm não confiáveis — especialmente pacotes recém-publicados e com poucos downloads, ou módulos com mudanças abruptas de versão — e valide a integridade via hashes/controles de proveniência. Monitore processos filhos suspeitos gerados por node.exe e buscas externas inesperadas para domínios desconhecidos. Aplique filtragem de saída para aurevian.cloud e alerte para persistência, como chaves Run do Windows ou serviços systemd do Linux criados por processos Node.js.
Resposta
Se o bigmathix for identificado, isole o endpoint, remova o pacote e termine processos Node.js gerados. Exclua chaves de execução criadas ou unidades systemd, bloqueie domínios/IPs associados e colete logs que mostrem DNS, ancestralidade de processo e saída de rede. Realize uma análise forense para identificar cargas baixadas e persistência, como lançadores wscript.exe ou serviços agendados, depois procure artefatos correspondentes em todo o ambiente.
Fluxo de Ataque
Detecções
LOLBAS WScript / CScript (via criação_de_processo)
Ver
Extensão de Arquivo Suspeita Adicionada às Chaves de Execução [ASEPs] (via evento_de_registro)
Ver
Processos Filhos NodeJS Suspeitos [Linux] (via linha_de_comando)
Ver
Possível Download de Arquivo do Github Iniciado por Processo Incomum (via conexão_de_rede)
Ver
IOCs (Emails) para detectar: Análise da Campanha do Pacote npm BigSquatRat
Ver
IOCs (HashSha1) para detectar: Análise da Campanha do Pacote npm BigSquatRat
Ver
IOCs (HashSha256) para detectar: Análise da Campanha do Pacote npm BigSquatRat
Ver
Detecção de Execução de RAT Node.js via wscript.exe [Criação de Processo do Windows]
Ver
Detecção de Malware Node.js Usando Scripts Ofuscados e systemctl para Persistência [Criação de Processo do Linux]
Ver
Execução de Simulação
Pré-requisito: O Pré-teste de Telemetria & Linha de Base deve ter sido aprovado.
Racional: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e buscar gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa de Ataque & Comandos:
O atacante possui uma carga maliciosa JavaScript que necessita do runtime Node.js para executar. Para evadir da lista de permissões padrão de aplicativos, eles usamwscript.exe—um host de scripts nativo do Windows—para lançarnode.exeindiretamente, criando uma relação pai/filho que corresponde à regra de detecção. As etapas são:- Soltar um script malicioso (
malicious.js) que simplesmente geranode.execom a carga. - Criar um JavaScript intermediário (
launcher.js) que o Host de Scripts do Windows executará; esse intermediário usaWScript.Shellpara executarnode.execom a carga. - Execute o intermediário via
wscript.exe //B //Nologo launcher.js. - A árvore de processos resultante é
wscript.exe → node.exe → malicious.js, gerando a telemetria alvo.
- Soltar um script malicioso (
-
Script de Teste de Regressão:
O seguinte script PowerShell automatiza toda a cadeia em um host de teste Windows.# ------------------------------------------------- # Teste de Regressão – Execução de RAT Node.js via wscript # ------------------------------------------------- # Variáveis $tempPath = "$env:TEMP" $launcherPath = Join-Path $tempPath "launcher.js" $payloadPath = Join-Path $tempPath "malicious.js" $nodePath = "C:Program Filesnodejsnode.exe" # Ajustar se instalado em outro local # 1. Escrever a carga maliciosa (simples log de console para demonstração) $payloadContent = @" console.log('Carga maliciosa executada'); // O código real do RAT estaria aqui "@ $payloadContent | Out-File -FilePath $payloadPath -Encoding ASCII # 2. Escrever o intermediário que o wscript executará $launcherContent = @" var shell = WScript.CreateObject("WScript.Shell"); // Executar node.exe com o script malicioso var cmd = "`"$nodePath`" `"$payloadPath`""; shell.Run(cmd, 0, false); "@ $launcherContent | Out-File -FilePath $launcherPath -Encoding ASCII # 3. Executar a cadeia via wscript Write-Host "Lançando cadeia maliciosa..." wscript.exe //B //Nologo $launcherPath # Pausar para permitir que a telemetria seja capturada Start-Sleep -Seconds 5 # 4. Opcional: verificar se o processo node está em execução (para observação manual) Get-Process -Name node -ErrorAction SilentlyContinue # ------------------------------------------------- # Fim do teste de regressão # ------------------------------------------------- -
Comandos de Limpeza: Remover artefatos e terminar processos remanescentes.
# Script de Limpeza – executar após a validação $tempPath = "$env:TEMP" Remove-Item -Path (Join-Path $tempPath "launcher.js") -ErrorAction SilentlyContinue Remove-Item -Path (Join-Path $tempPath "malicious.js") -ErrorAction SilentlyContinue # Finalizar qualquer processo node.exe remanescente gerado pelo teste Get-Process -Name node -ErrorAction SilentlyContinue | Stop-Process -Force