Articoli

WhatsApp: La peggior autenticazione a due fattori che abbia mai visto!

Un’autenticazione a due fattori (o autenticazione a più fattori o strong authentication) è un metodo di autenticazione che si basa sull’utilizzo congiunto di due metodi di autenticazione individuale. {Wikipedia}

Ieri da un ReTweet di Federico Maggi ho appreso che WhatsApp aveva reso disponibile a tutti, e non solo ad un riestretto numero di utenti come avveniva dallo scorso novembre, l’autenticazione a due fattori. Questo ulteriore strato di protezione garantisce all’utente una maggior sicurezza e l’impossibilità di usare le vulnerabilità del protocollo telefonico SS7 per impossessarsi di un account WhatsApp altrui.

Il 2FA (two factor authentication) viene usualmente implementato mediante i seguente tre metodi:

  • pin/password (codice statico);
  • token/otp (password generata casualmente a cadenza temporale);
  • biometria (impronta digitale, iride, ecc).

WhatsApp ha scelto il primo metodo per implementare l’autenticazione a due fattori, probabilmente perché già il primo metodo è basato sull’autenticazione tramite One Time Password attraverso l’invio di un SMS al nuovo utente.

Sostanzialmente se un utente con 2FA cambia Smartphone dovrà inizialmente digitare il suo numero di cellulare, riceverà il primo codice OTP via SMS e successivamente digiterà la password del 2FA scelta in precedenza.

Comunemente il 2FA implementato tramite codice è una protezione “sconnessa” richiesta solo in una determinata azione, in questo caso l’autorizzazione ad abilitare un nuovo device. Non deve essere richiesta periodicamente altrimenti aumenta sensibilmente il rischio che tale codice possa essere esposto e quindi compromesso!

WhatsApp, come vedete nello screenshot di apertura, ha invece deciso di richiedere saltuariamente (al secondo giorno me l’ha già chiesto 2 volte) tale codice con l’intento di non farlo scordare all’utente. Oltretutto se veramente l’utente si scorda il codice e sta attivando un nuovo dispositivi è possibile effettuare l’attivazione via eMail!

Se state scuotendo la testa non avete visto ancora nulla, veramente!

Abbiamo finora capito che in linea teorica un codice statico sfruttato per il 2FA NON dovrebbe essere conservato digitalmente, ne portato appresso e generato casualmente come a rigor di logica dovrebbero essere tutti i codici/password. WhatsApp invece ti impone di ricordartelo spingendo l’utente ad usare un codice comune (una data di nascita, anniversario, ecc) o a memorizzarlo in qualche luogo facilmente raggiungibile (PostIt, Agenda, 1Password, ecc ecc) aumentando il rischio di esporre il codice.

Vi basta pensare che altri portali che sfruttano l’autenticazione a due fattori o magari anche tre richiedono di STAMPARE il codice e di conservarlo in un luogo sicuro come una CASSAFORTE. E ovviamente non ti chiedono di andare ad aprire la cassaforte tutti i giorni 🙂

Un esempio? Blockchain o 1Password!

Ma cosa succede se l’utente si scorda il codice della 2FA? Semplice basta cliccare su “Codice di accesso dimenticato” e per magia l’autenticazione a due fattori viene DISABILITATA! ?

Basito, e ovviamente non si riceve neanche un avviso via eMail di tale disabilitazione!

Proseguendo l’analisi una volta attivata la Verifica a due fattori (o in due passaggi) è possibile disattivarla dalle impostazioni, l’applicazione NON richiede il codice precedentemente impostato per procedere alla disattivazione. E ovviamente non invia una notifica all’eMail indicata durante l’attivazione.

Ricapitolando:

  • WhatsApp richiede all’utente di inserire saltuariamente (probabilmente ogni giorno) il codice del 2FA quando la best-practice prevede di richiederlo solo all’attivazione di un nuovo device;
  • Se l’utente si scorda il codice della verifica in due passaggi (sul device già attivo) con un semplice click viene disabilitato l’ulteriore livello di sicurezza;
  • L’utente o un malintenzionato possono disabilitare la verifica in due passaggi senza che venga richiesto il codice originario.

