escrito por Lucas Ludicsa
3 minutos de leitura
Reunimos as ferramentas Dependabot, Secret Scanning e Code Scanning para revelar vulnerabilidades de dependências, secrets e código-fonte dentro do repositório, facilitando correções rápidas no código, antes ou após o envio para produção.
Dependabot automatiza o gerenciamento de dependências em dois níveis:
Alerts: quando um novo alerta é detectado os mantenedores do repositório são notificados, os alertas ocorrem caso a versão tenha um CVE (Common Vulnerabilities and Exposures), um identificador público que cataloga as falhas de segurança conhecidas.
Version Updates: cria pull requests automáticos, para atualizar as dependências em versões mais seguras ou atualizadas.
Secret Scanning busca chaves, tokens e senhas em histórico e novos commits.
Varredura retroativa: escaneia todo o histórico do repositório em busca de secrets já expostos, notificando os mantenedores para que possam revogar ou substituir as credenciais afetadas.
Push Protection: impede que secrets conhecidos (como chaves da AWS, tokens ou senhas de bancos) sejam enviados ao repositório em tempo real. O commit é bloqueado antes mesmo de ser aceito, e o desenvolvedor recebe uma mensagem explicando o motivo e as ações recomendadas.
Analisa o código-fonte para identificar vulnerabilidades, falhas de segurança e padrões perigosos.
CodeQL: é a linguagem de consulta usada para analisar o código-fonte como um banco de dados. Permite explorar estruturas complexas do código, escrever regras de segurança personalizadas e compartilhar pacotes de consulta com a comunidade.
Análise estática automatizada: o GitHub utiliza o CodeQL para escanear o código durante pull requests, pushes ou de forma agendada. A análise detecta problemas como injeção de SQL, XSS, acesso indevido a dados, entre outros riscos comuns.
Alertas integrados: os resultados da varredura são exibidos diretamente na interface do GitHub, com detalhes técnicos, linha afetada e sugestões de correção.
Queries customizadas: permite escrever consultas em CodeQL para detectar padrões específicos de vulnerabilidade, adaptando a análise às particularidades do projeto.
Concluímos que podemos deixar a segurança mais próxima do dia a dia do desenvolvimento com as ferramentas que funcionam direto no repositório e automatizando esses processos, o time ganha agilidade e reduz os riscos sem sair do fluxo de trabalho.