WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?

Vuoi sapere 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, un esperto del Laboratorio di Computer Forensics di Group-IB. Igor Mikhailov apre una serie di pubblicazioni sull'analisi forense di WhatsApp e su quali informazioni possono essere ottenute dall'analisi del dispositivo.

Dobbiamo subito sottolineare che in diversi sistemi operativi vengono memorizzati diversi tipi di artefatti WhatsApp, e se da un dispositivo l'analista può estrarre determinati tipi di dati WhatsApp, ciò non significa affatto che simili tipi di dati possano essere estratti da un altro dispositivo. Ad esempio, se si preleva un'unità centrale con sistema operativo Windows, è probabile che non vengano trovate chat di WhatsApp sui suoi dischi (eccetto per le copie di backup dei dispositivi iOS, che possono essere trovate su questi stessi supporti). Quando si estraggono laptop e dispositivi mobili ci saranno peculiarità. Parliamo di questo più nel dettaglio.

Artefatti WhatsApp in un dispositivo Android

Per estrarre gli artefatti WhatsApp da un dispositivo che esegue il sistema operativo Android, l'analista deve avere i diritti di superutente ('root') sul dispositivo analizzato o avere la possibilità di estrarre in altro modo un dump fisico della memoria del dispositivo o il suo filesystem (ad esempio, sfruttando vulnerabilità software di un particolare dispositivo mobile).

I file dell'applicazione si trovano nella memoria del telefono nella sezione in cui vengono memorizzati i dati dell'utente. In genere, questa sezione è chiamata 'userdata'. Le sottocartelle e i file del programma si trovano nel percorso: '/data/data/com.whatsapp/'.

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
I principali file che contengono artefatti forensi di WhatsApp nel sistema operativo Android sono i database 'wa.db' e 'msgstore.db'.

