Quando si parla di zero-day si fraintendono molte cose. Zero-day è il termine con cui viene denotato una nuova vulnerabilità, un nuovo attacco, una nuova minaccia non precedentemente nota, ma questo non significa “non precedentemente attiva”.
Il termine zero-day nasce da lontano, nel mondo del warez, della cosiddetta “pirateria informatica dei software”, in cui i “giorni” (day) erano il metro di valutazione della “freschezza”, della “qualità” dell’oggetto piratato, in genere un software di qualche produttore ben in vista: zero-day significava “fresco di giornata” e pertanto molto appetibile. Oggi il termine ha il medesimo significato di “freschezza”, ma indica solo la conoscenza, non la disponibilità, perché questa è già nelle mani degli agenti di minaccia che ne abbiano determinato l’essenza, ovvero la possibilità di sfruttamento. Tecnicamente, secondo il diagramma della Window of Vulnerability, si dovrebbe riferire con questo termine solo agli eventi di minaccia attivi precedentemente alla definizione di un correttivo del vendor (patch), benché spesso si indichi nel medesimo modo anche le scoperte di ricercatori subito corrette dai vendor prima della divulgazione, confondendo ciò che è già attivo (come minaccia) da quello che non lo sarà.
Rimanendo dunque alla terminologia canonica, il browser di Google, Chrome (e tutti quelli derivati da Chromium, compreso Edge di Microsoft), è incappato recentemente in un caso accademico di zero-day, per il quale l’exploit è risultato attivo differenti settimane prima della scoperta della vulnerabilità (due settimane prima dello zero-day, appunto).
Il difetto è stato scoperto “in casa”, dal Google Threat Analysis Group (TAG) il 10 febbraio, e subito corretto (4 giorni dopo), ma gli stessi ricercatori hanno rinvenuto l’esistenza di due distinti gruppi di minaccia che hanno sfruttato la falla già a partire dal 4 gennaio in campagne orientate contro organizzazioni con sede negli Stati Uniti e non solo.
L’articolazione delle campagne (che hanno necessitato anche di mosse preventive di ingegneria sociale per consentire il delivery) non hanno comunque nascosto agli analisti la forte ingegnerizzazione dello strumento di attacco che è stato realizzato come un vero e proprio exploit kit, complesso e ben occultato (persino con crittografia AES nelle fasi di delivery delle componenti modulari).
Nello specifico l’exploit utilizzato è di tipo UAF (use-after-free), un attacco che deriva dallo sfruttamento di memoria dopo che questa sia stata in realtà liberata (operazione free dei sistemi operativi che rilascia la memoria utilizzata dai processi perché possa essere riutilizzata da altri). L’uso di questa memoria “liberata” è un errore che non deve essere presente nei programmi, in quanto porta questi a comportamenti imprevisti, alla corruzione dei dati validi, all’arresto anomalo e persino all’esecuzione di codice. Ed è proprio a questa esecuzione che mira l’exploit scoperto, che realizza così una RCE (Remote Code Execution) nella componente Animazione del noto browser.
La vulnerabilità di per sé è classificata CVE-2022-0609 e ritenuta non troppo grave (score 4), anche considerando la complessa costruzione delle campagne necessarie per il suo delivery; per questo possiamo dire che non sia attualmente una minaccia globale, anche considerando il fatto stesso che è già stata risolta dal vendor.
Il problema invero è esattamente quanto premesso: uno zero-day è pericoloso quando ancora non è tale, ossia quando non è conosciuto affatto, ovvero è conosciuto solo a chi può abusarne. Gli zero-day, per definizione, sono ormai noti anche a chi deve difendere (vendor o chiunque altro), e a volte (come in questo caso) è troppo tardi.