[ATUALIZADO] Ataque à cadeia de suprimentos atinge mais de 180 pacotes do NPM
Pesquisadores de segurança identificaram pelo menos 187 pacotes do npm comprometidos em um ataque à cadeia de suprimentos que permanece em andamento. A campanha, batizada de Shai-Hulud, utiliza um payload malicioso autorreplicante capaz de infectar outros pacotes.
Entre os pacotes afetados está o @ctrl/tinycolor, que registra mais de 2 milhões de downloads semanais, nas versões 4.1.1 e 4.1.2, e corrigido na 4.2.0. A campanha também se estendeu para pacotes publicados sob o namespace npm da CrowdStrike, crowdstrike-publisher.
A CrowdStrike informa que já removeu os pacotes maliciosos e rotacionou suas chaves nos registros públicos, ressaltando que esses pacotes não são utilizados no sensor Falcon.
As versões comprometidas continham um mecanismo autorreplicante que baixava outros pacotes do mesmo mantenedor, modificava o package.json, injetava um script malicioso (bundle.js), recompilava o arquivo e o republicava, permitindo a “trojanização automática de pacotes subsequentes”.
Segundo os pesquisadores, o bundle.js fazia uso do TruffleHog, ferramenta legítima destinada a localizar informações sensíveis expostas por engano, como chaves de API, senhas e tokens em repositórios de código. O script malicioso, entretanto, explorava a ferramenta para buscar credenciais em nuvem nos hosts comprometidos.
Usuários afetados devem auditar seus ambientes e logs em busca de sinais de comprometimento, rotacionar todas as chaves e tokens de CI/CD e revisar árvores de dependências para identificar versões maliciosas.
Mais informações e a lista de pacotes comprometidos podem ser conferidos nos seguintes links:
- https://www.stepsecurity.io/blog/ctrl-tinycolor-and-40-npm-packages-compromised
- https://socket.dev/blog/tinycolor-supply-chain-attack-affects-40-packages
- https://www.aikido.dev/blog/s1ngularity-nx-attackers-strike-again
- https://www.koi.security/blog/shai-hulud-npm-supply-chain-attack-crowdstrike-tinycolor
Atualização 17/09 08:13
Adicionada a informação de que o @ctrl/tinycolor foi corrigido na versão 4.2.0.