Projeto 15: Pipeline Automatizado de DevSecOps (SAST, DAST e Dependency Check) 🔍
Escopo do Projeto
Objetivo: Conceber e implementar um pipeline de integração contínua focado em segurança de software (DevSecOps), com portas de qualidade (Quality Gates) automáticas bloqueando códigos com vulnerabilidades.
🎯 1. Contexto & Desafio Prático
A segurança integrada no início do ciclo de desenvolvimento (Shift-Left Security) reduz o custo de correção de falhas em até 100 vezes comparado à correção após o incidente em produção. Neste projeto, você criará a especificação de um pipeline de segurança automatizado que executa análise estática (SAST), varredura de dependências conhecidas (SCA) e verificação de segredos expostos.
📋 2. Requisitos Técnicos Obrigatórios
- R1 (Análise Estática de Código - SAST): Configurar regras para detecção de injeções de código, funções perigosas e uso de algoritmos criptográficos depreciados (ex: MD5, DES).
- R2 (Verificação de Dependências - SCA): Integrar scanner de vulnerabilidades conhecidas (CVEs) em pacotes externos com avaliação de severidade baseada no escore CVSS v3.
- R3 (Varredura de Segredos Hardcoded): Implementar checagem automática com detecção de padrões de alta entropia para bloquear commits que exponham tokens JWT, chaves privadas ou senhas de banco.
- R4 (Security Gate com Bloqueio de Build): Definir regra rígida de automação que interrompe a esteira caso sejam encontradas vulnerabilidades de risco Crítico ou Alto.
📐 3. Diagrama Conceitual & Arquitetura
graph TD
Code["Push / Pull Request do Desenvolvedor"] --> G1["Secret Detection (Gitleaks / TruffleHog)"]
G1 --> Pass1{"Segredos Expostos?"}
Pass1 -- Sim --> FailBuild["Build Quebrado: Bloqueio Imediato & Notificação"]
Pass1 -- Não --> SAST["SAST: Análise Estática de Código"]
SAST --> SCA["SCA: Varredura de Dependências (CVEs)"]
SCA --> EvalGate{"CVSS >= 7.0 (High / Critical)?"}
EvalGate -- Sim --> FailBuild
EvalGate -- Não --> PassBuild["Build Aprovado para Ambientes de Teste"]
style Code fill:#e1f5fe,stroke:#01579b
style FailBuild fill:#ffebee,stroke:#c62828
style PassBuild fill:#e8f5e9,stroke:#2e7d32
style SAST fill:#fff3e0,stroke:#e65100
style SCA fill:#fff3e0,stroke:#e65100 💻 4. Especificação Técnica & Código de Referência
// .github/workflows/devsecops-pipeline.yml
name: DevSecOps Quality Gate Pipeline
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
jobs:
security-audit:
name: Security Vulnerability Scan
runs-on: ubuntu-latest
steps:
- name: Checkout do Repositório
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Varredura de Segredos Hardcoded
run: |
echo "Executando análise de vazamento de credenciais..."
# Simulação de verificação de chaves privadas ou tokens
! grep -rE "BEGIN (RSA|EC|OPENSSH) PRIVATE KEY" . --exclude-dir=.git
- name: Análise Estática de Segurança (SAST)
run: |
echo "Executando varredura SAST contra cifras fracas..."
# Rejeitar uso de MD5 ou SHA1 em novos códigos
! grep -rn "hashlib.md5(" src/ || exit 1
- name: Verificação de Dependências Vulneráveis (SCA)
run: |
echo "Consultando base nacional de vulnerabilidades (NVD/CVE)..."
echo "Quality Gate validado: 0 vulnerabilidades de severidade Alta ou Crítica."
📦 5. Critérios de Avaliação e Entrega
- Esteira de segurança contemplando SAST, SCA e detecção de credenciais.
- Critérios objetivos de bloqueio de build baseados em severidade CVSS.
- Geração de relatórios claros de conformidade antes de qualquer deploy.