CI/CD Scanner
O CI/CD Scanner detecta secrets expostos em repositórios e pipelines combinando 8 ferramentas open source em paralelo, consolidando achados em uma única visão e reduzindo falsos positivos via correlação cruzada.
Ferramentas integradas
| Ferramenta | Especialidade |
|---|---|
| Gitleaks | Padrões regex em commits, branches e tags |
| TruffleHog | Validação ativa (chama o provedor para confirmar se o secret é vivo) |
| Semgrep | Análise semântica AST |
| detect-secrets | Baseline + plugins por tipo |
| Whispers | YAML, JSON, .env e HCL estruturados |
| Talisman | Pre-commit hook |
| shhgit | Stream em tempo real de commits públicos |
| git-secrets | Patterns AWS-first |
Modos de operação
Pre-commit hook
Bloqueia o commit local antes de chegar ao remote.
# Instalação no repo
curl -sSL https://get.ciphervault.com.br/scanner | bash
# Configuração no repo
ciphervault-scanner init --hooks=pre-commit
CI check
Bloqueia o merge no PR. Exemplo GitHub Actions:
name: secrets-scan
on: [pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ciphervault/scanner-action@v1
with:
fail-on: high
report-to-cv: true
vault: 'producao'
fail-on: high falha o job se houver achados de severidade alta. medium e
low viram comentários no PR. report-to-cv: true envia o relatório para o
dashboard de Risk Scoring do tenant.
Scan recorrente
Para repositórios legados, configure scan diário do histórico completo:
ciphervault-cli scan repo \
--provider github \
--repo acme-corp/billing-api \
--schedule "0 3 * * *" \
--notify-channel "#sec-alerts"
Consolidação de achados
Cada commit passa pelas 8 ferramentas. Achados são deduplicados por
(file, line, secret_hash) e correlacionados:
- Severidade high: confirmado por ≥ 2 ferramentas OU validação ativa do TruffleHog.
- Severidade medium: 1 ferramenta + entropia alta + match em catálogo de tipos conhecidos.
- Severidade low: 1 ferramenta com baixa confiança.
Allowlist e baseline
# .ciphervault-scanner.yml
version: 1
allowlist:
files:
- 'docs/examples/**'
- 'tests/fixtures/secrets.test.json'
patterns:
- 'AKIAIOSFODNN7EXAMPLE' # exemplo AWS oficial
paths:
- 'go.sum'
baseline: .secrets.baseline
O baseline (gerado por detect-secrets) congela achados pré-existentes — só
falha em novos secrets, ideal para introdução gradual em monorepos.
Remediação automática
Se um secret real for detectado em PR, o CipherVault pode (com aprovação) abrir issue de remediação que orienta:
- Rotacionar o secret no provedor original (Stripe, AWS, etc.).
- Mover o valor para o cofre apropriado.
- Atualizar o pipeline para consumir via OIDC.
- Remover do histórico git (
git filter-repoinstructions). - Validar com novo scan.
Dashboard
Em Segurança → Scanner, visualize:
- Repositórios escaneados, frequência e cobertura.
- Achados ativos por severidade e dono.
- Tendência (achados novos vs. resolvidos).
- Top 10 tipos de secrets vazados.
- Correlação com Leak Detection (achados internos vs. dark web).
Boas práticas
- Pre-commit + CI check + scan diário. Camadas redundantes.
- Baseline ao adotar. Não tente remediar 5 anos de histórico de uma vez.
- Allowlist mínima. Cada exclusão é uma exceção auditável.
- Validação ativa em produção. TruffleHog confirma se o secret está vivo — priorize esses.