fbpx
Monitoraggio continuo per combattere il cryptojacking
24 Maggio 2019
WatchGuard: Network Security, Secure Wi-Fi, and MFA Solutions
27 Maggio 2019

WeChat Forensics – parte I

In questo articolo continuo la carrellata iniziata con WhatsApp, seguita poi da Telegram IOS e Android, occupandomi di WeChat. La prima parte sarà dedicata a iOS.

WeChat (in cinese pinyin: a proposito di questo suono Wēixìn significa, letteralmente, “micro-messaggio”)[1] è un servizio di messaggistica disponibile su tutte le maggiori piattaforme mobile nonchè su computer tramite un’interfaccia Web accessibile da qualsiasi browser. È totalmente gratuito e offre una vasta gamma di funzioni che lo rendono estremamente interessante.

WeChat offre tre servizi principali: chat, wallet e servizi di terze parti. I suoi servizi di chat sono integrati in messaggistica, voice messaging e videochiamate. WeChat Wallet consente agli utenti di pagare le bollette, ricaricare cellulari, effettuare acquisti online, trasferire denaro ad altri utenti e effettuare pagamenti tramite codice QR presso i negozi commerciali.

I servizi di terze parti di WeChat comprendono abbonamenti, acquisti online, consegna di cibo, prenotazione taxi, viaggi, etc.

WeChat, sviluppata da Tencent[2] nel 2011, è una delle prime cinque applicazioni di messaggistica istantanea a livello globale. Nel 2018, ha aumentato i suoi utenti attivi mensili a 1,08 miliardi (un miliardo di utenti attivi ogni giorno). Oltre alla Cina, è l’app di messaggistica più popolare in Bhutan.

Alla data di stesura dell’articolo, l’ultima release rilasciata – il 22.01.2019 – risulta essere la 7.0.3; con detta release arrivano le “capsule del tempo” adoperate per raccontare le proprie storie attraverso la fotocamera, un design decisamente nuovo con interfaccia chiara e intuitiva, la creazione e l’invio di uno sticker selfie, solo per citarne alcune[3].

A WeChat viene comunemente attribuita la denominazione di “super-app“, dato il numero di utenti WeChat in tutto il mondo, che è incredibilmente elevato. Tuttavia, l’apprezzata etichetta di super-app fornita a WeChat è probabilmente attribuita alla combinazione tra il numero di utenti della stessa e le numerose funzionalità user friendly offerte.

In calce la statistica prodotta dal sito statista.com e raggiungibile al link https://www.statista.com/statistics/255778/number-of-active-wechat-messenger-accounts/, che evidenzia il numero degli account WeChat nel periodo 2011-18:

WeChat ha tanti utenti, prevalentemente asiatici e in particolare di origine cinese, in quanto la Cina è soggetta ad un regime che impedisce il libero flusso di informazioni e, in special modo, quello scambiato online.

La sicurezza è assicurata dalla cifratura dei dati trasmessi anche se, nelle comunicazioni di WeChat, i dati vengono cifrati e inviati ai server, situati in Cina, e solo successivamente all’utente finale. Questa raccolta intermedia di dati non è comune in altre app di comunicazione come Facebook Messenger, Whatsapp o iMessage, le quali inviano i  dati cifrati direttamente tra gli utenti.

Se diamo uno sguardo più da vicino a questa nuova versione, potremo notare che vi sono stati apportati alcuni cambiamenti nei file di WeChat.

Queste modifiche influiscono direttamente sull’estrazione e il recupero dei dati dall’applicazione stessa.

Vi sono molti tool forensi in grado di estrapolare le evidenze di WeChat: uno di questi è Belkasoft Evidence Center[4].

Belkasoft Evidence Center (BEC) supporta l’estrazione e l’analisi della cronologia di WeChat sia da dispositivi Android che da dispositivi iOS; in mancanza di strumenti forensi idonei, pur non essendo stato progettato per l’acquisizione forense, è possibile utilizzare l’opzione iTunes.

iTunes è un’applicazione di gestione e sincronizzazione disponibile sul sito ufficiale Apple[5].
È adoperato per la creazione di backup o per l’ottenimento di immagini logiche dai dispositivi Apple, trasferirendoli sul computer.

Per questo articolo utilizzeremo un’acquisizione logica dei dati effettuata su di un iPhone Xs Max mediante l’utilizzo di iTunes. Essendo fondamentale assicurare l’integrità delle prove acquisite, l’acquisizione deve essere condotta necessariamente in ambiente forense mediante collegamento del dispositivo a una stazione di lavoro opportunamente predisposta e impedire la sincronizzazione automatica del dispositivo stesso, come evidenziato dalla figura in calce:

Al termine dell’acquisizione verrà utilizzato Iphone Backup Extractor[6] prodotto da Reincubate per visualizzare, nel dettaglio, il backup estratto.

I file di interesse per l’analisi forense si trovano nel seguente percorso:

Applications\com.tencent.xin[7]

Esplorando la directory Applications\com.tencent.xin\Documents, viene rinvenuto quanto visualizzato in fig. 1:

Fig.1

