Agenti di IA per la sicurezza
Perché automatizzare recon e test sulla API di NotHoly
Metti nella pipeline un modello che non rifiuta, con CVE, advisory e lettura di pagine pubbliche senza costo di token. I tuoi strumenti fanno l'attivo.
Il progetto di un agente di bug bounty: un LLM, dei tool, memoria e guardrail, in un loop che gira sulla tua macchina sotto la tua approvazione.
Un hackbot è un piccolo programma che mette un modello di linguaggio in un loop con dei tool, così può eseguire da solo parte del tuo recon e del tuo test e fermarsi per la tua approvazione prima che qualcosa tocchi un target. Questo è il primo di tre post che ne costruiscono uno. Questo è il progetto. La parte due scrive il codice, e la parte tre lo collega a tool condivisi e all'editor. Se gli agenti sono nuovi per te, leggi prima cosa sono gli agenti di IA e il tool use.
Un hackbot automatizza il centro noioso e ripetibile del loop: esegue un comando di recon, legge il suo output, decide il comando successivo, tiene le note. Non è un attaccante autonomo, e non dovresti costruirne uno. Il valore è un assistente instancabile che propone i passi e registra ciò che ha fatto, con te che tieni le decisioni e la tastiera per qualsiasi cosa invii traffico.
| Parte | Ruolo | In questa build |
|---|---|---|
| Modello | Legge l'output, pianifica, chiama i tool | L'API NotHoly compatibile con OpenAI |
| Tool | Le cose che può davvero fare | I comandi shell che permetti, più le chiamate di ricerca |
| Memoria | Cosa ricorda tra i passi | La lista dei messaggi, più un file di note su disco |
| Guardrail | Cosa non può fare | Controllo dello scope e approvazione prima di ogni comando |
Il modello non agisce da solo. Legge, pianifica e chiede di chiamare un tool. Il tuo codice decide se eseguire quel tool. Questa divisione è tutto il progetto: il modello è il cervello, il tuo codice sono le mani, e le mani chiedono il permesso.
Il loop è breve. Mandi al modello l'obiettivo e i tool che può chiamare. Il modello risponde o con del testo o con una richiesta di chiamare un tool. Se chiede un tool, il tuo codice lo esegue, dopo la tua approvazione per qualsiasi cosa tocchi un target, e rimanda indietro il risultato. Il modello legge il risultato e decide il passo successivo. Si ripete finché il modello dice di aver finito o lo fermi tu.
Il modello che usi è una tua scelta dal catalogo. Elenca i modelli con GET /v1/models e scegline uno che supporta il tool calling e un contesto abbastanza grande per le tue note. Il codice non fissa mai un nome di modello; ne legge uno dalla configurazione, così puoi cambiare senza toccare il loop.
Contano due guardrail. Il primo è lo scope: prima che un comando parta, controlla il suo target rispetto allo scope del programma e rifiuta o metti in pausa qualsiasi cosa ne stia fuori. Il secondo è l'approvazione: un comando che invia traffico aspetta il tuo sì. Non sono extra opzionali; sono il motivo per cui la cosa è sicura da eseguire.
Un terzo guardrail è più silenzioso e altrettanto importante. L'output dei tool è dato, non istruzioni. Una pagina o il risultato di uno scan possono contenere testo che si legge come un comando per il modello, e un loop ingenuo lo seguirà. L'OWASP Top 10 per le applicazioni LLM chiama questo prompt injection, il suo rischio numero uno. Il tuo loop deve trattare ogni risultato di tool come input non attendibile e non lasciargli mai allargare ciò che l'agente può fare.
L'agente gira sulla tua macchina così ogni request parte dal tuo indirizzo, ogni comando è tuo da approvare e ogni log è tuo da tenere. Il modello gira sull'API NotHoly, che fa inferenza e nient'altro: non fa mai scan né invia traffico a un target. Quella divisione è ciò che rende l'agente usabile per il bug bounty. Il traffico arriva da dove il programma se lo aspetta, e puoi provare cosa hai inviato.
Costruisci tu stesso il loop e i guardrail, perché sono piccoli e perché devi capirli. Per i tool, riusa ciò che esiste: la shell che hai già, i tool di ricerca che la NotHoly CLI espone, e più avanti i tool condivisi di MCP. Non scrivere un framework. Il prossimo post è circa un centinaio di righe di Python.
La parte due programma il loop con tool calling, approvazione e note, usando il Model Context Protocol più avanti nella parte tre.
Agenti di IA per la sicurezza
Metti nella pipeline un modello che non rifiuta, con CVE, advisory e lettura di pagine pubbliche senza costo di token. I tuoi strumenti fanno l'attivo.
Agenti di IA per la sicurezza
Un agente di bug bounty in Python con tool calling sull'API NotHoly: propone comandi di recon, aspetta l'approvazione, legge l'output e tiene le note.
Agenti di IA per la sicurezza
Dai al tuo agente tool condivisi via MCP, aggiungi un controllo dello scope con notholy engage ed esegui tutto dalla NotHoly CLI o dal tuo editor.