
Chcete se dozvědět, jaké typy forenzních artefaktů WhatsApp existují v různých operačních systémech a kde je lze najít? Pak jste na správném místě. Tento článek přináší odborník z Laboratoře počítačové forenziky Group-IB. Igor Michajlov zahajuje sérii publikací o forenzním zkoumání WhatsApp a o tom, jaké informace lze získat analýzou zařízení.
Hned na úvod je třeba poznamenat, že různé operační systémy uchovávají různé typy artefaktů WhatsApp a pokud může vyšetřovatel z jednoho zařízení extrahovat určité typy dat WhatsApp, neznamená to, že podobné typy dat lze extrahovat z jiného zařízení. Například pokud je zabavena pracovní stanice s operačním systémem Windows, pravděpodobně na jejích discích nebudou nalezeny chaty WhatsApp (s výjimkou záloh zařízení iOS, které mohou být na těchto stejných discích zachyceny). Při zabavení notebooků a mobilních zařízení existují specifika. Pojďme si je představit podrobněji.
Artefakty WhatsApp v zařízení Android
Aby mohl vyšetřovatel extrahovat artefakty WhatsApp z zařízení s operačním systémem Android, musí mít administrátorská práva ('root') na zkoumaném zařízení nebo mít jinou možnost, jak získat fyzickou paměťovou kopii zařízení nebo jeho souborového systému (například využitím softwarových zranitelností konkrétního mobilního zařízení).
Soubory aplikace se nacházejí v paměti telefonu v oddílu, kde jsou uchovávána data uživatelů. Obvykle je tento oddíl nazýván 'userdata'. Podadresáře a soubory programu se nacházejí na cestě: '/data/data/com.whatsapp/'.

Hlavními soubory, které obsahují forenzní artefakty WhatsApp na operačním systému Android, jsou databáze 'wa.db' a 'msgstore.db'.
V databázi 'wa.db' se nachází kompletní seznam kontaktů uživatele WhatsApp, včetně telefonního čísla, zobrazovaného jména, časových značek a jakýchkoli dalších informací uvedených při registraci WhatsApp. Soubor 'wa.db' se nachází na cestě: '/data/data/com.whatsapp/databases/' a má následující strukturu:

Nejzajímavějšími tabulkami v databázi 'wa.db' pro vyšetřovatele jsou:
- 'wa_contacts'
Tato tabulka obsahuje informace o kontaktech: id kontaktu na WhatsApp, informace o stavu, zobrazené uživatelské jméno, časové údaje atd.Vzhled tabulky:

Struktura tabulkyNázev pole Hodnota _id pořadové číslo záznamu (v SQL tabulce) jid WhatsApp ID kontaktu, zapisuje se ve formátu @s.whatsapp.net is_whatsapp_user obsahuje '1', pokud kontakt odpovídá skutečnému uživateli WhatsApp, '0' v opačném případě status obsahuje text, který je zobrazen ve stavu kontaktu status_timestamp obsahuje časovou značku ve formátu Unix Epoch Time (ms) number číslo telefonu, asociované s kontaktem raw_contact_id pořadové číslo kontaktu display_name zobrazené jméno kontaktu phone_type typ telefonu phone_label název, asociovaný s číslem kontaktu unseen_msg_count počet zpráv, které byly poslány kontaktem, ale nebyly přečteny příjemcem photo_ts obsahuje časovou značku ve formátu Unix Epoch Time thumb_ts obsahuje časovou značku ve formátu Unix Epoch Time photo_id_timestamp obsahuje časovou značku ve formátu Unix Epoch Time (ms) given_name hodnota pole se shoduje s 'display_name' pro každý kontakt wa_name jméno kontaktu na WhatsApp (zobrazuje se jméno uvedené v profilu kontaktu) sort_name jméno kontaktu používané v operacích třídění nickname přezdívka kontaktu na WhatsApp (zobrazuje se přezdívka uvedená v profilu kontaktu) company firma (zobrazuje se firma uvedená v profilu kontaktu) title oslovení (paní/pan; zobrazuje se oslovení nastavené v profilu kontaktu) offset posunutí - 'sqlite_sequence'
Tato tabulka obsahuje informace o počtu kontaktů; - 'android_metadata'
Tato tabulka obsahuje informace o jazykové lokalizaci WhatsApp.
V databázi 'msgstore.db' obsahuje informace o odeslaných zprávách, jako je číslo kontaktní osoby, text zprávy, stav zprávy, časové údaje, informace o odeslaných souborech obsažených v zprávách atd. Soubor 'msgstore.db' se nachází na cestě: '/data/data/com.whatsapp/databases/' a má následující strukturu:

