Torna al blog
  • sicurezza
  • agenti AI
  • open source

Trasforma il tuo agente AI in un security auditor

La skill open source di Cloudflare guida un agente di coding in un audit di sicurezza in sei fasi: chi trova un problema non è chi lo conferma.

Di Alessio Ferraro6 min di lettura
Quash, il quokka mascotte di Hash42, con un portatile sotto il braccio entra in un varco arancione con il logo di Cloudflare, mentre la sua ombra in giacca e cravatta tiene una cartella da revisore, sotto il titolo Turn your agent into a security auditor
In questo articolo

Un agente di coding scrive in un pomeriggio quello che prima richiedeva una settimana.

Più codice. Più modifiche. Più parti dell'applicazione esposte.

La capacità di rivederlo, invece, è rimasta quella di prima. E il codice che nessuno ha davvero letto è il posto ideale per un errore di sicurezza.

Cloudflare ha pubblicato in open source una skill che prova a chiudere questa distanza: security-audit-skill trasforma un agente di coding in un revisore di sicurezza che segue un processo preciso, invece di limitarsi a dare un'occhiata al codice.

In questa guida trovi come funziona, cosa la rende diversa da una semplice scansione e cosa preparare prima di usarla.

01. L'AI scrive codice. Chi lo controlla?

Chiedere a un agente "controlla se ci sono problemi di sicurezza" di solito produce una lista generica: qualche avviso giusto, molti falsi allarmi, nessuna prova.

Il problema non è il modello. È l'assenza di metodo:

  • l'agente guarda una piccola parte del progetto e si ferma;
  • segnala tutto quello che somiglia a un errore, senza dimostrarlo;
  • valuta da solo i propri risultati, e tende a confermarli.

Un revisore umano lavora in un altro modo. Prima capisce come è fatto il sistema, poi cerca in modo ordinato, poi verifica ogni ipotesi prima di scriverla nel report. La skill di Cloudflare insegna all'agente a fare lo stesso.

02. Una skill per gli audit di sicurezza

Una skill è un pacchetto di istruzioni che un agente di coding carica quando serve. Questa è pubblicata da Cloudflare con licenza MIT e richiede un agente che supporti l'uso di strumenti e i sotto-agenti in parallelo.

Si installa con un comando:

npx skills add https://github.com/cloudflare/security-audit-skill --skill security-audit

Non è un esperimento isolato. Secondo il blog di Cloudflare, una prima versione di circa 450 righe è stata il punto di partenza del loro sistema interno di ricerca delle vulnerabilità: in circa sei settimane è diventata un sistema che analizza in continuo 128 repository. Su un repository tipico da circa 30.000 righe ha individuato circa 80 bug distinti; i circa 10 critici sono stati corretti in produzione in circa 5 giorni.

Sono numeri del sistema interno di Cloudflare, non della skill pubblica usata così com'è. Danno però l'idea del metodo.

03. Non scansiona il codice: lo esamina

Uno scanner tradizionale confronta il codice con un elenco di schemi noti. La skill invece fa lavorare l'agente in sei fasi, ognuna con un compito preciso:

1. Ricognizione
   architettura, confini di fiducia, punti di ingresso
  ↓
2. Ricerca guidata dalla copertura
   più agenti, ognuno su una parte del sistema
  ↓
3. Validazione dei candidati
   un agente nuovo prova a smontare ogni ipotesi
  ↓
4. Output strutturato
   risultati in un file JSON con uno schema preciso
  ↓
5. Verifica indipendente
   altri agenti ricontrollano le affermazioni finali
  ↓
6. Report
   documenti leggibili, solo dai risultati verificati

La ricognizione produce una mappa del sistema e un registro della copertura: quali parti sono state esaminate e quali no. È ciò che impedisce all'agente di guardare tre file e dichiarare il lavoro finito.

04. Sa dove guardare

Ogni tipo di software ha i suoi punti deboli. Per questo la skill include guide specifiche per diverse superfici di attacco:

  • web, protocolli e autenticazione: richieste HTTP, cache, sessioni e login;
  • AI e LLM: prompt injection, uso improprio di strumenti e agenti, gestione dell'output del modello;
  • lato client: iniezioni nel DOM, messaggi tra finestre, clickjacking;
  • supply chain: dipendenze, pipeline di CI, firme, aggiornamenti, plugin;
  • cloud e deploy: permessi, infrastruttura come codice, container, serverless;
  • isolamento dei dati: separazione tra clienti diversi, export, backup, cancellazione.

Ci sono guide anche per protocolli e code di messaggi, codice nativo, app desktop e mobile, esaurimento delle risorse.

