O projeto possui workflows dedicados para segurança:
- Scan completo do sistema de arquivos
- Análise de dependências Node.js e Go
- Foco em vulnerabilidades CRÍTICAS, ALTAS e MÉDIAS
- Execução em push, pull request e diariamente
- Scan único do sistema de arquivos
- Configuração mais robusta com verificações de erro
- Melhor tratamento de falhas
- Execução em push, pull request e diariamente
O workflow de segurança possui as seguintes permissões:
permissions:
contents: read
security-events: write
actions: read
pull-requests: read
Causa: O GitHub Actions não tem permissão para acessar a API de Code Scanning.
Solução:
- Adicionar permissões explícitas no workflow
- Garantir que
security-events: write
está configurado - Verificar se não é um fork (forks têm limitações de segurança)
Causa: O comando dep
não existe no Trivy. O comando correto é fs
(filesystem).
Solução:
- Usar
scan-type: 'fs'
em vez descan-type: 'dep'
- O Trivy automaticamente detecta dependências no filesystem
- Configurar severidade adequada:
severity: 'CRITICAL,HIGH,MEDIUM'
Causa: O arquivo SARIF não foi gerado devido a falha no scan.
Solução:
- Adicionar verificações de existência do arquivo
- Usar condicionais
if: always() && steps.check-scan.outputs.exists == 'true'
- Implementar logs detalhados para debug
# No workflow
permissions:
contents: read
security-events: write
actions: read
pull-requests: read
# No job específico
jobs:
security-scan:
permissions:
contents: read
security-events: write
actions: read
Os resultados dos scans são enviados para:
- GitHub Security Tab: Visualização de vulnerabilidades
- Code Scanning: Análise detalhada de problemas de segurança
- Dependabot: Atualizações automáticas de dependências
- Scans Diários: Executados automaticamente às 2:00 UTC
- Scans em PR: Executados em cada pull request
- Scans em Push: Executados em pushes para main/develop
- Trivy: Scanner de vulnerabilidades
- SARIF: Formato de relatório de segurança
- GitHub CodeQL: Upload de resultados para análise
- Configurar Dependabot para atualizações automáticas
- Implementar CodeQL para análise de código
- Configurar alertas de segurança
- Implementar políticas de branch protection