Supply Chain Guard
Detecção e remediação automatizadas de ataques na cadeia de suprimentos de software em npm, PyPI, crates.io, GitHub Actions e pipelines de CI/CD. Criado a partir de inteligência de ataques coletada do mundo real até 31 de março de 2026.
Quando Usar Esta Skill
Use esta skill quando:
- O usuário solicita auditoria de dependências de um projeto quanto a problemas de segurança
- Antes de fazer deploy de código para produção
- Ao investigar um possível comprometimento da cadeia de suprimentos
- Quando o usuário menciona um ataque recente na cadeia de suprimentos e quer verificar seus projetos
- Como verificação de segurança regular em fluxos de desenvolvimento
- Ao configurar pipelines de CI/CD e querer endurecê-los
- Quando um novo ataque na cadeia de suprimentos é reportado e o usuário quer verificar exposição
Instruções
Etapa 1: Entenda o Projeto
Identifique o que o projeto do usuário utiliza:
- Node.js/npm: Procure por
package.json, package-lock.json, yarn.lock, pnpm-lock.yaml
- Python/PyPI: Procure por
requirements.txt, Pipfile, pyproject.toml, poetry.lock
- Rust/crates.io: Procure por
Cargo.toml, Cargo.lock
- CI/CD: Procure por
.github/workflows/, Dockerfile, docker-compose.yml
Etapa 2: Execute os Scanners Apropriados
A skill inclui três scanners especializados mais um executor unificado. Todos os scripts estão no diretório scripts/.
Auditoria completa (recomendado):
bash /path/to/supply-chain-guard/scripts/scan-all.sh /path/to/project
Scanners individuais:
# Projetos npm/Node.js
bash /path/to/supply-chain-guard/scripts/scan-npm.sh /path/to/project
# Projetos Python/PyPI
bash /path/to/supply-chain-guard/scripts/scan-python.sh /path/to/project
# Auditoria de pipeline de CI/CD
bash /path/to/supply-chain-guard/scripts/scan-ci.sh /path/to/project
Cada scanner verifica:
- Pacotes comprometidos conhecidos — correspondências exatas com o banco de dados de IOC
- Versões maliciosas — números de versão específicos que se sabe conterem malware
- IOCs de sistema de arquivos — mecanismos de persistência deixados por atacantes
- IOCs de rede — domínios C2 e IPs no código-fonte
- Configurações incorretas de CI/CD — ações sem versão fixa, gatilhos perigosos, segredos expostos
- Exposição de credenciais — tokens npm, credenciais PyPI, arquivos .env
Etapa 3: Interprete Resultados
Os scanners saem com o número de problemas encontrados (0 = limpo). Os problemas são categorizados:
- [CRITICAL] — Pacote malicioso conhecido ou IOC ativo detectado. Ação imediata necessária.
- [WARNING] — Preocupação de segurança que precisa investigação. Pode não ser um comprometimento ativo.
Etapa 4: Remedeie
Com base nos achados, guie o usuário pela remediação:
Se um pacote comprometido for encontrado:
- Remova ou faça downgrade para uma versão conhecida como segura imediatamente
- Limpe os caches de pacotes:
npm cache clean --force / pip cache purge
- Delete
node_modules / .venv e reinstale a partir do lockfile
- Rotate TODAS as credenciais que estavam acessíveis a partir do ambiente
Se IOCs de sistema de arquivos forem encontrados:
- O sistema deve ser tratado como totalmente comprometido
- Identifique e remova mecanismos de persistência (serviços systemd, arquivos .pth, jobs cron)
- Rotate todas as credenciais no sistema
- Audite logs do provedor de nuvem (AWS CloudTrail, GCP Audit Logs, Azure Activity Log)
- Verifique movimento lateral em clusters Kubernetes
- Considere fazer reimage da máquina
Se problemas de CI/CD forem encontrados:
- Fixe todas as GitHub Actions em SHAs de commit completo (nunca tags de versão)
- Adicione
--ignore-scripts aos comandos npm install/ci
- Adicione
--require-hashes aos comandos pip install
- Remova ou proteja gatilhos
pull_request_target
- Aplique permissões de privilégio mínimo aos tokens de workflow
- Audite logs de execução de pipeline durante os períodos da janela de ataque
Etapa 5: Endurecça o Projeto
Após remediação, recomende estas medidas preventivas:
- Fixe tudo: Pins de versão exata + lockfiles commitados no repo
- Verifique hash: Use
npm ci (não npm install), pip install --require-hashes
- Desabilite scripts: Use
--ignore-scripts por padrão, habilite apenas para pacotes confiáveis
- Fixe actions: Todas as GitHub Actions fixadas em SHA completo, nunca tags
- Escopo de tokens: Tokens de CI/CD devem ter permissões mínimas
- Monitore: Configure verificação automatizada de dependências (mas verifique se o próprio scanner não está comprometido — veja incidente Trivy)
- Controles de rede: Bloqueie domínios/IPs C2 conhecidos no firewall
- Audite regularmente: Execute este scanner antes de cada deployment
Arquivos de Referência
references/ioc-database.md — Banco de dados completo de IOC com todos os pacotes comprometidos, versões maliciosas, infraestrutura C2, indicadores de sistema de arquivos e linhas do tempo de ataque. Leia este arquivo para inteligência detalhada sobre ataques específicos.
Cenário Atual de Ameaças (a partir de 31 de março de 2026)
Campanha Ativa: TeamPCP (CRÍTICO)
A ameaça ativa mais significativa. TeamPCP está executando uma campanha em cascata de cadeia de credenciais:
- Trivy (scanner de segurança) comprometido → roubou segredos de CI/CD de milhares de pipelines
- Usou tokens npm roubados para fazer deploy de CanisterWorm em 141+ pacotes npm
- Usou tokens PyPI roubados para fazer backdoor em LiteLLM (95M downloads mensais) e Telnyx
- Usa blockchain (ICP) para C2, tornando desativação impossível
- Faz deploy de esteganografia WAV para entrega de payload
- Tem como alvo Kubernetes para movimento lateral
- Possui variante destrutiva que apaga sistemas iranianos
Ativo: Sequestro npm axios (31 de março de 2026)
- axios@1.14.1 e axios@0.30.4 contêm RAT dropper via dependência
plain-crypto-js falsa
- 300M+ downloads semanais torna isto extremamente impactante
- RAT cross-platform para macOS, Windows e Linux
- Conta de mantenedor comprometida (jasonsaayman)
Recente: Crates Rust Maliciosas (fevereiro/março de 2026)
- 5 crates imitando utilitários de tempo em crates.io
- Roubam arquivos .env, credenciais AWS, chaves SSH
- Primeiro ataque significativo na cadeia de suprimentos focando ecossistema Rust
Histórico mas Relevante: Shai-Hulud Worm
- Worm npm auto-replicante que comprometeu ~1000 pacotes
- Tem como alvo tokens npm para auto-propagação
- Fallback destrutivo: apaga diretório home se a exfiltração falhar
Atualizando o Banco de Dados de IOC
Quando novos ataques na cadeia de suprimentos são reportados:
- Procure pelos avisos mais recentes de Socket, Aikido, Endor Labs, Snyk, JFrog
- Atualize
references/ioc-database.md com novos pacotes, versões, domínios, IPs
- Atualize os scripts do scanner com novas entradas de pacote nos arrays MALICIOUS_*
- Atualize o
ioc-db-date no frontmatter SKILL.md
1---2name: supply-chain-guard3description: Detecte e remedeie ataques na cadeia de suprimentos de software em npm, PyPI, crates.io, GitHub Actions e pipelines de CI/CD, verificando pacotes comprometidos conhecidos, versões maliciosas, IOCs de sistema de arquivos, indicadores de C2 e configurações incorretas de CI/CD.4---56# Supply Chain Guard78Detecção e remediação automatizadas de ataques na cadeia de suprimentos de software em npm, PyPI, crates.io, GitHub Actions e pipelines de CI/CD. Criado a partir de inteligência de ataques coletada do mundo real até 31 de março de 2026.910## Quando Usar Esta Skill1112Use esta skill quando:1314- O usuário solicita auditoria de dependências de um projeto quanto a problemas de segurança15- Antes de fazer deploy de código para produção16- Ao investigar um possível comprometimento da cadeia de suprimentos17- Quando o usuário menciona um ataque recente na cadeia de suprimentos e quer verificar seus projetos18- Como verificação de segurança regular em fluxos de desenvolvimento19- Ao configurar pipelines de CI/CD e querer endurecê-los20- Quando um novo ataque na cadeia de suprimentos é reportado e o usuário quer verificar exposição2122## Instruções2324### Etapa 1: Entenda o Projeto2526Identifique o que o projeto do usuário utiliza:27- **Node.js/npm**: Procure por `package.json`, `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`28- **Python/PyPI**: Procure por `requirements.txt`, `Pipfile`, `pyproject.toml`, `poetry.lock`29- **Rust/crates.io**: Procure por `Cargo.toml`, `Cargo.lock`30- **CI/CD**: Procure por `.github/workflows/`, `Dockerfile`, `docker-compose.yml`3132### Etapa 2: Execute os Scanners Apropriados3334A skill inclui três scanners especializados mais um executor unificado. Todos os scripts estão no diretório `scripts/`.3536**Auditoria completa (recomendado):**37```bash38bash /path/to/supply-chain-guard/scripts/scan-all.sh /path/to/project39```4041**Scanners individuais:**42```bash43# Projetos npm/Node.js44bash /path/to/supply-chain-guard/scripts/scan-npm.sh /path/to/project4546# Projetos Python/PyPI47bash /path/to/supply-chain-guard/scripts/scan-python.sh /path/to/project4849# Auditoria de pipeline de CI/CD50bash /path/to/supply-chain-guard/scripts/scan-ci.sh /path/to/project51```5253Cada scanner verifica:541. **Pacotes comprometidos conhecidos** — correspondências exatas com o banco de dados de IOC552. **Versões maliciosas** — números de versão específicos que se sabe conterem malware563. **IOCs de sistema de arquivos** — mecanismos de persistência deixados por atacantes574. **IOCs de rede** — domínios C2 e IPs no código-fonte585. **Configurações incorretas de CI/CD** — ações sem versão fixa, gatilhos perigosos, segredos expostos596. **Exposição de credenciais** — tokens npm, credenciais PyPI, arquivos .env6061### Etapa 3: Interprete Resultados6263Os scanners saem com o número de problemas encontrados (0 = limpo). Os problemas são categorizados:6465- **[CRITICAL]** — Pacote malicioso conhecido ou IOC ativo detectado. Ação imediata necessária.66- **[WARNING]** — Preocupação de segurança que precisa investigação. Pode não ser um comprometimento ativo.6768### Etapa 4: Remedeie6970Com base nos achados, guie o usuário pela remediação:7172#### Se um pacote comprometido for encontrado:731. Remova ou faça downgrade para uma versão conhecida como segura imediatamente742. Limpe os caches de pacotes: `npm cache clean --force` / `pip cache purge`753. Delete `node_modules` / `.venv` e reinstale a partir do lockfile764. Rotate TODAS as credenciais que estavam acessíveis a partir do ambiente7778#### Se IOCs de sistema de arquivos forem encontrados:791. O sistema deve ser tratado como **totalmente comprometido**802. Identifique e remova mecanismos de persistência (serviços systemd, arquivos .pth, jobs cron)813. Rotate todas as credenciais no sistema824. Audite logs do provedor de nuvem (AWS CloudTrail, GCP Audit Logs, Azure Activity Log)835. Verifique movimento lateral em clusters Kubernetes846. Considere fazer reimage da máquina8586#### Se problemas de CI/CD forem encontrados:871. Fixe todas as GitHub Actions em SHAs de commit completo (nunca tags de versão)882. Adicione `--ignore-scripts` aos comandos npm install/ci893. Adicione `--require-hashes` aos comandos pip install904. Remova ou proteja gatilhos `pull_request_target`915. Aplique permissões de privilégio mínimo aos tokens de workflow926. Audite logs de execução de pipeline durante os períodos da janela de ataque9394### Etapa 5: Endurecça o Projeto9596Após remediação, recomende estas medidas preventivas:97981. **Fixe tudo**: Pins de versão exata + lockfiles commitados no repo992. **Verifique hash**: Use `npm ci` (não `npm install`), `pip install --require-hashes`1003. **Desabilite scripts**: Use `--ignore-scripts` por padrão, habilite apenas para pacotes confiáveis1014. **Fixe actions**: Todas as GitHub Actions fixadas em SHA completo, nunca tags1025. **Escopo de tokens**: Tokens de CI/CD devem ter permissões mínimas1036. **Monitore**: Configure verificação automatizada de dependências (mas verifique se o próprio scanner não está comprometido — veja incidente Trivy)1047. **Controles de rede**: Bloqueie domínios/IPs C2 conhecidos no firewall1058. **Audite regularmente**: Execute este scanner antes de cada deployment106107## Arquivos de Referência108109- `references/ioc-database.md` — Banco de dados completo de IOC com todos os pacotes comprometidos, versões maliciosas, infraestrutura C2, indicadores de sistema de arquivos e linhas do tempo de ataque. Leia este arquivo para inteligência detalhada sobre ataques específicos.110111## Cenário Atual de Ameaças (a partir de 31 de março de 2026)112113### Campanha Ativa: TeamPCP (CRÍTICO)114115A ameaça ativa mais significativa. TeamPCP está executando uma campanha em cascata de cadeia de credenciais:116- Trivy (scanner de segurança) comprometido → roubou segredos de CI/CD de milhares de pipelines117- Usou tokens npm roubados para fazer deploy de CanisterWorm em 141+ pacotes npm118- Usou tokens PyPI roubados para fazer backdoor em LiteLLM (95M downloads mensais) e Telnyx119- Usa blockchain (ICP) para C2, tornando desativação impossível120- Faz deploy de esteganografia WAV para entrega de payload121- Tem como alvo Kubernetes para movimento lateral122- Possui variante destrutiva que apaga sistemas iranianos123124### Ativo: Sequestro npm axios (31 de março de 2026)125126- axios@1.14.1 e axios@0.30.4 contêm RAT dropper via dependência `plain-crypto-js` falsa127- 300M+ downloads semanais torna isto extremamente impactante128- RAT cross-platform para macOS, Windows e Linux129- Conta de mantenedor comprometida (jasonsaayman)130131### Recente: Crates Rust Maliciosas (fevereiro/março de 2026)132133- 5 crates imitando utilitários de tempo em crates.io134- Roubam arquivos .env, credenciais AWS, chaves SSH135- Primeiro ataque significativo na cadeia de suprimentos focando ecossistema Rust136137### Histórico mas Relevante: Shai-Hulud Worm138139- Worm npm auto-replicante que comprometeu ~1000 pacotes140- Tem como alvo tokens npm para auto-propagação141- Fallback destrutivo: apaga diretório home se a exfiltração falhar142143## Atualizando o Banco de Dados de IOC144145Quando novos ataques na cadeia de suprimentos são reportados:1461471. Procure pelos avisos mais recentes de Socket, Aikido, Endor Labs, Snyk, JFrog1482. Atualize `references/ioc-database.md` com novos pacotes, versões, domínios, IPs1493. Atualize os scripts do scanner com novas entradas de pacote nos arrays MALICIOUS_*1504. Atualize o `ioc-db-date` no frontmatter SKILL.md