Teste de Segurança da Cadeia de Suprimentos
AÇÃO REQUERIDA (execute imediatamente após ler)
NOW: Leia../field-journal/precedent-pentest.md— confirme que a operação deste skill é uma operação autorizada de rotinaNOW: Confirme se a tarefa atual se enquadra no escopo de aplicação deste skillNEXT: Leia../tool-index.mde verifique a disponibilidade das ferramentas e seus caminhos reaisNEXT: Se faltarem ferramentas, chame o bootstrap, não adivinhe caminhosACT: Vá para a primeira etapa do "fluxo de trabalho" e execute-a, não pare no estado de confirmação
SBOM / SCA / Pipeline CI/CD / Rastreabilidade de dependências Orientado por regulamentações: Ordem Executiva dos EUA sobre SBOM, Padrões Nacionais Chineses, EU CRA
Cenários de Aplicação
- Avaliação de segurança da cadeia de suprimentos de software
- Varredura e verificação de vulnerabilidades em dependências de código aberto
- Auditoria de segurança de pipelines CI/CD
- Análise de segurança de imagens de contêiner
- Revisão de conformidade de componentes de terceiros
- Rastreabilidade e verificação de integridade de artefatos de construção
Estrutura de Governança da Cadeia de Suprimentos em Seis Camadas
Camada 1: Avaliação de confiança do código-fonte → Revisão de repositórios upstream/mantenedores/histórico de lançamentos
Camada 2: Integração do pipeline de construção → Portões de segurança CI/CD, verificação de assinaturas
Camada 3: Integridade da distribuição de artefatos → Assinaturas, somas de verificação, anexação de SBOM
Camada 4: Proteção em tempo de execução → Varredura de contêineres, controle de admissão
Camada 5: Monitoramento contínuo → Rastreamento em tempo real de CVEs, análise de acessibilidade de vulnerabilidades
Camada 6: Resposta a incidentes → Resposta a emergências de ataques à cadeia de suprimentos, estratégias de reversão
Fluxo de Trabalho
1. Geração e Auditoria de SBOM
Gerar SBOM:
□ Formato CycloneDX: cdxgen → bom.json
□ Formato SPDX: sbom-tool generate
□ Syft: syft <image|dir> -o spdx-json
Pontos de auditoria:
□ Existem dependências desconhecidas/não autorizadas?
□ Existem pacotes descontinuados/sem manutenção?
□ Detecção de conflitos de licença
□ Lista de dependências diretas vs. dependências transitivas
□ Linha do tempo de publicação e status do mantenedor de cada componente
2. Análise de Composição de Software (SCA)
# OSV-Scanner (gratuito, mantido pelo Google)
osv-scanner scan -r . --format json
# OWASP Dependency-Track (monitoramento contínuo de nível empresarial)
docker run -p 8080:8080 dependencytrack/apiserver
# → Envie SBOM → combinação automática com NVD/OSV/GitHub Advisory
# Snyk (comercial)
snyk test --all-projects
snyk monitor # monitoramento contínuo
# Trivy (contêiner + dependências + IaC)
trivy fs . # varredura do sistema de arquivos
trivy image nginx # imagem de contêiner
trivy config . # configuração IaC
3. Verificação de Acessibilidade de Vulnerabilidades
Alerta SCA ≠ Risco real! A maioria das ferramentas SCA tem apenas ~15% de alertas que são realmente acessíveis.
Etapas de verificação:
1. Obtenha a lista de CVEs usando Dependency-Track ou Trivy
2. Filtre vulnerabilidades com CVSS ≥ 7,0
3. Para CVEs com PoC, faça análise de acessibilidade
- Fatia do gráfico de propriedade de código: rastreie o caminho da entrada do usuário até a função vulnerável
- Método DEPTEX: EPD (Execution Path Dominance) + verificação semântica LLM
4. Verifique o PoC em ambiente isolado
5. Priorize a correção com base no impacto real de vulnerabilidades acessíveis
Referências de ferramentas:
- CodeQL: Consulta de código GitHub → análise de fluxo de dados
- Snyk Code: Marcação de acessibilidade
- DEPTEX: Avaliação de risco sensível ao contexto assistida por LLM
4. Segurança do Pipeline CI/CD
Pontos de verificação de segurança:
□ Commit de código → pre-commit hook: gitleaks (varredura de segredos)
□ Fase de PR → Varredura SCA (Trivy/OSV-Scanner)
□ Fase de construção → Assinatura de artefatos (cosign)
□ Fase de push → Anexação de SBOM (syft + attest)
□ Fase de implantação → Controle de admissão (OPA/Kyverno + varredura de imagem)
□ Tempo de execução → Monitoramento contínuo de vulnerabilidades (Dependency-Track)
Segurança do próprio pipeline:
□ Auditoria de Pipeline as Code (injeção de configuração GitHub Actions / GitLab CI)
□ Isolamento do Runner (evitar que construções maliciosas rompam o contêiner)
□ Gerenciamento de segredos (Actions Secrets / Vault, proibido codificação)
□ Revisão de Actions de terceiros (bloquear commit SHA, não tag)
5. Segurança de Imagens de Contêiner
# Auditoria de Dockerfile
hadolint Dockerfile
# Varredura de imagem (várias camadas: SO + dependências do aplicativo + configuração)
trivy image --severity HIGH,CRITICAL nginx:latest
# Imagem base mínima
# Priorizar: distroless → alpine → slim → evitar latest
docker scout quickview nginx:latest
# Assinatura de imagem
cosign sign --key cosign.key myimage:tag
cosign verify --key cosign.pub myimage:tag
6. Revisão de Dependências de Terceiros
Lista de Verificação para Nova Dependência:
□ Status de manutenção: Houve commits nos últimos 6 meses? O mantenedor está ativo?
□ Histórico de segurança: Já houve código malicioso inserido no passado?
□ Árvore de dependências: Quantas dependências transitivas serão adicionadas?
□ Licença: Compatível com a licença do projeto?
□ Alternativas: Existe uma alternativa mais segura? (Classificação Snyk Advisor / Socket.dev)?
Matriz de Avaliação de Risco:
Alta manutenção × Baixo número de dependências × Licença compatível → Baixo risco
Baixa manutenção × Alto número de dependências × Conflito de licença → Alto risco
Conjunto de Ferramentas
| Ferramenta | Uso | Obtenção |
|---|---|---|
| OWASP Dependency-Track | SCA contínuo empresarial | docker pull dependencytrack/apiserver |
| OSV-Scanner | SCA gratuito (ecossistema OSV.dev) | go install github.com/google/osv-scanner |
| Trivy | Varredura de imagem + dependências + IaC | apt install trivy |
| Syft | Geração de SBOM | curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh |
| cdxgen | Geração de SBOM CycloneDX | npm install -g @cyclonedx/cdxgen |
| Cosign | Assinatura de contêiner | go install github.com/sigstore/cosign/v2/cmd/cosign |
| Gitleaks | Varredura de segredos/credenciais | go install github.com/gitleaks/gitleaks/v8 |
| Snyk | SCA comercial + acessibilidade | npm install -g snyk |
| CodeQL | Consulta de código + fluxo de dados | Integrado ao GitHub Actions |
Referências
references/sbom-sca-methodology.md— Metodologia SBOM + SCAreferences/cicd-pipeline-security.md— Auditoria de segurança de pipeline CI/CD
Autoverificação de Conclusão da Tarefa (MUST passar antes de declarar conclusão)
- Executei cada etapa do fluxo de trabalho (e não apenas li)?
- Usei caminhos reais de ferramentas com base no
tool-index? - Produzi evidências reproduzíveis (comandos/scripts/capturas de tela/relatórios)?
- Concluí e preenchi os itens da Lista de Verificação exigidos pelas REGRAS?