Social Media Intelligence e tracciamento individuale – quando gli smartphone offline “sparlano” di te
Lo straordinario e drammatico periodo che stiamo vivendo – e nel quale mi accingo a scrivere questo articolo – è dominato da un indiscusso sentimento di incertezza, che spazia dalla paura per la malattia provocata dal COVID-19 a quella economica provocata dai lockdown. Eppure rimangono evidenti, soprattutto su internet, paure di altra natura, spesso frutto di sospetti infondati dovuti alla non conoscenza dell’argomento o del quadro generale delle cose e che comunemente chiamiamo complotti; tra questi c’è né uno che periodicamente ritorna più o meno incalzante, quello del “grande fratello”. Negli ultimi mesi lo spettro del “grande fratello” ha preso la forma delle app anti pandemia, per il tracciamento della prossimità fra le persone, sospettate di tracciare le nostre relazioni e le nostre attività quotidiane; e così ad un tratto il contact tracing sembra diventato lo strumento principe per il controllo delle masse.
In realtà ogni giorno i nostri dispositivi mobili, come gli smartphone, ci espongono a innumerevoli potenziali minacce per la privacy che per alcuni versi, oltre ad essere minacce reali, possono addirittura considerarsi più pericolosi del complottistico contact tracing.
Ne è un esempio il problema del Wi-Fi Location Tracking di cui negli ultimi anni si è spesso parlato, ovvero del tracciamento della posizione di un dispositivo tramite le reti WiFi. Quando ci connettiamo a reti WiFi con il nostro dispositivo attraverso un access point, uno dei parametri principali che viene comunicato alla rete WiFi è il MAC (Media Access Control) Address, un codice univoco di 48 bit che identifica la scheda di rete wireless del nostro dispositivo. Tramite questo codice è possibile rintracciare un dispositivo nei vari spostamenti che compie all’interno dell’area coperta dalla rete WiFi.
Se ad esempio immaginiamo di connettere il nostro smartphone alla rete WiFi free di un centro commerciale, una volta connessi, quando ci spostiamo all’interno del complesso il nostro smartphone si aggancerà di volta in volta ai vari access point presenti all’interno del perimetro, necessari per garantire una uniforme e adeguata copertura della rete WiFi in tutto il complesso. Conoscendo l’ubicazione dei vari access point è possibile quindi sapere con buona approssimazione in che punto del centro commerciale il nostro dispositivo è presente, riscostruire il percorso che abbiamo effettuato all’interno del complesso e quanto tempo siamo rimasti fermi in un determinato posto. Se poi il gestore di quella rete WiFi controlla altre reti di altri centri commerciali potremmo essere tracciati anche successivamente in altri complessi e la correlazione tra questi dati potrebbe essere utilizzata per statistiche di marketing, ad esempio, quanto tempo siamo rimasti davanti la vetrina di un particolare negozio. Se a questo aggiungete il fatto che generalmente la prima volta che si accede ad una rete WiFi free viene richiesta una registrazione dove nel migliore dei casi si deve inserire un indirizzo email, allora capite che si viene a configurare l’ipotesi di profilazione dell’utente.
Quindi nei casi in cui non si desidera esporsi al rischio di un tracciamento di questo tipo è sufficiente non collegarsi a reti WiFi free; fortunatamente le offerte degli operatori telefonici oggigiorno sono sempre più ricche di giga, e per le normali attività di comunicazioni via instant messaging e social non è più necessario connettersi a questo tipo di reti WiFi quando si è fuori… quindi, tutto risolto? Non proprio.
Quando un dispositivo mobile (smartphone, tablet, etc.) ha la scheda WiFi attiva ma non è connesso a una rete wireless (anche se dispone di una connessione dati tramite SIM telefonica), tenta periodicamente di connettersi alla più vicina rete WiFi. In questa ricerca il dispositivo mobile invia delle richieste di connessione (Probe Requests) e all’interno della richiesta è presente il MAC Address della sua scheda di rete wireless. Un access point WiFi potrebbe, a questo punto, registrare tali chiamate e anche senza attivare nessuna connessione di rete sarebbe in grado di rilevare la posizione di quel dispositivo.
Questa possibilità di tracciamento, che di fatto crea un serio problema di privacy, ha indotto i principali leader di mercato – Apple con il suo sistema operativo iOS, Google con Android e infine Microsoft con Windows – a inserire una contromisura per rendere la richiesta di connessione più anonima possibile, attraverso una tecnica denominata MAC Address Randomization.
La Mac Address Randomization permette al dispositivo di utilizzare indirizzi MAC casuali durante la ricerca di nuove reti, quando ancora non è associato ad una di esse. La randomizzazione dei MAC Address impedisce quindi ad eventuali ascoltatori di utilizzare gli indirizzi MAC per creare una cronologia dell’attività del dispositivo. Nelle ultimissime versioni dei sistemi operativi (iOS 14, Android 10+, etc.) la randomizzazione dei MAC avverrà non solo durante la fase di scoperta della rete, ma anche durante la fase associativa e sarà implementata su qualsiasi tipo di connessione.
Questo, per inciso, se da una parte aumenta il livello di privacy, dall’altra può creare problemi di sicurezza negli accessi alle reti: ad esempio annulla qualsiasi attuale controllo di autenticazione alle reti attraverso il riconoscimento del MAC Address.
È possibile identificare gli indirizzi MAC casuali, generati con questa tecnica, analizzando un bit che viene impostato nel MAC Address e che indica appunto che quel MAC è randomizzato. Molto semplicemente, senza entrare nei dettagli tecnici, basta guardare il secondo carattere di un indirizzo MAC: se è un 2, 6, A o E, è un indirizzo casuale (Fig.1).
Sicuramente questo è un metodo efficace per risolvere il problema dell’identificazione univoca del dispositivo tramite MAC, ma possiamo considerare definitivamente chiuso l’argomento dei dispositivi mobili “chiacchieroni” anche se non connessi? Decisamente no.
Esiste un’altra forma di Wi-Fi Location Tracking che parte da un principio diverso, basato sulla “memoria” che il dispositivo mobile ha delle reti WiFi familiari a cui cioè è stato connesso e a cui, in caso di assenza di connessione, cerca di ricollegarsi.
In questo particolare stato – che in gergo viene definito “orfano” – il dispositivo, oltre a effettuare scansioni periodiche per trovare nuove reti WiFi, effettua delle chiamate a reti già note nella speranza di potersi riconnettere; ma mentre quando il dispositivo cerca nuove reti WiFi effettua delle chiamate broadcast generiche, quando ricerca reti note, familiari, inserisce nelle chiamate il nome SSID della rete conosciuta.
La sigla inglese SSID sta per Service Set IDentifier e altro non è che il nome della rete WiFi, quello che ci appare generalmente visualizzato nella lista delle reti wireless disponibili sul nostro dispositivo mobile. Il risultato è che un ascoltatore potrebbe ottenere una lista completa di tutti i nomi delle WiFi a cui quel dispositivo si è collegato in passato. Questo vero e proprio Data Leak di SSID, fatto dai dispositivi mobili, potrebbe essere utilizzato da un cracker ostile per effettuare un attacco man‐in‐the‐middle (MITM), predisponendo ad es. un access point in grado impersonare reti con i nomi SSID acquisiti e fingersi una di esse, in modo da interporsi tra il dispositivo mobile e internet, catturando così il traffico passante (Fig. 2 ), come già spiegato in un mio precedente articolo.
Questo attacco però prevede che il dispositivo-vittima rimanga nel raggio del falso access point per diverso tempo; inoltre, se l’utente utilizza poi il dispositivo mentre è connesso alla falsa rete, non dovrebbe sospettare nulla, il che potrebbe essere complicato in quanto il nome dell’SSID utilizzato potrebbe appartenere alla rete di casa dell’utente e questi – trovandosi magari in un parco – mangerebbe la foglia.
Se invece il nostro ostile volesse utilizzare gli SSID catturati per effettuare un’attività investigativa di social media intelligence nei confronti della sua vittima, allora la cosa risulterebbe più facile dal punto di vista operativo e forse anche più produttiva dal punto di vista dei risultati. L’ostile potrebbe infatti utilizzare sempre una scheda di rete WiFi configurata in modo promiscuo, cioè in grado di catturare qualsiasi pacchetto trasmesso da dispositivi wireless della sua categoria, connessa a un microcomputer alimentato da una batteria, rendendolo così facilmente trasportabile e invisibile.
I risvolti di questa tipologia di attività possono essere davvero molti e i risultati che si possono ottenere, per alcuni aspetti, veramente inquietanti. Ma per descrivere meglio il funzionamento di questa tecnica e quali risultati si possono ottenere, non rimane che fare un esempio reale, simulando un ostile che la utilizza per effettuare attività di intelligence.
Premesso che spiare le trasmissioni dei dispositivi altrui è vietato dalla legge, va ricordato che questa dimostrazione ha scopo didattico e se volete replicare l’esperimento fatelo solamente con dispositivi di vostra proprietà.
Per questa dimostrazione utilizzeremo una scheda di rete WiFi che possa essere configurata in modalità “promiscua”: ne esistono vari modelli e tipologie, in questo caso ho scelto un modello USB della Alfa Network a lungo raggio (Fig. 3)
Come microcomputer a cui collegare la scheda per la dimostrazione, ho scelto un dispositivo pensato per sviluppare prototipi IoT con un consumo energetico basso e con dimensioni estremamente ridotte, in modo che possa essere più facilmente trasportato, un Orange PI Zero (Fig. 4), dotato di un processore Arm, porta USB, scheda di rete WiFi integrata (che non utilizzeremo), porta ethernet e come sistema operativo una versione personalizzata di Linux Debian (Armbian).
Installato il sistema operativo e configurata la scheda WiFi usb, è possibile collegare il tutto a un alimentatore portatile, come ad es. una power bank, per renderlo trasportabile e poco ingombrante.
Per collegarci al dispositivo e configurare il tutto utilizzeremo la porta ethernet e ci collegheremo in console attraverso il servizio SSH, attivo di default su questa versione di sistema operativo.
Una volta connessi e verificato che il PI Zero vede correttamente la scheda WiFi USB, installeremo il programma wireshark, uno sniffer di rete e lo utilizzeremo nella sua versione da terminale: tshark..
Il comando per l’installazione è:
apt install tshark
Digiteremo poi i seguenti comandi, per configurare le corrette autorizzazioni al programma:
usermod -a -G wireshark ${USER:-root}
dpkg-reconfigure wireshark-common
newgrp wireshark
Terminata la configurazione, siamo pronti per la “caccia”.
Dal terminale digiteremo il comando tshark con i parametri necessari per leggere solo i pacchetti di Probe Request.
Di seguito la descrizione dei parametri principali (Fig.6):
Una volta eseguito il comando, lo sniffer inizierà a catturare i pacchetti (Fig. 7):
Tra i dati da catturare oltre al MAC Address ed al nome SSID abbiamo inserito un altro campo interessante: l’RSSI. L’RSSI è l’acronimo di “Received Signal Strength Indicator” (indicatore della potenza del segnale ricevuto) ed è una misura stimata della qualità di ricezione del segnale di un dispositivo remoto da parte di un punto di accesso, come ad esempio un access point. L’RSSI aiuta a determinare se un segnale è sufficiente per stabilire una connessione wireless, maggiore è il suo valore, più vicino si trova il dispositivo che trasmette. Questo parametro ci permette quindi di effettuare un’analisi approssimativa della distanza dal dispositivo-vittima (Fig.8).
Siccome la misurazione dell’RSSI è stimata e può variare da antenna ad antenna, per avere una conversione della potenza del segnale in distanza approssimativa è necessario fare prima dei test di taratura.
Il campo wlan.sa_resolved invece ci indicherà il nome del produttore del dispositivo (dove possibile e dove non sia attivo un algoritmo di mac-address randomization), attraverso la decodifica dell’indirizzo MAC, dove i primi tre ottetti identificano l’organizzazione o comunque l’azienda che ha realizzato l’interfaccia di comunicazione.
Esaminando i risultati del nostro test (Fig.9) osserviamo 5 dispositivi:
- un Dispositivo Apple connesso alla rete WiFi con SSID Telecom-6370***** con un RSSI costante di -65;
- un Dispositivo “orfano” Samsung che trasmette delle Probe Request (nessun SSID) con un RSSI costante di -23;
- un Dispositivo “orfano” Google che trasmette delle Probe Request (nessun SSID) con un RSSI costante di -50;
- un Dispositivo AirgoNet connesso alla rete WiFi con SSID Alice-7514**** con un RSSI costante di -79;
- un Dispositivo “orfano” che utilizza il mac address anonimization (12:42:17:a8:e5:f6) con un RSSI costante di -42.
Il valore costante dell’RSSI dimostra che i dispositivi non sono in movimento; nel caso specifico l’ostile è interessato al dispositivo Samsung e cerca di avvicinarsi il più possibile al dispositivo (e alla sua vittima) fino a che dal valore dell’RSSI non risulti quello più vicino a lui e, poiché il dispositivo è in modalità orfano, rimane in attesa di acquisire eventuali Probe Request a reti familiari.
Dopo qualche minuto il dispositivo trasmette una sequenza di Probe Request delle reti conosciute (Fig.10)
Una volta ottenuta la lista delle reti, l’ostile si concentra nell’individuare SSID con “nomi parlanti”, cioè con nomi non troppo generici che possono identificare in maniera abbastanza precisa luoghi e posti in cui la vittima possa essersi collegata.
Dall’analisi vengono individuate 5 SSID:
- British Museum WiFi
- Teatro Eliseo
- RISTORANTE TRE SCALINI
- Hotel Villa Grazioli
- GarageStazioneTiburtina
- FASTWEB-1-AA6pF*******
A questo punto l’ostile deve verificare l’ubicazione delle reti WiFi associate all’SSID. Per questo esiste un sito (www.wigle.net), frutto di un progetto open source, che archivia le informazioni delle varie reti WiFi visibili in tutto il mondo grazie al contributo degli utenti. Attraverso un’app (attualmente disponibile solo sullo store Android) permette a chiunque di alimentare l’archivio di questo sito in maniera semplice e automatica: in pratica ogni utente, con il suo smartphone, diventa uno sniffer mobile che in base al luogo in cui si trova registra la presenza delle reti WiFi visibili e invia al sito wigle.net una serie di informazioni come ad es. nome SSID, tipo di cifratura della WiFi, indirizzo della localizzazione, etc.
Grazie a questo sito è quindi possibile effettuare delle ricerche testuali con il suo motore di ricerca per individuare l’ubicazione delle reti WiFi di cui conosciamo l’SSID. L’accesso al sito è molto semplice: una volta connessi a www.wiglet.it è sufficiente registrarsi e andare nel menu View selezionando una modalità di ricerca. Nel nostro caso selezioniamo la modalità avanzata ed effettuiamo la ricerca inserendo il nome della prima SSID: British Museum WiFi (Fig.11)
Il risultato della ricerca è il nome SSID associato a moltissimi access point con diversi MAC Address e questo è corretto, in questo caso, considerando che parliamo del British Museum, il museo più grande del mondo, con una superficie di circa 92 mila metri quadrati e che quindi, per la copertura WiFi, necessita dell’utilizzo di centinaia di access point. Per ogni record di risultato possiamo poi visualizzare la mappa e il luogo dove l’SSID è stato rilevato (Fig.12).
Effettuando la ricerca sulle altre SSID otteniamo la mappa di tutte le posizioni dove quel dispositivo si è connesso Fig.13 .
Questa prima attività di intelligence rileva che il dispositivo ha una forte correlazione con la città di Roma e che le SSID di hotel, garage, teatri e ristoranti, permettono già di creare ipotesi sugli spostamenti e sui possibili comportamenti (ad es. è ipotizzabile che l’utente potrebbe essere andato a Roma per vedere uno spettacolo teatrale, aver soggiornato in hotel, pranzato al ristorante e lasciato l’automobile nel parcheggio custodito).
Ma si può andare oltre: se correliamo le ricerche fatte finora con ricerche svolte sui social network, possiamo addirittura provare a identificare il proprietario del dispositivo. Effettuando su Facebook la ricerca dei posti individuati, possiamo verificare se esistono utenti comuni che si sono registrati in quei luoghi o hanno lasciato commenti sulle loro pagine. Nel nostro esempio la ricerca ha rilevato la presenza di 3 correlazioni su 4, nelle pagine Facebook, dei luoghi individuati con un particolare utente (Fig.14) che nell’arco di 24 ore ha lasciato commenti e registrazioni (Fig.14), proprio su quelle pagine.
Ulteriori correlazioni vengono poi riscontrate sulle recensioni, in un diverso periodo temporale, relative al British Museum e considerando l’ultima SSID: FASTWEB-1-AA6pF******* tipico nome di una connessione privata di casa. Effettuando una ricerca su wigle.net si riesce a scoprire, con buona approssimazione, anche in quale zona probabilmente abita la vittima e che provider telefonico utilizza; ed ecco che ad un tratto senza neanche sfiorare il dispositivo della vittima l’ostile può acquisire, attraverso un’attività di intelligence su fonti OSINT (Open Source Intelligence) e SIGINT (SIGnals INTelligence) moltissime informazioni sulla vita e il comportamento della vittima.
In conclusione, non dobbiamo mai dimenticare che dispositivi mobili come i nostri smartphone sono diventati una nostra appendice e custodiscono oggi più informazioni personali e riservate su di noi che qualsiasi altro oggetto ci circondi. Conoscere bene questa “protesi” cibernetica non è così semplice come sembra ma può fare la differenza tra controllare la propria riservatezza o renderla disponibile al primo (cracker) che passa. Proprio per la loro natura così “simbiotica” con tutte le informazioni che ci riguardano, spesso gli smartphone involontariamente possono “sparlare” di noi anche quando pensiamo che siano offline; per cui, se avete timore di questo tipo di tracciamento individuale e avete un buon contratto di telefonia mobile con tanti “Giga”, allora vi conviene spegnere la scheda WiFi quando siete in giro.
Articolo a cura di Francesco Arruzzoli
Con oltre 25 anni di esperienza nell’ambito della sicurezza delle informazioni Francesco Arruzzoli è Senior Cyber Security Threat Intelligence Architect presso la Winitalia srl di cui è cofondatore. Si occupa di progettare infrastrutture e soluzioni per la Cyber Security di aziende ed enti governativi. In passato ha lavorato per multinazionali, aziende della sanità italiana, enti governativi e militari. Esperto di Cyber Intelligence e contromisure digitali svolge inoltre attività di docenza presso alcune università italiane.