Telegram Messenger Forensics – 1 parte

In questo articolo continuo la carrellata iniziata con WhatsApp occupandomi di Telegram Messenger, forse la più veloce applicazione di messaggistica sul mercato. La prima parte sarà dedicata a iOS.

Telegram Messenger LLP è stata fondata da Pavel Durov, Nikolai Durov e Axel Neff. L’app Telegram per iOS è stata rilasciata il 14 Agosto 2013 dai fratelli Nikolai e Pavel Durov, i fondatori del social network russo VK[1].

I client ufficiali di Telegram Messenger sono open source[2]. Il codice sorgente relativo al lato server invece non è stato reso pubblico.

A marzo 2018 Telegramma aveva raggiunto i 200 milioni di utenti mensili attivi.[3]

Con la versione 4.8.2 – ultima release attualmente scaricabile da App store – arrivano su Telegram Messenger nuovi sticker con la relativa ricerca, la possibilità di scattare ed inviare foto multiple e la modalità notte automatica; viene aggiornato il processo di registrazione con l’aggiunta del limite minimo di età per poter utilizzare l’app in EU ed UK (cfr. Fig.1):

Fig.1

Telegram è prima di tutto un’applicazione di messaggistica istantanea sicura. Ha il vantaggio di essere disponibile su iOS, Android e Windows Phone, ma anche in una versione Web; vi sono applicazioni anche per MacOS, Windows e Linux. Quindi è possibile utilizzare Telegram comodamente su quasi tutte le piattaforme possibili e immaginabili.

Diversamente da WhatsApp, Telegram è un servizio di messaggistica basato su cloud con sincronizzazione istantanea. Ciò consente l’accesso ai messaggi da diversi dispositivi contemporaneamente, inclusi tablet e computer, condividendo un numero illimitato di foto,video, file (doc, zip, mp3, etc.) con dimensioni fino a 1,5 GB per ogni documento.

Di conseguenza, gli utenti di Telegram possono godere di una sincronizzazione perfetta su telefoni, tablet e computer, della disponibilità immediata sui nuovi dispositivi connessi e della possibilità di riprendere da dove hanno lasciato (progetti di cloud) nelle loro Cloud Chat.

Infatti, a differenza della maggior parte delle app di messagistica istantanea, Telegram Messenger può occupare pochissimo spazio sul dispositivo. La rimozione dei dati presenti nella cache locale non comporta quindi un rimozione fisica dato che gli stessi verranno mantenuti nel cloud per tutto il tempo necessario, praticamente senza limitazioni.

Utilizzando l’impostazione “Mantieni media”, è possibile controllare per quanto tempo i file multimediali e altri file delle chat possano permanere sul dispositivo. Se non si accede a un file per il periodo di tempo specificato, questo viene automaticamente eliminato dalla cache. Naturalmente, i dati verranno immediatamente ricaricati dal cloud nel momento in cui si accede nuovamente.

Su iOS è anche possibile cancellare i file della cache in chat.

Una delle caratteristiche particolari dell’app riguarda i cosiddetti “super gruppi”: ogni singolo creato può contenere fino a 100.000 persone.

Altra caratteristica peculiare dell’applicazione sono i “canali”, forum di discussione dove chiunque può abbonarsi per ricevere notizie in tempo reale dai suoi “informatori” preferiti. Siti di informazione giuridica come www.studiocataldi.it o siti di notizie relative al mondo informatico come http://www.Turbolab.it utilizzano già da tempo questa caratteristica.

Telegram è inoltra fornita di ‘chat segreta’, che non è abilitata di default. I messaggi vengono distrutti dopo un limite di tempo impostato dall’utente e non dovrebbero essere recuperati – in seguito vedremo che non è così -. Le stesse vengono escluse dai backup, il che consente agli utenti il pieno controllo dei dati che considerano sensibili e risiedono sul dispositivo dell’utente.

I messaggi tra gli utenti e il server vengono passati secondo il protocollo di messaggistica Telegram, scritto in casa e denominato MTProto[4] – dalla release 4.6, i principali client Telegram utilizzano MTProto 2.0 e la versione 1.0 è ormai divenuta obsoleta -:

Gli utenti utilizzano uno scambio di chiavi Diffie-Hellman[5] per generare una chiave comune che viene quindi utilizzata per lo scambio dei messaggi. Essi comunicano con il server utilizzando la chiave RSA pubblica del server, che è “hard-coded” nei client Telegram e cambia raramente.

Le chat segrete sono legate a dispositivi specifici ed è impossibile continuare una conversazione su un dispositivo diverso da quello dove la chat è iniziata. Gli utenti devono creare e autenticare i loro account usando un codice di autenticazione ricevuto a mezzo SMS sul dispositivo in uso.

Telegram è fornito inoltre di un meccanismo di verifica in due passaggi per il quale l’utente, una volta configurata una password aggiuntiva, deve inserirla ogni volta che accede all’applicazione – nel caso, chiaramente, di logout -.

Telegram mette a disposizione, gratuitamente, due tipi di API[6] per gli sviluppatori. Le API per la creazione di Bot – abbreviazione di robot che consente di automatizzare un servizio e di dialogare con utenti reali, tramite chat, senza che dall’altro lato ci sia un essere umano – e le API di Telegram, le quali consentono la creazione di propri client Telegram personalizzati.

Che dire, lo scenario che si pone davanti all’informatico forense non è certo idilliaco.

Oltre all’applicazione client Telegram Messenger, vi sono molte probabilità di trovare client Telegram personalizzati con funzioni non note e interazioni non conosciute.

Un rapido cenno merita anche “Telegram X”, nettamente più veloce ed efficiente, in passato conosciuto come “Telegram HD”.

Telegram X per iOS è interamente scritto in Swift[7] ed è significativamente più leggero, più veloce e più efficiente di Telegram Messenger, realizzata con Objective C[8].

Riepilogando, quindi:

Tutti i dati sono crittografati. Le chat segrete utilizzano la crittografia end-to-end (EE2E), le chat cloud utilizzano la crittografia client–server /server-client e sono ovviamente crittografate anche nello storage.

Per proteggere i dati che non sono coperti dalla crittografia end-to-end, Telegram utilizza un’infrastruttura distribuita che è unica tra le app di IM. I dati di Cloud Chat vengono memorizzati in modo crittografato in diversi data center in tutto il mondo controllati da diverse entità legali distribuite in diverse giurisdizioni.

Le relative chiavi di decrittazione sono suddivise in parti e non vengono mai conservate nello stesso luogo dei dati che proteggono.

Questa soluzione ibrida è stata lanciata da Telegram nel 2013 e da allora è stata emulata da Kakao (2014), Line (2015), Google Allo (2016) e Facebook Messenger (2016). Tutti questi servizi hanno introdotto le proprie versioni di chat crittografate end-to-end oltre alla messaggistica di base basata su cloud.

Per quanto è a mia conoscenza, non vi sono ad oggi lavori pubblicati che affrontino l’analisi forense dei dati gestiti da Telegram Messenger e che forniscano una metodologia per ottenerli e consentire, nel contempo, la ricostruzione degli eventi relativi all’indagato e la validazione dei risultati prodotti.

Vi sono alcuni software forensi in grado di decifrare le evidenze archiviate da Telegram – Cellebrite Ufed, Oxygen Forensics Detective, Magnet Axiom, Belkasoft Evidence Center solo per citarne alcuni -, ma gli stessi non forniscono alcuna spiegazione su come questa decodifica venga eseguita, né tantomeno alcun ausilio su come utilizzare i vari elementi estratti al fine di ricostruire completamente le attività dell’utente.

Pertanto, alla luce di quanto sopra, è praticamente impossibile valutare la completezza e la correttezza dei risultati generati.

Identica problematica – quale la mancanza di informazione e chiarezza – si riscontra a seguito dell’acquisizione delle evidenze dai dispositivi da analizzare: alcuni software, utilizzando a seconda dei casi le varie tipologie a disposizione (direct/logica/filesystem/fisica), effettuano operazioni sui dati da estrarre impostando password e configurazioni senza fornire alcuna spiegazione.

Ad esempio:

Oxygen Forensics Detective[9] cifra i backup di iTunes senza alcun avviso e senza richiederne il consenso all’investigatore, assegnando al backup la password “Oxygen”. E’ noto che la codifica dei backup di iTunes viene adoperata per aggiungere ulteriori informazioni non presenti nei backup non codificati: password salvate, cronologia dei siti web, impostazioni Wi-Fi e dati inerenti la salute.

Altri, invece, si comportano da veri “gentiluomini”:

  1. Msab Xry[10] chiede invece all’investigatore il consenso a poter codificare il backup, ricevuto il quale procede alla codifica assegnando la password “1234” e mettendone al corrente l’operatore.
  2. Magnet Axiom, invece, dopo averne illustrato le motivazioni, chiede all’investigatore l’introduzione della password da adoperare per cifrare il backup.

Telegram è noto come l’instant messenger più sicuro, ma non crittografa i file di database pertinenti memorizzati sul dispositivo. Pertanto, l’analisi forense di Telegram Messenger sul dispositivo, ammesso sia possibile recuperare i file di database in dipendenza della versione di iOs installata, può effettuarsi senza grandi problemi.

Il database principale di Telegram Messenger è tgdata.db che si trova nella directory /private/var/mobile/Containers/Shared/AppGroup/9C8C5F63-4EF3-4D6C-9F7F-C71B9A0970A/Documents. Il file di database non è crittografato, consentendo una visualizzazione intuitiva dei dati memorizzati nel database.

Le tabelle di particolare interesse investigativo sono le seguenti:

  • users_v29: contiene informazioni dettagliate sugli utenti, tra cui ID utente, nome, numero di telefono, etc .;
  • contacts_v29: contiene la lista di tutti gli ID dell’utente; una join tra uid di contacts_v29 e uid di users_v29 consente l’ottenimento di informazioni più dettagliate;
  • convesations_v29: contiene l’elenco delle conversazioni attive così come sono riportate nelle schermate di chat dell’app, nonché l’ultimo messaggio scambiato; se trattasi di una sessione di gruppo, un resoconto dettagliato del nome del gruppo, il numero dei membri del gruppo e l’elenco dei membri del gruppo; una chicca: la “r” nel nome della tabella non è un refuso ma manca davvero!;
  • messages_v29: contiene l’elenco di tutti i messaggi scambiati, identificati come mittente/destinatario nonché un ID conversazione (CID), in modo da facilitare il raggruppamento dei messaggi appartenenti alla stessa conversazione; gli stessi messaggi scambiati in “chat segrete” sono anch’essi memorizzati in questa tabella; i contenuti multimediali sono memorizzati in un campo di tipo BLOB[11].;
  • encrypted_cids_v29: contiene gli ID di conversazione delle chat segrete. Tutti
    i CID di 10 bit relativi alle chat segrete iniziano con il simbolo – (meno). La differenza tra la sessione ordinaria di chat e la segreta è proprio l’identificativo “- (meno)” posto all’inizio del CID. Mettendoli in correlazione con la tabella dei messaggi, è possibile riprodurli per intero.

Dai test effettuati in laboratorio con l’ausilio di vari software forensi (Oxygen detective rel. 10.2.1.2, Msab Xry rel.7.7.1 e Magnet Axiom rel. 2.1.0.927) su di un dispositivo aventi le caratteristiche indicate in fig.2 – iOS 11.3 -, gli stessi non sono stati in grado di estrarre nulla in riferimento ai db utilizzati dall’applicazione, di seguito elencati:

  1. Tgdata.db;
  2. Tgdata.db-journal;
  3. Tgdata_index.db;
  4. Tgdata_index.db-journal.

L’acquisizione logica – l’unica attuabile – ha consentito unicamente di estrarre solo poche informazioni, quali immagini identificative attribuite ai profili della lista contatti, allegati di chat, file di configurazione dell’app. Chiaramente ben poca cosa rispetto al bisogno dell’investigatore.

Fig.2

Il ricorso invece a Oxygen Cloud Backup ha consentito, invece, – fornendo il solo numero telefonico e il codice di autorizzazione pervenuto a mezzo SMS – l’estrazione delle informazioni direttamente dal cloud, come evidenziato in calce:

Le evidenze estratte hanno permesso dunque la ricostruzione degli eventi (timeline, contatti, chat, file multimediali e aggregazioni al bisogno) e consentito l’analisi di ogni singolo artefatto. Dal database estrapolato, Oxygen effettuava anche un carving dei record eventualmente cancellati (cfr. Fig. 3).

Fig.3

La struttura del file system è evidenziata in calce:

Nella directory Attachments vi si trovano i file multimediali relativi alle chat e ai profili:

La timeline ricostruita dal software presentava tutti i messaggi in ordine cronologico:

E le chat, tutti i dati indispensabili per lo studio delle conversazioni e degli interlocutori:

Il database estratto è composto da 8 tabelle autoesplicative:

Quelle di interesse investigativo, users, attachments, chat members, group_chats e messages possono essere messe in relazione tra loro con semplici query sql e ricostruire la cronologia delle chat.

In conclusione:

Ci affidiamo a dispositivi mobile per archiviare le nostre risorse digitali e consentirci di accedervi. I nostri telefoni sono sempre con noi e sono diventati una forma principale di comunicazione vocale, video e di messaggistica.

Questo rende i nostri dispositivi mobile obiettivi di grande valore per gli inquirenti.

Ormai quasi tutti gli strumenti commerciali tentano di supportare l’estrazione delle applicazioni fornite da terze parti. Purtroppo le app vengono aggiornate frequentemente ed è possibile che gli strumenti utilizzati in ambito forense possano perdersi qualcosa. Uno studio accurato sul funzionamento delle app, su come vengono memorizzati i dati e sul loro funzionamento è parte integrale del bagaglio di esperienza di un informatico forense.

Il mio consiglio è quello di testare sempre e accuratamente gli strumenti con cui si approcciano le acquisizioni e le analisi in ambito forense.

Un report ben costruito non è automatico, ma è frutto di una mediazione implicita tra mente umana e strumento.

A volte è proprio questo che fa la differenza.

Penso che la coscienza collettiva abbia ormai compreso che il lavoro di un informatico forense esperto non può essere sostituito da alcuno strumento, ma solo coadiuvato.

Stay Tuned.

NOTE

 

A cura di: Cosimo de Pinto

Profilo Autore

Informatico Forense, socio IISFA, socio ONIF, certificato CIFI, è Perito e Consulente Tecnico presso il Tribunale Ordinario di Roma. Laureato in Beni Culturali, è stato un pioniere della Digital Forensics, espletando il suo primo incarico come ausiliario di P.G. presso la Procura di Bari nel lontano 1990.Titolare di uno studio professionale, presta la propria consulenza a studi legali, aziende, Procure e FF.OO., in materia di Digital Forensics e CyberCrime.

Condividi sui Social Network:

Ultimi Articoli