Scanner SAST basato su AI che trova bypass di autenticazione, IDOR e bug logici che Semgrep e CodeQL non trovano. GitHub Action gratuito. Supporta Python, JS/TS, Go, PHP, Ruby.
Scanner di sicurezza del codice basato su IA che trova vulnerabilità che Semgrep e CodeQL non rilevano.
Avvio rapido • GitHub Action • Confronto • Linguaggi • FAQ
Gli strumenti SAST tradizionali si basano sul pattern matching e su regole AST. Eccellono nell'individuare modelli di vulnerabilità noti, ma non sono in grado di ragionare sull'intento.
Se la tua API ha 20 endpoint e 19 di essi verificano l'autorizzazione prima di agire su una risorsa, Semgrep non ha modo di segnalare quello che non lo fa, perché non esiste un pattern da abbinare. La vulnerabilità è l'assenza di un pattern.
VulnHawk analizza il codice con l'IA e, per ogni pezzo di codice esaminato, include codice correlato da altre parti della tua codebase come contesto. Questo passaggio di arricchimento permette all'IA di confrontare come componenti simili gestiscono la sicurezza – e individuare quello che invece non lo fa.
pip install vulnhawk
Scegli un backend:
# Claude Code CLI - GRATUITO per abbonati (consigliato)
vulnhawk scan ./src -b claude-code
# Codex CLI - GRATUITO per abbonati 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, locale, completamente privato
vulnhawk scan ./src -b ollama -m llama3.1
Niente file di configurazione. Niente regole da scrivere. Niente database da costruire.
I backend Claude Code e Codex sono gratuiti per gli utenti con abbonamenti esistenti. VulnHawk invia i prompt attraverso la tua CLI locale, quindi non ci sono costi API aggiuntivi.
| Capacità | VulnHawk | Semgrep | CodeQL | Snyk Code | Checkmarx | SonarQube |
|---|---|---|---|---|---|---|
| Metodo di rilevamento | Ragionamento IA | Pattern AST | Flusso dati QL | ML + regole | Pattern + flusso | Pattern |
| Difetti di logica di business | Sì | No | Limitato | Limitato | Limitato | No |
| Contesto tra file | Automatico | Regole personalizzate | Query personalizzate | Parziale | Livello a pagamento | Limitato |
| Complessità di configurazione | Zero configurazione | Configurazione regole | Build DB + QL | File di configurazione | Complessa | Configurazione server |
| Regole personalizzate necessarie | No | Sì (YAML) | Sì (QL) | Parziale | Sì | Sì |
| Fix contestuali | Sì | Generici | Generici | Generici | Generici | Generici |
| Modalità locale/privata | Ollama | Sì | Sì | No | No | Self-hosted |
| Integrazione CI/CD | Action in 1 riga | Action | Action | Action | Plugin | Plugin |
| Input SARIF (catena di strumenti) | Sì | No | No | No | No | No |
| Prezzo | Gratuito* | Gratuito / A pagamento | Gratuito / A pagamento | Gratuito / $$$ | $$$$$ | Gratuito / $$$ |
*Gratuito con Claude Code, Codex CLI o Ollama. I backend API costano circa $0.50-$2.00 per scansione.
| Classe di vulnerabilità | Perché gli strumenti basati su regole la perdono |
|---|---|
| Autorizzazione mancante su 1 endpoint su N | Nessun pattern da abbinare – il bug è l'assenza di un controllo |
| IDOR / BOLA | Richiede di capire che l'ID utente nel JWT dovrebbe corrispondere all'ID nell'URL |
| Manipolazione dell'importo del pagamento | Logica di business – il campo importo non dovrebbe essere fidato dal client |
| Validazione input inconsistente | 5 gestori sanificano, il 6° no – necessita di confronto tra file |
| Uso improprio di input memorizzati | Input salvato in modo sicuro, ma eval()-ato o in SQL raw in un file distante 3 passi |
| Race condition in aggiornamenti di stato | Modifiche concorrenti al saldo senza lock |
VulnHawk è progettato come livello complementare, non come sostituto:
| Livello | Strumento | Scopo |
|---|---|---|
| 1 | Semgrep | Gating rapido e deterministico su pattern noti come dannosi |
| 2 | CodeQL | Tracciamento profondo del taint su catene di chiamate complesse |
| 3 | VulnHawk | Logica di business, buchi di autenticazione, IDOR e incoerenze che le regole non possono esprimere |
vulnhawk scan ./src # Scansione completa (predefinita)
vulnhawk scan ./src --mode auth # Bypass autenticazione, controlli mancanti, difetti di sessione
vulnhawk scan ./src --mode injection # SQLi, injection comandi, SSTI, XSS
vulnhawk scan ./src --mode secrets # Chiavi hardcoded, token, password
vulnhawk scan ./src --mode config # Modalità debug, CORS permissivo, cookie non sicuri
vulnhawk scan ./src --mode crypto # Hashing debole, chiavi hardcoded, RNG debole
vulnhawk scan ./src -o json -f results.json # JSON
vulnhawk scan ./src -o sarif -f results.sarif # SARIF (GitHub Code Scanning)
vulnhawk scan ./src -o markdown -f report.md # Report Markdown
vulnhawk scan ./src --severity high # Solo Critici + Alti
vulnhawk scan ./src --severity info # Tutto
Alimenta VulnHawk con l'output di Semgrep, CodeQL o qualsiasi strumento che produce SARIF. Usa questi risultati come contesto aggiuntivo per validarli, espanderli e concatenarli in vulnerabilità più profonde.
# Esegui prima Semgrep, poi arricchisci con VulnHawk
semgrep --config auto ./src -o semgrep.sarif --sarif
vulnhawk scan ./src --sarif-input semgrep.sarif
Cosa permette:
vulnhawk info ./src # Anteprima file, chunk e ripartizione per linguaggio
VulnHawk esegue una scansione di base sul tuo branch predefinito e in modo incrementale su ogni pull request.
name: VulnHawk Security Scan
on:
push:
branches: [main, master]
pull_request:
permissions:
security-events: write
contents: read