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 ausencia 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í | No | No | No | No | No |
| Precio | Gratis* | Gratis/De pago | Gratis/De pago | Gratis/$$$ | $$$$$ | Gratis/$$$ |
*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: