Custom AI Agent
Il ponte tra Burp Suite e l'AI moderna.
Una nota sul nome: Questa estensione è pubblicata come Custom AI Agent (precedentemente Burp AI Agent). È stata rinominata per conformarsi ai requisiti di denominazione del BApp Store di PortSwigger e per evitare confusione con il provider Burp AI integrato in Burp Suite. Il repository GitHub (github.com/six2dez/burp-ai-agent), il sito della documentazione (burp-ai-agent.six2dez.com) e la directory di configurazione (~/.burp-ai-agent/) mantengono l'identificativo burp-ai-agent per continuità.

Custom AI Agent è un'estensione per Burp Suite che integra l'AI nel tuo flusso di lavoro di sicurezza. Usa modelli locali o provider cloud, connetti agenti AI esterni tramite MCP e lascia che gli scanner passivi/attivi trovino le vulnerabilità mentre tu ti concentri sui test manuali.
[!IMPORTANT]
Se stai eseguendo la versione 1.0.0 o precedente, leggi gli avvisi di sicurezza e aggiorna all'ultima release, la 1.1.0.
I file di audit scritti con l'Audit logging attivo potrebbero contenere il token MCP e i prompt completi, e il contesto
"send to AI" del tasto destro potrebbe aggirare la modalità privacy; entrambi gli avvisi indicano quali credenziali ruotare.
Non è stato emesso alcun identificativo CVE o GHSA per nessuno di essi.
Novità nella v1.1.0
Due build da un unico repository, create per la nuova sottomissione al BApp Store. Dettagli completi in
CHANGELOG.md.
- Due build. La build del BApp Store (
./gradlew bappJar) contiene gli 8 tool MCP nativi dell'estensione,
Burp AI e i sei backend HTTP. La build completa di GitHub (./gradlew fullJar) contiene tutti i 59 tool
MCP, i cinque backend CLI, il client MCP esterno e l'auto-queue opt-in. Entrambe sono su
Releases, ciascuna con un .sha256. Caricane solo
una alla volta; Which Build?
le confronta.
- Il gate AI della build del BApp Store. La build del BApp Store funziona su Burp Community e Burp Professional; invia richieste AI solo mentre l'impostazione "Use AI" di Burp è abilitata per l'estensione, e con essa disattivata si carica e rifiuta ogni richiesta AI.
- Le scansioni passive non inviano nulla al target. I risultati passivi che l'AI Active Scanner può testare sono
elencati come target suggeriti nella sua finestra di dialogo della coda, in entrambe le build, e li accodi manualmente:
nulla viene inviato a un target prima della tua conferma.
- Scaricamento pulito. Lo scaricamento non lascia in esecuzione alcun thread, timer o listener MCP dell'estensione e
non avvia nuove richieste a un provider AI.
- I dettagli delle issue sono codificati in HTML. I payload, i valori presi dal target e il testo AI vengono mostrati come
testo letterale nella vista delle issue di Burp e nei report.
- Gli scanner AI partono DISATTIVATI a ogni caricamento, in entrambe le build; l'attivazione di uno dura fino a quando Burp
non scarica l'estensione.
Novità nella v1.0.1
Una hotfix di correttezza e privacy per la 1.0.0. Dettagli completi in CHANGELOG.md e
SECURITY.md.
- I prompt non ASCII funzionano su ogni backend HTTP (#84, #85, #86, #88). I corpi delle richieste vengono inviati come
byte UTF-8; prima, i caratteri non ASCII venivano corrotti e il testo del target poteva modificare la struttura JSON
della richiesta.
- Privacy: il contesto del tasto destro, le impostazioni dello scanner, l'audit logging e i link della chat ora rispettano la
modalità privacy e il default di audit con soli hash; i link della chat si aprono solo dopo una conferma.
- Sicurezza dello scanner: le richieste che modificano lo stato vengono riprodotte solo a DANGEROUS; i controlli AI
del Burp Scanner rispettano il resource pool della scansione e l'interruttore passivo AI.
- Affidabilità: NVIDIA NIM e Perplexity funzionano di nuovo, i messaggi successivi della chat mantengono il loro contesto,
e la redazione non scarta più contenuti su macchine lente o occupate.
- Librerie incluse: Netty 4.1.138, Jackson 2.22.3.
Novità nella v1.0.0
Prima release stabile, e pietra miliare per la correttezza di sicurezza. Una revisione esterna della 0.9.2 del
2026-08-05 ha confermato due difetti sfruttabili eseguendo il codice distribuito; questa release corregge entrambi
più l'intera classe di problemi emersi dalla stessa revisione. Dettagli completi in CHANGELOG.md.
Corretto e divulgato:
- SEC-04 (critico) — i controlli di controllo degli accessi MCP non venivano eseguiti sulle route risolte. Con l'accesso
esterno abilitato il listener accettava chiamate agli strumenti non autenticate; in modalità locale i controlli
Origin/Host/User-Agent e le intestazioni di risposta di sicurezza erano inerti sulle route corrispondenti. La
decisione ora viene eseguita prima del routing. → ruota il tuo token MCP
- PRIV-05 (alto) — i cookie di sessione raggiungevano i backend AI non redatti in STRICT e BALANCED. Lo
scanner passivo emetteva i cookie come semplici
name=value, perdendo il prefisso su cui si basava la redazione, e
solo un cookie chiamato letteralmente session veniva intercettato. → ruota i cookie interessati
Rafforzato:
- Le chiamate agli strumenti emesse dal modello ora richiedono la tua approvazione (SEC-06) — una chiamata a uno strumento
analizzata dall'output del modello non raggiunge Burp finché non decidi tu. I livelli falliscono in modo sicuro: un nome di strumento
non riconosciuto richiede conferma ogni volta, non viene mai eseguito silenziosamente. Vedi Note su privacy e sicurezza.
- Il token MCP non viene più divulgato durante un'acquisizione della porta (SEC-07) — un processo locale che occupava
la porta MCP e restituiva l'intestazione di identità poteva in precedenza raccogliere un token che garantiva pieno accesso
agli strumenti MCP. Il client di acquisizione ora presenta invece una prova di possesso HMAC, e sotto TLS
fissa il certificato del server al proprio keystore.
SsrfGuard classifica le notazioni IP alternative (SEC-07) — http://2852039166/ (decimale per
169.254.169.254) non elude più l'avviso private/link-local solo grazie alla notazione, e
la classificazione ora non esegue alcuna risoluzione dei nomi.
- Gli argomenti della shell sono quotati tramite allowlist (QUAL-06) — chiudendo un percorso da importazione di impostazioni a esecuzione di comandi
per valori che contengono metacaratteri senza spazi bianchi (
foo;id, $(cmd)).
- Confinamento EDT e robustezza dello scheduler — l'esecuzione degli strumenti, l'HTTP del backend e
stop() di MCP sono stati spostati
fuori dal thread di dispatch degli eventi Swing; le attività ricorrenti sono protette contro la morte per eccezione.
Verificato: suite di test cresciuta da 660 a 1131 test su 158 classi, copertura delle righe del progetto
34% → 58%, e la baseline detekt ridotta da 1096 a 1040 anziché aumentata.
In evidenza