Concludo lasciandovi uno screenshot postato su Twitter da Konrad Iturbe in cui si evince che il codice del 2FA viene conservato e salvato in chiaro (deducibile dalla brevità del campo). Preciso che non ho verificato quest’ultima notizia.

[AGGIORNATO] WhatsApp Hacked – Impersoniamo un’altra persona

 

ATTENZIONE: La vulnerabilità è stata risolta, non è più possibile utilizzare la procedura illustrata!

Continuano i problemi del famoso software di messaggistica istantanea WhatsApp, risolto il problema della memorizzazione in chiaro delle conversazioni un ricercatore Tedesco  Sam Granger ha individuato una nuova vulnerabilità ancor più preoccupante.

L’autenticazione degli utenti durante l’invio o la ricezione dei messaggi è violabile, ciò permette ad un estraneo di prendere pieno possesso di un account WhatsApp inviando messaggi o di leggere anche le eventuali risposte.

Ogni utente che vuole inviare un messaggio o verificare se ha dei messaggi da leggere si autentica sui server attraverso una “password” generata automaticamente dal software. La password è però facilmente riconducibile perché si basa sul codice IMEI degli Smartphone non Apple o del MAC Address per gli utenti Apple.

[AGGIORNATO 18/12/2012]
Generazione della Password per i dispositivi Android:

$imei = “112222223333334”; //  IMEI di esempio
$androidWhatsAppPassword = md5(strrev($imei)); // calcolo della Password (inversione dell’IMEI e generazione del MD5)

Generazione della Password per i dispositivi iOS a cura di Ezio Amodio:

$wlanMAC = “AA:BB:CC:DD:EE:FF”; // WLAN MAC address di esempio
$iphoneWhatsAppPassword = md5($wlanMAC$wlanMAC); // calcolo della Password

Generazione della Password per i dispositivi BlackBerry:

$imei = “112222223333334”; //  IMEI di esempio
$BBWhatsAppPassword = md5(strrev($imei)); // calcolo della Password (inversione dell’IMEI e generazione del MD5)

Per i dispositivi BB non è possibile avviare una conversazione interattiva, il servizio BIS vi scollegherà una volta inviato il primo messaggio rendendo impossibile la lettura della risposta.

Generazione della Password per i dispositivi Windows Phone a cura di Ezio Amodio:

$DeviceUniqueID = “112222223333334” // ID del Dispositivo
$WPWhatsAppPassword = $DeviceUniqueID // calcolo della Password

Per la lettura del vostro ID Dispositivo potete affidarvi all’applicazione gratuita Device Unique Id disponibile nel Market Place.

L’username è ancor più semplicemente il vostro numero di cellulare anteposto dal prefisso internazionale senza il simbolo + o il doppio zero (Es. 393481234567).

Continua a leggere

[AGGIORNATO] Exploit in WhatsApp per iPhone

20120119-224241.jpg

Emanuele Gentili e Stefano Fratepietro hanno appena reso disponibile uno script in grado di sfruttare l’exploit scoperto da G. Wagner che affliggeva tutte le versioni di WhatsApp per iPhone antecedenti o medesime alla versione 2.6.7! L’exploit permetterebbe ad un malintenzionato di cambiare a proprio piacimento lo stato di un utente collegato al famoso software di scambio messaggi.

Sarebbe pertanto possibile rendere “Occupato” o “Disponibile” un qualsiasi utente oppure inserire uno stato personalizzato con messaggi offensivi.

Ecco svelato pertanto la misteriosa scomparsa dall’Apple Store di WhatsApp per più di una settimana, l’azienda ha provveduto ad eliminare l’applicativo dal famosissimo store per poter procedere ad un tempestivo Fix attraverso la versione 2.6.9 disponibile dal 17 Gennaio 2012.

Lo script in grado di sfruttare questo exploit è reperibile al seguente link: http://emanuelegentili.eu/WhatsApp-exp.sh

Consigliamo pertanto a tutti gli utenti di aggiornare WhatsApp dal proprio iPhone!