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 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 |
*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
jobs:
vulnhawk:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: momenbasel/vulnhawk@main
with:
target: '.'
backend: 'claude-code'
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
severity: 'medium'
fail-on-findings: 'true'
Os achados são automaticamente enviados para a aba Segurança > Code Scanning do GitHub via SARIF.
| Backend | Configuração |
|---|---|
| Claude Code (grátis) |
Obtenha seu token: |
| Codex (grátis) |
Requer |
| Claude API |
|
| OpenAI API |
|
steps:
- uses: actions/checkout@v4
- name: Semgrep (varredura rápida de padrões)
uses: returntocorp/semgrep-action@v1
with:
config: auto
generateSarif: true
- name: VulnHawk (análise profunda com IA)
uses: momenbasel/vulnhawk@main
with:
target: '.'
backend: 'claude-code'
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
sarif-input: 'semgrep.sarif'
| Linguagem | Extensões | Detecção de framework |
|---|---|---|
| Python | .py | Django, Flask, FastAPI |
| JavaScript | .js .jsx | Express, Fastify, Next.js |
| TypeScript | .ts .tsx | Express, NestJS, Fastify |
| Go | .go | Manipuladores net/http |
| Java | .java | Divisão de classe/método |
| PHP | .php | Rotas Laravel, classes, traits, interfaces |
| Ruby | .rb .erb | Rotas Rails, classes, módulos |
Codebase ──> Descoberta ──> Fragmentação ──> Enriquecimento ──> Análise ──> Validação ──> Relatório
│ │ │ │ │
Respeita Funções Código LLM com Dedup +
.gitignore Classes relacionado prompts de pontuação
.vulnhawk- Rotas do mesmo dir + segurança de confiança
ignore Módulos padrões de auth
A etapa de enriquecimento é o diferencial central. Para cada bloco de código, o VulnHawk inclui:
Isso dá à IA o contexto necessário para identificar inconsistências.
Exclua caminhos da varredura (sintaxe gitignore):
generated/
vendor/
third_party/
*.gen.go
| Variável | Descrição |
|---|---|
CLAUDE_CODE_OAUTH_TOKEN | Autenticação do Claude Code CLI (grátis para assinantes) |
ANTHROPIC_API_KEY | Chave da API Claude |
OPENAI_API_KEY | Chave da API OpenAI |
| Backend | Por varredura (~100 arquivos) | Requisito |
|---|---|---|
| Claude Code CLI | Grátis | Assinatura Claude Code Max ou Team |
| Codex CLI | Grátis | Assinatura ChatGPT Pro ou Plus |
| Claude API | ~$0,50 – $2,00 | Créditos da API Anthropic |
| OpenAI API | ~$1,00 – $4,00 | Créditos da API OpenAI |
| Ollama | Grátis | Máquina local com 8 GB+ de VRAM |
Assinaturas do Claude Code (Max a $100–$200/mês, ou planos Team) incluem uso ilimitado do CLI. O VulnHawk invoca claude --print internamente, enviando prompts de análise através da sua assinatura existente. Sem chave de API. Sem cobrança por token.
Execute claude config get oauth_token na sua máquina local. Adicione a saída como um segredo do GitHub Actions chamado CLAUDE_CODE_OAUTH_TOKEN.
Ambos. Varreduras de push no main estabelecem sua linha de base de segurança e preenchem a aba de Segurança. Varreduras em PR capturam novas vulnerabilidades antes do merge. O fluxo de trabalho recomendado configura ambos os gatilhos.
Sim — blocos de código são enviados para o provedor de LLM configurado (Anthropic ou OpenAI). Para varredura totalmente privada e isolada, use o backend Ollama, que roda inteiramente na sua máquina local.
Não. O VulnHawk é uma camada complementar. Semgrep e CodeQL são excelentes no que fazem (correspondência de padrões e rastreamento de contaminação). O VulnHawk captura bugs de lógica de negócio, lacunas de autenticação e inconsistências que regras não conseguem expressar. Use todos os três juntos para a cobertura mais forte.
Sim. O VulnHawk inclui fragmentação com reconhecimento de framework para ambos. Detecta definições de Route::get() do Laravel, classes/traits/interfaces do PHP, declarações de rota do Rails (get, post, resources) e classes/módulos do Ruby. Também extrai importações específicas do framework (use, require, include).
Você pode alimentar o VulnHawk com um arquivo SARIF produzido por qualquer outro scanner (Semgrep, CodeQL, Snyk, etc.). O VulnHawk usa esses achados como contexto adicional durante a análise — validando-os, encontrando problemas relacionados nas proximidades e construindo cadeias de ataque de várias etapas que conectam achados entre ferramentas.
Veja CONTRIBUTING.md.
git clone https://github.com/momenbasel/vulnhawk.git
cd vulnhawk
uv venv .venv && source .venv/bin/activate
uv pip install -e ".[dev]"
pytest
Se o VulnHawk é útil para você, considere patrocinar o projeto para apoiar o desenvolvimento contínuo.
VulnHawk é construído e mantido pela GreyCore Labs, uma empresa de segurança ofensiva incorporada nos EUA. Quer o mesmo olhar no seu próprio produto?
VulnHawk é código-fonte disponível sob a Licença VulnHawk.
Grátis para todos — indivíduos, equipes, startups e empresas podem usar o VulnHawk sem custo para varreduras internas de segurança, desde que instalado a partir de um canal de distribuição oficial:
Você não pode vender o Software, oferecê-lo como um serviço concorrente ou redistribuir forks como um produto. Forks são permitidos exclusivamente para enviar pull requests de volta a este repositório. Veja LICENSE para os termos completos.
| Não |
| Não |
| Não |
| Preço | Grátis* | Grátis / Pago | Grátis / Pago | Grátis / $$$ | $$$$$ | Grátis / $$$ |