Una delle vulnerabilità nel protocollo di comunicazione usato dai cellulari può essere sfruttata per leggere i vostri messaggi WhatsApp e Telegram. La falla in combinazione con il sistema di verifica delle App di messaggistica mette a rischio la privacy degli utenti.

Premessa tecnologica

La tecnologia di comunicazione dei telefoni cellulari utilizza un protocollo chiamato SS7. Questo protocollo nato con la versione SS6 nel 1970 e con SS7 nel 1988, negli anni successivi non ha subito nessun’altra modifica. Oggi i vostri telefoni si collegano ancora a linee di comunicazione che utilizzano un protocollo degli anni 80 – Non vi sembra una cosa strana per il vostro iPhone 6 Plus?

Se la situazione fosse rimasta così come nel 1988 il vostro iPhone sarebbe quasi inutilizzabile. Con l’evoluzione tecnologica si è pensato “non bene” di sviluppare un nuovo protocollo che permettesse ai telefoni di accedere ad Internet.

Anche se oggi sentiamo parlare di 3G, 4G LTE etc.. la comunicazione mobile utilizza ancora il più vecchio e oramai obsoleto protocollo SS7 il quale per stare al passo con l’evoluzione tecnologica è stato esteso con il protocollo SIGTRAN (non a caso la parola esteso è in grassetto poichè oggi paghiamo le conseguenze di questa decisione).

Grazie all’introduzione del protocollo SIGTRAN tutti i telefoni cellulari possono navigare su internet.

Il protocollo SIGTRAN è stato creato dal IETF (Internet Engineering Task Force) e ha permesso di introdurre nel protocollo SS7 l’oramai noto protocollo IP senza il quale Internet, non sarebbe possibile (o quasi).

Nel network mobile mondiale, il vostro telefono è definito come un “subscriber” e l’identità assegnata in modo univoco alla vostra SIM è chiamata IMSI (International Mobile Subscriber Identity). Varia a seconda del continente e di solito è composto da 15 cifre.

La locazione del vostro IMSI nella rete SS7 può essere Home o Roaming. Il che dovrebbe già risultarvi familiare in quanto quando viaggiamo all’estero il nostro cellulare va in “Roaming” il che sta a significare che l’assegnazione di quel IMSI che era nato da un provider nazionale ha varcato il confine, determinando così dei costi aggiuntivi, soglie e altre cose.

(Si potrebbe far credere alla rete mobile che la posizione del nostro telefono sia ancora in Home e cioè nei confini nazionali, evitando ulteriori costi nelle chiamate ;-) ma questa è un’altra storia…)

Purtroppo, IMSI non viaggia via etere pertanto viene generato un identificativo univoco temporaneo chiamato TMSI che invece è nato per lo scopo e che identifica l’IMSI.

Lo scopo dell’hacker che vuole entrare in possesso dei vostri messaggi WhatsApp o Telegram è avere come target primario l’acquisizione del vostro IMSI, considerato un dato sensibile.

Come si ottiene l’IMSI?

Per prendere il TMSI l’hacker deve mettersi in ascolto del traffico e predisporre un accesso alla rete SS7 per arrivare al tuo IMSI. Ma in realtà l’accesso alla rete SS7 è di facile reperibilità in quanto un telefono mobile è già connesso di per se a quella rete, bisogna solo inviare i segnali giusti con la giusta autorevolezza.

Una volta ottenuto il TMSI l’hacker utilizza il Mobile Application Part (MAP) che con delle procedure particolari permette l’invio di un SMS verso il “subscriber” vittima, per ottenere il tanto voluto IMSI (l’ho fatta moolto semplice).

Non so se vi è mai capitato di ricevere degli SMS dal vostro operatore telefonico che vi autoconfigurava il telefono per accedere ad internet. Ecco, quei particolari SMS di configurazione seguono le procedure MAP (che in realtà non sono proprio la stessa cosa, ma funzionano analogamente).

Ecco un esempio di IMSI!

IMSI: 284011234567890

Ed è formato da:

MCC: 284 (prime 3 cifre)

MNC: 01 (5a e 6a cifra)

MSIN: 1234567890

MCC identifica il paese che in questo caso è la BOLIVIA(284). MNC identifica il tuo operatore mobile, (TIM, Wind, etc…) in questo caso MobilTel. Mentre l’MSIN (Mobile Station Identification Number) è il codice della tua Sim. Detto volgarmente numero di cellulare :)

Per avere un riscontro pratico di quello che ci siamo detti finora, proviamo ad individuare il nostro MNC e MCC. Per i possessori di Android, provate a scaricare Cell Widget un App molto leggera che vi permetterà di avere un widget sullo schermo che vi mostrerà in tempo reale le informazioni di cui abbiamo parlato.

Hacking delle App di messaggistica

Fatta questa doverosa e mooolto sintetica delucidazione, torniamo alla questione che avete letto nel titolo e che vi ha portato su questo articolo.

Secondo i ricercatori di sicurezza di AdaptiveMobile, che furono i primi a scoprire i bug su SS7 insieme a Philippe Langlois di P1 Security, un hacker potrebbe leggere i vostri messaggi WhatsApp o Telegram come se fosse il reale utilizzatore. Oltre a leggere i messaggi, potrebbe anche accedere alle conversazioni presenti nei backup, che come saprete di tanto in tanto WhatsApp chiede di fare.

Mi preme sottolineare che non parliamo di un attacco MiTM poiché l’attaccante in questo caso non intercetta la vostra comunicazione ma bensì si impersonifica in voi. Questo accade perché grazie alle diverse vulnerabilità del protocollo SS7 è possibile prendere l’identità di un subscriber e sostituirla con quella voluta. Proprio come abbiamo individuato il nostro IMSI è possibile trovare altre informazioni con cui è possibile:

  • intercettare telefonate
  • intercettare SMS
  • intercettare SMS con token bancari
  • geolocalizzare un telefono cellulare nel mondo

E molto altro…

Esempio di impersonificazione di un utente vittima su WhatsApp

Per aver un idea di come funziona questo tipo di hack, bisognerà prima individuare l’IMSI del target, che banalmente si può anche calcolare se si hanno informazioni certe, inviare una serie di comandi nella rete SS7 per la sostutizione degli identificativi e resettare l’app di WhatsApp riconfigurarla con il telefono della vittima e attendere l’SMS di validazione.

Per chi volesse approfondire a livello tecnico di seguito vi riporto un whitepaper della security firm PTSecurity sulle vulnerabilità SS7.

Grazie per la pazienza, spero di averti informato su qualcosa di nuovo, se fosse così mi piacerebbe conoscere cosa ne pensi a riguardo, magari lasciando un commento all’articolo.

Nel sintetizzare avrò sicuramente commesso degli errori, nel caso in cui li individuaste vi sarei grato se li segnalaste o nei commenti o tramite il modulo per contattarmi ;-) grazie!