martedì 29 dicembre 2020

Ho-mobile Data breach series: What if they suffer from a User Enumeration weakness?

Hello Folks, talking about an Italian mobile phone carrier it's time for me to write in Italian. Sorry for that.

Ebbene si, pare proprio che oltre 2.5milioni di clienti abbiano la propria identità in giro per il mondo, come se non bastasse, anche il proprio ICCID.

Posizioniamoci cronologicamente prima del databreach e facciamo uno sforzo d'immaginazione.
Ipotizziamo un attore capace di controllare quale numero di telefono è utente Ho-mobile e di aggiungere a questa informazione quanti e quali numeri di telefono fanno capo ad una singola persona fisica, il tutto con un semplice script in Python.

Un call center qualunque, uno di quelli che se ne infischia delle regole (state pensando: "tutti", vero?!), a questo punto potrebbe offrire pacchetti mirati, cuciti su misura, in ordine alle utenze in possesso da ogni singolo target, inoltre si risparmierebbe un considerevole numero di chiamate, conoscendo in anticipo che ad un certo numero di numeri telefonici, risponderebbe verosimilmente la stessa persona fisica.

Questa sceneggiatura nacque nella mia mente quando scrissi un piccolo script (legittimo) per tenere sotto controllo il traffico e il credito residuo della mia sim.
Laddove qualcuno ne sia interessato: https://pastebin.com/TM1CMx3i

Diamo una sommaria occhiata a come Ho-mobile gestisce il login per il tramite delle loro REST-API: 

In sostanza, il server di ho-mobile, tra le altre informazioni, risponde con un accountId che rappresenta il codice cliente, 'None' se quel numero non appartiene al bacino dei loro clienti.
Ecco qui che l'ipotesi di una ricerca di massa (bulk) fondata sui numeri di cellulare prende forma.

L'accountId è lo stesso per ogni numero di telefono ricercato (personalmente possiedo due numeri di cellulare ho-mobile e con ognuno di esso posso effettuare l'accesso, ed ottengo in risposta un solo,lo stesso, accountId perchè quest'ultimo è l'elemento legato alla password). Con questa informazione si rappresenta una relazione tra numero di telefono e utente "N:1".

I più maliziosi penseranno: "Ma dopo un certo numero di richieste banneranno l'ip, bloccheranno l'account, forzeranno la verifica dell'account o inseriranno un captcha!" 

La risposta è che ciò che so è che persi la password del mio account, e nel provare le varie (tante) che ritenevo possibili per accedere al MIO personale account, nonostante le abbia provate dallo stesso ip in un frangente di tempo minimo, non ho innescato nel loro server nessun tipo di protezione (forse perchè proprio non ne implementano alcuna!?).

Dalle testate giornalistiche leggo che Ho-mobile «non ha evidenze di accessi ai propri sistemi» - di fatto  quindi - non conferma, ma nemmeno smentisce la notizia.

Se hanno strutturato così il loro sistema di login, fosse davvero avvenuto il data breach, seriamente ci dovrebbe stupire?!
 

RE-Solver

2 commenti:

  1. Attualmente però dopo il terzo tentativo di immettere una password sbagliata ti bloccano.

    RispondiElimina
    Risposte
    1. Grazie per l'aggiornamento.
      Mi fa piacere sapere che al terzo login fallito bloccano l'account.
      È già qualcosa, anche se le informazioni che ho esposto antecedono l'inserimento della password (che avrebbe rappresentato il punto 4 mancante in foto).
      In altre parole, prima di arrivare all'inserimento della password, il loro sistema pare confermare che un dato nome utente (se inserito il numero di cellulare) sia valido, per il tramite implicito dell'accountId. L'accountId indirettamente, inoltre, rappresenterebbe una congiunzione di quale numero o più numeri sono associati ad un unica identità fisica.
      Un' analisi passiva del traffico di rete scaturito dal login nel mio personale account (è sufficiente la WebConsole del browser) ha portato a formulare le considerazioni di cui sopra.

      Elimina