Lo sviluppatore ha aperto un link postato in un channel Discord dove i colleghi parlavano di un nuovo build tool. Non ha cliccato niente, non ha digitato niente, non ha scaricato niente. La pagina non si caricava per bene, un messaggio confuso su una font obsoleta. Cinque minuti dopo il suo laptop segnalava un'attività di processi anomala. Nelle poche centinaia di millisecondi di rendering, la pagina aveva sfruttato un bug di memoria nel renderer WebGL.
I drive-by download sono la categoria di attacco più silenziosa del browser. Non richiedono alcuna interazione. La vittima apre la pagina e l'exploit sta già girando. Quello che nei primi anni 2000 passava per i controlli ActiveX oggi sfrutta bug nei motori JavaScript, in WebGL, in WebAssembly e nei codec. I browser moderni sono più robusti, ma la superficie d'attacco si è allargata parecchio.
Perché non serve nessun clic
Il browser non è un semplice renderer di pagine. È un runtime completo: ogni pagina caricata può eseguire JavaScript, mandare grafica alla tua GPU, decodificare stream video e far girare binari WebAssembly in locale. Tutto questo parte in automatico nel momento in cui l'HTML arriva al parser.
Un drive-by download si infila proprio in questa pipeline. Un bug nel motore JavaScript che lascia sfondare i limiti a un indice di array, una race condition in una API Canvas, un frame video malformato che innesca un overflow di memoria: sono tutti punti d'ingresso. Il browser esegue il codice dell'exploit perché fa parte del contenuto della pagina, non perché tu abbia dato il consenso.
La sandbox del browser intercetta tantissimi tentativi. I veri pericoli sono gli exploit a catena: un bug del motore JavaScript dà accesso arbitrario alla memoria, un secondo bug esce dalla sandbox, un terzo eleva i privilegi a livello di sistema. Queste catene costano parecchio agli attaccanti, ma finiscono regolarmente dentro campagne su larga scala.
Dove colpiscono gli exploit moderni

JIT di JavaScript. Motori moderni come V8 e SpiderMonkey compilano a runtime in codice macchina le funzioni più usate. I bug nel compilatore JIT producono codice sbagliato che il browser esegue con privilegi pieni. La maggior parte dei bug di browser sfruttati negli ultimi anni esce da questo livello.
WebGL e WebGPU. Gli shader arrivano alla tua GPU senza filtri. I driver grafici si portano dietro una lunga storia di bug, e gli exploit WebGL sono una via collaudata per uscire dalla sandbox del browser.
Decodifica dei media. I codec video e audio trattano enormi spazi di input in C o C++. Una corruzione di memoria in un codec si traduce spesso in esecuzione di codice diretta. Il famoso exploit BLASTPASS del 2023 contro iMessage colpiva un parser di immagini, ma la stessa classe di problemi esiste nel browser.
WebAssembly e Web Workers. Thread paralleli con un proprio modello di memoria sono comodi e rappresentano un'ulteriore superficie su cui finiscono per essere sfruttati bug di memoria.
Come la pagina arriva sul tuo schermo
Le pagine drive-by non spuntano dal nulla, vengono distribuite. I tre canali dominanti sono il malvertising, i watering hole attack e i siti legittimi compromessi.
Il malvertising è il canale più economico. La pagina preparata vive dentro l'iframe di un banner pubblicitario e colpisce chiunque carichi la pagina ospite. Per approfondire, vedi Malvertising: When the Ad Is the Attack. I watering hole attack sono più mirati: l'attaccante compromette un sito che sa essere frequentato dal suo pubblico (una testata di settore, una documentazione per sviluppatori, un forum di comunità) e ci pianta dentro l'exploit.
La terza variante sono i siti legittimi direttamente compromessi. Un plugin WordPress bucato, un account CDN rubato o un build hook manomesso bastano a iniettare script in un sito fidato. Il visitatore non ha modo di accorgersi della differenza.
La finestra fra patch e rollout

Chrome, Firefox e Safari patchano le vulnerabilità critiche in pochi giorni. Gli update però arrivano da te solo quando il browser li scarica e si riavvia. Su desktop di solito ci vogliono 24 ore, su Android a volte settimane, e su ambienti enterprise gestiti si arriva fino a un mese a seconda della finestra di rollout.
Gli attaccanti conoscono questa finestra alla perfezione. Aspettano la disclosure, fanno il diff del patch per tirare fuori la modifica vera e costruiscono un exploit in poche ore. Per un periodo breve ma molto redditizio, il pubblico è vulnerabile in modo dichiarato. Anche in un ambiente ben gestito, in quelle ore sei esposto.
Gli update automatici aiutano, ma non bastano. Un browser che non viene riavviato da cinque giorni continua a girare sulla build vecchia, anche se il patch è stato scaricato da un pezzo.
Contenere, non evitare
Non puoi evitare in modo affidabile i drive-by download e continuare a usare il web. L'idea che i siti fidati siano sicuri non regge, perché ad network, attacchi alla supply chain e zero-day colpiscono anche i più affidabili. L'attenzione si sposta dall'evitare al contenere.
Una sessione di browser isolata prende comunque sul serio l'exploit, ma lo fa atterrare in un ambiente che non è il tuo sistema operativo. Il payload cade in un container che viene buttato via a fine sessione. Il tuo laptop resta pulito. Aggiungi una cadenza rapida di update sul browser di tutti i giorni e l'idea che i link sconosciuti non hanno bisogno di aprirsi sulla macchina di produzione, e il tuo rischio reale cala parecchio. Più contesto sul ciclo zero-day in Zero-Day Exploits.
Vuoi un vero desktop su qualunque dispositivo?
Prova Browser.lol gratis: la potenza di un PC, anche dal telefono.
Avvia il tuo desktop nel browserNiente download • Funziona ovunque



