Per decenni trovare vulnerabilita' nel software e' stato un lavoro da esseri umani ossessivi. Reverse engineer che passano notti su assembly, debugger aperto, IDA su un monitor e Ghidra sull'altro. Caffeina. Pattern mentali costruiti in anni. Una vulnerabilita' seria su un browser moderno o un kernel costa ai migliori sei mesi di lavoro a tempo pieno, e infatti i prezzi sui broker grigi lo dicono chiaro: una zero-click su Safari sta sopra il milione di dollari perche' l'offerta e' minuscola.
Nel 2026 qualcosa sta cambiando. I modelli AI iniziano a trovare bug che nessuno aveva cercato. Non sempre, non in tutti i casi, e non sempre con eleganza: spesso ci picchiano dentro come uno script kiddie con il manuale di Smashing the Stack for Fun and Profit aperto e troppa Red Bull. Ma con una proprieta' che cambia il gioco: non si stancano, non perdono concentrazione, e li puoi replicare praticamente senza costo marginale. Questo pezzo non e' un pezzo di apocalisse, e' il tentativo di capire per cosa sta cambiando il prezzo, perche' sta cambiando matematicamente, e cosa significa per chi difende.
// Tre Giorni Fa, Una Cosa Che Non Era Mai Successa
Sezione 1. La scena di questa settimanaL'11 maggio 2026, tre giorni fa, il Google Threat Intelligence Group pubblica un report che andra' a finire sui libri di storia della security. Hanno beccato il primo zero-day scritto da un'AI usato davvero in un attacco. Non un proof of concept, non un benchmark su CTF. Un exploit pronto, dentro l'infrastruttura di un gruppo cybercrime, in attesa di essere lanciato.
Il target era un bypass 2FA su una piattaforma open source di amministrazione web. Il gruppo stava preparando quello che Google chiama un "mass exploitation event", cioe' un'unica campagna che colpisce in parallelo tutte le installazioni vulnerabili nel mondo. Big Sleep, l'agente di Google DeepMind + Project Zero, lo ha trovato per primo, e ha aiutato a disinnescare la finestra. Letteralmente: AI offensiva contro AI difensiva, e la difensiva e' arrivata prima.
La parte buffa, se si puo' dire cosi', e' come hanno capito che il codice non era umano. L'AI dell'attaccante aveva lasciato firme stupide nel codice: docstring Python che spiegavano in inglese cosa fa la funzione, un punteggio CVSS allucinato e inesistente, codice troppo annotato. Un essere umano che scrive exploit non commenta i suoi tool, e non si inventa un CVSS score. In pratica l'AI si e' firmata da sola, tipo lo script kiddie del 2009 che metteva // ownz3d by xXxBugSlayerxXx alla fine del payload. Ma piu' fessa: l'umano almeno sapeva di star piantando una bandierina, l'AI ci credeva davvero che quel CVSS score esistesse.
Cinque settimane prima, il 7 aprile 2026, Anthropic annuncia Claude Mythos Preview. Il nome fa cagare, sembra una skin di League of Legends. I numeri pero' sono brutali.
Va detta una cosa onesta prima di andare avanti: di quelle mille critical in coda, parecchie finiranno ridimensionate o duplicate durante il responsible disclosure. Chi ha lavorato in security sa che la severity iniziale e' quasi sempre gonfiata, anche quella umana. Dividi per cinque se vuoi essere severo. Anche cosi', l'ordine di grandezza non si muove e il punto non cambia.
La parte importante, pero', e' un'altra, e secondo me molti la stanno leggendo male. Mythos probabilmente non e' neanche particolarmente "intelligente" nel senso fantascientifico del termine. Le vulnerabilita' che trova appartengono quasi tutte a famiglie gia' esistenti: integer overflow, auth bypass, desync, use-after-free, race condition, path traversal. Roba che esiste da vent'anni, scritta su Phrack quando ancora non eravamo nati la meta' di noi. Probabilmente puoi farti intervistare da Mythos su Heidegger e ti risponde educato come uno stagista da Veltroni. Il problema non e' lui, e' la pipeline che gli gira intorno.
Ed e' proprio questo il punto inquietante.
Non serve inventare nuove classi di exploit per cambiare il mercato della sicurezza.
Basta industrializzare il riconoscimento di pattern vecchi, orchestrare bene i tool esistenti, e farli girare in continuo su scala enorme. Il salto non e' "un'AI che inventa vulnerabilita' impossibili". Il salto e' una pipeline che prende tecniche offensive note, le automatizza, le parallelizza, e abbassa il costo cognitivo quasi a zero.
E infatti Anthropic ha deciso di non venderlo. Mythos resta dietro Project Glasswing, dato a partner difensivi sotto NDA per chiudere bug prima che escano. Il 30 aprile rilasciano Claude Security in beta pubblica per Enterprise, che e' una versione molto piu' depotenziata della stessa pipeline. Il modello capace di trovare migliaia di zero-day esiste, ma lo tengono in cassaforte. Vuol dire che hanno paura di cosa puo' succedere se la stessa pipeline finisce ovunque. E hanno ragione di averla, perche' tecnicamente quella pipeline non e' complicatissima da replicare.
E poi c'e' XBOW, che e' la cosa che secondo me piu' spaventa perche' e' commercialmente disponibile adesso. Startup, $120M di Series C a marzo. In 90 giorni e' arrivata al numero uno della leaderboard HackerOne US, che e' la classifica dei migliori bug bounty hunter del mondo. 200+ zero-day, zero falsi positivi. Su un benchmark di 104 challenge security, XBOW li ha chiusi tutti in 28 minuti, contro le 40 ore di un veterano umano di 20 anni di mestiere. A RSAC 2026 hanno annunciato l'integrazione dentro Microsoft Security Copilot e Sentinel.
XBOW non sembra il prototipo di Skynet. Sembra una cosa molto piu' realistica e pericolosa: un team di vuln researcher mediocri che lavorano 24/7 senza stancarsi mai. Non e' piu' un esperimento di lab, e' un prodotto.
CVE-2025-6965 in SQLite, critica, gia' conosciuta da threat actor, a un passo dall'essere usata in attacco.Sette eventi diversi. Tutti nella stessa direzione. Per vent'anni la cybersecurity ha avuto un vantaggio strutturale: la difesa scala con il numero di sviluppatori, l'offesa scala con il numero di reverse engineer bravi disposti a passare mesi su un binario. Quel rapporto e' sempre stato favorevole alla difesa solo perche' i bravi reverse engineer erano pochi e costosi. Quel vincolo, nel 2026, sta saltando.
// Trovare Vulnerabilita' E' Un Problema Combinatorio
Sezione 2. Il codice moderno e' troppo grande per gli esseri umaniPer capire perche' i modelli stanno vincendo, devi prima capire perche' gli umani perdevano. Un browser moderno e' attorno ai 30 milioni di linee di C++. Un kernel Linux poco sotto. Un'auto di fascia media e' sopra i 100 milioni. Nessun essere umano ha mai letto un browser intero. Per "letto" intendo davvero letto, capito, ricordato il punto in cui in render/paint/PaintLayerScrollableArea.cpp qualcuno scarica un riferimento prematuro.
Trovare un bug non e' leggere, e' esplorare un grafo. Ogni funzione e' un nodo, ogni chiamata e' un arco. Ogni cammino dal punto in cui un input non fidato entra fino al punto in cui un allocator scrive in heap e' un potenziale percorso di exploitation. Il numero di percorsi cresce in modo combinatorio:
d = profondita' (livelli di call dal source al sink)
Numeri concreti, terra-terra. In un parser di formato non banale, tipo libxml2 o un decoder di font, b sta tra 8 e 15 chiamate uscenti per nodo critico. La profondita' d dal punto di parsing al punto in cui una scrittura in heap puo' essere influenzata dall'input e' tra 6 e 12 livelli. Significa che lo spazio dei cammini interessanti sta tra 105 e 1013. Anche al limite basso, e' uno spazio in cui un essere umano puo' al massimo campionare. Mai esaurire.
Questa cosa ha un nome formale, si chiama path explosion. Strumenti di esecuzione simbolica come KLEE, angr, Mayhem la conoscono dal 2005 e ci convivono con strategie di pruning. Il vantaggio fondamentale di un LLM non e' che risolve il path explosion, perche' non lo risolve. E' che usa statistica appresa per stimare quali rami valga la pena seguire.
Un fuzzer cieco prova mutazioni a caso a costo costante. Un solver simbolico prova esaustivamente ma soffoca presto. Un LLM agent prova selettivamente, e la sua selezione e' informata da milioni di pattern di bug visti durante il training. E' la differenza tra un investigatore che apre tutti i fascicoli in ordine alfabetico e uno che ha gia' indagato su mille casi simili e sa dove guardare per primo.
I tre approcci non si sostituiscono, si compongono. La pipeline di Big Sleep mette il fuzzer a coprire il triviale, il solver simbolico a verificare i candidati, e l'LLM a fare triage e prioritizzazione. Quello che cambia rispetto al 2018 e' che adesso il terzo strato esiste, funziona, e costa abbastanza poco da girare in continuo.
// Il Codice Diventa Geometria
Sezione 3. Il modello non capisce, riconosceL'errore peggiore che leggi sui media quando parlano di AI offensiva e' la frase "il modello capisce il codice". Non capisce niente. Fa una cosa molto piu' utile per il caso specifico: trasforma il codice in geometria statistica, e cerca pattern in quello spazio.
Funziona cosi'. Un tokenizer rompe il sorgente in token di alto livello (identificatori, chiamate, costanti). Un encoder, cioe' la prima meta' di un transformer, converte ogni finestra di codice in un vettore in uno spazio ad alta dimensionalita', tipicamente 1024 o 4096 dimensioni. Quel vettore in isolamento non significa niente. Significa in relazione agli altri. Due frammenti di codice che fanno cose simili finiscono vicini nello spazio. La metrica standard di vicinanza e' la similarita' del coseno:
cos(θ) = 1 vuol dire identici nello spazio semantico, cos(θ) = 0 vuol dire ortogonali
Esempio terra-terra. Decine di migliaia di CVE storiche su parser di immagini hanno questa struttura:
Il modello, durante il training, ha visto questa struttura migliaia di volte. Annotata come "integer overflow porta a heap corruption" in CVE pubblici, in commit di fix, in writeup di exploit. Quando incontra una struttura sintatticamente diversa ma semanticamente vicina nel codice di un target nuovo, il vettore embedding di quel frammento atterra nello stesso cluster. La similarita' del coseno con il centroide del cluster "integer overflow precedente a malloc" e' alta. Il modello segnala il punto.
width * height puo' fare wrap. E' che ha visto cinquemila bug in cui esattamente quella sequenza di token aveva fatto wrap, e in quello spazio vettoriale la geometria del bug e' un vicinato denso. Quando un nuovo frammento entra in quel vicinato, il sospetto e' una conseguenza statistica, non un ragionamento.
Per chi ha fatto reverse engineering a mano, questo modo di guardare il codice e' familiare. Un buon analista non legge linearmente, scorre cercando shape: una memcpy con il terzo argomento attaccato a una strlen dell'input, una strcpy appena dopo una recv, un system() con concatenazione di stringhe. Il modello fa la stessa cosa, su scala diversa. Ha visto piu' shape di quante un essere umano ne possa ricordare in una vita, e le ha indicizzate spazialmente.
Il limite di questa modalita', che e' anche la sua difesa naturale contro la paranoia, e' che il modello vince dove c'e' un cluster denso di bug analoghi nel training. Le vulnerabilita' davvero nuove, classi che non erano nel training (un side channel nuovo su un'architettura inedita, una primitive su una syscall appena introdotta), continuano a richiedere intuizione umana. Il modello e' un moltiplicatore di pattern noti, non un inventore di pattern nuovi. E' importante tenerselo a mente, perche' molte panoramiche allarmate confondono i due piani.
Nota di onesta'. Il bug del 2FA bypass beccato da Google l'11 maggio non era un bug nuovo come categoria. Era una catena di flaw conosciuti, applicata in modo combinato a una piattaforma specifica. L'AI ha fatto exactly questo: ha riconosciuto un pattern di vulnerabilita' gia' visto migliaia di volte, lo ha applicato a un target nuovo, e ha generato l'exploit completo. Non e' invenzione. E' riconoscimento su larga scala, automatizzato.
// Il Problema Vero Non E' Trovare Un Bug
Sezione 4. E' automatizzare la scalaConcentrarsi sul singolo bug trovato e' il modo sbagliato di leggere quello che sta succedendo. Anche un ricercatore umano molto bravo trova bug. Quello che cambia non e' la presenza del bug, e' l'economia della caccia.
Un ricercatore in carne e ossa, di fascia alta, trova un bug serio ogni qualche settimana. Si stanca. Ha bias di selezione, cerca dove ha gia' trovato. Dorme. Costa, tra stipendio, benefit, tempo, attorno ai 250-400 mila dollari l'anno se sta in US, meno se sta in Europa o Est. Una buona vulnerabilita' su un target hard equivale facilmente a sei mesi di lavoro: il break-even rispetto al prezzo che il mercato grigio paga lo conoscono tutti.
Un cluster di GPU che gira un agente offensivo H24, invece:
- analizza migliaia di repository GitHub in parallelo, ognuno come job indipendente;
- genera varianti di payload e le manda al fuzzer come seed semanticamente plausibili;
- correla CVE storiche cross-progetto, perche' lo stesso pattern di bug vive in quaranta librerie che condividono un'antenata;
- non ha bias di stanchezza, non dimentica, non si annoia di un target dopo tre giorni.
Il costo orario di una GPU H100 noleggiata sul mercato spot sta a 2-3 dollari. Un agente che gira 24 ore costa 50-70 dollari. Il giorno in cui quel costo produce statisticamente piu' di un bug serio al mese, il prezzo di mercato delle vulnerabilita' implode dal lato dell'offerta. Quel giorno, secondo i numeri di Mythos e XBOW, e' adesso. Cazzo.
La parte importante per chi difende: il modello non deve avere ragione su ogni bug candidato. Deve ordinare. Migliaia di alert al giorno sono inutili se non sono prioritizzati. La probabilita' che un bug candidato V sia davvero exploitable, dato l'evidence E che il modello ha raccolto (path, sanitizer trigger, contesto), si scrive in forma bayesiana:
P(E) = quanto e' frequente quel pattern in generale
P(V) = base rate di vulnerabilita' nella codebase
Senza ranking hai diecimila maybe. Con ranking hai venti probably ordinati dal piu' grave. Il modello non risolve la cybersecurity, fa una cosa piu' modesta e piu' pericolosa: rende economicamente sensato setacciare ogni progetto open source di un certo peso, una volta a settimana, in cerca di bug. La caccia diventa un cron job.
La conseguenza che pochi misurano: il numero di vulnerabilita' scoperte cresce piu' velocemente della capacita' umana di correggerle. NVD ha gia' un backlog importante dal 2024, gli SOC enterprise stanno gestendo allarmi al 60% del budget di tempo. Se aggiungi un fattore 5x alla pipeline di discovery senza aggiungere capacita' di patching, la finestra media tra disclosure e mitigazione si allunga, non si accorcia. Mythos ha "oltre mille critical in coda di disclosure": sara' una coda lunga, mesi.
// Non Serve L'AGI
Sezione 5. Basta automatizzare il 20% piu' costosoBuona parte del discorso pubblico sull'AI offensiva e' tossico per due motivi opposti. Da una parte il dismissivo: "il modello allucina, non puo' fare reverse engineering serio". Vero per il singolo prompt, falso per un agente con tool, sandbox, fuzzer, debugger sotto mano. Dall'altra l'apocalittico: "siamo a un passo dall'AGI offensiva, l'AI scrivera' worm autonomi". Sbagliato per ragioni strutturali, perche' un worm davvero autonomo richiede pianificazione long-horizon che oggi i modelli non hanno, e che probabilmente non avranno prima di altri salti architetturali.
La verita' operativa sta in mezzo, e ha una formulazione precisa: i modelli non devono diventare AGI per fare danni enormi. Basta che siano abbastanza bravi da automatizzare il 20% piu' costoso del lavoro offensivo. Quel 20% e' molto specifico:
Notare cosa non c'e' in questa lista. Non c'e' "scrivere l'exploit da zero per una primitive completamente nuova". Non c'e' "trovare un side channel su un'architettura inedita". Non c'e' "violare assunzioni crittografiche di RSA-2048". Per quelle cose servono ancora ricercatori molto bravi e un modello LLM continua a essere un assistente, non un sostituto.
Il punto e' che il 20% che si automatizza copre la maggior parte del costo cognitivo del lavoro offensivo medio. Vuol dire che un ricercatore singolo equipaggiato con XBOW o equivalente opera con la produttivita' di un team di cinque persone dell'era pre-AI. La curva di esperienza si appiattisce: oggi un buon vuln researcher si forma in 8-10 anni, fra 24 mesi potrebbe formarsi in 3, perche' lo strumento copre il pezzo che richiedeva il maggior numero di ore di pratica, cioe' il riconoscimento di pattern noti in contesti nuovi.
// Quello Che Cambia Per Chi Difende
Sezione 6. AI contro AI, ma la geometria favorisce l'attaccoTre cose da dire prima di chiudere, perche' "l'AI ci uccidera' tutti" e "l'AI difensiva ci salvera'" sono entrambe scorciatoie.
La buona notizia: i tool di discovery automatica funzionano anche per la difesa, e Anthropic ne e' la prova. Mythos non e' un'arma in vendita, e' un sistema che gira dentro Project Glasswing per chiudere bug prima che escano, e nel beta di Claude Security per Enterprise. Big Sleep ha gia' aiutato Google a disinnescare il primo zero-day AI-generato prima che venisse usato. OSS-Fuzz integra un layer LLM per i seed. Per la prima volta da vent'anni, il difensore ha lo stesso strumento dell'attaccante. Per i bug "shallow", quelli a profondita' bassa nel grafo, la pipeline difensiva chiudera' il gap.
La cattiva notizia: la geometria del problema favorisce strutturalmente l'attacco. Per attaccare basta trovare un bug. Per difendere bisogna trovarli tutti. Se entrambe le parti hanno lo stesso strumento con uguale efficacia, la parte che doveva trovarne uno vince. Vale anche con i tool di prima, la differenza e' che adesso lo stesso strumento gira piu' veloce e piu' largo, quindi il vantaggio strutturale dell'attaccante si amplifica nel volume assoluto di bug trovati.
La parte che mi tiene piu' attento, pero', non e' la quantita' di bug. E' la finestra temporale. Storicamente un bug nuovo veniva trovato, segnalato, patchato in un ciclo di settimane o mesi. La patch raggiungeva il fleet in mesi ancora. La finestra di sfruttabilita' tra public knowledge e patched system era ampia ma stabile, e i difensori la conoscevano. Con discovery automatica su entrambi i lati succedono due cose insieme: il numero di disclosure cresce, e il tempo medio fra una disclosure e il primo tentativo di exploitation si comprime. La finestra non si chiude, si moltiplica in tante finestre piccole, tutte aperte contemporaneamente.
La conseguenza pragmatica per chi gestisce sicurezza in produzione: il modello operativo "patchiamo entro 30 giorni le critical" diventa insostenibile quando le critical sono 10x. O si automatizza la pipeline di patching alla stessa velocita' della discovery (esiste, AIxCC ha mostrato i pezzi), o si accetta che la finestra di esposizione media si allarghi. Altre strade non ce ne sono.
// Quello Che Mi Resta In Mano
Sezione 7. Cinque righe oneste, senza apocalisseTrovare vulnerabilita' nel software e' sempre stato un problema combinatorio O(bd), e l'unica ragione per cui la difesa ha tenuto e' che gli umani capaci di esplorare quello spazio erano pochi e costosi. Per anni la cybersecurity ha avuto un vantaggio naturale: trovare bug era difficile, lento, costoso. Il costo non sta crollando tutto, il top del lavoro offensivo continuera' a richiedere intuizione umana, ma il 20% piu' costoso, quello del triage, del pattern matching cross-progetto, della variant generation, sta diventando un cron job da decine di dollari al giorno.
L'11 maggio Google ha mostrato la prima prova concreta che il giro e' chiuso: un'AI scrive un exploit, un'altra AI lo trova prima che venga lanciato. Dieci mesi prima, ad agosto 2025, AIxCC aveva mostrato i sistemi autonomi vincere DEF CON. Cinque settimane prima Anthropic ha messo Mythos in cassaforte invece di venderlo, perche' anche loro hanno capito che a un certo costo per trovare zero-day l'industria non e' pronta. XBOW sta in cima a HackerOne e si integra in Sentinel. Sette segnali diversi, una direzione sola.
La conseguenza non e' la fine di internet, e' una fase diversa di internet. Una in cui il numero di vulnerabilita' scoperte cresce piu' velocemente della capacita' umana di correggerle, e la finestra media tra disclosure e patch si allarga invece di chiudersi. Per anni il difensore ha avuto un vantaggio naturale. Quel vantaggio era fatto di costo cognitivo e di scarsita' di ricercatori bravi. Adesso quel costo crolla, e la scarsita' si ribalta: bug ovunque, mani per patcharli sempre uguali.
La cosa importante da capire, e che si perde quando si parla di "AGI" o di scenari hollywoodiani, e' che non serve niente di rivoluzionario perche' tutto questo succeda. Non serve un modello che ragiona come un umano. Bastano modelli che riconoscono pattern visti, applicati su scala, a 50 dollari al giorno per istanza, in parallelo su diecimila repository. Quella soglia non e' nel futuro, e' qui, e i numeri di Mythos e XBOW di queste settimane lo dicono in chiaro.
Il punto, in due righe. Gli LLM non devono diventare AGI per cambiare il prezzo della sicurezza. Basta che automatizzino il 20% del lavoro offensivo che oggi richiede piu' ore di esperienza. Quella soglia non e' nel futuro. E' gia' dentro la pipeline, e i report di Anthropic Mythos, di Google GTIG e di XBOW di queste settimane ne sono la prova.
Riferimenti.
⊕ Google GTIG, 11 maggio 2026: primo zero-day AI-generato beccato in attacco reale, bypass 2FA, mass exploitation pianificato.
⊕ red.anthropic.com/2026/mythos-preview: Claude Mythos Preview, 7 aprile 2026. Migliaia di zero-day high-severity, mille critical in coda. Non venduto, dietro Project Glasswing.
⊕ anthropic.com/news/claude-code-security: Claude Security in beta pubblica per Enterprise, 30 aprile 2026.
⊕ xbow.com: numero uno HackerOne US, 200+ zero-day zero falsi positivi, $120M Series C a marzo 2026, integrazione Microsoft Security Copilot a RSAC.
⊕ Project Zero blog, nov 2024: primo bug Big Sleep in SQLite, l'inizio della curva.
⊕ aicyberchallenge.com: DARPA AIxCC, finale DEF CON 33 ago 2025, sistemi autonomi di find+patch su OSS critico.
⊕ github.com/google/oss-fuzz-gen: il layer LLM di OSS-Fuzz per la generazione di seed semanticamente plausibili.
⊕ Su questo blog: Il Fuzzer Scrive L'Exploit (pipeline AFL++ + angr) e Il Bug Diventa Arma (finestra temporale CVE-exploit pubblico).