Pular para conteúdo

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

  1. Esteira de segurança contemplando SAST, SCA e detecção de credenciais.
  2. Critérios objetivos de bloqueio de build baseados em severidade CVSS.
  3. Geração de relatórios claros de conformidade antes de qualquer deploy.