
Doriți să știți ce tipuri de artefacte criminalistice WhatsApp există în diferite sisteme de operare și unde anume pot fi găsite — atunci acest articol este pentru dumneavoastră. În această lucrare, specialistul laboratorului de criminalistică Group-IB Igor Mihailov deschide o serie de publicații despre examinarea criminalistică a WhatsApp și despre ce informații pot fi obținute în urma analizei dispozitivului.
Să subliniem de la început că în diferite sisteme de operare sunt stocate diferite tipuri de artefacte WhatsApp, iar faptul că dintr-un dispozitiv investigatorul poate extrage anumite tipuri de date WhatsApp, nu înseamnă că aceste tipuri de date pot fi extrase și din alt dispozitiv. De exemplu, dacă se extrage un unitate centrală care funcționează pe sistemul de operare Windows, atunci este probabil ca pe aceste discuri să nu fie găsite chat-urile WhatsApp (excepția o constituie copiile de rezervă ale dispozitivelor iOS, care pot fi găsite pe aceste stocări). În cazul extragerii laptopurilor și a dispozitivelor mobile, vor exista caracteristici proprii. Să discutăm despre aceasta în detaliu.
Artefactele WhatsApp pe dispozitivele Android
Pentru a extrage artefactele WhatsApp dintr-un dispozitiv care rulează sistemul de operare Android, investigatorul trebuie să aibă drepturi de superutilizator ('root') pe dispozitivul examinat sau să aibă capacitatea de a extrage în alt mod un dump fizic al memoriei dispozitivului sau a sistemului său de fișiere (de exemplu, utilizând vulnerabilitățile software ale unui dispozitiv mobil specific).
Fișierele aplicației sunt amplasate în memoria telefonului într-o secțiune în care se păstrează datele utilizatorului. De regulă, această secțiune poartă numele 'userdata'. Subdirectoarele și fișierele aplicației sunt amplasate la calea: '/data/data/com.whatsapp/'.

Fișierele principale care conțin artefacte criminalistice WhatsApp în sistemul de operare Android sunt bazele de date 'wa.db' și 'msgstore.db'.
În baza de date 'wa.db' se află lista completă a contactelor utilizatorului WhatsApp, inclusiv numărul de telefon, numele afișat, timpii și orice alte informații furnizate în timpul înregistrării în WhatsApp. Fișierul 'wa.db' se află la calea: '/data/data/com.whatsapp/databases/' și are următoarea structură:

Cele mai interesante tabele din baza de date 'wa.db' pentru investigator sunt:
- 'wa_contacts'
Această tabelă conține informații despre contacte: ID-ul contactului în WhatsApp, informații despre status, numele de utilizator afișat, marcajele temporale etc.Aspectul tabelului:

Structura tabeluluiNumele câmpului Valoare _id numărul secvențial al înregistrării (în tabela SQL) jid WhatsApp ID al contactului, înregistrat în formatul @s.whatsapp.net is_whatsapp_user conține '1' dacă contactul corespunde unui utilizator real WhatsApp, '0' în caz contrar status conține textul afișat în statusul contactului status_timestamp conține un marcaj temporal în format Unix Epoch Time (ms) number numărul de telefon asociat cu contactul raw_contact_id numărul secvențial al contactului display_name numele afișat al contactului phone_type tipul de telefon phone_label etichetă asociată cu numărul de contact unseen_msg_count numărul mesajelor trimise de contact dar ne citite de către receptor photo_ts conține un marcaj temporal în format Unix Epoch Time thumb_ts conține un marcaj temporal în format Unix Epoch Time photo_id_timestamp conține un marcaj temporal în format Unix Epoch Time (ms) given_name valoarea câmpului coincide cu 'display_name' pentru fiecare contact wa_name numele contactului în WhatsApp (numele afișat în profilul contactului) sort_name numele contactului folosit în operațiunile de sortare nickname pseudosubiectul contactului în WhatsApp (numele de utilizator din profilul contactului) company compania (numele firmei afișat în profilul contactului) titlul știre (doamnă/domn; știrea setată în profilul contactului) offset offset - 'sqlite_sequence'
Această tabelă conține informații despre numărul de contacte; - 'android_metadata'
Această tabelă conține informații despre localizarea lingvistică a WhatsApp.
În baza de date 'msgstore.db' conține informații despre mesajele transmise, cum ar fi numărul de contact, textul mesajului, statusul mesajului, marcajele temporale, detalii despre fișierele trimise incluse în mesaje etc. Fișierul 'msgstore.db' se află la calea: '/data/data/com.whatsapp/databases/' și are următoarea structură:

