Scanner SAST com inteligência artificial que encontra bypass de autenticação, IDOR e bugs de lógica que o Semgrep/CodeQL não detectam. Ação gratuita do GitHub. Suporta Python, JS/TS, Go, PHP, Ruby.
Scanner de segurança de código com IA que encontra vulnerabilidades que Semgrep e CodeQL deixam passar.
Início Rápido • Ação do GitHub • Comparação • Linguagens • FAQ
Ferramentas SAST tradicionais dependem de correspondência de padrões e regras de AST. Elas são excelentes para capturar padrões de vulnerabilidade conhecidos, mas fundamentalmente não conseguem raciocinar sobre intenção.
Se sua API tem 20 endpoints e 19 deles verificam autorização antes de agir em um recurso, o Semgrep não tem como sinalizar aquele que não verifica — porque não há padrão para corresponder. A vulnerabilidade é a ausência de um padrão.
O VulnHawk analisa código com IA e, para cada trecho de código examinado, inclui código relacionado de outras partes do seu código-fonte como contexto. Essa etapa de enriquecimento permite que a IA compare como componentes similares lidam com segurança — e identifique aquele que não lida.
pip install vulnhawk
Escolha um backend:
# Claude Code CLI - GRÁTIS para assinantes (recomendado)
vulnhawk scan ./src -b claude-code
# Codex CLI - GRÁTIS para assinantes ChatGPT Pro/Plus
vulnhawk scan ./src -b codex
# Claude API
export ANTHROPIC_API_KEY=sk-ant-...
vulnhawk scan ./src
# OpenAI API
vulnhawk scan ./src -b openai -m gpt-4o
# Ollama - gratuito, local, totalmente privado
vulnhawk scan ./src -b ollama -m llama3.1
Sem arquivos de configuração. Sem regras para escrever. Sem banco de dados para construir.
Os backends Claude Code e Codex são gratuitos para usuários com assinaturas existentes. O VulnHawk envia prompts através do seu CLI local, portanto não há custos adicionais de API.
| Capacidade | VulnHawk | Semgrep | CodeQL | Snyk Code | Checkmarx | SonarQube |
|---|---|---|---|---|---|---|
| Método de detecção | Raciocínio de IA | Padrões AST | Fluxo de dados QL | ML + regras | Padrões + fluxo | Padrões |
| Falhas de lógica de negócio | Sim | Não | Limitado | Limitado | Limitado | Não |
| Contexto entre arquivos | Automático | Regras personalizadas | Consultas personalizadas | Parcial | Camada paga | Limitado |
| Complexidade de configuração | Zero config | Config de regras | Construção DB + QL | Arquivo config | Complexo | Config de servidor |
| Regras personalizadas necessárias | Não | Sim (YAML) | Sim (QL) | Parcial | Sim | Sim |
| Correções com contexto | Sim | Genérico | Genérico | Genérico | Genérico | Genérico |
| Modo local/privado | Ollama | Sim | Sim | Não | Não | Auto-hospedado |
| Integração CI/CD | Ação de 1 linha | Ação | Ação | Ação | Plugin | Plugin |
| Entrada SARIF (encadeamento) | Sim | Não | Não | Não | Não | Não |
| Preço | Grátis* | Grátis / Pago | Grátis / Pago | Grátis / $$$ | $$$$$ | Grátis / $$$ |
*Grátis com Claude Code, Codex CLI ou Ollama. Backends de API custam ~$0.50–$2.00 por varredura.
| Classe de vulnerabilidade | Por que ferramentas baseadas em regras perdem |
|---|---|
| Autorização ausente em 1-de-N endpoints | Não há padrão para corresponder — o bug é a ausência de uma verificação |
| IDOR / BOLA | Exige entender que o ID do usuário no JWT deve corresponder ao ID na URL |
| Manipulação do valor do pagamento | Lógica de negócio — o campo de valor não deve ser confiado ao cliente |
| Validação de entrada inconsistente | 5 manipuladores sanitizam, o 6º não — precisa de comparação entre arquivos |
| Mau uso de entrada armazenada | Entrada salva com segurança, mas eval()'ada ou em SQL bruto 3 arquivos adiante |
| Condições de corrida em atualizações de estado | Modificações concorrentes de saldo sem bloqueio |
O VulnHawk foi projetado como uma camada complementar, não uma substituição:
| Camada | Ferramenta | Propósito |
|---|---|---|
| 1 | Semgrep | Gatekeeping rápido e determinístico em padrões conhecidamente ruins |
| 2 | CodeQL | Rastreamento profundo de contaminação em cadeias de chamadas complexas |
| 3 | VulnHawk | Lógica de negócio, lacunas de autenticação, IDOR e inconsistências que regras não podem expressar |
vulnhawk scan ./src # Varredura completa (padrão)
vulnhawk scan ./src --mode auth # Bypass de autenticação, verificações ausentes, falhas de sessão
vulnhawk scan ./src --mode injection # SQLi, injeção de comando, SSTI, XSS
vulnhawk scan ./src --mode secrets # Chaves, tokens e senhas codificadas
vulnhawk scan ./src --mode config # Modo debug, CORS permissivo, cookies inseguros
vulnhawk scan ./src --mode crypto # Hashing fraco, chaves codificadas, RNG ruim
vulnhawk scan ./src -o json -f results.json # JSON
vulnhawk scan ./src -o sarif -f results.sarif # SARIF (Code Scanning do GitHub)
vulnhawk scan ./src -o markdown -f report.md # Relatório Markdown
vulnhawk scan ./src --severity high # Crítico + Alto apenas
vulnhawk scan ./src --severity info # Tudo
Alimente a saída do Semgrep, CodeQL ou qualquer ferramenta que produza SARIF no VulnHawk. Ele usa esses achados como contexto adicional para validar, expandir e encadeá-los em vulnerabilidades mais profundas.
# Execute Semgrep primeiro, depois enriqueça com VulnHawk
semgrep --config auto ./src -o semgrep.sarif --sarif
vulnhawk scan ./src --sarif-input semgrep.sarif
O que isso possibilita:
vulnhawk info ./src # Visualize arquivos, blocos e distribuição de linguagens
O VulnHawk executa uma varredura de linha de base no seu branch padrão e incrementalmente em cada pull request.
name: VulnHawk Security Scan
on:
push:
branches: [main, master]
pull_request:
permissions:
security-events: write
contents: read