Threats
Uma nova campanha do malware Shai-Hulud compromete pacotes npm utilizados em ambientes AWS para roubar credenciais de GitHub, cloud, SSH e pipelines CI/CD
25/06/2026
|
Uma nova vaga da campanha Shai-Hulud está a comprometer programadores que utilizam pacotes npm associados a infraestruturas cloud e aplicações serverless, através do roubo de credenciais de acesso a plataformas de desenvolvimento, serviços cloud e pipelines de integração contínua. Segundo os investigadores da JFrog Security Research, citados pelo Cyber Security New, os atacantes alargaram agora a campanha ao ecossistema Leo/RStreams, um conjunto de bibliotecas amplamente utilizado em projetos baseados na Amazon Web Services (AWS), incluindo serviços como Kinesis, S3, Lambda e DynamoDB. O malware, identificado como parte da família Hades, é distribuído através de pacotes npm comprometidos e começa a recolher credenciais assim que o pacote é instalado. Entre a informação visada encontram-se tokens do GitHub, credenciais de publicação do npm e PyPI, chaves de acesso AWS, tokens do JFrog e Artifactory, chaves SSH e segredos armazenados em pipelines CI/CD. Segundo a JFrog, os pacotes afetados registaram cerca de 45 mil downloads num único mês, aumentando significativamente o potencial impacto da campanha. Os investigadores alertam que esta não é uma nova família de malware, mas sim uma evolução da operação Shai-Hulud, reutilizando a mesma infraestrutura de roubo de credenciais para comprometer novas bibliotecas consideradas de confiança pelos programadores. Uma das técnicas utilizadas permite contornar mecanismos básicos de deteção. Em vez de recorrer aos tradicionais scripts de instalação do npm, o código malicioso é ocultado no ficheiro binding[.]gyp. Quando o npm encontra este ficheiro e não existe um script de instalação explícito, executa automaticamente o node-gyp, permitindo que comandos maliciosos sejam executados durante a instalação sem levantar suspeitas. Depois de instalado, o malware procura credenciais armazenadas em ficheiros locais, variáveis de ambiente, histórico da shell, tokens do GitHub CLI e diversos serviços cloud. Os dados recolhidos são cifrados e exfiltrados através da criação automática de repositórios GitHub utilizando credenciais roubadas, uma técnica conhecida como GitHub dead drop. A campanha inclui ainda mecanismos de persistência para manter o malware ativo após a infeção inicial. Nos sistemas Linux é criado um serviço systemd, enquanto no macOS é instalado um LaunchAgent. O malware altera igualmente ficheiros de configuração de ferramentas de desenvolvimento baseadas em inteligência artificial, como Cursor, GitHub Copilot e Gemini. Sempre que encontra chaves SSH válidas, tenta utilizá-las para se mover lateralmente para outros sistemas acessíveis ao programador comprometido. Além disso, injeta código em workflows do GitHub Actions para recolher segredos utilizados nas pipelines de desenvolvimento. Segundo a JFrog, um único computador comprometido pode servir de ponto de entrada para repositórios partilhados, contas cloud e ambientes de produção. Os investigadores recomendam o isolamento imediato das máquinas afetadas e dos servidores CI/CD antes da rotação de quaisquer credenciais. Após eliminar todos os mecanismos de persistência, as organizações devem renovar credenciais do GitHub, npm, serviços cloud, Docker, SSH e registos de pacotes, bem como verificar a existência de novos repositórios, publicações inesperadas de pacotes ou alterações suspeitas aos workflows do GitHub. |