# CanisterWorm npm Campaign
> [!high] Malware de cadeia de suprimentos npm com capacidade de auto-replicação lateral
> A campanha CanisterWorm envolveu a públicação de pacotes npm maliciosos pelo grupo [[teampcp]] com capacidade de auto-propagação em projetos JavaScript infectados — denominados "worm" pela capacidade de se copiar para outros pacotes do projeto alvo. O malware exfiltrava segredos de desenvolvimento (chaves AWS, tokens GitHub, variáveis de ambiente) e modificava o código dos projetos para incluir o payload, tornando cada projeto comprometido um novo vetor de distribuição.
## Visão Geral
A campanha CanisterWorm exemplifica a crescente sofisticação de ataques à cadeia de suprimentos de software: ao invés de comprometer apenas uma organização via um pacote malicioso, o [[canisterworm]] foi projetado para propagar-se automaticamente entre projetos JavaScript, tornando cada desenvolvedor que instalasse um pacote infectado em um novo vetor de distribuição involuntário. A característica de "worm" — auto-replicação no contexto de dependências de projeto — representa uma evolução sobre ataques de supply chain npm tradicionais.
O mecanismo de infecção explora o postinstall hook do npm: ao ser instalado em um projeto, o [[canisterworm]] escaneia o package.json do projeto alvo em busca de dependências populares que ele pode "contaminar" localmente, além de exfiltrar secrets encontrados em arquivos .env, arquivos de configuração AWS/GCP, tokens do GitHub e variáveis de ambiente do sistema. O objetivo final é acumulação massiva de credenciais de ambientes de desenvolvimento e CI/CD — tokens que frequentemente têm acesso a sistemas de produção.
Para desenvolvedores e empresas de [[technology|tecnologia]] brasileiras, a campanha reforça a necessidade de auditoria de dependências npm (usando ferramentas como `npm audit`, Socket.dev ou Snyk), uso de lockfiles rigorosos (package-lock.json), e políticas de segurança que proíbam o uso de chaves de produção em ambientes de desenvolvimento. O modelo de desenvolvimento ágil brasileiro, com frequente uso de startups e outsourcing de software, cria superfície de ataque ampla para ataques de supply chain via npm.
## TTPs Utilizadas
| Técnica | ID | Descrição |
|---------|-----|-----------|
| Compromise Software Dependencies | [[t1195-001-compromise-software-dependencies-and-development-tools\|T1195.001]] | Pacotes npm maliciosos públicados no registro público |
| JavaScript Execution | [[t1059-007-javascript\|T1059.007]] | Postinstall hooks maliciosos em Node.js |
| Exfiltration over C2 | [[t1041-exfiltration-over-c2-channel\|T1041]] | Segredos e credenciais enviados para C2 |
## Referências
- [1](https://socket.dev/blog/canisterworm-npm-supply-chain) Socket.dev - CanisterWorm npm Supply Chain Analysis (2024)
- [2](https://www.phylum.io/blog/canisterworm-analysis) Phylum - CanisterWorm Malicious npm Package (2024)
- [3](https://www.sonatype.com/blog/canisterworm-npm-worm) Sonatype - CanisterWorm: npm Worm Analysis (2024)