Skip to main content
CiaoIM privacy a rischio

CiaoIM, falle di sicurezza gravissime, dettagli tecnici #1

“Ciao Giuseppe, abbiamo capito il problema e pensiamo di averlo risolto, grazie della segnalazione”

Mi sarebbe piaciuto fosse finita così, ma in realtà, ieri il primo dei bug da me segnalato e dimostrato è stato silentemente risolto ieri 6 Aprile (Update, trovata altra falla che permette la registrazione, guarda in fondo ) . Come mai nessuna comunicazione? Probabilmente perché l’azienda non vuole ammettere il banale errore, non rendendosi conto che l’umiltà e la trasparenza seguita da un “noi teniamo alla privacy dei nostri utenti” sarebbe stato quel sintomo di serietà che tutti cercano. Purtroppo invece sembra che l’unica preoccupazione avuta sia quella dell’apparire come super azienda infallibile.

Se c’è qualcuno, come me, che cerca di mettere in guardia gli utenti dei pericoli che comporta l’uso di una applicazione mobile non sicura, cercando di non divulgare dettagli che possano danneggiare Ciaoim e gli utenti di Ciaoim, si scatena una reazione che sostanzialmente ha l’obiettivo di portare tutto in caciara screditando la segnalazione. 

Vi ricordo che i problemi di sicurezza e di privacy sono davvero tanti in CiaoIm, e attualmente è stato risolto solo il primo che dettaglierò di seguito.

Gli altri problemi descritti nei precedenti articoli, saranno invece segnalati dai ragazzi di voidsec ai quali a quanto pare il Presidente Erba al momento sta degnando risposta.

Ma andiamo alla disclosure tecnica del primo bug.

Una falla nel protocollo di registrazione di CiaoIM, permette a malintenzionati di registrarsi a nome di un altro utente CiaoIM o numero inesistente all’applicazione CiaoIM.

Premessa, architettura di CiaoIM

Se dovessi rappresentare in modo semplice l’architettura di CiaoIM potrei dividerla in tre blocchi

  1. Backend CiaoIM
  2. Backend QuickBlox
  3. Applicativi mobile

Il primo blocco, è quello sviluppato da CiaoIM (o AppRoutes?) e si occupa della registrazione, sync rubrica, e autenticazione. Purtroppo questo è il blocco che presenta più problemi in assoluto.

Il secondo blocco è una installazione enterprise di QuickBlox. Cosa è QuickBlox? Quickblox è un servizio che fornisce un gateway proprietario per fornire servizi di chat, call, e videocall. È chiaro quindi che questa parte non è stata sviluppata da Stonex, e che ad oggi quindi la parte tecnologica core non è realizzata da Stonex.

Ma andiamo alla procedura di registrazione, e analizziamo la chiamata che l’app esegue al backend CiaoIM nel caso di un ipotetica registrazione del numero +39000000000

 

Richiesta registrazione
Richiesta registrazione

I campi che l’applicazione manda sono dunque, country, deviceId, deviceType, osVersion, phone.

 

ed ecco la risposta (parziale) in json ricevuta dal server CiaoIM prima che il bug fosse corretto, con il leak del codice di verifica:

 

Leak code
Leak code

 

Come è facile vedere, smsCode è proprio il codice, in chiaro, da usare per la verifica che poteva dunque essere letto facilmente

 

Considerazioni personali

 

Leggerezze di questo tipo, hanno implicazioni enormi e disastrose in una applicazione di instant messaging. Il consiglio che mi sento di dare al team di CiaoIm e al presidente Erba è di dedicarsi più al prodotto che agli annunci. In una applicazione di Instant Messaging la sicurezza e la privacy deve essere affrontata in modo serio e senza slogan.

Le disclosure delle prossime vulnerabilità sarà coordinata con i ragazzi del team di Voidsec, i quali stanno già dialogando con il signor Erba.

 

Per ulteriori dettagli o dubbi potete chidere commentando l’articolo, cercherò di rispondere a tutti

 

Update

Ho ricevuto una segnalazione da un altro ricercatore che preferisce restare anonimo di un’altra vulnerabilità che ha la stessa implicazione. Ho analizzato il Report e confermo la nuova vulnerabilità. Di seguito video dimostrativo