Nel database 'wa.db' è presente un elenco completo dei contatti dell'utente di WhatsApp, inclusi numero di telefono, nome visualizzato, timestamp e qualsiasi altra informazione fornita durante la registrazione su WhatsApp. Il file 'wa.db' si trova nel percorso: '/data/data/com.whatsapp/databases/' e ha la seguente struttura:

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Le tabelle più interessanti nel database 'wa.db' per l'analista sono:

  • 'wa_contacts'
    Questa tabella contiene informazioni sui contatti: id del contatto in WhatsApp, informazioni sullo stato, nome utente visualizzato, timestamp, ecc.

    Aspetto della tabella:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
    Struttura della tabella

    Nome del campoValore
    _idnumero progressivo del record (nella tabella SQL)
    jidWhatsApp ID del contatto, registrato nel formato @s.whatsapp.net
    is_whatsapp_usercontiene '1' se il contatto è un reale utente WhatsApp, '0' altrimenti
    statocontiene il testo visualizzato nello stato del contatto
    status_timestampcontiene un timestamp nel formato Unix Epoch Time (ms)
    numbernumero di telefono associato al contatto
    raw_contact_idnumero progressivo del contatto
    display_namenome visualizzato del contatto
    phone_typetipo di telefono
    phone_labeletichetta associata al numero di contatto
    unseen_msg_countnumero di messaggi inviati dal contatto che non sono stati letti dal destinatario
    photo_tscontiene un timestamp nel formato Unix Epoch Time
    thumb_tscontiene un timestamp nel formato Unix Epoch Time
    photo_id_timestampcontiene un timestamp nel formato Unix Epoch Time (ms)
    given_nameil valore del campo corrisponde a 'display_name' per ogni contatto
    wa_namenome del contatto in WhatsApp (il nome visualizzato nell’profilo del contatto)
    sort_namenome del contatto usato nelle operazioni di ordinamento
    nicknamenickname del contatto in WhatsApp (visualizzato il nickname nell'profilo del contatto)
    companyazienda (visualizzata l'azienda nell’profilo del contatto)
    titletitolo (sig.ra/sig.) ; visualizzato il titolo impostato nell’profilo del contatto
    offsetoffset
  • '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 numero di contatto, testo del messaggio, stato del messaggio, timestamp, dettagli sui file trasferiti inclusi nei messaggi, ecc. File 'msgstore.db' si trova nel percorso: '/data/data/com.whatsapp/databases/' e ha la seguente struttura:

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Le tabelle più interessanti nel file 'msgstore.db' per l'analista sono:

  • 'sqlite_sequence'
    Questa tabella contiene informazioni generali su questo database, come il numero totale di messaggi memorizzati, il numero totale di chat, ecc.

    Aspetto della tabella:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?

  • 'message_fts_content'
    Contiene il testo dei messaggi inviati.

    Aspetto della tabella:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?

  • 'messages'
    Questa tabella contiene informazioni come numero di contatto, testo del messaggio, stato del messaggio, timestamp, dettagli sui file trasferiti inclusi nei messaggi.

    Aspetto della tabella:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
    Struttura della tabella

    Nome del campoValore
    _idnumero progressivo del record (nella tabella SQL)
    key_remote_jidWhatsApp ID del partner di comunicazione
    key_from_medirezione del messaggio: '0' – in arrivo, '1' — in uscita
    key_ididentificatore unico del messaggio
    statostato del messaggio: ‘0’ – consegnato, ‘4’ – in attesa, server‘5’ – ricevuto a destinazione, ‘6’ – messaggio di controllo, ‘13’ – messaggio aperto dal destinatario (letto)
    need_pushha valore ‘2’, se si tratta di un messaggio broadcast, altrimenti contiene ‘0’
    datatesto del messaggio (quando il parametro ‘media_wa_type’ è uguale a ‘0’)
    timestampcontiene un timestamp in formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo
    media_urlcontiene l'URL del file inviato (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_mime_typetipo MIME del file inviato (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_wa_typetipo di messaggio: ‘0’ – testo, ‘1’ – file grafico, ‘2’ – file audio, ‘3’ – file video, ‘4’ – scheda contatto, ‘5’ – dati geologici
    media_sizedimensione del file inviato (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_namenome del file inviato (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_captionContiene le parole ‘audio’, ‘video’ per i valori corrispondenti del parametro ‘media_wa_type’ (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘3’)
    media_hashhash del file inviato codificato in base64, calcolato con l'algoritmo HAS-256 (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_durationdurata in secondi per il file multimediale (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    originha valore ‘2’, se si tratta di un messaggio broadcast, altrimenti contiene ‘0’
    latitudedati geologici: latitudine (quando il parametro ‘media_wa_type’ è uguale a ‘5’)
    longitudedati geologici: longitudine (quando il parametro ‘media_wa_type’ è uguale a ‘5’)
    thumb_imageinformazioni di servizio
    remote_recourceID del mittente (solo per le chat di gruppo)
    received_timestamptempo 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_timestampnon utilizzato, di solito ha valore ‘-1’
    receipt_server_timestamptempo di ricezione 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 abbonato, 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)read_device_timestamp
    read_device_timestamptempo di apertura (lettura) del messaggio, contiene un timestamp nel formato Unix Epoch Time (ms), il valore viene preso dall'orologio del dispositivo
    played_device_timestamptempo di riproduzione del messaggio, contiene un timestamp nel formato Unix Epoch Time (ms), il valore viene preso dall'orologio del dispositivo
    raw_dataminiatura del file trasmesso (quando il parametro ‘media_wa_type’ è uguale a ‘1’ o ‘3’)
    recipient_countnumero di destinatari (per messaggi broadcast)
    participant_hashutilizzato durante la trasmissione di messaggi con dati geologici
    starrednon è utilizzato
    quoted_row_idsconosciuto, di solito contiene il valore ‘0’
    mentioned_jidsnon è utilizzato
    multicast_idnon è utilizzato
    offsetoffset

    Questo elenco di campi non è esaustivo. In diverse versioni di WhatsApp, alcuni campi possono essere presenti o assenti. Possono esserci 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:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?

Inoltre, durante l'analisi di WhatsApp su un dispositivo mobile con sistema Android, è necessario prestare attenzione ai seguenti file:

  • all'interno di ogni container per impostazione predefinita apparirà così: ‘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/’ (scheda SD virtuale), ‘/mnt/sdcard/WhatsApp/Databases/’ (scheda SD fisica).
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘key’. Contiene una chiave crittografica. Si trova nel percorso: ‘/data/data/com.whatsapp/files/’. Utilizzato per decrittografare i backup crittografati di WhatsApp.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘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)
    …
    Hey there! I am using WhatsApp. (messaggio visualizzato nello stato dell'account)
    …
    Alex (nome del proprietario dell'account)
    … 
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘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

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘axolotl.db’. Contiene chiavi crittografiche e altri dati necessari per identificare il proprietario dell'account. Si trova nel percorso: '/data/data/com.whatsapp/databases/'.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘chatsettings.db’. Contiene informazioni sulla configurazione dell'applicazione.
  • all'interno di ogni container per impostazione predefinita apparirà così: 'wa.db'. Contiene dettagli sui contatti. È un database molto interessante (sotto il profilo forense) e informativo. Può contenere informazioni dettagliate sui contatti eliminati.

Si deve prestare attenzione anche 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 comunque file grafici in 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 backup dei registri di lavoro del programma (file con nomi nel formato whatsapp-gggg-mm-gg.1.log.gz).

File di registro di WhatsApp:

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Frammento di 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] password file missing or unreadable
2017-01-10 09:37:09.782 LL_I D [1:main] statistics Text Messages: 59 inviati, 82 ricevuti / Media Messages: 1 inviato (0 byte), 0 ricevuti (9850158 byte) / Offline Messages: 81 ricevuti (19522 msec delay medio) / Message Service: 116075 byte inviati, 211729 byte ricevuti / Voip Calls: 1 chiamata in uscita, 0 in arrivo, 2492 byte inviati, 1530 byte ricevuti / Google Drive: 0 byte inviati, 0 byte ricevuti / Roaming: 1524 byte inviati, 1826 byte ricevuti / Total Data: 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 | tempo trascorso: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 file audio ricevuti.
  • Directory ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Contiene file audio inviati.
  • Directory ‘/data/media/0/WhatsApp/Media/WhatsApp Images/’. Contiene file grafici ricevuti.
  • Directory ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Contiene file grafici inviati.
  • Directory ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Contiene file video ricevuti.
  • Directory ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Contiene file video inviati.
  • Directory ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Contiene file grafici associati al proprietario dell'account WhatsApp.
  • Per risparmiare spazio nella memoria dello smartphone Android, parte dei dati di WhatsApp può essere memorizzata sulla scheda SD. Sulla scheda SD, nella directory principale, è presente la cartella ‘WhatsApp’, dove possono essere trovati i seguenti artefatti di questo programma:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?

  • Directory ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Contiene copie di file che sono stati trasferiti ad altri utenti di WhatsApp.
  • Directory ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Contiene file eliminati.
  • Directory ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Contiene backup crittografati. Possono essere decrittografati se si dispone di un file ‘key’, estratto dalla memoria del dispositivo analizzato.

    I file presenti nella sotto-cartella ‘Databases’:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?

  • Directory ‘Media’ (‘/mnt/sdcard/WhatsApp/Media/’). Contiene sottodirectory ‘WallPaper’, ‘WhatsApp Audio’, ‘WhatsApp Images’, ‘WhatsApp Profile Photos’, ‘WhatsApp Video’, ‘WhatsApp Voice Notes’, in cui si trovano 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 nella scheda SD può essere presente una cartella ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). In questa cartella ci sono file che contengono 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 resti di WhatsApp siano memorizzati in un’altra posizione. Questo è dovuto a modifiche nello spazio di archiviazione dei dati delle applicazioni da parte del software di sistema del dispositivo mobile. Ad esempio, nei dispositivi Xiaomi c'è una funzione per creare un secondo spazio di lavoro (‘SecondSpace’). Attivando questa funzione, cambia la posizione dei dati. Così, se in un normale dispositivo mobile con sistema operativo Android i dati dell’utente sono memorizzati nella cartella ‘/data/user/0/’ (che è un collegamento ai classici ‘/data/data/’), nel secondo spazio di lavoro i dati delle applicazioni sono memorizzati nella cartella ‘/data/user/10/’. Cioè, prendendo come esempio la posizione del file 'wa.db':

  • in un normale smartphone con sistema operativo Android: /data/user/0/com.whatsapp/databases/wa.db’ (che è 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’.

Resti di WhatsApp in un dispositivo iOS

A differenza del sistema operativo Android, in iOS i dati dell’applicazione WhatsApp vengono trasferiti in un backup (backup di iTunes). 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 esaminato. La maggior parte delle informazioni significative è contenuta nel database ‘ChatStorage.sqlite’, che si trova lungo il percorso: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (in alcune applicazioni questo percorso viene visualizzato come ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).

Struttura ‘ChatStorage.sqlite’:

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Le tabelle più informative nel database ‘ChatStorage.sqlite’ sono ‘ZWAMESSAGE’ e ‘ZWAMEDIAITEM’.

Aspetto della tabella ‘ZWAMESSAGE’:

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Struttura della tabella ‘ZWAMESSAGE’

Nome del campoValore
Z_PKnumero progressivo del record (nella tabella SQL)
Z_ENTidentificatore della tabella, ha valore ‘9’
Z_OPTsconosciuto, solitamente contiene valori da ‘1’ a ‘6’
ZCHILDMESSAGESDELIVEREDCOUNTsconosciuto, di solito contiene il valore ‘0’
ZCHILDMESSAGESPLAYEDCOUNTsconosciuto, di solito contiene il valore ‘0’
ZCHILDMESSAGESREADCOUNTsconosciuto, di solito contiene il valore ‘0’
ZDATAITEMVERSIONsconosciuto, solitamente contiene valore ‘3’, probabilmente è un indicatore del messaggio di testo
ZDOCIDsconosciuto
ZENCRETRYCOUNTsconosciuto, di solito contiene il valore ‘0’
ZFILTEREDRECIPIENTCOUNTsconosciuto, solitamente contiene valori ‘0’, ‘2’, ‘256’
ZISFROMMEdirezione del messaggio: '0' – in arrivo, '1' — in uscita
ZMESSAGEERRORSTATUSstato della trasmissione del messaggio. Se il messaggio è stato inviato/ricevuto, ha valore ‘0’
ZMESSAGETYPEtipo del messaggio trasmesso
ZSORTsconosciuto
ZSPOTLIGHSTATUSsconosciuto
ZSTARREDsconosciuto, non utilizzato
ZCHATSESSIONsconosciuto
ZGROUPMEMBERsconosciuto, non utilizzato
ZLASTSESSIONsconosciuto
ZMEDIAITEMsconosciuto
ZMESSAGEINFOsconosciuto
ZPARENTMESSAGEsconosciuto, non utilizzato
ZMESSAGEDATEtimestamp nel formato OS X Epoch Time
ZSENTDATEtempo di invio del messaggio nel formato OS X Epoch Time
ZFROMJIDWhatsApp ID del mittente
ZMEDIASECTIONIDcontiene anno e mese di invio del file multimediale
ZPHASHsconosciuto, non utilizzato
ZPUSHPAMEnome del contatto che ha inviato il file multimediale in formato UTF-8
ZSTANZIDidentificatore unico del messaggio
ZTEXTtesto del messaggio
ZTOJIDWhatsApp ID del destinatario
OFFSEToffset

Aspetto della tabella ‘ZWAMEDIAITEM’:

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Struttura della tabella ‘ZWAMEDIAITEM’

Nome del campoValore
Z_PKnumero progressivo del record (nella tabella SQL)
Z_ENTidentificatore della tabella, ha valore ‘8’
Z_OPTsconosciuto, solitamente contiene valori da ‘1’ a ‘3’.
ZCLOUDSTATUScontiene valore ‘4’ se il file è stato caricato.
ZFILESIZEcontiene la lunghezza del file (in byte) per i file caricati
ZMEDIAORIGINsconosciuto, solitamente ha valore ‘0’
ZMOVIEDURATIONdurata del file multimediale, per i file pdf può contenere il numero di pagine del documento
ZMESSAGEcontiene un numero sequenziale (il numero è diverso da quello indicato nella colonna ‘Z_PK’)
ZASPECTRATIOrapporto d'aspetto, non utilizzato, solitamente ha valore ‘0’
ZHACCURACYsconosciuto, solitamente ha valore ‘0’
ZLATTITUDElarghezza in pixel
ZLONGTITUDEaltezza in pixel
ZMEDIAURLDATEtimestamp nel formato OS X Epoch Time
ZAUTHORNAMEautore (per documenti, può contenere il nome del file)
ZCOLLECTIONNAMEnon è utilizzato
ZMEDIALOCALPATHnome del file (con specifica del percorso) nel file system del dispositivo
ZMEDIAURLURL dove si trovava il file multimediale. Se il file è stato trasferito da un abbonato all'altro, è stato crittografato, e la sua estensione sarà indicata come estensione del file trasferito — .enc
ZTHUMBNAILLOCALPATHpercorso della miniatura del file nel file system del dispositivo
ZTITLEtitolo del file
ZVCARDNAMEhash del file multimediale, durante la trasmissione del file in gruppo può contenere l'identificativo del mittente
ZVCARDSTRINGcontiene informazioni sul tipo di file trasmesso (es. image/jpeg), durante la trasmissione del file in gruppo può contenere l'identificativo del destinatario
ZXMPPTHUMBPATHpercorso della miniatura del file nel file system del dispositivo
ZMEDIAKEYsconosciuto, probabilmente contiene la chiave per decifrare il file crittografato.
ZMETADATAmetadati del messaggio trasmesso
Offsetoffset

Altre interessanti tabelle del database ‘ChatStorage.sqlite’ la consolidazione dell'intero meccanismo di selezione dei dati in un'unica query

  • ‘ZWAPROFILEPUSHNAME’. Collega l'ID di WhatsApp al nome del contatto;
  • ‘ZWAPROFILEPICTUREITEM’. Collega l'ID di WhatsApp all'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.

Durante l'analisi di WhatsApp su un dispositivo mobile con iOS, è necessario prestare attenzione ai seguenti file:

  • all'interno di ogni container per impostazione predefinita apparirà così: ‘BackedUpKeyValue.sqlite’. Contiene chiavi crittografiche e altri dati necessari per identificare il proprietario dell'account. Si trova nel percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘ContactsV2.sqlite’. Contiene informazioni sui contatti dell'utente, come nome e cognome, numero di telefono, stato del contatto (in forma di testo), ID di WhatsApp, ecc. Si trova nel percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘consumer_version’. Contiene il numero di versione dell'applicazione WhatsApp installata. Si trova nel percorso: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘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, viene utilizzato il file ‘wallpaper’, che si trova nel percorso: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘blockedcontacts.dat’. Contiene informazioni sui contatti bloccati. Si trova nel percorso: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘pw.dat’. Contiene la password crittografata. Si trova nel percorso: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
  • all'interno di ogni container per impostazione predefinita apparirà così: ‘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’ WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Si deve prestare attenzione anche ai seguenti directory:

  • Directory ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Contiene miniature dei contatti, dei 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à dell'app (file ‘calls.log’) e backup dei registri delle attività dell'app (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 log delle attività dell'app.

Artefatti di WhatsApp in Windows

Gli artefatti di WhatsApp in Windows possono essere trovati in diversi luoghi. Innanzitutto, ci sono le directory che contengono file eseguibili e ausiliari dell'app (per Windows 8/10):

  • ‘C:Program Files (x86)WhatsApp’
  • 'C:Users%Profilo utente%AppDataLocalWhatsApp'
  • 'C:Users%Profilo utente%AppDataLocalVirtualStoreProgram Files (x86)WhatsApp'

Nella directory 'C:Users%Profilo utente%AppDataLocalWhatsApp' si trova il file di log 'SquirrelSetup.log', che contiene informazioni sul controllo degli aggiornamenti e sull'installazione del programma.

Nella directory 'C:Users%Profilo utente%AppDataRoamingWhatsApp' ci sono diverse sottocartelle:

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
all'interno di ogni container per impostazione predefinita apparirà così: 'main-process.log' contiene informazioni sul funzionamento del programma WhatsApp.

Sottocartella 'databases' contiene il file 'Databases.db', ma questo file non contiene alcuna informazione su chat o contatti.

I file di particolare interesse dal punto di vista forense sono quelli presenti nella cartella 'Cache'. Si tratta principalmente 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 destano i file 'data_0', 'data_1', 'data_2', 'data_3', presenti nella stessa sottocartella. I file 'data_0', 'data_1', 'data_3' contengono collegamenti esterni ai file multimediali e documenti crittografati trasmessi.

Esempio delle informazioni contenute nel file 'data_1'WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
Inoltre, il file 'data_3' può contenere file grafici.

all'interno di ogni container per impostazione predefinita apparirà così: 'data_2' contiene avatar dei contatti (possono essere recuperati cercando nei titoli dei file).

Gli avatar presenti nel file 'data_2':

WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
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.

Artifact di WhatsApp in MacOS

In MacOS si possono trovare tipi di artefatti WhatsApp simili a quelli presenti in Windows.

I file del programma si trovano nelle cartelle:

  • 'C:ApplicationsWhatsApp.app'
  • 'C:Applications._WhatsApp.app'
  • 'C:Users%Profilo utente%LibraryPreferences'
  • 'C:Users%Profilo utente%LibraryLogsWhatsApp'
  • 'C:Users%Profilo utente%LibrarySaved Application StateWhatsApp.savedState'
  • 'C:Users%Profilo utente%LibraryApplication Scripts'
  • 'C:Users%Profilo utente%LibraryApplication SupportCloudDocs'
  • 'C:Users%Profilo utente%LibraryApplication SupportWhatsApp.ShipIt'
  • 'C:Users%Profilo utente%LibraryContainerscom.rockysandstudio.app-for-whatsapp'
  • 'C:Users%Profilo utente%LibraryMobile Documents WhatsApp Accounts'
    In questa cartella ci sono sottocartelle i cui nomi sono numeri di telefono associati al proprietario dell'account WhatsApp.
  • 'C:Users%Profilo utente%LibraryCachesWhatsApp.ShipIt'
    In questa cartella si trovano informazioni sull'installazione del programma.
  • 'C:Users%Profilo utente%PicturesLibreria iPhoto.photolibraryMasters', 'C:Users%Profilo utente%PicturesLibreria iPhoto.photolibraryThumbnails'
    In questi cataloghi sono presenti file di servizio dell'applicazione, comprese foto e miniature dei contatti WhatsApp.
  • 'C:Users%User profile%LibraryCachesWhatsApp'
    In questa cartella ci sono diversi database SQLite utilizzati per la memorizzazione nella cache dei dati.
  • 'C:Users%User profile%LibraryApplication SupportWhatsApp'
    In questa cartella ci sono diverse sottocartelle:

    WhatsApp a portata di mano: dove e come è possibile individuare reperti forensi?
    Nella directory 'C:Users%User profile%LibraryApplication SupportWhatsAppCache' ci sono file 'data_0', 'data_1', 'data_2', 'data_3' e file con nomi 'f_*******' (dove * è un numero da 0 a 9). Informazioni su quali dati contengono questi file sono descritte nella sezione "Artefatti WhatsApp su Windows".

    Nella directory 'C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB' possono contenere file multimediali (i file non hanno estensioni).

    all'interno di ogni container per impostazione predefinita apparirà così: 'main-process.log' contiene informazioni sul funzionamento del programma WhatsApp.

Fonti

  1. Analisi forense di WhatsApp Messenger su smartphone Android, di Cosimo Anglano, 2014.
  2. Whatsapp Forensics: Esplorazione del sistema di file e database nell'applicazione Android e iOS di Ahmad Pratama, 2014.

Negli articoli successivi di questa serie:

Decodifica dei database crittografati di WhatsAppArticolo in cui verranno fornite informazioni su come avviene la generazione della chiave di crittografia di WhatsApp, con esempi pratici che mostrano come decifrare i database crittografati di quest'app.
Estrazione dei dati di WhatsApp da archivi cloudArticolo in cui descriveremo quali dati di WhatsApp sono conservati nel cloud e i metodi per estrarre questi dati dagli archivi cloud.
Estrazione dei dati di WhatsApp: esempi praticiArticolo in cui verrà descritto passo dopo passo quali programmi utilizzare e come eseguire l'estrazione dei dati di WhatsApp da vari dispositivi.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster