Google ha risolto una falla storica che spiava la cronologia degli utenti

Chrome 136, rilasciato giovedì scorso nel canale beta, introdurrà finalmente una soluzione a un attacco informatico che da 23 anni minaccia la riservatezza

Avatar di Andrea Maiellano

a cura di Andrea Maiellano

Author

Chrome 136, rilasciato giovedì scorso nel canale beta, introdurrà finalmente una soluzione a un attacco informatico che da 23 anni minaccia la riservatezza degli utenti online. Si tratta del "browser history sniffing", una vulnerabilità che consente a siti web e terze parti di scoprire quali pagine ha visitato un utente in precedenza, semplicemente analizzando il colore dei link visualizzati sullo schermo. Un problema di privacy che ha resistito per oltre due decenni a numerosi tentativi di mitigazione, e che finalmente potrebbe trovare una soluzione definitiva.

Questa vulnerabilità, apparentemente semplice, sfrutta una caratteristica fondamentale dei browser: la capacità di mostrare in colori diversi i link già visitati rispetto a quelli mai aperti. Un'intrusione nella privacy degli utenti che, nonostante numerosi tentativi di correzione, è rimasta sostanzialmente attiva fino ad oggi, permettendo a siti web e inserzionisti di tracciare silenziosamente le abitudini di navigazione delle persone.

Come ha spiegato Kyra Seevers, ingegnere software di Google: "Questi attacchi possono rivelare quali link un utente ha visitato e far trapelare dettagli sulla sua attività di navigazione web. Questo problema di sicurezza affligge il web da oltre 20 anni, e i browser hanno implementato varie soluzioni temporanee per mitigare questi attacchi di rilevamento della cronologia. Sebbene gli attacchi siano stati rallentati da queste misure, non sono stati eliminati."

Per comprendere la natura di questa vulnerabilità, è necessario capire alcuni principi di base dello sviluppo web. I siti internet sono tipicamente composti da file HTML che definiscono la struttura, file JavaScript per l'interattività e file CSS per lo stile e l'aspetto visivo. All'interno dei CSS esiste una pseudo-classe chiamata :visited che viene applicata ai link (elementi ) che sono stati precedentemente visitati dall'utente.

Quando un browser carica una pagina, controlla automaticamente quali link sono presenti nella cronologia di navigazione e li colora secondo le regole CSS definite. Questo comportamento, introdotto per migliorare l'esperienza utente, ha però creato una falla di sicurezza. Gli sviluppatori web hanno scoperto che potevano inserire link a migliaia di siti popolari in una pagina, renderli invisibili all'utente, e poi usare JavaScript per leggere i colori applicati a ciascun link.

In questo modo, un sito poteva determinare quali pagine l'utente aveva visitato in precedenza, mappando efficacemente la sua attività online senza alcun consenso. La tecnica ha suscitato grandi preoccupazioni quando, nel 2009-2010, sono apparsi online siti come "StartPanic" e "haveyourfriendsbeenthere.com" che dimostravano come fosse possibile spiare la cronologia di navigazione altrui.

Questo problema di sicurezza affligge il web da oltre 20 anni, e finalmente sta per essere risolto.

Le prime segnalazioni del problema risalgono addirittura al 2002, quando David Baron (all'epoca dipendente Mozilla, ora a Google) aprì una segnalazione di bug per Firefox. Il problema era stato individuato dal ricercatore Andrew Clover, che si basava su uno studio pubblicato nel 2000 dai ricercatori di Princeton Edward Felten e Michael Schneider intitolato "Timing Attacks on Web Privacy".

Nel corso degli anni, i browser hanno implementato diverse contromisure parziali. Una delle prime prevedeva che il metodo JavaScript window.getComputedStyle "mentisse" all'applicazione, restituendo lo stesso valore di colore indipendentemente dal fatto che un link fosse stato visitato o meno. Tuttavia, come dimostrato da un paper del 2011 intitolato "I Still Know What You Visited Last Summer", i ricercatori della Carnegie Mellon University hanno identificato ben sei diversi exploit che aggiravano queste protezioni.

La soluzione che Chrome 136 implementerà, e che dovrebbe arrivare nella versione stabile il 23 aprile 2025, è chiamata "partizionamento della cronologia dei link visitati". Come spiegato da Lukasz Olejnik, uno dei ricercatori che ha studiato a lungo questo problema, l'approccio "cambia fondamentalmente il modo in cui i browser memorizzano ed espongono i dati dei link visitati. Invece di mantenere un elenco globale, i browser web memorizzeranno i link visitati con una partizione a tripla chiave."

Queste tre chiavi sono: l'URL del link, il dominio di primo livello del sito web da cui è stato cliccato, e l'origine del frame che visualizza il link. Per applicare lo stile :visited a un link, tutte e tre le chiavi devono corrispondere. In pratica, questo significa che un sito web potrà sapere solo quali link sono stati visitati all'interno del proprio dominio, e non potrà più interrogare la cronologia globale dell'utente.

Kyra Seevers di Google spiega il concetto in modo semplice: "In breve, il partizionamento si riferisce alla memorizzazione dei link con informazioni aggiuntive su dove sono stati cliccati. In Chrome, questo include: URL del link, sito di primo livello e origine del frame. Con il partizionamento abilitato, la cronologia :visited non è più un elenco globale che qualsiasi sito può interrogare. Invece, la cronologia è 'partizionata' o separata dal contesto in cui hai visitato quel link."

Secondo Olejnik, questo approccio "interrompe la decennale corsa agli armamenti tra ingegneri della privacy e attaccanti" e "segna un passo importante verso la costruzione di un web più privato e rispettoso per tutti gli utenti." Una valutazione forse ottimistica, considerando che aziende come Google continuano a raccogliere enormi quantità di dati degli utenti, ma comunque un passo nella giusta direzione per la privacy online.

👋 Partecipa alla discussione! Scopri le ultime novità che abbiamo riservato per te!

0 Commenti

⚠️ Stai commentando come Ospite. Vuoi accedere?


Questa funzionalità è attualmente in beta, se trovi qualche errore segnalacelo.