Se hai letto l'articolo sui 5 errori che rendono vulnerabile il login, molti di quei problemi rientrano nella prima voce: sessioni, autorizzazioni, controlli solo lato client.

05. Chi trova un problema non è chi lo conferma

È la scelta più importante di tutta la skill. L'agente che individua un possibile problema non è mai lo stesso che lo convalida.

Agente che cerca
  ↓
Candidato
  ↓
Agente nuovo che prova a dimostrare che è falso
  ↓
Confermato · Da verificare · Respinto

Ogni candidato finisce in uno di tre stati:

  • confermato: c'è una traccia completa nel codice e un risultato osservato;
  • da verificare: manca un fatto preciso, e finché non c'è non riceve una gravità;
  • respinto: l'ipotesi è stata smontata.

Il blog di Cloudflare spiega il motivo con una frase netta: se un agente può correggere i propri compiti, confermerà con sicurezza tutto quello che ha prodotto. Nel loro sistema interno la validazione usa addirittura un modello diverso da quello che cerca. Con il miglioramento del processo, la quota di candidati respinti in validazione è scesa dal 40% all'11%.

C'è anche una regola sulla gravità: conta l'impatto reale, non la distanza da una checklist. Una difesa in più che manca è una nota di rafforzamento, non una vulnerabilità.

06. Dal codice ai risultati verificati

Alla fine dell'audit trovi una cartella con:

  • findings.json: i risultati in formato leggibile da un programma, validati contro uno schema;
  • REPORT.md: il riepilogo;
  • FINDINGS-DETAIL.md: i dettagli di ogni problema confermato;
  • NEEDS-VALIDATION.md: i casi che richiedono un controllo in più.

Il formato strutturato conta: i risultati si possono confrontare tra un'esecuzione e l'altra, importare in altri strumenti e trasformare in attività da correggere.

Le esecuzioni si sommano. La skill riusa il registro della copertura e i risultati precedenti, e secondo Cloudflare una singola esecuzione trova circa la metà dei problemi che emergono ripetendola più volte.

Prima di lanciarlo

La skill è potente, e proprio per questo va preparata con attenzione.

Un ambiente isolato. Per eseguire il codice del progetto serve una sandbox imposta dal sistema operativo: niente rete esterna, variabili d'ambiente ripulite, limiti di risorse, scrittura limitata. Senza queste protezioni la skill non esegue il codice e lascia le ipotesi come "da verificare".

Nessun segreto a portata di mano. Chiavi di produzione, file .env reali e credenziali non devono essere accessibili all'agente durante l'audit.

La cartella giusta. Per impostazione predefinita i risultati finiscono fuori dal repository. Dentro il repository la skill scrive solo se scegli esplicitamente una cartella ignorata dal controllo di versione.

Il costo. Un audit completo usa molti agenti e molti token, soprattutto nella fase di ricerca. Conviene partire da una parte del progetto, come l'autenticazione o le API, invece che dall'intero codice.

Un umano alla fine. Anche nel sistema di Cloudflare le correzioni non vengono mai unite al codice in automatico: una persona rivede ogni modifica. Un modello lasciato libero di correggere può chiudere un bug di sicurezza e rompere, senza accorgersene, una funzione che non c'entra.

Checklist prima di un audit con un agente

Prima di chiedere a un agente di controllare la sicurezza del tuo codice, verifica almeno questi cinque punti:

  • Il codice è tuo o hai l'autorizzazione scritta a verificarlo.
  • L'agente lavora in un ambiente isolato, senza rete esterna e senza segreti reali.
  • Hai scelto una parte del progetto da cui partire.
  • I risultati finiscono in una cartella fuori dal repository o ignorata da git.
  • Ogni correzione proposta viene rivista da una persona prima di essere unita.

La revisione non si delega del tutto

Gli agenti di coding non hanno reso la sicurezza meno importante. Hanno aumentato la quantità di codice che qualcuno dovrebbe leggere.

Uno strumento come questo non sostituisce chi conosce il sistema. Gli toglie la parte più ripetitiva: cercare in modo ordinato, scartare i falsi allarmi, mettere le prove in fila. La decisione su cosa correggere, e come, resta a una persona.

Fonti

Condividi
Alessio Ferraro

Scritto da

Alessio Ferraro

Founder & Build Leader

meet al33xf

Hai un progetto in mente?

Hash42 Labs progetta e sviluppa web app, siti e prodotti digitali per attività e aziende, con la sicurezza pensata fin dal primo giorno. Gli stessi principi di questo articolo sono alla base di MANJI e Muni.