WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?

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/’.

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
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:

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
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:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
    Struttura della tabella

    Nome del campoSignificato
    _idnumero progressivo della registrazione (nella tabella SQL)
    jidWhatsApp ID del contatto, registrato nel formato @s.whatsapp.net
    is_whatsapp_usercontiene '1' se il contatto corrisponde a un effettivo utente di WhatsApp, '0' altrimenti
    statuscontiene 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 del 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 su WhatsApp (nome visualizzato nel profilo del contatto)
    sort_namenome del contatto utilizzato nelle operazioni di ordinamento
    nicknamenome contatto in WhatsApp (visualizza il nome indicato nel profilo del contatto)
    aziendaazienda (visualizza l'azienda indicata nel profilo del contatto)
    titolosaluto (signora/signore; visualizza il saluto impostato nel 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 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:

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
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:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?

  • ‘message_fts_content’
    Contiene il testo dei messaggi inviati.

    Aspetto della tabella:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?

  • ‘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:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
    Struttura della tabella

    Nome del campoSignificato
    _idnumero progressivo della registrazione (nella tabella SQL)
    key_remote_jidWhatsApp ID del partner di comunicazione
    key_from_medirezione del messaggio: ‘0’ – in entrata, ‘1’ — in uscita
    key_ididentificatore univoco del messaggio
    statusstato del messaggio: '0' – consegnato, '4' – in attesa di 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 nel formato Unix Epoch Time (ms), il valore è preso dall'orologio del dispositivo
    media_urlcontiene l'URL del file trasmesso (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_mime_typetipo MIME del file trasmesso (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 geografici
    media_sizedimensione del file trasmesso (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_namenome del file trasmesso (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘2’, ‘3’)
    media_captionContiene le parole ‘audio’, ‘video’ per i relativi valori del parametro ‘media_wa_type’ (quando il parametro ‘media_wa_type’ è uguale a ‘1’, ‘3’)
    media_hashhash 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_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 geografici: latitudine (quando il parametro ‘media_wa_type’ è uguale a ‘5’)
    longitudedati geografici: longitudine (quando il parametro ‘media_wa_type’ è uguale a ‘5’)
    thumb_imageinformazioni di servizio
    remote_recourceID del mittente (solo per 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 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_timestampil tempo di apertura (lettura) del messaggio, contiene un timestamp nel formato Unix Epoch Time (ms), il valore proviene dall'orologio del dispositivo
    played_device_timestampil tempo di riproduzione del messaggio, contiene un timestamp nel formato Unix Epoch Time (ms), il valore proviene 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 geolocalizzati
    starrednon è utilizzato
    quoted_row_idsconosciuto, di solito contiene il valore ‘0’
    mentioned_jidsnon è utilizzato
    multicast_idnon è utilizzato
    offsetoffset

    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:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?

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

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • 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:

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
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:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?

  • 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’:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?

  • 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’:

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
Le tabelle più informative nel database ‘ChatStorage.sqlite’ sono ‘ZWAMESSAGE’ e ‘ZWAMEDIAITEM’.

Aspetto della tabella ‘ZWAMESSAGE’:

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
Struttura della tabella ‘ZWAMESSAGE’

Nome del campoSignificato
Z_PKnumero progressivo della registrazione (nella tabella SQL)
Z_ENTidentificatore della tabella, ha valore ‘9’
Z_OPTsconosciuto, di solito 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, di solito contiene valore ‘3’, probabilmente è un indicatore del messaggio di testo
ZDOCIDsconosciuto
ZENCRETRYCOUNTsconosciuto, di solito contiene il valore ‘0’
ZFILTEREDRECIPIENTCOUNTsconosciuto, di solito contiene valori ‘0’, ‘2’, ‘256’
ZISFROMMEdirezione del messaggio: ‘0’ – in entrata, ‘1’ — in uscita
ZMESSAGEERRORSTATUSstato di consegna del messaggio. Se il messaggio è stato inviato/ricevuto, ha valore ‘0’
ZMESSAGETYPEtipo di messaggio inviato
ZSORTsconosciuto
ZSPOTLIGHSTATUSsconosciuto
ZSTARREDsconosciuto, non utilizzato
ZCHATSESSIONsconosciuto
ZGROUPMEMBERsconosciuto, non utilizzato
ZLASTSESSIONsconosciuto
ZMEDIAITEMsconosciuto
ZMESSAGEINFOsconosciuto
ZPARENTMESSAGEsconosciuto, non utilizzato
ZMESSAGEDATEtimestamp in formato OS X Epoch Time
ZSENTDATEora di invio del messaggio in 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 univoco del messaggio
ZTEXTtesto del messaggio
ZTOJIDWhatsApp ID del destinatario
OFFSEToffset

Aspetto della tabella ‘ZWAMEDIAITEM’:

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
Struttura della tabella ‘ZWAMEDIAITEM’

Nome del campoSignificato
Z_PKnumero progressivo della registrazione (nella tabella SQL)
Z_ENTidentificatore della tabella, ha valore ‘8’
Z_OPTsconosciuto, normalmente 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, normalmente ha valore ‘0’
ZMOVIEDURATIONdurata del file multimediale, per i file pdf può contenere il numero di pagine del documento
ZMESSAGEcontiene il numero sequenziale (il numero è diverso da quello indicato nella colonna ‘Z_PK’)
ZASPECTRATIOrapporto d'aspetto, non utilizzato, normalmente ha valore ‘0’
ZHACCURACYsconosciuto, normalmente ha valore ‘0’
ZLATTITUDElarghezza in pixel
ZLONGTITUDEaltezza in pixel
ZMEDIAURLDATEtimestamp in formato OS X Epoch Time
ZAUTHORNAMEautore (per documenti, può contenere il nome del file)
ZCOLLECTIONNAMEnon è utilizzato
ZMEDIALOCALPATHnome del file (con percorso) nel filesystem del dispositivo
ZMEDIAURLURL 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
ZTHUMBNAILLOCALPATHpercorso della miniatura del file nel filesystem del dispositivo
ZTITLEtitolo del file
ZVCARDNAMEhash del file multimediale, durante il trasferimento di un file in un gruppo può contenere l'identificativo del mittente
ZVCARDSTRINGcontiene 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
ZXMPPTHUMBPATHpercorso della miniatura del file nel filesystem del dispositivo
ZMEDIAKEYnon specificato, probabilmente contiene la chiave per decrittografare il file crittografato.
ZMETADATAmetadati del messaggio trasferito
Offsetoffset

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’ WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
È 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:

WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
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'WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
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':

WhatsApp in tasca: dove e come è possibile scoprire artefatti 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.

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:

    WhatsApp in tasca: dove e come è possibile scoprire artefatti forensi?
    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

  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:

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

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