Pular para o conteúdo principal

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

FerramentaEspecialidade
GitleaksPadrões regex em commits, branches e tags
TruffleHogValidação ativa (chama o provedor para confirmar se o secret é vivo)
SemgrepAnálise semântica AST
detect-secretsBaseline + plugins por tipo
WhispersYAML, JSON, .env e HCL estruturados
TalismanPre-commit hook
shhgitStream em tempo real de commits públicos
git-secretsPatterns 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:

  1. Rotacionar o secret no provedor original (Stripe, AWS, etc.).
  2. Mover o valor para o cofre apropriado.
  3. Atualizar o pipeline para consumir via OIDC.
  4. Remover do histórico git (git filter-repo instructions).
  5. 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.