Per decenni, la sicurezza informatica ha funzionato secondo una logica implicita e scomoda. Non si trattava di eliminare le vulnerabilità, ma di renderle sufficientemente costose da scoraggiarne lo sfruttamento. Era un equilibrio fragile ma accettato, una specie di armistizio non dichiarato tra chi costruisce il software e chi lo attacca.
Poi, in pochi mesi, qualcosa ha rotto questo schema. Mozilla ha annunciato che Firefox 150 include patch per 271 vulnerabilità identificate grazie a Claude Mythos Preview (e ad altri modelli AI non specificati), il modello frontier per la sicurezza sviluppato da Anthropic. Non si tratta di bug banali: 180 sono stati classificati come “sec-high”, ovvero sfruttabili con un comportamento del tutto normale, come visitare una pagina web.
Tra i difetti scoperti figurano una vulnerabilità nell’elaborazione XSLT rimasta latente per vent’anni e un bug nell’elemento HTML <legend> vecchio di quindici, entrambi rilevati dal modello attraverso un ragionamento articolato sul codice sorgente. In totale, considerando anche le versioni di Firefox 149 e i rilasci minori successivi, Mozilla ha corretto 423 bug di sicurezza nel solo mese di aprile.

Una macchina che ragiona sul codice
Capire perché questo risultato è insolito richiede un piccolo passo indietro. I sistemi di analisi automatizzata della sicurezza non sono una novità. Il fuzzing, tecnica che consiste nell’inondare il software di input casuali per provocarne il crash, è stato per anni lo strumento principale dei team di sicurezza interni a Mozilla.
Il problema è che il fuzzing copre il codice in modo disomogeneo. Alcune parti del browser sono difficili da raggiungere con questa tecnica, e i ricercatori umani più esperti, quelli capaci di leggere il codice sorgente, costruire modelli mentali del comportamento del sistema e dedurre dove si nasconde un difetto, rimanevano insostituibili. Fino a ora.
La novità portata da Claude Mythos non è la semplice analisi statica. I primi esperimenti con modelli come GPT-4 o Sonnet 3.5 producevano un’alta percentuale di falsi positivi, rendendo il processo praticamente inutilizzabile. Il cambio di approccio è arrivato costruendo un harness agente, ovvero un sistema che non si limita a ipotizzare un bug, ma lo verifica dinamicamente creando test case riproducibili.
In pratica, il modello formula un’ipotesi, genera una procedura di verifica ed esegue il test osservandone il risultato. Se il browser crasha con i sintomi attesi, come un use-after-free o un out-of-bounds, il bug è reale. Questo approccio ha ridotto drasticamente il rumore. Una volta che la pipeline era funzionante, Mozilla l’ha parallelizzata su decine di macchine virtuali effimere, ciascuna incaricata di scovare vulnerabilità in un file specifico, scrivendo i risultati su un bucket centrale.
Cosa cambia per chi costruisce software e per chi naviga su Firefox
La domanda pratica è quanto di tutto questo sia replicabile. La risposta di Mozilla è che chiunque sviluppi software può cominciare oggi. Il punto di partenza non deve essere sofisticato. Un prompt semplice, del tipo “c’è un bug in questa parte del codice, trovalo e costruisci un test case“, è sufficiente per avviare il ciclo. L’iterazione fa il resto.
Quello che Mozilla ha costruito nel tempo, tra cui orchestrazione, deduplicazione, integrazione con il lifecycle dei bug e gestione dei rilasci, è il risultato di settimane di affinamento, non un prerequisito. Se ti occupi di sviluppo o sicurezza, il momento per cominciare a sperimentare con questi approcci è adesso, non tra un anno quando le tecniche saranno mature e documentate ovunque.
Per chi naviga quotidianamente sul web, la notizia è positiva in modo diretto. Firefox 150 è il browser più sicuro mai rilasciato, non perché sia stato scritto meglio del solito, ma perché per la prima volta è stato analizzato a una profondità prima impossibile. D’ora in poi Mozilla prevede di integrare questa analisi nel sistema di continuous integration, in modo che ogni patch venga scansionata nel momento in cui arriva nel repository. Il debito tecnico accumulato in vent’anni di codice C++ non sparirà in una notte, ma per la prima volta sembra davvero finito.