La directory di maggiore interesse da esaminare al fine di estrarre evidenze utili è quella denominata 0c2ce76edf310c2bb2b284212985cb44 – che corrisponde al valore MD5[8] dell’ID WeChat, wxid_qtca7z75krs412, nel caso di specie -, la quale  presenta la seguente struttura:

Fig.2

Non essendo stati rinvenuti, nel caso in esame, audio, video e foto, le directory relative non sono presenti.

Fig. 3

Possono essere utili, per compredere alcuni dati fondamentali dell’app WeChat, i contenuti di alcuni file plist:

mmsetting.archive situato all’interno della directory 0c2ce76edf310c2bb2b284212985cb44 e localinfo.lst rinvenibile in Applications\com.tencent.xin\Documents.

Fig. 4

La fig. 4 ne mostra alcune informazioni: il timestamp relativo all’ultimo avvio dell’applicazione – nel riquadro in blu, 1556074035 che, opportunamente convertito, evidenzia la data del 24 Aprile 2019 ore 04:47:15  – , l’Id assegnato dall’applicazione stessa – riquadro in rosso wxid_xxxxxxxxxx -, il nome dell’utilizzatore e il suo numero telefonico, +39347xxxxxxx.

Dallo stesso file è possibile estrarre la foto del profilo e la relativa miniatura, come evidenziato nel riquadro in rosso di fig. 5:

Fig.5

Per avere contezza, invece,  dei dati relativi all’utente connesso, è necessario verificare quanto riportato nel file localinfo.lst; vi sono le informazioni – id, numero telefonico e altri dati appartenenti all’interfaccia ClocalInfo – idonee a disvelare quanto necessario:

@interface CLocalInfo: NSObject 
{ 
Unsigned int m_uiLastUin; 
NSString * m_nsCurUsrName; 
NSString * m_nsLastUserName; 
NSString * m_nsLastLoginName; 
NSString * m_nsLastNickName; 
NSString * m_nsLastPhoneNumber; 
}

Fig. 6

Per quanto concerne lo studio e l’estrazione dei dati relativi ai contatti e alle chat, la subdirectory più interessante è certamente DB, ove è possibile rinvenire i database contenenti tutte le informazioni utili: WCDB_Contact.sqlite e MM.sqlite (fig.7):

Fig.7

Il database WCDB_Contact.sqlite consta di 4 tabelle, così come riportato in fig. 8:

Fig.8

La tabella “Friend” è quella di maggiore interesse dato il suo contenuto inerente i dati di tutti gli “amici”:

Fig. 9

Come è facile verificare, la maggior parte dei campi contiene dei valori BLOB[9], in formato binario e, a prima vista, poco interpretabili.

Il campo “dbContactProfile”, ad esempio, – in blu – evidenzia una breve descrizione immessa dall’utente che meglio descrive il suo profilo.

La tabella si compone di altri campi utili per la ricostruzione della lista “amici”:

Nel database MM.sqlite, dove è possibile rinvenire le chat, consta di 16 tabelle, così come riportato in fig. 10:

Fig. 10

La tabella di interesse investigativo, corrispondente alle conversazioni effettuate, è: Chat_c42eb051d0bb605db6b909b53e41c767.

Nella tabella compare un ID univoco di sessione che è possibile ritrovare nel database session.db, tabella SessionAbstract, situato nella subdirectory 0c2ce76edf310c2bb2b284212985cb44\session:

Osservando la tabella è possibile risalire all’interlocutore della chat (UsrName) e al timestamp della conversazione (CreateTime):

Con una semplice query tra le tabelle WCDB_Contact.sqlite->Friend e session.db->SessionAbstract è possibile risalire all’identità dell’interlocutore stesso.

Nella tabella Chat_c42eb051d0bb605db6b909b53e41c767 è possibile ritrovare la conversazione vera e propria (Message) con i relativi timestamp (CreateTime) tra l’utente in esame e il suo interlocutore:

Bene, siamo giunti al termine anche di questa trattazione.

Tornerò ad occuparmi a breve di WeChat, questa volta per i sistemi Android.

Stay tuned.

 

Note

[1] https://en.wikipedia.org/wiki/WeChat.

[2] http://www.tencent.com/en-us/index.html.

[3] https://blog.wechat.com/.

[4] https://belkasoft.com/ec.

[5] https://www.apple.com/it/itunes/.

[6] https://reincubate.com/about/.

[7] https://www.iphonebackupextractor.com/it/blog/ios-data-recovery-apps-data-iphone-backups/.

[8] https://it.wikipedia.org/wiki/MD5.

[9] https://it.wikipedia.org/wiki/Binary_large_object.

 

Articolo a cura di Cosimo De Pinto

Informatico Forense, socio IISFA, 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.

Download PDF
Condividi sui Social Network:

ISCRIVITI ALLA NEWSLETTER DI ICT SECURITY MAGAZINE

Una volta al mese riceverai gratuitamente la rassegna dei migliori articoli di ICT Security Magazine

Rispettiamo totalmente la tua privacy, non cederemo i tuoi dati a nessuno e, soprattutto, non ti invieremo spam o continue offerte, ma solo email di aggiornamento.
Privacy Policy