Nejzajímavější tabulky v souboru 'msgstore.db' pro vyšetřovatele jsou:
- 'sqlite_sequence'
Tato tabulka obsahuje obecné informace o této databázi, například celkový počet uložených zpráv, celkový počet chatů atd.Vzhled tabulky:

- 'message_fts_content'
Obsahuje text odeslaných zpráv.Vzhled tabulky:

- 'messages'
Tato tabulka obsahuje informace, jako je číslo kontaktu, text zprávy, stav zprávy, časové údaje, informace o odeslaných souborech obsažených v zprávách.Vzhled tabulky:

Struktura tabulkyNázev pole Hodnota _id pořadové číslo záznamu (v SQL tabulce) key_remote_jid WhatsApp ID partnera v komunikaci key_from_me směr zprávy: '0' – příchozí, '1' — odchozí key_id unikátní identifikátor zprávy status stav zprávy: '0' – doručeno, '4' – čeká na serveru, '5' – doručeno na místo určení, '6' – kontrolní zpráva, '13' – zpráva byla otevřena příjemcem (přečtena) need_push má hodnotu '2', pokud se jedná o hromadnou zprávu, jinak obsahuje '0' data text zprávy (když je parametr 'media_wa_type' roven '0') timestamp obsahuje časovou značku ve formátu Unix Epoch Time (ms), hodnota se přebírá z hodin zařízení media_url obsahuje URL přenášeného souboru (když je parametr 'media_wa_type' roven '1', '2', '3') media_mime_type MIME typ přenášeného souboru (když je parametr 'media_wa_type' roven '1', '2', '3') media_wa_type typ zprávy: '0' – text, '1' – grafický soubor, '2' – audio soubor, '3' – video soubor, '4' – kontaktní karta, '5' – geografická data media_size velikost přenášeného souboru (když je parametr 'media_wa_type' roven '1', '2', '3') media_name název přenášeného souboru (když je parametr 'media_wa_type' roven '1', '2', '3') media_caption Obsahuje slova 'audio', 'video' pro odpovídající hodnoty parametru 'media_wa_type' (když je parametr 'media_wa_type' roven '1', '3') media_hash zakódovaný v base64 hash přenášeného souboru, vypočtený pomocí algoritmu HASH-256 (když je parametr 'media_wa_type' roven '1', '2', '3') media_duration doba trvání v sekundách pro mediální soubor (když je parametr 'media_wa_type' roven '1', '2', '3') origin má hodnotu '2', pokud se jedná o hromadnou zprávu, jinak obsahuje '0' latitude geografická data: zeměpisná šířka (když je parametr 'media_wa_type' roven '5') longitude geografická data: zeměpisná délka (když je parametr 'media_wa_type' roven '5') thumb_image služební informace remote_recource ID odesílatele (pouze pro skupinové chaty) received_timestamp čas příjmu, obsahuje časovou značku ve formátu Unix Epoch Time (ms), hodnota se přebírá z hodin zařízení (když parametr 'key_from_me' má '0', '-1' nebo jinou hodnotu) send_timestamp není používán, obvykle má hodnotu '-1' receipt_server_timestamp čas příjmu centrálním serverem, obsahuje časovou značku ve formátu Unix Epoch Time (ms), hodnota se přebírá z hodin zařízení (když parametr 'key_from_me' má '1', '-1' nebo jinou hodnotu) receipt_device_timestamp čas příjmu zprávy jiným účastníkem, obsahuje časovou značku ve formátu Unix Epoch Time (ms), hodnota se přebírá z hodin zařízení (když parametr 'key_from_me' má '1', '-1' nebo jinou hodnotu) read_device_timestamp čas otevření (čtení) zprávy, obsahuje časovou značku ve formátu Unix Epoch Time (ms), hodnota je převzata z hodin zařízení played_device_timestamp čas přehrávání zprávy, obsahuje časovou značku ve formátu Unix Epoch Time (ms), hodnota je převzata z hodin zařízení raw_data miniatura přenášeného souboru (když je parametr ‘media_wa_type’ roven ‘1’ nebo ‘3’) recipient_count počet příjemců (pro hromadné zprávy) participant_hash používá se při přenosu zpráv s geografickými daty starred nepoužívá quoted_row_id neznámé, obvykle obsahuje hodnotu ‘0’ mentioned_jids nepoužívá multicast_id nepoužívá offset posunutí Tento seznam polí není vyčerpávající. U různých verzí WhatsApp mohou některá pole být přítomna nebo chybět. Mohou být také přítomna další pole ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ atd.
- ‘messages_thumbnails’
Tato tabulka obsahuje informace o přenesených obrázcích a časové značky. Ve sloupci ‘timestamp’ je čas uveden ve formátu Unix Epoch Time (ms). - ‘chat_list’
Tato tabulka obsahuje informace o chatech.Vzhled tabulky:

Při zkoumání WhatsApp na mobilním zařízení s operačním systémem Android je třeba věnovat pozornost následujícím souborům:
- Soubor ‘msgstore.db.cryptXX’ (kde XX – jedna nebo dvě číslice od 0 do 12, například msgstore.db.crypt12). Obsahuje šifrovanou zálohu zpráv WhatsApp (zálohu souboru msgstore.db). Soubor (nebo soubory) ‘msgstore.db.cryptXX’ se nachází na cestě: ‘/data/media/0/WhatsApp/Databases/’ (virtuální SD karta), ‘/mnt/sdcard/WhatsApp/Databases/ (fyzičká SD karta)’.
- Soubor ‘key’. Obsahuje kryptografický klíč. Nachází se na cestě: ‘/data/data/com.whatsapp/files/’. Používá se k dešifrování šifrovaných záloh WhatsApp.
- Soubor ‘com.whatsapp_preferences.xml’. Obsahuje informace o profilu účtu WhatsApp. Soubor se nachází na cestě: ‘/data/data/com.whatsapp/shared_prefs/’.
Fragment obsahu souboru
… 9123456789 (telefonní číslo asociované s účtem WhatsApp) … 2.17.395 (verze WhatsApp) … Ahoj! Používám WhatsApp. (zpráva zobrazená ve stavu účtu) … Alex (jméno vlastníka účtu) … - Soubor ‘registration.RegisterPhone.xml’. Obsahuje informace o telefonním čísle asociovaném s účtem WhatsApp. Soubor se nachází na cestě: ‘/data/data/com.whatsapp/shared_prefs/’.
Obsah souboru
- Soubor 'axolotl.db'. Obsahuje šifrovací klíče a další údaje potřebné k identifikaci majitele účtu. Nachází se na cestě: '/data/data/com.whatsapp/databases/'.
- Soubor 'chatsettings.db'. Obsahuje informace o konfiguraci aplikace.
- Soubor 'wa.db'. Obsahuje podrobnosti o kontaktech. Velmi zajímavá (z forenzního hlediska) a informativní databáze. Může obsahovat podrobné informace o smazaných kontaktech.
Je také třeba věnovat pozornost následujícím adresářům:
- Katalog '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Obsahuje přenesené grafické soubory.
- Katalog '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Obsahuje hlasové zprávy ve formátu .OPUS.
- Katalog '/data/data/com.whatsapp/cache/Profile Pictures/'. Obsahuje grafické soubory – obrázky kontaktů.
- Katalog '/data/data/com.whatsapp/files/Avatars/'. Obsahuje grafické soubory – miniatury obrázků kontaktů. Tyto soubory mají příponu '.j', ale jsou grafickými soubory formátu JPEG (JPG).
- Katalog '/data/data/com.whatsapp/files/Avatars/'. Obsahuje grafické soubory – obrázek a miniaturu obrázku, který byl nastaven jako avatar majitelem účtu.
- Katalog '/data/data/com.whatsapp/files/Logs/'. Obsahuje protokolování práce programu (soubor 'whatsapp.log') a zálohy protokolu (soubory s názvy ve formátu whatsapp-gggg-mm-dd.1.log.gz).
Protokoly WhatsApp:

Úryvek protokolu2017-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
- Katalog ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Obsahuje přijaté audio soubory.
- Katalog ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Obsahuje odeslané audio soubory.
- Katalog '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Obsahuje přijaté grafické soubory.
- Katalog ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Obsahuje odeslané grafické soubory.
- Katalog ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Obsahuje přijaté video soubory.
- Katalog ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Obsahuje odeslané video soubory.
- Katalog ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Obsahuje grafické soubory asociované s vlastníkem účtu WhatsApp.
- Aby se ušetřilo místo v paměti Android smartphonu, část dat WhatsApp může být uložena na SD kartě. V kořenovém adresáři SD karty je umístěn adresář ‘WhatsApp’, kde lze nalézt následující artefakty této aplikace:

- Katalog ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Obsahuje kopie souborů, které byly předány jiným uživatelům WhatsApp.
- Katalog ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Obsahuje smazané soubory.
- Katalog ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Obsahuje šifrované zálohy. Ty mohou být dešifrovány za předpokladu, že je k dispozici soubor ‘key’, vyextrahovaný z paměti analyzovaného zařízení.
Soubory, které se nacházejí v podadresáři ‘Databases’:

- Katalog ‘Media’ (‘/mnt/sdcard/WhatsApp/Media/’). Obsahuje podkatalogy ‘WallPaper’, ‘WhatsApp Audio’, ‘WhatsApp Images’, ‘WhatsApp Profile Photos’, ‘WhatsApp Video’, ‘WhatsApp Voice Notes’, ve kterých se nacházejí přijaté a odeslané multimediální soubory (grafické soubory, videa, hlasové zprávy, fotografie spojené s profilem vlastníka účtu WhatsApp, tapety).
- Katalog ‘Profile Pictures’ (‘/mnt/sdcard/WhatsApp/Profile Pictures/’). Obsahuje grafické soubory spojené s profilem vlastníka účtu WhatsApp.
- Někdy může na SD kartě být přítomen katalog ‘files’ (‘/mnt/sdcard/WhatsApp/Files/’). V tomto adresáři jsou soubory, které ukládají nastavení aplikace a uživatelské preference.
Specifika ukládání dat v některých modelech mobilních zařízení
V některých modelech mobilních zařízení s operačním systémem Android mohou být artefakty WhatsApp uloženy na jiném místě. To je způsobeno změnou úložiště aplikací systémovým softwarem mobilního zařízení. Například v mobilních zařízeních Xiaomi existuje funkce pro vytvoření druhého pracovního prostoru („SecondSpace”). Aktivací této funkce se mění umístění dat. Takže, pokud v běžném mobilním zařízení s operačním systémem Android jsou uživatelská data uložena v adresáři ‘/data/user/0/’ (což je odkaz na obvyklé ‘/data/data/’), tak ve druhém pracovním prostoru jsou data aplikací uložena v adresáři ‘/data/user/10/’. To znamená, že na příkladu umístění souboru 'wa.db':
- v běžném chytrém telefonu s operačním systémem Android: /data/user/0/com.whatsapp/databases/wa.db’ (což odpovídá ‘/data/data/com.whatsapp/databases/wa.db’);
- ve druhém pracovním prostoru smartphonu Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.
Artefakty WhatsApp v zařízení iOS
Na rozdíl od Androidu, v iOS se data aplikace WhatsApp přenášejí do zálohy (záloha iTunes). Proto není nutné extrahovat data této aplikace pomocí souborového systému nebo vytvářením fyzického dumpu paměti zkoumaného zařízení. Většina významných informací je obsažena v databázi ‘ChatStorage.sqlite’, která se nachází na cestě: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (v některých aplikacích je tato cesta zobrazena jako ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).
Struktura ‘ChatStorage.sqlite’:

Nejlčhčší přehledné informace v databázi ‘ChatStorage.sqlite’ jsou v tabulkách ‘ZWAMESSAGE’ a ‘ZWAMEDIAITEM’.
Vzhled tabulky ‘ZWAMESSAGE’:

Struktura tabulky 'ZWAMESSAGE'
| Název pole | Hodnota |
|---|---|
| Z_PK | pořadové číslo záznamu (v SQL tabulce) |
| Z_ENT | identifikátor tabulky, má hodnotu '9' |
| Z_OPT | neznámé, obvykle obsahuje hodnoty od '1' do '6' |
| ZCHILDMESSAGESDELIVEREDCOUNT | neznámé, obvykle obsahuje hodnotu ‘0’ |
| ZCHILDMESSAGESPLAYEDCOUNT | neznámé, obvykle obsahuje hodnotu ‘0’ |
| ZCHILDMESSAGESREADCOUNT | neznámé, obvykle obsahuje hodnotu ‘0’ |
| ZDATAITEMVERSION | neznámé, obvykle obsahuje hodnotu '3', pravděpodobně je ukazatelem textové zprávy |
| ZDOCID | neznámo |
| ZENCRETRYCOUNT | neznámé, obvykle obsahuje hodnotu ‘0’ |
| ZFILTEREDRECIPIENTCOUNT | neznámé, obvykle obsahuje hodnoty '0', '2', '256' |
| ZISFROMME | směr zprávy: '0' – příchozí, '1' — odchozí |
| ZMESSAGEERRORSTATUS | stav přenosu zprávy. Pokud byla zpráva odeslána/přijata, má hodnotu '0' |
| ZMESSAGETYPE | typ přenášené zprávy |
| ZSORT | neznámo |
| ZSPOTLIGHSTATUS | neznámo |
| ZSTARRED | neznámé, nepoužívá se |
| ZCHATSESSION | neznámo |
| ZGROUPMEMBER | neznámé, nepoužívá se |
| ZLASTSESSION | neznámo |
| ZMEDIAITEM | neznámo |
| ZMESSAGEINFO | neznámo |
| ZPARENTMESSAGE | neznámé, nepoužívá se |
| ZMESSAGEDATE | časová značka ve formátu OS X Epoch Time |
| ZSENTDATE | čas odeslání zprávy ve formátu OS X Epoch Time |
| ZFROMJID | WhatsApp ID odesílatele |
| ZMEDIASECTIONID | obsahuje rok a měsíc odeslání mediálního souboru |
| ZPHASH | neznámé, nepoužívá se |
| ZPUSHPAME | jméno kontaktu, který odeslal mediální soubor ve formátu UTF-8 |
| ZSTANZID | unikátní identifikátor zprávy |
| ZTEXT | text zprávy |
| ZTOJID | WhatsApp ID příjemce |
| OFFSET | posunutí |
Vzhled tabulky ‘ZWAMEDIAITEM’:

