I web tracker sono l’evoluzione dei cookie e sono la base del tracciamento di Internet. Il cookie è un file di dimensioni ridotte inviato da un sito al browser ed è salvato sul dispositivo; i web tracker, invece, per funzionare non hanno bisogno di salvare nulla sul device, dato che seguono l’utente utilizzando tecniche di fingerprinting.
Il tracciamento ha molteplici obiettivi e rappresenta il revenue model di Internet: purtroppo, però, può anche essere utilizzato da attori malintenzionati che lo sfruttano per aumentare le probabilità di successo degli attacchi, in particolar modo quelli verso la supply chain.
Web tracker: cosa sono come impedire la raccolta di dati per proteggere la nostra privacy online
Indice degli argomenti
Come funziona il tracciamento convenzionale
Gli strumenti di tracciamento convenzionali (cookie HTTP, memorizzazione locale, IndexedDB ecc.) consentono ai tracker di memorizzare identificatori unici nei browser per identificare nuovamente gli utenti quando navigano.
Poiché le preoccupazioni sulla privacy sono cresciute tra gli utenti, i più esperti di tecnologia hanno iniziato ad adottare strumenti per impedire ai tracker di installare tali identificatori.
Come conseguenza, i tracker si sono evoluti per aggirare questi blocchi e hanno sviluppato una nuova tecnica per identificare con precisione gli utenti in moltitudine senza fare affidamento sui cookie o altri tipi di memorizzazione lato client: è il caso del browser fingerprinting.
Cos’è il browser fingerprinting
Il browser fingerprinting, similmente alle tecniche di tracciamento convenzionali, permette ai tracker di assegnare degli identificatori ai browser degli utenti e di tracciarli mentre vengono utilizzati per navigare sul web. La differenza con le vecchie tecniche di tracciamento sta nel modo in cui questi identificatori sono generati e gestiti.
Mentre le tecniche di tracciamento convenzionali generano casualmente gli identificatori sul lato server e li memorizzano nei cookie o nella memoria del browser, il fingerprinting sfrutta il browser per eseguire pezzi di codice JavaScript in esecuzione silenziosa in background, creando e installando gli identificatori direttamente sul dispositivo monitorato.
Questi identificatori sono generati sulla base di informazioni come il sistema operativo della macchina, la lingua, il fuso orario, la dimensione e la risoluzione dello schermo, i font e i plugin installati, le caratteristiche dello stack grafico e audio, lo stato e la capacità della batteria, il tipo di browser, la configurazione del browser, la versione del browser, il numero di core della CPU, il supporto dell’input touch-based e molto altro.
Raccogliendo questa impressionante quantità di informazioni, i tracker possono così creare un ID univoco del browser e riconoscerlo così tra milioni.
Panopticlick e AmIUnique, ad esempio, forniscono strumenti online per mostrare come il browser dell’utente possa essere facilmente identificato grazie all’unicità della sua impronta digitale. Testando entrambi gli strumenti con le versioni di Mozilla Firefox 82.0.3 e Google Chrome 86.0.4240.183, si vede come il proprio browser risulta unico tra le rispettive basi di utenti.
Una tecnica avanzata: l’audio fingerprinting
Un esempio di come funziona il browser fingerprinting può essere dato mostrando una delle tecniche più avanzate: l’audio fingerprinting.
L’audio fingerprinting è una recente tecnica che sfrutta la Web Audio API per aggiungere entropia all’impronta digitale finale del dispositivo, che è tipicamente creata combinando più tecniche e che si basa sulle proprietà dello stack audio del dispositivo.
Nella maggior parte dei casi, il codice JavaScript che implementa il fingerprinting audio crea una forma d’onda periodica le cui proprietà variano da dispositivo a dispositivo in base all’elaborazione del segnale audio eseguita dallo specifico hardware e software del dispositivo.
Il Web Transparency and Accountability Project del Princeton CITP ha creato un apposito sito web per testare come l’impronta audio differisce da un campione pre-generato. L’immagine seguente mostra il risultato ottenuto dalla demo.
Come mostrato, le differenze locali nei dati dei canali della forma d’onda sono significative e facili da notare in questo caso. Tuttavia, anche minuscole differenze tra le forme d’onda sono sufficienti per costruire identificatori unici.
Perché il fingerprinting è così pervasivo?
Poiché un dispositivo produce sempre la stessa impronta digitale nel tempo, i tracker non sono più tenuti a memorizzare gli identificatori sul browser degli utenti: possono semplicemente rieseguire il codice JavaScript e rigenerarli.
Questo impedisce agli utenti di verificare e controllare gli identificatori generati dai tracker: cancellare i cookie o svuotare la memoria locale è diventato inutile con l’avvento del fingerprinting.
Il fingerprinting è progettato per essere silente ed impedisce all’utente di controllare la sua esposizione al tracciamento: proprio per questo rappresenta una vera minaccia per la privacy e la sicurezza.
Malvertising: il supply chain attack che sfrutta il fingerprinting
I tracker registrano tutti quelli che sono gli interessi di un utente su cui far leva e con i dati collezionati dagli script che fanno fingerprinting gli attaccanti risalgono anche alle vulnerabilità ed abitudini degli utenti, entrando in possesso di tuti gli ingredienti necessari per scaricare a terra un attacco di malvertising con alte probabilità di successo: ovvero chi attaccare, come attaccarlo e quando attaccarlo.
Un veloce esempio: dato un interesse da sfruttare, sapendo che l’utente utilizza un browser non aggiornato e che il venerdì sera solitamente utilizza il PC di lavoro da casa senza utilizzare la VPN, un attaccante il venerdì sera potrà utilizzare il meccanismo delle micro aste online per mostrare un falso annuncio di un’offerta falsa sull’interesse esposto, cliccando sulla quale si aprirà una pagina; la pagina aperta sfrutterà le vulnerabilità del browser per installare un ransomware sul PC.
La tecnica del malvertising, di cosa si tratta e come difendersi
Cosa fare per inibire il fingerprinting
Un approccio per bloccare il fingerprinting del browser è disabilitare del tutto JavaScript. Tuttavia, il web moderno si basa profondamente su JavaScript per fornire un gran numero di funzionalità e servizi “buoni”, che contribuiscono a migliorare la qualità della navigazione. Quindi, per la maggior parte degli utenti questa non è una soluzione.
Un’alternativa comune è quella di “inquinare” le impronte digitali randomizzando, modificando o falsificando le risposte alle API JavaScript che raccolgono informazioni sul dispositivo e sul browser.
Anche questo approccio presenta molti difetti: in primo luogo, la maggior parte dei siti web utilizza le API interessate per scopi funzionali e benigni, quindi restituire valori che non corrispondono alle reali caratteristiche del dispositivo o del browser potrebbe rendere la pagina non fruibile. In secondo luogo, può essere controproducente: inquinare le informazioni può portare a generare ancora più informazioni identificative. Infatti, i tracker sono ben consapevoli dell’esistenza di strumenti che adottano questo approccio, bypassandoli tranquillamente.
L’efficacia vera si ottiene solo evitando che i servizi che fanno fingerprinting atterrino sulla macchina e per far tutto ciò serve o utilizzare un browser come Brave, soluzione accettabile per il consumatore finale ma che può presentare difficoltà in ambito professionale, oppure una soluzione come Ermes Intelligent Web Protection, che a livello di dispositivo PC è un’estensione del browser che, tra le altre cose, blocca i tracker mentre per i dispositivi mobili è un’app che funziona come una VPN locale, dato che la maggior parte della navigazione online avviene via app e non via browser.