
Vuoi scoprire quali tipi di artefatti forensi di WhatsApp esistono nei vari sistemi operativi e dove possono essere trovati? Allora sei nel posto giusto. In questo articolo, uno specialista del laboratorio di forensic computing di Group-IB Igor Mikhailov apre una serie di pubblicazioni sull'analisi forense di WhatsApp e su quali informazioni possano essere ottenute analizzando il dispositivo.
à importante notare che nei diversi sistemi operativi vengono memorizzati vari tipi di artefatti di WhatsApp e se da un dispositivo l'investigatore può estrarre determinati tipi di dati di WhatsApp, ciò non significa affatto che lo stesso tipo di dati possa essere estratto da un altro dispositivo. Ad esempio, se si estrae una unità centrale che utilizza il sistema operativo Windows, è probabile che non vengano trovate chat di WhatsApp sui suoi dischi (eccetto per i backup dei dispositivi iOS, che possono essere trovati su questi stessi supporti). Quando si estraggono laptop e dispositivi mobili, ci saranno delle specificità . Parliamo di questo in modo piÚ dettagliato.
Artefatti di WhatsApp in un dispositivo Android
Per estrarre i file artefatti di WhatsApp da un dispositivo Android, il ricercatore deve avere i diritti di superutente (ârootâ) sul dispositivo esaminato o avere la possibilitĂ di estrarre in altro modo un dump fisico della memoria del dispositivo o il suo file system (ad esempio, sfruttando vulnerabilitĂ software specifiche del dispositivo mobile).
I file dell'app si trovano nella memoria del telefono nella partizione in cui sono memorizzati i dati dell'utente. Di solito, questa partizione si chiama âuserdataâ. Le sottocartelle e i file del programma si trovano nel percorso: â/data/data/com.whatsapp/â.

I principali file che contengono artefatti forensi di WhatsApp su Android sono i database âwa.dbâ e âmsgstore.dbâ.
Nel database âwa.dbâ c'è un elenco completo dei contatti dell'utente di WhatsApp, compreso il numero di telefono, il nome visualizzato, i timestamp e qualsiasi altra informazione fornita durante la registrazione a WhatsApp. Il file âwa.dbâ si trova nel percorso: â/data/data/com.whatsapp/databases/â e ha la seguente struttura:

Le tabelle piĂš interessanti nel database âwa.dbâ per il ricercatore sono:
- âwa_contactsâ
Questa tabella contiene informazioni sui contatti: id contatto su WhatsApp, informazioni sullo stato, nome utente visualizzato, timestamp, ecc.Aspetto della tabella:

Struttura della tabellaNome del campo Significato _id numero progressivo della registrazione (nella tabella SQL) jid WhatsApp ID del contatto, registrato nel formato @s.whatsapp.net is_whatsapp_user contiene '1' se il contatto corrisponde a un effettivo utente di WhatsApp, '0' altrimenti status contiene il testo visualizzato nello stato del contatto status_timestamp contiene un timestamp nel formato Unix Epoch Time (ms) number numero di telefono associato al contatto raw_contact_id numero progressivo del contatto display_name nome visualizzato del contatto phone_type tipo di telefono phone_label etichetta associata al numero del contatto unseen_msg_count numero di messaggi inviati dal contatto che non sono stati letti dal destinatario photo_ts contiene un timestamp nel formato Unix Epoch Time thumb_ts contiene un timestamp nel formato Unix Epoch Time photo_id_timestamp contiene un timestamp nel formato Unix Epoch Time (ms) given_name il valore del campo corrisponde a 'display_name' per ogni contatto wa_name nome del contatto su WhatsApp (nome visualizzato nel profilo del contatto) sort_name nome del contatto utilizzato nelle operazioni di ordinamento nickname nome contatto in WhatsApp (visualizza il nome indicato nel profilo del contatto) azienda azienda (visualizza l'azienda indicata nel profilo del contatto) titolo saluto (signora/signore; visualizza il saluto impostato nel profilo del contatto) offset offset - âsqlite_sequenceâ
Questa tabella contiene informazioni sul numero di contatti; - âandroid_metadataâ
Questa tabella contiene informazioni sulla localizzazione linguistica di WhatsApp.
Nel database âmsgstore.dbâ contiene informazioni sui messaggi inviati, come il numero di contatto, il testo del messaggio, lo stato del messaggio, le timestamp, le informazioni sui file trasmessi inclusi nei messaggi, ecc. Il file âmsgstore.dbâ si trova nel percorso: â/data/data/com.whatsapp/databases/â e ha la seguente struttura:

Le tabelle piĂš interessanti nel file âmsgstore.dbâ per il ricercatore sono:
- âsqlite_sequenceâ
Questa tabella contiene informazioni generali su questo database, ad esempio il numero totale di messaggi memorizzati, il numero totale di chat, ecc.Aspetto della tabella:

- âmessage_fts_contentâ
Contiene il testo dei messaggi inviati.Aspetto della tabella:

- âmessagesâ
Questa tabella contiene informazioni come il numero di contatto, il testo del messaggio, lo stato del messaggio, le timestamp, le informazioni sui file trasmessi inclusi nei messaggi.Aspetto della tabella:

Struttura della tabellaNome del campo Significato _id numero progressivo della registrazione (nella tabella SQL) key_remote_jid WhatsApp ID del partner di comunicazione key_from_me direzione del messaggio: â0â â in entrata, â1â â in uscita key_id identificatore univoco del messaggio status stato del messaggio: '0' â consegnato, '4' â in attesa di server, '5' â ricevuto a destinazione, '6' â messaggio di controllo, '13' â messaggio aperto dal destinatario (letto) need_push ha valore '2' se si tratta di un messaggio broadcast, altrimenti contiene '0' data testo del messaggio (quando il parametro âmedia_wa_typeâ è uguale a â0â) timestamp contiene un timestamp nel formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo media_url contiene l'URL del file trasmesso (quando il parametro âmedia_wa_typeâ è uguale a â1â, â2â, â3â) media_mime_type tipo MIME del file trasmesso (quando il parametro âmedia_wa_typeâ è uguale a â1â, â2â, â3â) media_wa_type tipo di messaggio: '0' â testo, '1' â file grafico, '2' â file audio, '3' â file video, '4' â scheda contatto, '5' â dati geografici media_size dimensione del file trasmesso (quando il parametro âmedia_wa_typeâ è uguale a â1â, â2â, â3â) media_name nome del file trasmesso (quando il parametro âmedia_wa_typeâ è uguale a â1â, â2â, â3â) media_caption Contiene le parole âaudioâ, âvideoâ per i relativi valori del parametro âmedia_wa_typeâ (quando il parametro âmedia_wa_typeâ è uguale a â1â, â3â) media_hash hash del file inviato codificato in formato base64, calcolato con l'algoritmo HAS-256 (quando il parametro âmedia_wa_typeâ è uguale a â1â, â2â, â3â) media_duration durata in secondi per il file multimediale (quando il parametro âmedia_wa_typeâ è uguale a â1â, â2â, â3â) origin ha valore '2' se si tratta di un messaggio broadcast, altrimenti contiene '0' latitude dati geografici: latitudine (quando il parametro âmedia_wa_typeâ è uguale a â5â) longitude dati geografici: longitudine (quando il parametro âmedia_wa_typeâ è uguale a â5â) thumb_image informazioni di servizio remote_recource ID del mittente (solo per chat di gruppo) received_timestamp tempo di ricezione, contiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo (quando il parametro âkey_from_meâ ha â0â, â-1â o un altro valore) send_timestamp non utilizzato, di solito ha valore â-1â receipt_server_timestamp tempo di ricezione dal server centrale, contiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo (quando il parametro âkey_from_meâ ha â1â, â-1â o un altro valore) serverreceipt_device_timestamp tempo di ricezione del messaggio da parte di un altro destinatario, contiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo (quando il parametro âkey_from_meâ ha â1â, â-1â o un altro valore) il tempo di ricezione del messaggio da parte di un altro abbonato, contiene un timestamp nel formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo (quando il parametro âkey_from_meâ ha â1â, â-1â o un altro valore) read_device_timestamp il tempo di apertura (lettura) del messaggio, contiene un timestamp nel formato Unix Epoch Time (ms), il valore proviene dall'orologio del dispositivo played_device_timestamp il tempo di riproduzione del messaggio, contiene un timestamp nel formato Unix Epoch Time (ms), il valore proviene dall'orologio del dispositivo raw_data miniatura del file trasmesso (quando il parametro âmedia_wa_typeâ è uguale a â1â o â3â) recipient_count numero di destinatari (per messaggi broadcast) participant_hash utilizzato durante la trasmissione di messaggi con dati geolocalizzati starred non è utilizzato quoted_row_id sconosciuto, di solito contiene il valore â0â mentioned_jids non è utilizzato multicast_id non è utilizzato offset offset Questo elenco di campi non è esaustivo. Per diverse versioni di WhatsApp, alcuni campi possono essere presenti o assenti. Possono inoltre essere presenti campi aggiuntivi âmedia_enc_hashâ, âedit_versionâ, âpayment_transaction_idâ ecc.
- âmessages_thumbnailsâ
Questa tabella contiene informazioni sulle immagini trasmesse e i timestamp. Nella colonna âtimestampâ il tempo è indicato nel formato Unix Epoch Time (ms). - âchat_listâ
Questa tabella contiene informazioni sulle chat.Aspetto della tabella:

Inoltre, nella ricerca di WhatsApp su un dispositivo mobile Android, è necessario prestare attenzione ai seguenti file:
- File âmsgstore.db.cryptXXâ (dove XX è una o due cifre da 0 a 12, ad esempio, msgstore.db.crypt12). Contiene un backup crittografato dei messaggi di WhatsApp (backup del file msgstore.db). Il file (o i file) âmsgstore.db.cryptXXâ si trova nel percorso: '/data/media/0/WhatsApp/Databases/' (carta SD virtuale), '/mnt/sdcard/WhatsApp/Databases/' (carta SD fisica)'.
- File 'key'. Contiene la chiave crittografica. Si trova nel percorso: '/data/data/com.whatsapp/files/'. Utilizzata per decrittografare i backup crittografati di WhatsApp.
- File 'com.whatsapp_preferences.xml'. Contiene informazioni sul profilo dell'account WhatsApp. Il file si trova nel percorso: '/data/data/com.whatsapp/shared_prefs/'.
Frammento del contenuto del file
⌠9123456789 (numero di telefono associato all'account WhatsApp) ⌠2.17.395 (versione di WhatsApp) ⌠Ciao! Sto usando WhatsApp. (messaggio visualizzato nello stato dell'account) ⌠Alex (nome del proprietario dell'account) ⌠- File 'registration.RegisterPhone.xml'. Contiene informazioni sul numero di telefono associato all'account WhatsApp. Il file si trova nel percorso: '/data/data/com.whatsapp/shared_prefs/'.
Il contenuto del file
- File âaxolotl.dbâ. Contiene chiavi crittografiche e altre informazioni necessarie per identificare il proprietario dell'account. Si trova nel percorso: â/data/data/com.whatsapp/databases/â.
- File âchatsettings.dbâ. Contiene informazioni sulla configurazione dell'applicazione.
- File âwa.dbâ. Contiene dettagli sui contatti. Ă un database molto interessante (da un punto di vista forense) e informativo. Può fornire informazioni dettagliate sui contatti eliminati.
Ă inoltre importante prestare attenzione ai seguenti directory:
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Images/â. Contiene file grafici inviati.
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/â. Contiene messaggi vocali in file formato .OPUS.
- Directory â/data/data/com.whatsapp/cache/Profile Pictures/â. Contiene file grafici â immagini dei contatti.
- Directory â/data/data/com.whatsapp/files/Avatars/â. Contiene file grafici â miniature delle immagini dei contatti. Questi file hanno estensione â.jâ, ma sono file grafici nel formato JPEG (JPG).
- Directory â/data/data/com.whatsapp/files/Avatars/â. Contiene file grafici â l'immagine e la miniatura dell'immagine impostata come avatar dal proprietario dell'account.
- Directory â/data/data/com.whatsapp/files/Logs/â. Contiene il registro di funzionamento del programma (file âwhatsapp.logâ) e copie di backup dei registri di funzionamento del programma (file con nomi nel formato whatsapp-aaaa-mm-gg.1.log.gz).
File di registro di WhatsApp:

Frazione del registro2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] missedcallnotification/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] missedcallnotification/update cancel true
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/load-me
2017-01-10 09:37:09.772 LL_I D [1:main] file password mancante o illeggibile
2017-01-10 09:37:09.782 LL_I D [1:main] statistiche Messaggi di Testo: 59 inviati, 82 ricevuti / Messaggi Multimediali: 1 inviato (0 byte), 0 ricevuti (9850158 byte) / Messaggi Offline: 81 ricevuti (19522 msec ritardo medio) / Servizio Messaggi: 116075 byte inviati, 211729 byte ricevuti / Chiamate Voip: 1 chiamata in uscita, 0 chiamate in entrata, 2492 byte inviati, 1530 byte ricevuti / Google Drive: 0 byte inviati, 0 byte ricevuti / Roaming: 1524 byte inviati, 1826 byte ricevuti / Totale Dati: 118567 byte inviati, 10063417 byte ricevuti
2017-01-10 09:37:09.785 LL_I D [1:main] media-state-manager/refresh-media-state/writable-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/initialize/timer/stop: 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/checkhealth
2017-01-10 09:37:09.817 LL_I D [1:main] msgstore/checkhealth/journal/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkhealth/back/delete false
2017-01-10 09:37:09.818 LL_I D [1:main] msgstore/checkdb/data/data/com.whatsapp/databases/msgstore.db
2017-01-10 09:37:09.819 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager-journal 21032 drw=011
2017-01-10 09:37:09.820 LL_I D [1:main] msgstore/checkdb/list axolotl.db 184320 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-wal 436752 drw=011
2017-01-10 09:37:09.821 LL_I D [1:main] msgstore/checkdb/list axolotl.db-shm 32768 drw=011
2017-01-10 09:37:09.822 LL_I D [1:main] msgstore/checkdb/list msgstore.db 540672 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-wal 0 drw=011
2017-01-10 09:37:09.823 LL_I D [1:main] msgstore/checkdb/list msgstore.db-shm 32768 drw=011
2017-01-10 09:37:09.824 LL_I D [1:main] msgstore/checkdb/list wa.db 69632 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-wal 428512 drw=011
2017-01-10 09:37:09.825 LL_I D [1:main] msgstore/checkdb/list wa.db-shm 32768 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db 4096 drw=011
2017-01-10 09:37:09.826 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-wal 70072 drw=011
2017-01-10 09:37:09.827 LL_I D [1:main] msgstore/checkdb/list chatsettings.db-shm 32768 drw=011
2017-01-10 09:37:09.838 LL_I D [1:main] msgstore/checkdb/version 1
2017-01-10 09:37:09.839 LL_I D [1:main] msgstore/canquery
2017-01-10 09:37:09.846 LL_I D [1:main] msgstore/canquery/count 1
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery/timer/stop: 8
2017-01-10 09:37:09.847 LL_I D [1:main] msgstore/canquery 517 | time spent:8
2017-01-10 09:37:09.848 LL_I D [529:WhatsApp Worker #3] media-state-manager/refresh-media-state/internal-storage disponibile:1.345.622.016 totale:5.687.922.688
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Audio/â. Contiene i file audio ricevuti.
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/â. Contiene i file audio inviati.
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Images/â. Contiene i file grafici ricevuti.
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/â. Contiene i file grafici inviati.
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Video/â. Contiene i video ricevuti.
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/â. Contiene i video inviati.
- Directory â/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/â. Contiene i file grafici associati al proprietario dell'account WhatsApp.
- Per risparmiare spazio sulla memoria dello smartphone Android, alcuni dati di WhatsApp possono essere memorizzati sulla scheda SD. Nella scheda SD, nella directory principale, si trova la cartella âWhatsAppâ, dove possono essere trovati i seguenti artefatti di questo programma:

- Directory â.Shareâ (â/mnt/sdcard/WhatsApp/.Share/â). Contiene copie di file che sono stati inviati ad altri utenti WhatsApp.
- Directory â.trashâ (â/mnt/sdcard/WhatsApp/.trash/â). Contiene file eliminati.
- Directory âDatabasesâ (â/mnt/sdcard/WhatsApp/Databases/â). Contiene backup crittografati. Possono essere decrittati con il file 'key', estratto dalla memoria del dispositivo analizzato.
I file nella sottocartella âDatabasesâ:

- Directory âMediaâ (â/mnt/sdcard/WhatsApp/Media/â). Contiene sottocartelle âWallPaperâ, âWhatsApp Audioâ, âWhatsApp Imagesâ, âWhatsApp Profile Photosâ, âWhatsApp Videoâ, âWhatsApp Voice Notesâ, in cui sono memorizzati i file multimediali ricevuti e inviati (file grafici, video, messaggi vocali, fotografie, associati al profilo del proprietario dell'account WhatsApp, sfondi).
- Directory âProfile Picturesâ (â/mnt/sdcard/WhatsApp/Profile Pictures/â). Contiene file grafici associati al profilo del proprietario dell'account WhatsApp.
- A volte sulla scheda SD potrebbe essere presente una cartella âfilesâ (â/mnt/sdcard/WhatsApp/Files/â). In questa cartella ci sono file in cui sono memorizzate le impostazioni del programma e le preferenze dell'utente.
Caratteristiche della memorizzazione dei dati in alcuni modelli di dispositivi mobili
In alcuni modelli di dispositivi mobili con sistema operativo Android, è possibile che i file di WhatsApp siano memorizzati in una posizione diversa. Ciò è dovuto a cambiamenti nello spazio di archiviazione dei dati delle applicazioni effettuati dal software di sistema del dispositivo mobile. Ad esempio, nei dispositivi mobili Xiaomi c'è una funzione che crea un secondo spazio di lavoro (âSecondSpaceâ). Attivando questa funzione, cambia la posizione dei dati. CosĂŹ, in un normale dispositivo mobile con sistema operativo Android, i dati dell'utente sono memorizzati nella directory '/data/user/0/' (che è un rimando ai piĂš familiari '/data/data/'), nel secondo spazio di lavoro i dati delle applicazioni sono memorizzati nella directory '/data/user/10/'. Quindi, prendendo come esempio la posizione del file âwa.dbâ:
- in uno smartphone normale con sistema operativo Android: /data/user/0/com.whatsapp/databases/wa.dbâ (equivalente a '/data/data/com.whatsapp/databases/wa.db');
- nel secondo spazio di lavoro di uno smartphone Xiaomi: '/data/user/10/com.whatsapp/databases/wa.db'.
File di WhatsApp su dispositivi iOS
A differenza del sistema operativo Android, su iOS i dati dell'applicazione WhatsApp vengono trasferiti nel backup (iTunes backup). Pertanto, l'estrazione dei dati di questa applicazione non richiede l'estrazione del file system o la creazione di un dump fisico della memoria del dispositivo in esame. Gran parte delle informazioni significative è contenuta nel database âChatStorage.sqliteâ, che si trova nel percorso: â/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/â (in alcuni programmi questo percorso viene visualizzato come âAppDomainGroup-group.net.whatsapp.WhatsApp.sharedâ).
Struttura âChatStorage.sqliteâ:

Le tabelle piĂš informative nel database âChatStorage.sqliteâ sono âZWAMESSAGEâ e âZWAMEDIAITEMâ.
Aspetto della tabella âZWAMESSAGEâ:

Struttura della tabella âZWAMESSAGEâ
| Nome del campo | Significato |
|---|---|
| Z_PK | numero progressivo della registrazione (nella tabella SQL) |
| Z_ENT | identificatore della tabella, ha valore â9â |
| Z_OPT | sconosciuto, di solito contiene valori da â1â a â6â |
| ZCHILDMESSAGESDELIVEREDCOUNT | sconosciuto, di solito contiene il valore â0â |
| ZCHILDMESSAGESPLAYEDCOUNT | sconosciuto, di solito contiene il valore â0â |
| ZCHILDMESSAGESREADCOUNT | sconosciuto, di solito contiene il valore â0â |
| ZDATAITEMVERSION | sconosciuto, di solito contiene valore â3â, probabilmente è un indicatore del messaggio di testo |
| ZDOCID | sconosciuto |
| ZENCRETRYCOUNT | sconosciuto, di solito contiene il valore â0â |
| ZFILTEREDRECIPIENTCOUNT | sconosciuto, di solito contiene valori â0â, â2â, â256â |
| ZISFROMME | direzione del messaggio: â0â â in entrata, â1â â in uscita |
| ZMESSAGEERRORSTATUS | stato di consegna del messaggio. Se il messaggio è stato inviato/ricevuto, ha valore â0â |
| ZMESSAGETYPE | tipo di messaggio inviato |
| ZSORT | sconosciuto |
| ZSPOTLIGHSTATUS | sconosciuto |
| ZSTARRED | sconosciuto, non utilizzato |
| ZCHATSESSION | sconosciuto |
| ZGROUPMEMBER | sconosciuto, non utilizzato |
| ZLASTSESSION | sconosciuto |
| ZMEDIAITEM | sconosciuto |
| ZMESSAGEINFO | sconosciuto |
| ZPARENTMESSAGE | sconosciuto, non utilizzato |
| ZMESSAGEDATE | timestamp in formato OS X Epoch Time |
| ZSENTDATE | ora di invio del messaggio in formato OS X Epoch Time |
| ZFROMJID | WhatsApp ID del mittente |
| ZMEDIASECTIONID | contiene anno e mese di invio del file multimediale |
| ZPHASH | sconosciuto, non utilizzato |
| ZPUSHPAME | nome del contatto che ha inviato il file multimediale in formato UTF-8 |
| ZSTANZID | identificatore univoco del messaggio |
| ZTEXT | testo del messaggio |
| ZTOJID | WhatsApp ID del destinatario |
| OFFSET | offset |
Aspetto della tabella âZWAMEDIAITEMâ:

Struttura della tabella âZWAMEDIAITEMâ
| Nome del campo | Significato |
|---|---|
| Z_PK | numero progressivo della registrazione (nella tabella SQL) |
| Z_ENT | identificatore della tabella, ha valore â8â |
| Z_OPT | sconosciuto, normalmente contiene valori da â1â a â3â. |
| ZCLOUDSTATUS | contiene valore â4â se il file è stato caricato. |
| ZFILESIZE | contiene la lunghezza del file (in byte) per i file caricati |
| ZMEDIAORIGIN | sconosciuto, normalmente ha valore â0â |
| ZMOVIEDURATION | durata del file multimediale, per i file pdf può contenere il numero di pagine del documento |
| ZMESSAGE | contiene il numero sequenziale (il numero è diverso da quello indicato nella colonna âZ_PKâ) |
| ZASPECTRATIO | rapporto d'aspetto, non utilizzato, normalmente ha valore â0â |
| ZHACCURACY | sconosciuto, normalmente ha valore â0â |
| ZLATTITUDE | larghezza in pixel |
| ZLONGTITUDE | altezza in pixel |
| ZMEDIAURLDATE | timestamp in formato OS X Epoch Time |
| ZAUTHORNAME | autore (per documenti, può contenere il nome del file) |
| ZCOLLECTIONNAME | non è utilizzato |
| ZMEDIALOCALPATH | nome del file (con percorso) nel filesystem del dispositivo |
| ZMEDIAURL | URL dove si trovava il file multimediale. Se il file è stato trasferito da un abbonato a un altro, sarĂ stato crittografato e l'estensione sarĂ indicata come l'estensione del file trasferito â .enc |
| ZTHUMBNAILLOCALPATH | percorso della miniatura del file nel filesystem del dispositivo |
| ZTITLE | titolo del file |
| ZVCARDNAME | hash del file multimediale, durante il trasferimento di un file in un gruppo può contenere l'identificativo del mittente |
| ZVCARDSTRING | contiene informazioni sul tipo di file trasferito (ad esempio, image/jpeg), durante il trasferimento di un file in un gruppo può contenere l'identificativo del destinatario |
| ZXMPPTHUMBPATH | percorso della miniatura del file nel filesystem del dispositivo |
| ZMEDIAKEY | non specificato, probabilmente contiene la chiave per decrittografare il file crittografato. |
| ZMETADATA | metadati del messaggio trasferito |
| Offset | offset |
Altre tabelle interessanti del database âChatStorage.sqliteâ sono:
- âZWAPROFILEPUSHNAMEâ. Collega l'ID di WhatsApp con il nome del contatto;
- âZWAPROFILEPICTUREITEMâ. Collega l'ID di WhatsApp con l'immagine del profilo del contatto;
- âZ_PRIMARYKEYâ. La tabella contiene informazioni generali su questo database, come il numero totale di messaggi memorizzati, il numero totale di chat, ecc.
Quando si analizza WhatsApp su un dispositivo mobile con iOS, è importante prestare attenzione ai seguenti file:
- File âBackedUpKeyValue.sqliteâ. Contiene chiavi crittografiche e altre informazioni necessarie per identificare il proprietario dell'account. Si trova nel percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- File âContactsV2.sqliteâ. Contiene informazioni sui contatti dell'utente, come nome e cognome, numero di telefono, stato del contatto (in formato testo), WhatsApp ID, ecc. Si trova nel percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- File âconsumer_versionâ. Contiene il numero della versione dell'applicazione WhatsApp installata. Si trova nel percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- File âcurrent_wallpaper.jpgâ. Contiene gli sfondi attuali dell'applicazione WhatsApp. Si trova nel percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Nelle versioni precedenti dell'app sono utilizzati il file âwallpaperâ, che si trova nel percorso: â/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/â.
- File âblockedcontacts.datâ. Contiene informazioni sui contatti bloccati. Si trova nel percorso: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- File âpw.datâ. Contiene la password crittografata. Si trova nel percorso: â/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/â.
- File ânet.whatsapp.WhatsApp.plistâ (o il file âgroup.net.whatsapp.WhatsApp.shared.plistâ). Contiene informazioni sul profilo dell'account WhatsApp. Il file si trova nel percorso: â/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/â.
Il contenuto del file âgroup.net.whatsapp.WhatsApp.shared.plistâ
Ă inoltre importante prestare attenzione ai seguenti directory:
- Directory â/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/â. Contiene miniature dei contatti, gruppi (file con estensione .thumb), avatar dei contatti, avatar del proprietario dell'account WhatsApp (file âPhoto.jpgâ).
- Directory â/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/â. Contiene file multimediali e le loro miniature
- Directory â/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/â. Contiene il registro delle attivitĂ del programma (file âcalls.logâ) e backup dei registri delle attivitĂ del programma (file âcalls.backup.logâ).
- Directory â/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/â. Contiene adesivi (file in formato â.webpâ).
- Directory â/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/â. Contiene i registri delle attivitĂ del programma.
Artifact di WhatsApp in Windows
Gli artefatti di WhatsApp in Windows possono essere trovati in diverse posizioni. Prima di tutto, ci sono le directory che contengono file eseguibili e di supporto del programma (per Windows 8/10):
- âC:Program Files (x86)WhatsAppâ
- âC:Users%User profile%AppDataLocalWhatsAppâ
- âC:Users%User profile%AppDataLocalVirtualStoreProgram Files (x86)WhatsAppâ
Nella directory âC:Users%User profile%AppDataLocalWhatsAppâ si trova il file di registro âSquirrelSetup.logâ, che contiene informazioni sul controllo degli aggiornamenti e sull'installazione del programma.
Nella directory âC:Users%User profile%AppDataRoamingWhatsAppâ ci sono diverse sottodirectory:
File âmain-process.logâ contiene informazioni sul funzionamento del programma WhatsApp.
La sottodirectory âdatabasesâ contiene il file âDatabases.dbâ, ma questo file non contiene alcuna informazione su chat o contatti.
I file piÚ interessanti dal punto di vista forense sono quelli situati nella directory 'Cache'. Principalmente si tratta di file con nomi 'f_*******' (dove * è un numero da 0 a 9), contenenti file multimediali e documenti crittografati, ma tra di essi ci sono anche file non crittografati. Particolare interesse hanno i file 'data_0', 'data_1', 'data_2', 'data_3', situati nella stessa sottodirectory. I file 'data_0', 'data_1', 'data_3' contengono collegamenti esterni a file multimediali e documenti crittografati trasmessi.
Esempio di informazioni contenute nel file 'data_1'
Inoltre, il file 'data_3' può contenere file grafici.
File 'data_2' contiene avatar dei contatti (possono essere recuperati tramite ricerca nei titoli dei file).
Gli avatar contenuti nel file 'data_2':

Pertanto, nella memoria del computer non è possibile trovare le chat stesse, ma è possibile trovare:
- file multimediali;
- documenti inviati tramite WhatsApp;
- informazioni sui contatti del proprietario dell'account.
Artefatti di WhatsApp in MacOS
In MacOS è possibile trovare tipi di artefatti di WhatsApp simili a quelli presenti in Windows.
I file del programma si trovano nelle directory:
- 'C:ApplicationsWhatsApp.app'
- âC:Applications._WhatsApp.appâ
- âC:Users%User profile%LibraryPreferencesâ
- âC:Users%User profile%LibraryLogsWhatsAppâ
- âC:Users%User profile%LibrarySaved Application StateWhatsApp.savedStateâ
- âC:Users%User profile%LibraryApplication Scriptsâ
- âC:Users%User profile%LibraryApplication SupportCloudDocsâ
- âC:Users%User profile%LibraryApplication SupportWhatsApp.ShipItâ
- âC:Users%User profile%LibraryContainerscom.rockysandstudio.app-for-whatsappâ
- âC:Users%User profile% Library Mobile Documents WhatsApp Accountsâ
In questa directory si trovano sottocartelle i cui nomi corrispondono ai numeri di telefono associati al proprietario dell'account WhatsApp. - âC:Users%User profile%LibraryCachesWhatsApp.ShipItâ
In questa cartella si trova informazioni sull'installazione del programma. - âC:Users%User profile%PicturesĐодиаŃока iPhoto.photolibraryMastersâ, âC:Users%User profile%PicturesĐодиаŃока iPhoto.photolibraryThumbnailsâ
In queste cartelle si trovano file di supporto del programma, comprese le foto e le miniature dei contatti WhatsApp. - âC:Users%User profile%LibraryCachesWhatsAppâ
In questa cartella si trovano diversi database SQLite utilizzati per la memorizzazione nella cache dei dati. - âC:Users%User profile%LibraryApplication SupportWhatsAppâ
In questa cartella si trovano diverse sottocartelle:
Nella directory âC:Users%User profile%LibraryApplication SupportWhatsAppCacheâ ci sono file 'data_0', 'data_1', 'data_2', 'data_3' e file con i nomi 'f_*******' (dove * è un numero da 0 a 9). Le informazioni contenute in questi file sono descritte nella sezione ÂŤArtefatti di WhatsApp in WindowsÂť.Nella directory âC:Users%User profile%LibraryApplication SupportWhatsAppIndexedDBâ possono contenere file multimediali (i file non hanno estensioni).
File âmain-process.logâ contiene informazioni sul funzionamento del programma WhatsApp.
Fonti
- Analisi forense di WhatsApp Messenger su smartphone Android, di Cosimo Anglano, 2014.
- Whatsapp Forensics: Esplorazione del sistema di file e database nell'applicazione Android e iOS di Ahmad Pratama, 2014.
Negli articoli successivi di questa serie:
Decrittazione dei database crittografati di WhatsAppArticolo che fornisce informazioni su come avviene la generazione della chiave di crittografia di WhatsApp e esempi pratici che mostrano come decrittare i database crittografati di questa applicazione.
Estrazione dei dati di WhatsApp da archivi cloudArticolo in cui parleremo dei dati di WhatsApp memorizzati nei cloud, descrivendo i metodi per estrarre questi dati da archivi cloud.
Estrazione dei dati di WhatsApp: esempi praticiArticolo che descrive passo dopo passo quali programmi e come utilizzare per estrarre i dati di WhatsApp da vari dispositivi.
Fonte: habr.com








