Um novo malware do tipo worm, nomeado Shai Hulud em homenagem aos vermes de areia da obra Duna de Frank Herbert, surgiu no Node Package Manager (npm) em setembro. A versão 2.0, mais sofisticada, foi recentemente analisada por especialistas da Kaspersky e opera em dois estágios, comprometendo pacotes npm e, crucialmente, apagando os arquivos das vítimas caso não consiga roubar dados valiosos.
A nova versão infectou mais de 800 pacotes npm e atingiu diversas vítimas globalmente, com o Brasil, Rússia e Índia entre os países mais afetados, segundo a análise.
⚙️ As Táticas Duplas do Shai Hulud 2.0
O processo de infecção do Shai Hulud 2.0 começa quando um desenvolvedor instala um pacote npm comprometido.
- Primeiro Estágio (Engano): O script inicial,
setup_bun.js, é executado durante a pré-instalação (configurada nopackage.json). Ele é propositadamente não ofuscado e bem documentado, simulando ser uma ferramenta legítima de instalação do runtime Javascript Bun. Contudo, essa etapa prepara o ambiente para o ataque real. - Segundo Estágio (Ataque): O runtime Bun executa o payload do segundo estágio,
bun_environment.js, um script malicioso de 10MB ofuscado. Uma vez instalado, inicia a fase de coleta de informações confidenciais.
???? Foco no Roubo de Credenciais e Auto-Replicação
O principal objetivo do Shai Hulud 2.0 é a exfiltração de segredos, visando:
- Credenciais de Cloud: Roubo de metadados e credenciais de SDKs de serviços como Azure, AWS e Google Cloud.
- Segredos do GitHub: Coleta de configurações do GitHub CLI, variáveis de ambiente e criação de um workflow malicioso YML no repositório da vítima para obter dados do GitHub Actions.
- Arquivos Locais: Instalação de uma ferramenta como TruffleHog para escanear todo o sistema em busca de credenciais gerais.
Para exfiltrar os dados, o malware cria um canal de comunicação secreto via um repositório GitHub público. Se o token de acesso da vítima for encontrado, ele gera um novo repositório com nome aleatório para armazenar as credenciais roubadas. Se o token não for obtido, o script tenta usar um token roubado de vítimas anteriores, buscando por repositórios que contenham o texto “Sha1-Hulud: The Second Coming” na descrição.
Para se auto-replicar, o malware busca tokens de autorização de registro nos arquivos .npmrc para, em seguida, injetar seus scripts maliciosos em uma lista de até 100 pacotes mantidos pela vítima e publicá-los no registro npm.
???? O Estágio Destrutivo Final
A característica mais perigosa do Shai Hulud 2.0 é seu plano de contingência: Se o malware falhar em obter tokens de acesso do npm ou do GitHub – ou seja, se a missão de roubo de dados não for bem-sucedida – um payload destrutivo é ativado, apagando os arquivos do usuário, concentrando-se principalmente no diretório home.
Desde setembro, a Kaspersky bloqueou mais de 1.700 ataques do Shai Hulud 2.0 em máquinas de usuários, com o Brasil respondendo por 9,7% desses ataques.





