I sensori di rilevamento della luce ambientale possono essere utilizzati per identificare univocamente gli utenti e per rubare dati. Le condizioni di luminosità di un ambiente possono rivelare informazioni riservate, contribuire alla profilazione descrivendo il comportamento e le abitudini degli utenti, e violare alcune misure di sicurezza notoriamente adottate dai browser, tra queste la same-origin policy.
Questo è quanto dimostrato da Lukasz Olejnik , ricercatore INRIA membro del gruppo di interesse per la privacy del W3C .
L’utilizzo di alcune tipologie di sensori ambientali – in particolar modo di movimento – è già stato oggetto di numerose discussioni a causa delle problematiche di sicurezza e privacy implicate. In particolar modo è stato osservato come, tramite il giroscopio e l’accelerometro, sia possibile identificare univocamente l’utente , oppure ricomporne i gesti e risalire alle sequenze numeriche composte .
Da ciò è emersa la necessità di adottare varie contromisure a tutela della privacy, richiamate in uno specifico paragrafo denominato “Security and privacy consideration” all’interno della specifica W3C delle API per la gestione dell’orientamento dei dispositivi.
Nell’ambito di una recente discussione relativa alla pubblicazione delle Generic Sensor API , è emersa la volontà del team di sviluppo di Google Chrome di non introdurre permessi specifici per la gestione di alcune tipologie di sensori , al fine di consentire agli sviluppatori di pagine web di usufruire delle stesse funzionalità comunemente sfruttate da applicazioni e software eseguiti in modo nativo.
Tra questi sensori sono presenti i già citati sensori di movimento (accelerometri, magnetometri, giroscopi) e i sensori di luminosità ambientale .
Questi ultimi, presenti sia negli smartphone che nei computer portatili di fascia alta prodotti negli ultimi anni, possono essere usati sia per adattare l’intensità della retro-illuminazione dello schermo (ottimizzando il consumo energetico del dispositivo) che per rilevare la presenza di un corpo in prossimità dello stesso, sulla base della quantità di luce ricevuta.
Proprio in merito a ciò interviene il lavoro del ricercatore Lukasz Olejnik, il quale ha dimostrato empiricamente alcune tecniche di esfiltrazione di dati riservati mediante questa tipologia di sensori.
I dati riportati dai sensori di luminosità ambientale sono caratterizzati da una precisione e una frequenza di rilevamento molto elevate : l’intensità della luce viene infatti raffigurata in una scala che va da 0 a decine di migliaia di lux , mentre la frequenza di rilevamento è calcolata sull’ordine di poche centinaia di millisecondi.
Olejnik ha condotto alcuni esperimenti sfruttando le implementazioni delle API dei sensori sui browser Google Chrome e Firefox per Android.
Il browser Firefox implementa la vecchia versione delle API, denominata Ambient light events , la quale è abilitata in modo predefinito mediante il flag device.sensors.enabled configurabile dalla pagina about:config e viene usata senza richiedere permessi ulteriori.
Su Chrome è disponibile l’equivalente Ambient light sensor API utilizzabile con il flag enable-generic-sensor configurabile nella pagina chrome://flags .
Il primo problema riconosciuto dal ricercatore polacco è rappresentato dalla completezza dell’informazione raccolta dal sensore così come riportata da Firefox e Chromium per Android, per cui egli ha già aperto delle segnalazioni: il valore è restituito da entrambi i browser in modo grezzo , senza arrotondamenti.
Il secondo problema è invece intrinseco all’operazione di lettura del valore: i valori minimi e massimi percepiti da un sensore, così come la qualità e la precisione del dato rilevato, variano fortemente da un dispositivo all’altro e potrebbero essere ricondotti univocamente all’hardware dello specifico dispositivo. A dimostrazione di ciò, Olejnik si è avvalso di due MacBook Pro – uno del 2012, l’altro del 2014 – riscontrando differenze significative nei valori campionati, ma caratteristici di ciascuno dei laptop.
Le informazioni rilevabili mediante l’utilizzo di tali sensori sono di molteplici tipologie: è possibile tracciare la struttura di un appartamento, il numero di stanze e la loro grandezza, monitorare il comportamento dell’utente, profilarne gli orari di lavoro, studiarne il modo e la velocità con cui si muove all’interno di una struttura, aggregare i dati raccolti a quelli collezionati da altri dispositivi (per esempio dispositivi appartenenti ad altri utenti, IoT ecc.) ed addirittura interagire in modo passivo con altri apparecchi presenti nell’ambiente. Il ricercatore ha infatti discusso la possibilità di utilizzare i dati raccolti dai sensori per rubare PIN bancari o riconoscere un determinato programma televisivo , sfruttando i risultati di una nota ricerca dell’Università di Duisburg-Essen.
Ovviamente, oltre che per finalità di profilazione, queste informazioni sono utilizzabili anche per scopi malevoli . A tal proposito, egli ha condotto alcuni attacchi specifici basati sulla possibilità, da parte di una pagina web, di rilevare contenuti altrimenti inaccessibili sulla base del colore dello schermo degli utenti.
Uno degli attacchi condotti da Olejnik sfrutta la colorazione dei link all’interno delle pagine web: chi frequentemente scrive fogli CSS ben conosce il selettore :visited , che viene applicato su un’ancora HTML se la pagina di riferimento è presente nella cronologia dell’utente. È possibile sfruttare ciò, unitamente al sensore di luminosità, per recuperare la cronologia dell’utente , come mostrato nel video qui sotto. L’individuazione di 1000 URL di siti noti all’interno della cronologia del browser ha impiegato al ricercatore circa otto minuti .
Inoltre, la medesima tecnica può essere utilizzata per accedere alle cross-origin resources , ovvero a tutte quelle risorse caricate da script di terze parti o provenienti da server diversi da quello della pagina web di partenza. Ciò è stato dimostrato dall’autore mediante la scansione bit-a-bit prima di una comune immagine , poi di un QR code .
Nel primo caso la durata dell’attacco è stata di 34 minuti e 8 secondi , nel secondo di soli 3 minuti e 20 secondi .
Bisogna tuttavia considerare le problematiche attuative di tali tecniche – perlopiù sperimentali – nonché la facilità con cui queste possono essere mitigate dall’implementazione delle API. È possibile infatti adottare numerose contromisure sia lavorando sulla frequenza delle letture , che sulla precisione dei dati restituiti dal sensore . Mentre nel primo caso si otterrebbe un significativo rallentamento nelle operazioni di lettura bit-a-bit delle informazioni, mantenendo l’attacco comunque possibile, nel secondo caso si negherebbe la possibilità di discriminare i colori rilevati.
La soluzione migliore, come suggerito dallo stesso Olejnik, sarebbe però quella di chiedere esplicitamente l’autorizzazione all’utente , rendendo palese l’accesso al sensore da parte della pagina web.
Il consiglio per l’utente finale è, in ogni caso, quello di utilizzare in modo responsabile i propri dispositivi disabilitando queste funzionalità, fintanto che non saranno implementate delle soluzioni a tutela dei navigatori. Ricordate? Soggetti, non oggetti , e sarà bene trarne le debite conseguenze.
Patrizio Tufarolo