
Escáner SAST impulsado por IA que encuentra bypass de autenticación, IDOR y fallos lógicos que Semgrep/CodeQL pasan por alto. Acción gratuita de GitHub. Soporta Python, JS/TS, Go, PHP, Ruby.
Escáner de seguridad de código impulsado por IA que encuentra vulnerabilidades que Semgrep y CodeQL pasan por alto.
Inicio rápido • Acción de GitHub • Comparación • Lenguajes • FAQ
Las herramientas SAST tradicionales se basan en coincidencia de patrones y reglas de AST. Son excelentes para detectar patrones de vulnerabilidad conocidos, pero fundamentalmente no pueden razonar sobre intenciones.
Si tu API tiene 20 endpoints y 19 de ellos verifican la autorización antes de actuar sobre un recurso, Semgrep no tiene forma de marcar el que no lo hace, porque no hay un patrón contra el que coincidir. La vulnerabilidad es la de un patrón.
VulnHawk analiza el código con IA y, para cada fragmento de código que examina, incluye código relacionado de otras partes de tu base de código como contexto. Este paso de enriquecimiento permite que la IA compare cómo componentes similares manejan la seguridad y detecte el que no lo hace.
pip install vulnhawk
Elige un backend:
# Claude Code CLI - FREE for subscribers (recommended)
vulnhawk scan ./src -b claude-code
# Codex CLI - FREE for ChatGPT Pro/Plus subscribers
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 - free, local, fully private
vulnhawk scan ./src -b ollama -m llama3.1
Sin archivos de configuración. Sin reglas que escribir. Sin base de datos que construir.
Los backends Claude Code y Codex son gratuitos para usuarios con suscripciones existentes. VulnHawk envía las indicaciones a través de tu CLI local, por lo que no hay costos de API adicionales.
| Capacidad | VulnHawk | Semgrep | CodeQL | Snyk Code | Checkmarx | SonarQube |
|---|---|---|---|---|---|---|
| Método de detección | Razonamiento con IA | Patrones AST | Flujo de datos QL | ML + reglas | Patrones + flujo | Patrones |
| Fallos de lógica de negocio | Sí | No | Limitado | Limitado | Limitado | No |
| Contexto entre archivos | Automático | Reglas personalizadas | Consultas personalizadas | Parcial | Nivel de pago | Limitado |
| Complejidad de configuración | Sin configuración | Configuración de reglas | Construcción BD + QL | Archivo de configuración | Complejo | Configuración de servidor |
| Reglas personalizadas necesarias | No | Sí (YAML) | Sí (QL) | Parcial | Sí | Sí |
| Correcciones conscientes del contexto | Sí | Genéricas | Genéricas | Genéricas | Genéricas | Genéricas |
| Modo local/privado | Ollama | Sí | Sí | No | No | Auto-alojado |
| Integración CI/CD | Acción de 1 línea | Acción | Acción | Acción | Plugin | Plugin |
| Entrada SARIF (encadenar herramientas) | Sí |
*Gratis con Claude Code, Codex CLI u Ollama. Los backends de API cuestan ~$0.50–$2.00 por escaneo.
| Clase de vulnerabilidad | Por qué las herramientas basadas en reglas lo pasan por alto |
|---|---|
| Autorización faltante en 1 de N endpoints | No hay patrón que coincida: el error es la ausencia de una verificación |
| IDOR / BOLA | Requiere entender que el ID de usuario en el JWT debe coincidir con el ID en la URL |
| Manipulación del monto de pago | Lógica de negocio: el campo de monto no debería confiarse del cliente |
| Validación de entrada inconsistente | 5 controladores sanitizan, el 6.º no: necesita comparación entre archivos |
| Uso incorrecto de entrada almacenada | Entrada guardada de forma segura, pero eval()'da o en SQL crudo 3 archivos después |
| Condiciones de carrera en actualizaciones de estado | Modificaciones concurrentes de saldo sin bloqueo |
VulnHawk está diseñado como una capa complementaria, no como un reemplazo:
| Capa | Herramienta | Propósito |
|---|---|---|
| 1 | Semgrep | Control de acceso rápido y determinista sobre patrones conocidos malos |
| 2 | CodeQL | Seguimiento profundo de contaminación en cadenas de llamadas complejas |
| 3 | VulnHawk | Lógica de negocio, brechas de autenticación, IDOR e inconsistencias que las reglas no pueden expresar |
vulnhawk scan ./src # Escaneo completo (predeterminado)
vulnhawk scan ./src --mode auth # Bypass de autenticación, verificaciones faltantes, fallos de sesión
vulnhawk scan ./src --mode injection # SQLi, inyección de comandos, SSTI, XSS
vulnhawk scan ./src --mode secrets # Claves, tokens, contraseñas hardcodeadas
vulnhawk scan ./src --mode config # Modo depuración, CORS permisivo, cookies inseguras
vulnhawk scan ./src --mode crypto # Hashing débil, claves hardcodeadas, RNG malo
vulnhawk scan ./src -o json -f results.json # JSON
vulnhawk scan ./src -o sarif -f results.sarif # SARIF (Escaneo de código de GitHub)
vulnhawk scan ./src -o markdown -f report.md # Informe Markdown
vulnhawk scan ./src --severity high # Solo Crítico + Alto
vulnhawk scan ./src --severity info # Todo
Alimenta la salida de Semgrep, CodeQL o cualquier herramienta que produzca SARIF en VulnHawk. Utiliza esos hallazgos como contexto adicional para validar, expandir y encadenarlos en vulnerabilidades más profundas.
# Ejecuta Semgrep primero, luego enriquece con VulnHawk
semgrep --config auto ./src -o semgrep.sarif --sarif
vulnhawk scan ./src --sarif-input semgrep.sarif
Lo que esto permite:
vulnhawk info ./src # Vista previa de archivos, fragmentos y desglose de lenguajes
VulnHawk se ejecuta como un escaneo de referencia en tu rama predeterminada e incrementalmente en cada solicitud de extracción.
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'
Los hallazgos se suben automáticamente a la pestaña Security > Code Scanning de GitHub a través de SARIF.
| Backend | Configuración |
|---|---|
| Claude Code (gratis) |
Obtén tu token: |
| Codex (gratis) |
Requiere |
| Claude API |
|
| OpenAI API |
|
steps:
- uses: actions/checkout@v4
- name: Semgrep (escaneo rápido de patrones)
uses: returntocorp/semgrep-action@v1
with:
config: auto
generateSarif: true
- name: VulnHawk (análisis profundo con IA)
uses: momenbasel/vulnhawk@main
with:
target: '.'
backend: 'claude-code'
claude-code-oauth-token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
sarif-input: 'semgrep.sarif'
| Lenguaje | Extensiones | Detección de frameworks |
|---|---|---|
| Python | .py | Django, Flask, FastAPI |
| JavaScript | .js .jsx | Express, Fastify, Next.js |
| TypeScript | .ts .tsx | Express, NestJS, Fastify |
| Go | .go | Manejadores net/http |
| Java | .java | División de clase/método |
| PHP | .php | Rutas Laravel, clases, traits, interfaces |
| Ruby | .rb .erb | Rutas Rails, clases, módulos |
Base de código ──> Descubrir ──> Fragmentar ──> Enriquecer ──> Analizar ──> Validar ──> Reportar
│ │ │ │ │
Respeta Funciones Código LLM con Deduplicar +
.gitignore Clases relacionado indicaciones puntuación
.vulnhawk- Rutas del mismo de de
ignore Módulos dir + seguridad confianza
patrones de
autenticación
El paso de enriquecimiento es el diferenciador principal. Para cada fragmento de código, VulnHawk incluye:
Esto le da a la IA el contexto que necesita para identificar inconsistencias.
Excluye rutas del escaneo (sintaxis gitignore):
generated/
vendor/
third_party/
*.gen.go
| Variable | Descripción |
|---|---|
CLAUDE_CODE_OAUTH_TOKEN | Autenticación CLI de Claude Code (gratis para suscriptores) |
ANTHROPIC_API_KEY | Clave API de Claude |
OPENAI_API_KEY | Clave API de OpenAI |
| Backend | Por escaneo (~100 archivos) | Requisito |
|---|---|---|
| Claude Code CLI | Gratis | Suscripción a Claude Code Max o Team |
| Codex CLI | Gratis | Suscripción a ChatGPT Pro o Plus |
| Claude API | ~$0.50 – $2.00 | Créditos API de Anthropic |
| OpenAI API | ~$1.00 – $4.00 | Créditos API de OpenAI |
| Ollama | Gratis | Máquina local con 8GB+ de VRAM |
Las suscripciones de Claude Code (Max a $100–$200/mes, o planes Team) incluyen uso ilimitado de CLI. VulnHawk invoca claude --print internamente, canalizando las indicaciones de análisis a través de tu suscripción existente. Sin clave API. Sin facturación por token.
Ejecuta claude config get oauth_token en tu máquina local. Agrega la salida como un secreto de GitHub Actions llamado CLAUDE_CODE_OAUTH_TOKEN.
Ambos. Los escaneos push-to-main establecen tu línea base de seguridad y llenan la pestaña de Seguridad. Los escaneos de PR detectan nuevas vulnerabilidades antes de fusionar. El flujo de trabajo recomendado maneja ambos disparadores.
Sí: los fragmentos de código se envían al proveedor de LLM configurado (Anthropic u OpenAI). Para escaneo totalmente privado y aislado, usa el backend Ollama, que se ejecuta completamente en tu máquina local.
No. VulnHawk es una capa complementaria. Semgrep y CodeQL son excelentes en lo que hacen (coincidencia de patrones y seguimiento de contaminación). VulnHawk detecta los errores de lógica de negocio, brechas de autenticación e inconsistencias que las reglas no pueden expresar. Usa los tres juntos para la cobertura más sólida.
Sí. VulnHawk incluye fragmentación consciente del framework para ambos. Detecta definiciones de Route::get() de Laravel, clases/traits/interfaces de PHP, declaraciones de rutas de Rails (get, post, resources) y clases/módulos de Ruby. También extrae importaciones específicas del framework (use, require, include).
Puedes alimentar a VulnHawk con un archivo SARIF producido por cualquier otro escáner (Semgrep, CodeQL, Snyk, etc.). VulnHawk utiliza esos hallazgos como contexto adicional durante el análisis: validándolos, encontrando problemas relacionados cerca y construyendo cadenas de ataque de múltiples pasos que conectan hallazgos entre herramientas.
Consulta 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
Si VulnHawk te resulta útil, considera patrocinar el proyecto para apoyar el desarrollo continuo.
VulnHawk es creado y mantenido por GreyCore Labs, una firma de seguridad ofensiva constituida en EE. UU. ¿Quieres el mismo ojo en tu propio producto?
VulnHawk está disponible como código fuente bajo la Licencia VulnHawk.
Gratis para todos: individuos, equipos, startups y empresas pueden usar VulnHawk sin costo para escaneo de seguridad interno, siempre que se instale desde un canal de distribución oficial:
No puedes vender el Software, ofrecerlo como un servicio competidor ni redistribuir bifurcaciones como producto. Las bifurcaciones están permitidas únicamente para enviar solicitudes de extracción de vuelta a este repositorio. Consulta LICENSE para conocer los términos completos.
| No |
| No |
| No |
| No |
| No |
| Precio | Gratis* | Gratis/De pago | Gratis/De pago | Gratis/$$$ | $$$$$ | Gratis/$$$ |