Cele mai interesante tabele din fișier 'msgstore.db' pentru investigator sunt:
- 'sqlite_sequence'
Această tabelă conține informații generale despre această bază de date, cum ar fi numărul total de mesaje stocate, numărul total de conversații etc.Aspectul tabelului:

- 'message_fts_content'
Conține textul mesajelor transmise.Aspectul tabelului:

- 'messages'
Această tabelă conține informații precum numărul de contact, textul mesajului, statusul mesajului, marcajele temporale, detalii despre fișierele trimise incluse în mesaje.Aspectul tabelului:

Structura tabeluluiNumele câmpului Valoare _id numărul secvențial al înregistrării (în tabela SQL) key_remote_jid WhatsApp ID al partenerului de comunicare key_from_me direcția mesajului: '0' – venitor, '1' — extern key_id identificator unic al mesajului status starea mesajului: ‘0’ – livrat, ‘4’ – în așteptare server, ‘5’ – primit la destinație, ‘6’ – mesaj de confirmare, ‘13’ – mesaj deschis de către destinatar (citit) need_push are valoarea ‘2’, dacă este un mesaj de tip broadcast, altfel conține ‘0’ data textul mesajului (când parametrul ‘media_wa_type’ este ‘0’) timestamp conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului media_url conține URL-ul fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’) media_mime_type tipul MIME al fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’) media_wa_type tipul mesajului: ‘0’ – text, ‘1’ – fișier grafic, ‘2’ – fișier audio, ‘3’ – fișier video, ‘4’ – carte de contact, ‘5’ – date geografice media_size dimensiunea fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’) media_name numele fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’) media_caption Conține cuvintele ‘audio’, ‘video’ pentru valorile corespunzătoare ale parametrului ‘media_wa_type’ (când parametrul ‘media_wa_type’ este ‘1’, ‘3’) media_hash hash-ul fișierului transmis, codificat în baza64, calculat conform algoritmului HAS-256 (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’) media_duration durata în secunde pentru fișierul media (când parametrul ‘media_wa_type’ este ‘1’, ‘2’, ‘3’) origin are valoarea ‘2’, dacă este un mesaj de tip broadcast, altfel conține ‘0’ latitude date geografice: latitudine (când parametrul ‘media_wa_type’ este ‘5’) longitude date geografice: longitudine (când parametrul ‘media_wa_type’ este ‘5’) thumb_image informații de serviciu remote_recource ID-ul expeditorului (doar pentru chat-uri de grup) received_timestamp timpul de primire, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului (când parametrul ‘key_from_me’ are valori ‘0’, ‘-1’ sau altceva) send_timestamp nu este utilizat, de obicei are valoarea ‘-1’ receipt_server_timestamp timpul de primire de către serverul central serverul, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului (când parametrul ‘key_from_me’ are valori ‘1’, ‘-1’ sau altceva receipt_device_timestamp timpul de primire a mesajului de către alt abonat, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată de pe ceasul dispozitivului (când parametrul ‘key_from_me’ are valori ‘1’, ‘-1’ sau altceva read_device_timestamp timpul de deschidere (citire) a mesajului, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată din ceasul dispozitivului played_device_timestamp timpul de redare a mesajului, conține un timestamp în format Unix Epoch Time (ms), valoarea este preluată din ceasul dispozitivului raw_data miniatura fișierului transmis (când parametrul ‘media_wa_type’ este ‘1’ sau ‘3’) recipient_count numărul de destinatari (pentru mesaje de difuzare) participant_hash folosit la transmiterea mesajelor cu date geografice starred nu este utilizat quoted_row_id necunoscut, de obicei conține valoarea ‘0’ mentioned_jids nu este utilizat multicast_id nu este utilizat offset offset Această listă de câmpuri nu este exhaustivă. Pentru diferite versiuni WhatsApp, unele câmpuri pot fi prezente sau absente. De asemenea, pot fi prezente câmpuri suplimentare ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ etc.
- ‘messages_thumbnails’
Această tabelă conține informații despre imaginile transmise și timestamp-urile. În coloana ‘timestamp’ timpul este specificat în format Unix Epoch Time (ms). - ‘chat_list’
Această tabelă conține informații despre chaturi.Aspectul tabelului:

De asemenea, în timpul analizei WhatsApp pe un dispozitiv mobil Android, trebuie să se acorde atenție următoarelor fișiere:
- Fișier ‘msgstore.db.cryptXX’ (unde XX este o sau două cifre de la 0 la 12, de exemplu, msgstore.db.crypt12). Conține o copie de rezervă criptată a mesajelor WhatsApp (rezerva fișierului msgstore.db). Fișierul (sau fișierele) ‘msgstore.db.cryptXX’ se află la calea: ‘/data/media/0/WhatsApp/Databases/’ (card SD virtual), ‘/mnt/sdcard/WhatsApp/Databases/ (card SD fizic)’.
- Fișier ‘key’. Conține cheia criptografică. Se află la calea: ‘/data/data/com.whatsapp/files/’. Este folosit pentru decriptarea copiilor de rezervă criptate WhatsApp.
- Fișier ‘com.whatsapp_preferences.xml’. Conține informații despre profilul contului WhatsApp. Fișierul se află la calea: ‘/data/data/com.whatsapp/shared_prefs/’.
Fragmentul conținutului fișierului
… 9123456789 (numărul de telefon asociat cu contul WhatsApp) … 2.17.395 (versiunea WhatsApp) … Hey there! I am using WhatsApp. (mesajul afișat în statusul contului) … Alex (numele proprietarului contului) … - Fișier ‘registration.RegisterPhone.xml’. Conține informații despre numărul de telefon asociat cu contul WhatsApp. Fișierul se află la calea: ‘/data/data/com.whatsapp/shared_prefs/’.
Conținutul fișierului
- Fișier 'axolotl.db'. Conține chei criptografice și alte date necesare pentru identificarea proprietarului contului. Se află la calea: '/data/data/com.whatsapp/databases/'.
- Fișier 'chatsettings.db'. Conține informații despre configurația aplicației.
- Fișier 'wa.db'. Conține detaliile contactelor. O bază de date foarte interesantă (din perspectiva criminalistică) și informativă. Aici pot fi găsite informații detaliate despre contactele șterse.
De asemenea, trebuie să avem în vedere următoarele directoare:
- Folderul '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Conține fișiere grafice transferate.
- Folderul '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Conține mesaje vocale în fișiere de format .OPUS.
- Folderul '/data/data/com.whatsapp/cache/Profile Pictures/'. Conține fișiere grafice – imagini de profil.
- Folderul '/data/data/com.whatsapp/files/Avatars/'. Conține fișiere grafice – miniaturi ale imaginilor de profil. Aceste fișiere au extensia '.j', însă, sunt fișiere grafice de format JPEG (JPG).
- Folderul '/data/data/com.whatsapp/files/Avatars/'. Conține fișiere grafice – imaginea și miniatura imaginii stabilite ca avatar de către proprietarul contului.
- Folderul '/data/data/com.whatsapp/files/Logs/'. Conține jurnalul de funcționare al programului (fișierul 'whatsapp.log') și copii de rezervă ale jurnalei de funcționare (fișiere cu nume de format whatsapp-gggg-ll-zz.1.log.gz).
Fișierele jurnalelor WhatsApp:

Fragment de jurnal2017-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 sent, 82 received / Media Messages: 1 sent (0 bytes), 0 received (9850158 bytes) / Offline Messages: 81 received (19522 msec average delay) / Message Service: 116075 bytes sent, 211729 bytes received / Voip Calls: 1 outgoing calls, 0 incoming calls, 2492 bytes sent, 1530 bytes received / Google Drive: 0 bytes sent, 0 bytes received / Roaming: 1524 bytes sent, 1826 bytes received / Total Data: 118567 bytes sent, 10063417 bytes received
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 available:1,345,622,016 total:5,687,922,688
- Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Conține fișiere audio primite.
- Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Conține fișiere audio trimise.
- Folderul '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Conține fișiere grafice primite.
- Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Conține fișiere grafice trimise.
- Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Conține fișiere video primite.
- Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Conține fișiere video trimise.
- Folderul ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Conține fișiere grafice asociate cu proprietarul contului WhatsApp.
- Pentru economisirea spațiului pe smartphone-ul Android, o parte din datele WhatsApp pot fi stocate pe cardul SD. Pe cardul SD, în directorul principal, se află directorul ‘WhatsApp’, unde pot fi găsite următoarele artefacte ale programului:

- Folderul ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Conține copii ale fișierelor care au fost trimise altor utilizatori WhatsApp.
- Folderul ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Conține fișiere șterse.
- Folderul ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Conține copii de rezervă criptate. Acestea pot fi decriptate în prezența fișierului ‘key’, extras din memoria dispozitivului analizat.
Fișierele aflate în subdirector ‘Databases’:

- Folderul ‘Media’ (‘/mnt/sdcard/WhatsApp/Media/’). Conține subdirectoare ‘WallPaper’, ‘WhatsApp Audio’, ‘WhatsApp Images’, ‘WhatsApp Profile Photos’, ‘WhatsApp Video’, ‘WhatsApp Voice Notes’, în care se află fișierele multimedia primite și transmise (fișiere grafice, fișiere video, mesaje vocale, fotografii asociate cu profilul proprietarului contului WhatsApp, fundaluri).
- Folderul ‘Profile Pictures’ (‘/mnt/sdcard/WhatsApp/Profile Pictures/’). Conține fișiere grafice asociate cu profilul proprietarului contului WhatsApp.
- Uneori, pe SD-card poate exista un director ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). În acest director se află fișiere în care sunt stocate setările aplicației și preferințele utilizatorului.
Particularitățile stocării datelor în unele modele de dispozitive mobile
În unele modele de dispozitive mobile cu sistem de operare Android, artefactele WhatsApp pot fi stocate în alt loc. Aceasta se datorează modificării spațiului de stocare a datelor aplicațiilor de către software-ul sistemic al dispozitivului mobil. De exemplu, pe dispozitivele mobile Xiaomi există o funcție de creare a unui al doilea spațiu de lucru („SecondSpace”). Activarea acestei funcții modifică locația datelor. Așadar, dacă într-un dispozitiv mobil obișnuit cu sistem de operare Android datele utilizatorului sunt stocate în directorul ‘/data/user/0/’ (ce reprezintă o legătură către obişnuitele ‘/data/data/’), atunci în al doilea spațiu de lucru datele aplicațiilor sunt stocate în directorul ‘/data/user/10/’. Adică, de exemplu, locația fișierului 'wa.db':
- într-un smartphone obișnuit cu sistem de operare Android: /data/user/0/com.whatsapp/databases/wa.db’ (ce este echivalent cu ‘/data/data/com.whatsapp/databases/wa.db’);
- în al doilea spațiu de lucru al smartphone-ului Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.
Artefactele WhatsApp pe un dispozitiv iOS
Spre deosebire de sistemul de operare Android, în iOS datele aplicației WhatsApp sunt transmise în backup (backup iTunes). Prin urmare, extragerea datelor acestei aplicații nu necesită extragerea sistemului de fișiere sau crearea unui dump fizic al memoriei dispozitivului studiat. Cea mai mare parte a informațiilor semnificative se află în baza de date ‘ChatStorage.sqlite’, care se află pe calea: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (în unele programe, acest drum este afișat ca ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).
Structura ‘ChatStorage.sqlite’:

Cele mai informative în baza de date ‘ChatStorage.sqlite’ sunt tabelele ‘ZWAMESSAGE’ și ‘ZWAMEDIAITEM’.
Aspectul tabelului ‘ZWAMESSAGE’:

Structura tabelului 'ZWAMESSAGE'
| Numele câmpului | Valoare |
|---|---|
| Z_PK | numărul secvențial al înregistrării (în tabela SQL) |
| Z_ENT | identificatorul tabelului, are valoarea '9' |
| Z_OPT | necunoscut, de obicei conține valori între '1' și '6' |
| ZCHILDMESSAGESDELIVEREDCOUNT | necunoscut, de obicei conține valoarea ‘0’ |
| ZCHILDMESSAGESPLAYEDCOUNT | necunoscut, de obicei conține valoarea ‘0’ |
| ZCHILDMESSAGESREADCOUNT | necunoscut, de obicei conține valoarea ‘0’ |
| ZDATAITEMVERSION | necunoscut, de obicei conține valoarea '3', probabil că este un indicator al mesajului text |
| ZDOCID | necunoscut |
| ZENCRETRYCOUNT | necunoscut, de obicei conține valoarea ‘0’ |
| ZFILTEREDRECIPIENTCOUNT | necunoscut, de obicei conține valorile '0', '2', '256' |
| ZISFROMME | direcția mesajului: '0' – venitor, '1' — extern |
| ZMESSAGEERRORSTATUS | starea transmiterii mesajului. Dacă mesajul a fost trimis / primit, are valoarea '0' |
| ZMESSAGETYPE | tipul mesajului transmis |
| ZSORT | necunoscut |
| ZSPOTLIGHSTATUS | necunoscut |
| ZSTARRED | necunoscut, nu este utilizat |
| ZCHATSESSION | necunoscut |
| ZGROUPMEMBER | necunoscut, nu este utilizat |
| ZLASTSESSION | necunoscut |
| ZMEDIAITEM | necunoscut |
| ZMESSAGEINFO | necunoscut |
| ZPARENTMESSAGE | necunoscut, nu este utilizat |
| ZMESSAGEDATE | timpul în format OS X Epoch Time |
| ZSENTDATE | timpul trimiterii mesajului în format OS X Epoch Time |
| ZFROMJID | WhatsApp ID al expeditorului |
| ZMEDIASECTIONID | conține anul și luna trimiterii fișierului media |
| ZPHASH | necunoscut, nu este utilizat |
| ZPUSHPAME | numele contactului care a trimis fișierul media în format UTF-8 |
| ZSTANZID | identificator unic al mesajului |
| ZTEXT | textul mesajului |
| ZTOJID | WhatsApp ID al destinatarului |
| OFFSET | offset |
Aspectul tabelului ‘ZWAMEDIAITEM’:

Structura tabelului 'ZWAMEDIAITEM'
| Numele câmpului | Valoare |
|---|---|
| Z_PK | numărul secvențial al înregistrării (în tabela SQL) |
| Z_ENT | identificatorul tabelului, are valoarea '8' |
| Z_OPT | necunoscut, de obicei conține valorile între '1' și '3'. |
| ZCLOUDSTATUS | conține valoarea '4' dacă fișierul a fost încărcat. |
| ZFILESIZE | conține dimensiunea fișierului (în octeți) pentru fișierele încărcate |
| ZMEDIAORIGIN | necunoscut, de obicei are valoarea '0' |
| ZMOVIEDURATION | durata fișierului media, pentru fișiere pdf poate conține numărul de pagini ale documentului |
| ZMESSAGE | conține un număr de ordine (numărul este diferit de cel specificat în coloana 'Z_PK') |
| ZASPECTRATIO | raportul de aspect, nu este utilizat, de obicei are valoarea '0' |
| ZHACCURACY | necunoscut, de obicei are valoarea '0' |
| ZLATTITUDE | lățimea în pixeli |
| ZLONGTITUDE | înălțimea în pixeli |
| ZMEDIAURLDATE | timpul în format OS X Epoch Time |
| ZAUTHORNAME | autor (pentru documente, poate conține numele fișierului) |
| ZCOLLECTIONNAME | nu este utilizat |
| ZMEDIALOCALPATH | numele fișierului (cu calea) în sistemul de fișiere al dispozitivului |
| ZMEDIAURL | URL-ul la care se afla fișierul media. Dacă fișierul a fost trimis de la un abonat la altul, a fost criptat, iar extensia sa va fi indicată ca extensia fișierului transmis — .enc |
| ZTHUMBNAILLOCALPATH | calea către miniatura fișierului în sistemul de fișiere al dispozitivului |
| ZTITLE | titlul fișierului |
| ZVCARDNAME | hash-ul fișierului media, la trimiterea fișierului în grup poate conține identificatorul expeditorului |
| ZVCARDSTRING | conține informații despre tipul fișierului transmis (de exemplu, image/jpeg), la trimiterea fișierului în grup poate conține identificatorul destinatarului |
| ZXMPPTHUMBPATH | calea către miniatura fișierului în sistemul de fișiere al dispozitivului |
| ZMEDIAKEY | necunoscut, probabil conține cheia pentru decriptarea fișierului criptat. |
| ZMETADATA | metadatele mesajului transmis |
| Offset | offset |
Alte tabele interesante ale bazei de date ‘ChatStorage.sqlite’ sunt:
- ‘ZWAPROFILEPUSHNAME’. Corelează ID-ul WhatsApp cu numele contactului;
- ‘ZWAPROFILEPICTUREITEM’. Corelează ID-ul WhatsApp cu avatarul contactului;
- ‘Z_PRIMARYKEY’. Tabelul conține informații generale despre această bază de date, cum ar fi numărul total de mesaje stocate, numărul total de chat-uri etc.
De asemenea, atunci când se investighează WhatsApp pe un dispozitiv mobil cu iOS, trebuie să se acorde atenție următoarelor fișiere:
- Fișier ‘BackedUpKeyValue.sqlite’. Conține chei criptografice și alte date necesare pentru identificarea proprietarului contului. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Fișier ‘ContactsV2.sqlite’. Conține informații despre contactele utilizatorului, cum ar fi numele complet, numărul de telefon, statutul contactului (sub formă de text), ID-ul WhatsApp etc. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Fișier ‘consumer_version’. Conține numărul versiunii aplicației WhatsApp instalate. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Fișier ‘current_wallpaper.jpg’. Conține wallpaper-ul de fundal curent al aplicației WhatsApp. Se află la calea: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. În versiunile anterioare ale aplicației se folosește fișierul ‘wallpaper’, care se află la calea: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
- Fișier ‘blockedcontacts.dat’. Conține informații despre contactele blocate. Se află la calea: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- Fișier ‘pw.dat’. Conține parola criptată. Se află la calea: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
- Fișier ‘net.whatsapp.WhatsApp.plist’ (sau fișierul ‘group.net.whatsapp.WhatsApp.shared.plist’). Conține informații despre profilul contului WhatsApp. Fișierul se află la calea: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.
Conținutul fișierului ‘group.net.whatsapp.WhatsApp.shared.plist’
De asemenea, trebuie să avem în vedere următoarele directoare:
- Folderul ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Conține miniaturi ale contactelor, grupurilor (fișiere cu extensia .thumb), avataruri ale contactelor, avatarul proprietarului contului WhatsApp (fișier ‘Photo.jpg’).
- Folderul ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message/Media/’. Conține fișiere multimedia și miniaturile acestora
- Folderul ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Conține jurnalul de activitate al aplicației (fișier ‘calls.log’) și copiile de rezervă ale jurnalelor de activitate (fișier ‘calls.backup.log’).
- Folderul ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Conține stickere (fișiere în format ‘.webp’).
- Folderul ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Conține jurnale de activitate ale aplicației.
Artefacte WhatsApp pe Windows
Artefactele WhatsApp pe Windows pot fi găsite în mai multe locuri. În special, sunt directoare care conțin fișierele executabile și auxiliare ale aplicației (pentru Windows 8/10):
- ‘C:Program Files (x86)WhatsApp’
- ‘C:Users%User profile% AppDataLocalWhatsApp’
- ‘C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp’
În directorul ‘C:Users%User profile% AppDataLocalWhatsApp’ se află jurnalul de activitate ‘SquirrelSetup.log’, în care se găsește informația despre verificarea actualizărilor și instalarea programului.
În directorul ‘C:Users%User profile% AppDataRoamingWhatsApp’ există mai multe subfoldere:
Fișier ‘main-process.log’ conține informații despre funcționarea programului WhatsApp.
Subfolder ‘databases’ conține fișierul ‘Databases.db’, dar acest fișier nu conține nicio informație despre conversații sau contacte.
Cele mai interesante din punct de vedere criminalistic sunt fișierele aflate în directorul ‘Cache’. În principal, acestea sunt fișiere cu nume ‘f_*******’ (unde * este un număr de la 0 la 9), conținând fișiere multimedia și documente criptate, dar printre ele pot fi întâlnite și fișiere necriptate. Deosebit de interesante sunt fișierele ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, aflate în același subfolder. Fișierele ‘data_0’, ‘data_1’, ‘data_3’ conțin linkuri externe către fișierele multimedia criptate și documentele transmise.
Exemplu de informație conținută în fișierul ‘data_1’
De asemenea, fișierul ‘data_3’ poate conține fișiere grafice.
Fișier ‘data_2’ conține avatarurile contactelor (pot fi recuperate căutând după denumirile fișierelor).
Avatarurile conținute în fișierul ‘data_2’:

Astfel, în memoria computerului nu pot fi găsite conversațiile în sine, dar se pot găsi:
- fișiere multimedia;
- documente transmise prin WhatsApp;
- informații despre contacte ale proprietarului contului.
Artefacte WhatsApp în MacOS
În MacOS se pot găsi tipuri de artefacte WhatsApp similare cu cele existente în sistemul de operare Windows.
Fișierele programului se află în folderele:
- ‘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’
În acest director se află subfoldere a căror denumire reprezintă numerele de telefon asociate proprietarului contului WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
În acest director se găsește informația despre instalarea programului. - ‘C:Users%User profile%PicturesBiblioteca Media iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesBiblioteca Media iPhoto.photolibraryThumbnails’
Aceste directoare conțin fișierele de sistem ale aplicației și, printre altele, fotografiile și miniaturile contactelor WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp’
În acest director se află câteva baze de date SQLite, care sunt utilizate pentru caching-ul datelor. - ‘C:Users%User profile%LibraryApplication SupportWhatsApp’
În acest director se află mai multe subdirectoare:
În directorul ‘C:Users%User profile%LibraryApplication SupportWhatsAppCache’ se află fișiere ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ și fișiere cu nume ‘f_*******’ (unde * — un număr de la 0 la 9). Informațiile despre ce date conțin aceste fișiere sunt descrise în secțiunea „Artefactele WhatsApp în Windows”.În directorul ‘C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB’ pot conține fișiere multimedia (fișiere fără extensii).
Fișier ‘main-process.log’ conține informații despre funcționarea programului WhatsApp.
Surse
- Analiza forensic a WhatsApp Messenger pe smartphone-uri Android, de Cosimo Anglano, 2014.
- Whatsapp Forensics: Explorarea sistemului de fișiere și bazei de date asupra aplicațiilor Android și iOS de Ahmad Pratama, 2014.
În articolele următoare din această serie:
Decriptarea bazelor de date criptate WhatsAppUn articol în care vor fi prezentate informații despre cum se generează cheia de criptare WhatsApp și exemple practice care ilustrează cum se poate realiza decriptarea bazelor criptate ale acestei aplicații.
Extracția datelor WhatsApp din stocările cloudUn articol în care vom explica ce date WhatsApp sunt stocate în cloud și vom descrie metodele de extracție a acestor date din stocările cloud.
Extracția datelor WhatsApp: exemple practiceUn articol în care vom descrie pas cu pas cu ce programe și cum se poate realiza extracția datelor WhatsApp din diferite dispozitive.
Sursa: habr.com








