📚 Pré-requisitos Teóricos: este projeto aplica conceitos ensinados em Módulo 12: Desenvolvimento Seguro. Recomendado revisar antes de começar.
v1.0 — Engenharia de Software & Práticas Profissionais
Trilha de Especialização Pedagógica
- Tecnologias: DevSecOps, Semgrep, Trivy, GitHub Actions, SAST/DAST, Docker Security Scan
- Arquivo Principal:
.github/workflows/devsecops-pipeline.yml
Pipeline automatizado de segurança DevSecOps com análise estática de código (SAST) via Semgrep, escaneamento de vulnerabilidades em dependências (SCA) e detecção de CVEs em imagens Docker com Trivy.
name: DevSecOps Security Gate
on: [push, pull_request]
jobs:
sast_scan:
name: Semgrep SAST Analysis
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Semgrep SAST
run: semgrep --config=auto --error
container_scan:
name: Trivy Container Vulnerability Scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Trivy Scan
uses: aquasecurity/trivy-action@master
with:
scan-type: 'fs'
severity: 'CRITICAL,HIGH'
exit-code: '1'
No seu editor/IDE, abra a pasta deste projeto (File > Open Folder) ou navegue via terminal:
cd seguranca_03_pipeline_devsecops_sast
docker-compose up -d
python audit_security.py
[!TIP] Dica para execução a partir da raiz do repositório: Se você abriu o repositório completo no VS Code, basta navegar até a pasta antes de executar: cd catalogo_projetos/seguranca_03_pipeline_devsecops_sast
O diagrama abaixo ilustra a topologia de componentes, balanceamento, esteiras de automação e observabilidade na subpasta .github/:
flowchart TD
subgraph Config["Configuração & IaC"]
C1["Manifestos Declarativos"] --> C2["Variáveis & Segredos"]
end
subgraph Orquestracao["Orquestração & Redes"]
O1["Load Balancer / Ingress"] --> O2["Pods / Contêineres de Serviço"]
end
subgraph Observabilidade["Observabilidade & Segurança"]
M1["Telemetria Prometheus / k6"] --> M2["Scanners SAST & Dashboards"]
end
subgraph Qualidade["Homologação & Qualidade"]
Q1["Automação CI/CD"] --> Q2["Checkpoints CP-01..05 PASS"]
end
Config --> Orquestracao
Orquestracao --> Observabilidade
Observabilidade --> Qualidade
style Config fill:#e3f2fd,stroke:#1976d2,stroke-width:1.5px
style Orquestracao fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px
style Observabilidade fill:#e8f5e9,stroke:#388e3c,stroke-width:1.5px
style Qualidade fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px
| ID | Persona | História de Usuário | Critério de Aceite | Prioridade |
|---|---|---|---|---|
| US-01 | Engenheiro de DevSecOps | Desejo análise estática de segurança (SAST) com Semgrep em Pull Requests | Detecção automática de vulnerabilidades OWASP Top 10 antes do merge | Alta |
| US-02 | Especialista em Segurança de Nuvem | Desejo escanear imagens Docker com Trivy em busca de CVEs críticas | Bloqueio de imagens contendo pacotes desatualizados com severidade CRITICAL | Alta |
| US-03 | Arquiteto de Conformidade | Desejo auditoria de dependências (SCA) verificando licenças e CVEs | Análise de lockfiles gerando relatório de vulnerabilidades conhecidas | Alta |
| US-04 | Líder Técnico | Desejo relatórios SARIF enviados para o painel de Security do GitHub | Visualização dos apontamentos diretamente nas linhas alteradas do PR | Média |
| US-05 | Auditor de Segurança | Desejo testes com código intencionalmente vulnerável validando os bloqueios | Repositório de testes com payloads comprovando que a pipeline barra falhas | Média |
| ID | Descrição do Requisito | Criticidade |
|---|---|---|
| RF-01 | Workflow de análise SAST configurado com regras Semgrep Security Audit | Alta |
| RF-02 | Etapa de Container Scanning com Trivy gerando relatórios de CVE | Alta |
| RF-03 | Verificação SCA de dependências de terceiros com thresholds de severidade | Alta |
| RF-04 | Exportação de resultados em padrão SARIF (Static Analysis Results Interchange) | Média |
| RF-05 | Módulo de testes automatizados com validação de políticas de segurança | Média |
| ID | Especificação Arquitetural | Criticidade |
|---|---|---|
| RNF-01 | Zero tolerância para CVEs críticas com score CVSS superior a 9.0 | Alta |
| RNF-02 | Tempo de varredura estática de segurança inferior a 90 segundos | Alta |
| RNF-03 | Isolamento de scanners sem necessidade de privilégios de root | Alta |
| RNF-04 | Isolamento estrito de tags Liquid nas referências em documentação | Alta |
| RNF-05 | Workflows organizados na subpasta .github/workflows/ | Alta |
| User Story | Requisito Funcional | Requisito Não-Funcional | Módulo / Artefato de Código | Status de Homologação |
|---|---|---|---|---|
| US-01 | RF-01 |
RNF-01, RNF-04 |
.github/workflows/sast.yml |
Testado |
| US-02 | RF-02 |
RNF-01, RNF-03 |
.github/workflows/container-scan.yml |
Testado |
| US-03 | RF-03 |
RNF-01, RNF-02 |
.github/workflows/sast.yml |
Testado |
| US-04 | RF-04 |
RNF-02, RNF-04 |
.github/workflows/sast.yml |
Testado |
| US-05 | RF-05 |
RNF-01, RNF-05 |
.github/workflows/test_security.sh |
Testado |
| Checkpoint | Escopo da Validação | Artefato Verificado | Status |
|---|---|---|---|
| CP-01 | Configuração Declarativa do Ambiente | .github/ |
PASS ✅ |
| CP-02 | Provisionamento & Orquestração | Deployments / Services |
PASS ✅ |
| CP-03 | Redes, Proxies & Segurança de Borda | Ingress / Security Groups |
PASS ✅ |
| CP-04 | Observabilidade, Métricas & SAST | Metrics / Scanners |
PASS ✅ |
| CP-05 | Homologação com Suíte de Testes | Test Suite / CI Gate |
PASS ✅ |