Como construí uma esteira de segurança completa com GitHub Actions
Um Pull Request que já chega analisado por seis ferramentas de segurança diferentes, com feedback pro desenvolvedor em minutos, sem sair do GitHub — não é uma visão de futuro. É o que dá pra construir hoje, de graça, com GitHub Actions.
Para provar isso na prática, montei um blueprint completo e open-source de uma esteira DevSecOps robusta. Este artigo explica como essa arquitetura funciona e como você pode reaproveitá-la no seu próprio repositório.
Duas filosofias por trás da arquitetura
O objetivo não era só empilhar ferramentas — era sair da teoria e construir um sistema real, apoiado em dois princípios:
Defesa em profundidade: não confiar numa única ferramenta, mas criar múltiplas camadas de segurança cobrindo código, dependências, containers e infraestrutura.
Shift-left security: trazer a segurança para o início do ciclo, com feedback instantâneo no próprio Pull Request — onde o custo de correção é ordens de grandeza menor do que em produção.
O arsenal: seis ferramentas integradas em camadas
A esteira não aposta numa ferramenta só — combina as melhores de cada categoria para maximizar cobertura:
SAST (análise estática): uma dupla — Semgrep para feedback rápido e customizável direto no PR, e CodeQL (GitHub Advanced Security) para análise semântica profunda, capaz de achar vulnerabilidades mais complexas.
SCA (análise de dependências): o Dependabot monitora continuamente as bibliotecas do projeto contra CVEs conhecidas e abre PRs de correção automaticamente.
Secrets scanning:Gitleaks e o Secret Scanning nativo do GitHub trabalham juntos para garantir que nenhuma chave de API, senha ou token vaze no código-fonte.
Container e IaC: o Trivy analisa a imagem Docker e o Dockerfile em busca de vulnerabilidades e más práticas de configuração.
Fluxo da esteira: cada Push/PR aciona as quatro camadas em paralelo, centralizadas no GitHub Security.
Aproveitando o GitHub Advanced Security
O projeto foi pensado para se integrar nativamente ao ecossistema do GitHub, usando o Advanced Security para centralizar a gestão:
CodeQL: o scanner SAST de profundidade — os resultados aparecem direto na aba "Security" como Code Scanning alerts.
Secret Scanning: proteção em tempo real, com notificação imediata sobre segredos expostos.
Dependabot: o "gerente de dependências" automatizado, garantindo que o projeto fique atualizado contra CVEs conhecidas.
Aba "Security" do repositório: Dependabot, Code scanning e Secret scanning centralizados num só painel.
O fluxo, passo a passo
1. Um dev abre um Pull Request com uma nova funcionalidade.
2. Em minutos, o GitHub Actions dispara e as seis ferramentas rodam em paralelo.
3. Qualquer vulnerabilidade crítica bloqueia o merge automaticamente.
4. Todos os alertas (SAST, Dependabot, secrets) ficam centralizados na aba "Security" do repositório, um dashboard único de saúde do projeto.
O resultado é um ciclo de feedback rápido, claro e acionável — sem o desenvolvedor precisar sair da ferramenta onde já está trabalhando.
O Advanced Security comenta direto no PR — aqui, um alerta de baixa severidade sobre HEALTHCHECK ausente no Dockerfile, via Trivy.As 8 checagens de segurança rodando em paralelo no PR — todas verdes antes do merge ser liberado.
Da detecção à correção automática
Na aba Security, o Dependabot lista as vulnerabilidades de dependências de terceiros já categorizadas por criticidade. E a automação não para no alerta: o Dependabot abre Pull Requests para corrigir as falhas sozinho, transformando horas de trabalho manual numa simples revisão de código.
Vulnerabilidades de dependências de terceiros identificadas pelo Dependabot, categorizadas por criticidade.O Dependabot não só alerta — ele abre a PR de correção sozinho. Aqui, um bump de versão do Python.
Roadmap: o que vem a seguir
A esteira já cobre uma boa fatia do ciclo, mas o plano é evoluir: testes dinâmicos (DAST com OWASP ZAP), testes interativos (IAST) e, mais adiante, análise de segurança com IA para sugerir correções automáticas.
Segurança como habilitador, não bloqueio
Esse projeto é a prova de que dá para ter um processo de desenvolvimento ágil e seguro ao mesmo tempo. Automatizando a segurança e integrando ela ao fluxo de trabalho do time, o que era gargalo vira parte da qualidade do produto.