Struktura tabulky 'ZWAMEDIAITEM'
| Název pole | Hodnota |
|---|---|
| Z_PK | pořadové číslo záznamu (v SQL tabulce) |
| Z_ENT | identifikátor tabulky, má hodnotu '8' |
| Z_OPT | neznámé, obvykle obsahuje hodnoty od '1' do '3'. |
| ZCLOUDSTATUS | obsahuje hodnotu '4', pokud byl soubor nahrán. |
| ZFILESIZE | obsahuje délku souboru (v bajtech) pro nahrané soubory |
| ZMEDIAORIGIN | neznámé, obvykle má hodnotu '0' |
| ZMOVIEDURATION | délka mediálního souboru, pro pdf soubory může obsahovat počet stran dokumentu |
| ZMESSAGE | obsahuje pořadové číslo (ná číslo se liší od toho, které je uvedeno ve sloupci 'Z_PK') |
| ZASPECTRATIO | poměr stran, nepoužívá se, obvykle má hodnotu '0' |
| ZHACCURACY | neznámé, obvykle má hodnotu '0' |
| ZLATTITUDE | šířka v pixelech |
| ZLONGTITUDE | výška v pixelech |
| ZMEDIAURLDATE | časová značka ve formátu OS X Epoch Time |
| ZAUTHORNAME | autor (pro dokumenty, může obsahovat název souboru) |
| ZCOLLECTIONNAME | nepoužívá |
| ZMEDIALOCALPATH | název souboru (s uvedením cesty) v souborovém systému zařízení |
| ZMEDIAURL | URL, na kterém se nacházel mediální soubor. Pokud byl soubor přenesen od jednoho uživatele k druhému, byl zašifrován a jeho přípona bude uvedena jako přípona přenášeného souboru — .enc |
| ZTHUMBNAILLOCALPATH | cesta k miniatuře souboru v souborovém systému zařízení |
| ZTITLE | název souboru |
| ZVCARDNAME | hash mediálního souboru, při přenosu souboru do skupiny může obsahovat identifikátor odesílatele |
| ZVCARDSTRING | obsahuje informace o typu přenášeného souboru (např. image/jpeg), při přenosu souboru do skupiny může obsahovat identifikátor příjemce |
| ZXMPPTHUMBPATH | cesta k miniatuře souboru v souborovém systému zařízení |
| ZMEDIAKEY | neznámé, pravděpodobně obsahuje klíč pro dešifrování zašifrovaného souboru. |
| ZMETADATA | metadata přenášené zprávy |
| Offset | posunutí |
Další zajímavé tabulky databáze ‘ChatStorage.sqlite’ jsou:
- ‘ZWAPROFILEPUSHNAME’. Přiřazuje WhatsApp ID k jménu kontaktu;
- ‘ZWAPROFILEPICTUREITEM’. Přiřazuje WhatsApp ID k avataru kontaktu;
- ‘Z_PRIMARYKEY’. Tabulka obsahuje obecné informace o této databázi, jako je celkový počet uložených zpráv, celkový počet chatů atd.
Také při prozkoumávání WhatsApp v mobilním zařízení s iOS je třeba věnovat pozornost následujícím souborům:
- Soubor ‘BackedUpKeyValue.sqlite’. Obsahuje šifrovací klíče a další údaje potřebné k identifikaci majitele účtu. Nachází se na cestě: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Soubor ‘ContactsV2.sqlite’. Obsahuje informace o kontaktech uživatele, jako jsou jména, telefonní číslo, stav kontaktu (ve formě textu), WhatsApp ID atd. Nachází se na cestě: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Soubor ‘consumer_version’. Obsahuje číslo verze nainstalované aplikace WhatsApp. Nachází se na cestě: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Soubor ‘current_wallpaper.jpg’. Obsahuje aktuální pozadí programu WhatsApp. Nachází se na cestě: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Ve starších verzích aplikace se používá soubor ‘wallpaper’, který se nachází na cestě: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
- Soubor ‘blockedcontacts.dat’. Obsahuje informace o zablokovaných kontaktech. Nachází se na cestě: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- Soubor ‘pw.dat’. Obsahuje zašifrované heslo. Nachází se na cestě: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
- Soubor ‘net.whatsapp.WhatsApp.plist’ (nebo soubor ‘group.net.whatsapp.WhatsApp.shared.plist’). Obsahuje informace o profilu účtu WhatsApp. Soubor se nachází na cestě: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.
Obsah souboru ‘group.net.whatsapp.WhatsApp.shared.plist’
Je také třeba věnovat pozornost následujícím adresářům:
- Katalog ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Obsahuje miniatury kontaktů, skupin (souborů s příponou .thumb), avatary kontaktů, avatar vlastníka účtu WhatsApp (soubor ‘Photo.jpg’).
- Katalog ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message/Media/’. Obsahuje multimediální soubory a jejich miniatury.
- Katalog ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Obsahuje protokol činnosti programu (soubor ‘calls.log’) a zálohy protokolů činnosti programu (soubor ‘calls.backup.log’).
- Katalog ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Obsahuje samolepky (soubory ve formátu ‘.webp’).
- Katalog ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Obsahuje protokoly činnosti programu.
Artefakty WhatsApp v systému Windows
Artefakty WhatsApp v systému Windows lze nalézt na několika místech. Především to jsou adresáře obsahující spustitelné a pomocné soubory programu (pro Windows 8/10):
- ‘C:Program Files (x86)WhatsApp’
- ‘C:Users%User profile% AppDataLocalWhatsApp’
- ‘C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp’
V adresáři ‘C:Users%User profile% AppDataLocalWhatsApp’ nachází se logovací soubor ‘SquirrelSetup.log’, ve kterém se nacházejí informace o kontrole dostupnosti aktualizací a instalaci programu.
V adresáři ‘C:Users%User profile% AppDataRoamingWhatsApp’ nachází se několik podadresářů:
Soubor ‘main-process.log’ obsahuje informace o činnosti programu WhatsApp.
Podadresář ‘databases’ obsahuje soubor ‘Databases.db’, ale tento soubor neobsahuje žádné informace o chatech nebo kontaktech.
Nejzajímavější z kriminalistického hlediska jsou soubory nacházející se v adresáři ‘Cache’. V zásadě se jedná o soubory s názvy ‘f_*******’ (kde * — číslo od 0 do 9), obsahující zašifrované multimediální soubory a dokumenty, ale mezi nimi se nacházejí i nezašifrované soubory. Zvláštní zájem vzbuzují soubory ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, nacházející se v tomto stejném podadresáři. Soubory ‘data_0’, ‘data_1’, ‘data_3’ obsahují externí odkazy na předávané zašifrované multimediální soubory a dokumenty.
Příklad informací obsažených v souboru ‘data_1’
Také soubor ‘data_3’ může obsahovat grafické soubory.
Soubor ‘data_2’ obsahuje avatary kontaktů (mohou být obnoveny vyhledáváním podle názvů souborů).
Avatary obsažené v souboru ‘data_2’:

Tím pádem nelze v paměti počítače najít samotné chaty, ale lze najít:
- multimediální soubory;
- dokumenty, které byly předávány pomocí WhatsApp;
- informace o kontaktech majitele účtu.
Artefakty WhatsApp v MacOS
V MacOS lze najít typy artefaktů WhatsApp, podobné těm, které jsou v OS Windows.
Soubory programu se nachází v adresářích:
- ‘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’
V tomto adresáři se nacházejí podadresáře, jejichž názvy představují telefonní čísla spojená s majitelem účtu WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
V tomto adresáři se nachází informace o instalaci programu. - ‘C:Users%User profile%PicturesKnihovna médií iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesKnihovna médií iPhoto.photolibraryThumbnails’
V těchto adresářích se nacházejí systémové soubory programu, včetně fotografií a miniatur kontaktů WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp’
V tomto adresáři se nachází několik SQLite databází, které se používají pro ukládání dat do mezipaměti. - ‘C:Users%User profile%LibraryApplication SupportWhatsApp’
V tomto adresáři se nachází několik podadresářů:
V adresáři ‘C:Users%User profile%LibraryApplication SupportWhatsAppCache’ se nacházejí soubory ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ a soubory s názvy ‘f_*******’ (kde * je číslo od 0 do 9). Informace o tom, jaké údaje tyto soubory obsahují, jsou popsány v části „Artefakty WhatsApp ve Windows.“V adresáři ‘C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB’ mohou obsahovat multimediální soubory (soubory nemají přípony).
Soubor ‘main-process.log’ obsahuje informace o činnosti programu WhatsApp.
Zdroje
- Forenzní analýza WhatsApp Messenger na chytrých telefonech s Androidem, autor Cosimo Anglano, 2014.
- Forenzní vyšetřování WhatsApp: Prozkoumání systémových souborů a databází na aplikaci Android a iOS, autor Ahmad Pratama, 2014.
V následujících článcích této série:
Dekódování šifrovaných databází WhatsAppČlánek, ve kterém budou uvedeny informace o tom, jak dochází k generování klíče šifrování WhatsApp, a poskytnuty praktické příklady, které ukazují, jak provést dekódování šifrovaných databází této aplikace.
Extrakce dat WhatsApp z cloudových úložišťČlánek, ve kterém popíšeme, jaká data WhatsApp jsou uložena v cloudu, a přehled metod pro extrakci těchto dat z cloudových úložišť.
Extrakce dat WhatsApp: praktické příkladyČlánek, ve kterém bude krok za krokem popsáno, jakými programy a jak provést extrakci dat WhatsApp z různých zařízení.
Zdroj: habr.com








