
Chcete sa dozvedieť, aké typy kryptografických artefaktov WhatsApp existujú v rôznych operačných systémoch a kde ich možno nájsť — tak potom ste tu správne. Tento článok napísal odborník z Laboratória počítačovej kriminalistiky Group-IB Igor Michajlov otvára sériu publikácií o kriminalistickom skúmaní WhatsApp a o tom, aké informácie je možné získať analýzou zariadenia.
Hneď treba poznamenať, že v rôznych operačných systémoch sú uchovávané rôzne typy artefaktov WhatsApp, a ak z jedného zariadenia môže odborník extrahovať určité typy dát WhatsApp, neznamená to, že podobné typy dát môžu byť extrahované z iného zariadenia. Napríklad, ak je zabezpečená centrálna jednotka s operačným systémom Windows, na jej diskoch pravdepodobne nebudú nájdené chaty WhatsApp (s výnimkou záloh iOS zariadení, ktoré môžu byť objavené na týchto rovnakých úložiskách). Pri zaistení prenosných počítačov a mobilných zariadení budú existovať svoje špecifiká. O tom si teraz povieme viac.
Artefakty WhatsApp v zariadení s Androidom
Aby odborník mohol extrahovať artefakty WhatsApp z zariadenia s operačným systémom Android, musí mať práva superužívateľa ('root') na skúmanom zariadení alebo mať iný spôsob, ako získať fyzickú kópiu pamäte zariadenia alebo jeho súborového systému (napríklad pomocou programových zraniteľností konkrétneho mobilného zariadenia).
Súbory aplikácie sa nachádzajú v pamäti telefónu v sekcii, kde sú uchovávané údaje používateľa. Táto sekcia sa zvyčajne nazýva 'userdata'. Podpriečinky a súbory programu sa nachádzajú na ceste: '/data/data/com.whatsapp/'.

Hlavnými súbormi, ktoré obsahujú kryptografické artefakty WhatsApp v operačnom systéme Android, sú databázy 'wa.db' a 'msgstore.db'.
V databáze 'wa.db' sa nachádza úplný zoznam kontaktov používateľa WhatsApp, vrátane telefónneho čísla, zobrazeného mena, časových pečiatok a akýchkoľvek iných informácií poskytnutých pri registrácii v WhatsApp. Súbor 'wa.db' sa nachádza na ceste: '/data/data/com.whatsapp/databases/' a má nasledujúcu štruktúru:

Najzaujímavejšími tabuľkami v databáze 'wa.db' pre odborníka sú:
- 'wa_contacts'
Táto tabuľka obsahuje informácie o kontaktoch: ID kontaktu vo WhatsApp, informácie o stave, zobrazené meno používateľa, časové pečiatky a pod.Vzhľad tabuľky:

Štruktúra tabuľkyNázov poľa Hodnota _id poradové číslo záznamu (v SQL tabuľke) jid WhatsApp ID kontaktu, zapisuje sa vo formáte @s.whatsapp.net is_whatsapp_user obsahuje '1' ak kontakt zodpovedá skutočnému používateľovi WhatsApp, '0' v inom prípade status obsahuje text, ktorý sa zobrazuje v stave kontaktu status_timestamp obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms) number číslo telefónu, ktoré je spojené s kontaktom raw_contact_id poradové číslo kontaktu display_name zobrazené meno kontaktu phone_type typ telefónu phone_label nálepka, ktorá je spojená s číslom kontaktu unseen_msg_count počet správ, ktoré boli odoslané kontaktom, ale neboli prečítané príjemcom photo_ts obsahuje časovú pečiatku vo formáte Unix Epoch Time thumb_ts obsahuje časovú pečiatku vo formáte Unix Epoch Time photo_id_timestamp obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms) given_name hodnota poľa sa zhoduje s 'display_name' pre každý kontakt wa_name meno kontaktu vo WhatsApp (zobrazuje sa názov uvedený v profile kontaktu) sort_name meno kontaktu, ktoré sa používa pri triedení operácií nickname priezvisko kontaktu vo WhatsApp (zobrazuje sa prezývka uvedená v profile kontaktu) company spoločnosť (zobrazuje sa spoločnosť uvedená v profile kontaktu) title oslovenie (pani/pán; zobrazuje sa oslovenie nastavené v profile kontaktu) offset posun - 'sqlite_sequence'
Táto tabuľka obsahuje informácie o počte kontaktov; - 'android_metadata'
Táto tabuľka obsahuje informácie o jazykovej lokalizácii WhatsApp.
V databáze 'msgstore.db' obsahuje informácie o prenesených správach, ako je číslo kontaktu, text správy, stav správy, časové pečiatky, podrobnosti o prenesených súboroch, ktoré sú súčasťou správ, a pod. Súbor 'msgstore.db' sa nachádza na ceste: '/data/data/com.whatsapp/databases/' a má nasledujúcu štruktúru:

Najzaujímavejšie tabuľky v súbore 'msgstore.db' pre odborníka sú:
- 'sqlite_sequence'
Táto tabuľka obsahuje celkové informácie o tejto databáze, napríklad celkový počet ukladaných správ, celkový počet chatov a pod.Vzhľad tabuľky:

- 'message_fts_content'
Obsahuje text prenesených správ.Vzhľad tabuľky:

- 'messages'
Táto tabuľka obsahuje také informácie, ako je číslo kontaktu, text správy, stav správy, časové pečiatky, podrobnosti o prenesených súboroch, ktoré sú súčasťou správ.Vzhľad tabuľky:

Štruktúra tabuľkyNázov poľa Hodnota _id poradové číslo záznamu (v SQL tabuľke) key_remote_jid WhatsApp ID partnera v komunikácii key_from_me smer správy: '0' – prichádzajúca, '1' — odchádzajúca key_id unikátne identifikačné číslo správy status stav správy: ‘0’ – doručené, ‘4’ – čaká na serveri, ‘5’ – prevzaté na mieste určenia, ‘6’ – kontrolná správa, ‘13’ – správa bola otvorená prijímateľom (prečítaná) need_push má hodnotu ‘2’, ak ide o hromadnú správu, inak obsahuje ‘0’ data text správy (keď je parameter ‘media_wa_type’ rovný ‘0’) timestamp obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms), hodnota sa berie z hodín zariadenia media_url obsahuje URL prenášaného súboru (keď je parameter ‘media_wa_type’ rovný ‘1’, ‘2’, ‘3’) media_mime_type MIME typ prenášaného súboru (keď je parameter ‘media_wa_type’ rovný ‘1’, ‘2’, ‘3’) media_wa_type typ správy: ‘0’ – text, ‘1’ – grafický súbor, ‘2’ – audio súbor, ‘3’ – video súbor, ‘4’ – karta kontaktu, ‘5’ – geografické údaje media_size veľkosť prenášaného súboru (keď je parameter ‘media_wa_type’ rovný ‘1’, ‘2’, ‘3’) media_name názov prenášaného súboru (keď je parameter ‘media_wa_type’ rovný ‘1’, ‘2’, ‘3’) media_caption Obsahuje slová ‘audio’, ‘video’ pre príslušné hodnoty parametra ‘media_wa_type’ (keď je parameter ‘media_wa_type’ rovný ‘1’, ‘3’) media_hash zakódovaný v formáte base64 hash prenášaného súboru, vypočítaný podľa algoritmu HAS-256 (keď je parameter ‘media_wa_type’ rovný ‘1’, ‘2’, ‘3’) media_duration dĺžka v sekundách pre mediálny súbor (keď je parameter ‘media_wa_type’ rovný ‘1’, ‘2’, ‘3’) origin má hodnotu ‘2’, ak ide o hromadnú správu, inak obsahuje ‘0’ latitude geografické údaje: šírka (keď je parameter ‘media_wa_type’ rovný ‘5’) longitude geografické údaje: dĺžka (keď je parameter ‘media_wa_type’ rovný ‘5’) thumb_image prevádzková informácia remote_recource ID odosielateľa (iba pre skupinové chaty) received_timestamp čas prijatia, obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms), hodnota sa berie z hodín zariadenia (keď je parameter ‘key_from_me’ rovný ‘0’, ‘-1’ alebo inej hodnote) send_timestamp nepoužíva sa, zvyčajne má hodnotu ‘-1’ receipt_server_timestamp čas prijatia centrálnym serverom, obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms), hodnota sa berie z hodín zariadenia (keď je parameter ‘key_from_me’ rovný ‘1’, ‘-1’ alebo inej hodnote receipt_device_timestamp čas prijatia správy iným účastníkom, obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms), hodnota sa berie z hodín zariadenia (keď je parameter ‘key_from_me’ rovný ‘1’, ‘-1’ alebo inej hodnote read_device_timestamp čas otvorenia (čítania) správy, obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms), hodnotu berieme z hodín zariadenia played_device_timestamp čas prehrávania správy, obsahuje časovú pečiatku vo formáte Unix Epoch Time (ms), hodnotu berieme z hodín zariadenia raw_data náhľad prenášaného súboru (keď je parameter ‘media_wa_type’ rovný ‘1’ alebo ‘3’) recipient_count počet príjemcov (pre broadcast správy) participant_hash používa sa pri prenose správ s geodátami starred nepoužíva sa quoted_row_id neznáme, obvykle obsahuje hodnotu ‘0’ mentioned_jids nepoužíva sa multicast_id nepoužíva sa offset posun Tento zoznam polí nie je vyčerpávajúci. Pre rôzne verzie WhatsApp niektoré polia môžu byť prítomné alebo chýbať. Ďalej môžu byť prítomné polia ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ a pod.
- ‘messages_thumbnails’
Táto tabuľka obsahuje informácie o prenesených obrázkoch a časových pečiatkach. V stĺpci ‘timestamp’ je čas uvedený vo formáte Unix Epoch Time (ms). - ‘chat_list’
Táto tabuľka obsahuje informácie o chatoch.Vzhľad tabuľky:

Pri skúmaní WhatsApp na mobilnom zariadení so systémom Android sa treba tiež zamerať na nasledujúce súbory:
- Súbor ‘msgstore.db.cryptXX’ (kde XX – jedna alebo dve číslice od 0 do 12, napríklad msgstore.db.crypt12). Obsahuje zašifrovanú zálohu správ WhatsApp (záloha súboru msgstore.db). Súbor (alebo súbory) ‘msgstore.db.cryptXX’ sa nachádza na ceste: ‘/data/media/0/WhatsApp/Databases/’ (virtuálna SD karta), ‘/mnt/sdcard/WhatsApp/Databases/ (fyzická SD karta)’.
- Súbor ‘key’. Obsahuje kriptografický kľúč. Nachádza sa na ceste: ‘/data/data/com.whatsapp/files/’. Používa sa na dešifrovanie zašifrovaných záloh WhatsApp.
- Súbor ‘com.whatsapp_preferences.xml’. Obsahuje informácie o profile účtu WhatsApp. Súbor sa nachádza na ceste: ‘/data/data/com.whatsapp/shared_prefs/’.
Fragment obsahu súboru
… 9123456789 (telefónne číslo, asociované s účtom WhatsApp) … 2.17.395 (verzia WhatsApp) … Hej tam! Používam WhatsApp. (správa, zobrazovaná v statuse účtu) … Alex (meno vlastníka účtu) … - Súbor ‘registration.RegisterPhone.xml’. Obsahuje informácie o telefónnom čísle, asociovanom s účtom WhatsApp. Súbor sa nachádza na ceste: ‘/data/data/com.whatsapp/shared_prefs/’.
Obsah súboru
- Súbor 'axolotl.db'. Obsahuje kryptografické kľúče a iné údaje, ktoré sú potrebné na identifikáciu vlastníka účtu. Nachádza sa na ceste: '/data/data/com.whatsapp/databases/'.
- Súbor 'chatsettings.db'. Obsahuje informácie o konfigurácii aplikácie.
- Súbor 'wa.db'. Obsahuje podrobnosti o kontaktoch. Veľmi zaujímavá (z kriminalistického hľadiska) a informatívna databáza. Môže obsahovať podrobné informácie o odstránených kontaktoch.
Taktiež je potrebné venovať pozornosť nasledujúcim adresárom:
- Adresár '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Obsahuje odoslané grafické súbory.
- Adresár '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Obsahuje hlasové správy vo formáte súborov .OPUS.
- Adresár '/data/data/com.whatsapp/cache/Profile Pictures/'. Obsahuje grafické súbory – obrázky kontaktov.
- Adresár '/data/data/com.whatsapp/files/Avatars/'. Obsahuje grafické súbory – miniatury obrázkov kontaktov. Tieto súbory majú príponu '.j', ale aj tak sú grafickými súbormi vo formáte JPEG (JPG).
- Adresár '/data/data/com.whatsapp/files/Avatars/'. Obsahuje grafické súbory – obrázok a miniaturu obrázka, ktorý bol nastavený ako avatar vlastníkom účtu.
- Adresár '/data/data/com.whatsapp/files/Logs/'. Obsahuje záznamy činnosti programu (súbor 'whatsapp.log') a zálohy záznamov činnosti programu (súbory s názvami vo formáte whatsapp-rok-mesiac-deň.1.log.gz).
Súbory záznamov WhatsApp:

Fragment záznamu2017-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] súbor hesla chýba alebo je nečitateľný
2017-01-10 09:37:09.782 LL_I D [1:main] štatistiky textové správy: 59 odoslaných, 82 prijatých / multimediálne správy: 1 odoslaná (0 bajtov), 0 prijatých (9850158 bajtov) / offline správy: 81 prijatých (19522 ms priemerné oneskorenie) / služba správ: 116075 bajtov odoslaných, 211729 bajtov prijatých / VoIP hovory: 1 odchádzajúci hovor, 0 prichádzajúcich hovorov, 2492 bajtov odoslaných, 1530 bajtov prijatých / Google Drive: 0 bajtov odoslaných, 0 bajtov prijatých / Roaming: 1524 bajtov odoslaných, 1826 bajtov prijatých / celkové údaje: 118567 bajtov odoslaných, 10063417 bajtov prijatých
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
- Adresár ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Obsahuje prijaté zvukové súbory.
- Adresár ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Obsahuje odoslané zvukové súbory.
- Adresár '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Obsahuje prijaté grafické súbory.
- Adresár ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Obsahuje odoslané grafické súbory.
- Adresár ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Obsahuje prijaté videá.
- Adresár ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Obsahuje odoslané videá.
- Adresár ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Obsahuje grafické súbory spojené s vlastníkom účtu WhatsApp.
- Aby sa ušetrilo miesto v pamäti Android smartfónu, niektoré dáta WhatsApp môžu byť uložené na SD karte. Na SD karte, v koreňovom adresári, sa nachádza adresár ‘WhatsApp’, kde môžu byť nájdené nasledujúce artefakty tejto aplikácie:

- Adresár ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Obsahuje kópie súborov, ktoré boli odoslané iným používateľom WhatsApp.
- Adresár ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Obsahuje vymazané súbory.
- Adresár ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Obsahuje zašifrované zálohy. Tieto môžu byť dešifrované za predpokladu, že existuje súbor ‘key’, extrahovaný z pamäte analyzovaného zariadenia.
Súbory, ktoré sa nachádzajú v podadresári. ‘Databases’:

- Adresár ‘Média’ (‘/mnt/sdcard/WhatsApp/Média/’). Obsahuje podkatalógy ‘Tapeta’, ‘WhatsApp Audio’, ‘WhatsApp Obrázky’, ‘WhatsApp Profilové Fotografie’, ‘WhatsApp Video’, ‘WhatsApp Hlasové Správy’, v ktorých sa nachádzajú prijaté a odoslané multimediálne súbory (grafické súbory, videá, hlasové správy, fotografie spojené s profilom vlastníka účtu WhatsApp, tapety).
- Adresár ‘Profilové Fotografie’ (‘/mnt/sdcard/WhatsApp/Profilové Fotografie/’). Obsahuje grafické súbory spojené s profilom vlastníka účtu WhatsApp.
- Občas môže na SD karte existovať adresár ‘súbory’ (‘/mnt/sdcard/WhatsApp/Súbory/’). V tomto adresári sa nachádzajú súbory, v ktorých sú uložené nastavenia programu a preferencie používateľa.
Vlastnosti ukladania údajov v niektorých modeloch mobilných zariadení
V niektorých modeloch mobilných zariadení na platforme Android je možné ukladať artefakty WhatsApp na inom mieste. To je spôsobené zmenou úložného priestoru aplikácie systémovým softvérom mobilného zariadenia. Napríklad na mobilných zariadeniach Xiaomi existuje funkcia vytvárania druhého pracovného priestoru („SecondSpace“). Po aktivácii tejto funkcie sa mení umiestnenie údajov. Ak sú v bežnom mobilnom zariadení so systémom Android údaje používateľa uložené v adresári ‘/data/user/0/’ (čo je odkaz na bežné ‘/data/data/’), tak v druhom pracovnom priestore sú údaje aplikácií uložené v adresári ‘/data/user/10/’. To znamená, na príklade umiestnenia súboru 'wa.db':
- v bežnom smartfóne so systémom Android: /data/user/0/com.whatsapp/databases/wa.db’ (čo zodpovedá ‘/data/data/com.whatsapp/databases/wa.db’);
- v druhom pracovnom priestore smartfónu Xiaomi: ‘/data/user/10/com.whatsapp/databases/wa.db’.
Artefakty WhatsApp na zariadení s iOS
Na rozdiel od systému Android, v iOS sa údaje aplikácie WhatsApp ukladajú do zálohy (iTunes backup). Preto extrakcia údajov tejto aplikácie nevyžaduje extrakciu súborového systému alebo vytváranie fyzickej kópie pamäte skúmaného zariadenia. Väčšina významných informácií je uložená v databáze ‘ChatStorage.sqlite’, ktorá sa nachádza na ceste: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (v niektorých programoch sa táto cesta zobrazuje ako ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).
Struktura ‘ChatStorage.sqlite’:

Najinformatívnejšími v databáze ‘ChatStorage.sqlite’ sú tabuľky ‘ZWAMESSAGE’ a ‘ZWAMEDIAITEM’.
Vzhľad tabuľky ‘ZWAMESSAGE’:

Štruktúra tabuľky 'ZWAMESSAGE'
| Názov poľa | Hodnota |
|---|---|
| Z_PK | poradové číslo záznamu (v SQL tabuľke) |
| Z_ENT | identifikátor tabuľky, má hodnotu '9' |
| Z_OPT | neznáme, zvyčajne obsahuje hodnoty od '1' do '6' |
| ZCHILDMESSAGESDELIVEREDCOUNT | neznáme, obvykle obsahuje hodnotu ‘0’ |
| ZCHILDMESSAGESPLAYEDCOUNT | neznáme, obvykle obsahuje hodnotu ‘0’ |
| ZCHILDMESSAGESREADCOUNT | neznáme, obvykle obsahuje hodnotu ‘0’ |
| ZDATAITEMVERSION | neznáme, zvyčajne obsahuje hodnotu '3', pravdepodobne je to ukazovateľ textovej správy |
| ZDOCID | neznáme |
| ZENCRETRYCOUNT | neznáme, obvykle obsahuje hodnotu ‘0’ |
| ZFILTEREDRECIPIENTCOUNT | neznáme, zvyčajne obsahuje hodnoty '0', '2', '256' |
| ZISFROMME | smer správy: '0' – prichádzajúca, '1' — odchádzajúca |
| ZMESSAGEERRORSTATUS | stav prenosu správy. Ak bola správa odoslaná/prijatá, má hodnotu '0' |
| ZMESSAGETYPE | typ prenášanej správy |
| ZSORT | neznáme |
| ZSPOTLIGHSTATUS | neznáme |
| ZSTARRED | neznáme, nepoužíva sa |
| ZCHATSESSION | neznáme |
| ZGROUPMEMBER | neznáme, nepoužíva sa |
| ZLASTSESSION | neznáme |
| ZMEDIAITEM | neznáme |
| ZMESSAGEINFO | neznáme |
| ZPARENTMESSAGE | neznáme, nepoužíva sa |
| ZMESSAGEDATE | časová pečiatka vo formáte OS X Epoch Time |
| ZSENTDATE | čas odoslania správy vo formáte OS X Epoch Time |
| ZFROMJID | WhatsApp ID odosielateľa |
| ZMEDIASECTIONID | obsahuje rok a mesiac odoslania mediálneho súboru |
| ZPHASH | neznáme, nepoužíva sa |
| ZPUSHPAME | meno kontaktu odosielajúceho mediálny súbor vo formáte UTF-8 |
| ZSTANZID | unikátne identifikačné číslo správy |
| ZTEXT | text správy |
| ZTOJID | WhatsApp ID príjemcu |
| CHECKSUM_AGG | posun |
Vzhľad tabuľky ‘ZWAMEDIAITEM’:

Štruktúra tabuľky 'ZWAMEDIAITEM'
| Názov poľa | Hodnota |
|---|---|
| Z_PK | poradové číslo záznamu (v SQL tabuľke) |
| Z_ENT | identifikátor tabuľky, má hodnotu '8' |
| Z_OPT | neznáme, zvyčajne obsahuje hodnoty od '1' do '3'. |
| ZCLOUDSTATUS | obsahuje hodnotu '4', ak sa súbor nahráva. |
| ZFILESIZE | obsahuje dĺžku súboru (v bajtoch) pre nahrané súbory |
| ZMEDIAORIGIN | neznáme, zvyčajne má hodnotu '0' |
| ZMOVIEDURATION | dĺžka mediálneho súboru, pre pdf súbory môže obsahovať počet strán dokumentu |
| ZMESSAGE | obsahuje poradové číslo (číslo sa líši od toho, ktoré je uvedené v stĺpci 'Z_PK') |
| ZASPECTRATIO | pomer strán, nepoužíva sa, zvyčajne má hodnotu '0' |
| ZHACCURACY | neznáme, zvyčajne má hodnotu '0' |
| ZLATTITUDE | šírka v pikstrom |
| ZLONGTITUDE | výška v pikstrom |
| ZMEDIAURLDATE | časová pečiatka vo formáte OS X Epoch Time |
| ZAUTHORNAME | autor (pre dokumenty, môže obsahovať názov súboru) |
| ZCOLLECTIONNAME | nepoužíva sa |
| ZMEDIALOCALPATH | názov súboru (s uvedením cesty) v súborovom systéme zariadenia |
| ZMEDIAURL | URL, na ktorom sa nachádzal mediálny súbor. Ak bol súbor prenášaný z jedného účastníka k druhému, bol zašifrovaný a jeho prípona bude uvedená ako prípona prenášaného súboru — .enc |
| ZTHUMBNAILLOCALPATH | cesta k miniatúre súboru v súborovom systéme zariadenia |
| ZTITLE | názov súboru |
| ZVCARDNAME | hash mediálneho súboru, pri prenose súboru do skupiny môže obsahovať identifikátor odosielateľa |
| ZVCARDSTRING | obsahuje informácie o type prenášaného súboru (napríklad image/jpeg), pri prenose súboru do skupiny môže obsahovať identifikátor príjemcu |
| ZXMPPTHUMBPATH | cesta k miniatúre súboru v súborovom systéme zariadenia |
| ZMEDIAKEY | neznáme, pravdepodobne obsahuje kľúč na dešifrovanie zašifrovaného súboru. |
| ZMETADATA | metadáta prenášaného správy |
| Offset | posun |
Iné zaujímavé databázové tabuľky ‘ChatStorage.sqlite’ sú:
- ‘ZWAPROFILEPUSHNAME’. Priraďuje WhatsApp ID k menu kontaktu;
- ‘ZWAPROFILEPICTUREITEM’. Priraďuje WhatsApp ID k obrázku profilu kontaktu;
- ‘Z_PRIMARYKEY’. Tabuľka obsahuje všeobecné informácie o tejto databáze, ako je celkový počet uložených správ, celkový počet chatov atď.
Pri skúmaní WhatsApp na mobilnom zariadení so systémom iOS treba tiež venovať pozornosť nasledujúcim súborom:
- Súbor ‘BackedUpKeyValue.sqlite’. Obsahuje kryptografické kľúče a iné údaje, ktoré sú potrebné na identifikáciu vlastníka účtu. Nachádza sa na ceste: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Súbor ‘ContactsV2.sqlite’. Obsahuje informácie o kontaktoch používateľa, ako sú celé meno, telefónne číslo, status kontaktu (vo forme textu), WhatsApp ID atď. Nachádza sa na ceste: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Súbor ‘consumer_version’. Obsahuje číslo verzie nainštalovanej aplikácie WhatsApp. Nachádza sa na ceste: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
- Súbor ‘current_wallpaper.jpg’. Obsahuje aktuálne pozadie aplikácie WhatsApp. Nachádza sa na ceste: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. V starších verziách aplikácie sa používa súbor ‘wallpaper’, ktorý sa nachádza na ceste: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
- Súbor ‘blockedcontacts.dat’. Obsahuje informácie o zablokovaných kontaktoch. Nachádza sa na ceste: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
- Súbor ‘pw.dat’. Obsahuje zašifrované heslo. Nachádza sa na ceste: ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
- Súbor ‘net.whatsapp.WhatsApp.plist’ (alebo súbor ‘group.net.whatsapp.WhatsApp.shared.plist’). Obsahuje informácie o profile účtu WhatsApp. Súbor sa nachádza na ceste: ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.
Obsah súboru ‘group.net.whatsapp.WhatsApp.shared.plist’
Taktiež je potrebné venovať pozornosť nasledujúcim adresárom:
- Adresár ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Obsahuje náhľady kontaktov, skupín (súbory s príponou .thumb), avatar kontaktu, avatar vlastníka účtu WhatsApp (súbor ‘Photo.jpg’).
- Adresár ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Message/Media/’. Obsahuje multimediálne súbory a ich náhľady
- Adresár ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Obsahuje protokol o činnosti aplikácie (súbor ‘calls.log’) a zálohy protokolov o činnosti aplikácie (súbor ‘calls.backup.log’).
- Adresár ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Obsahuje samolepky (súbory vo formáte ‘.webp’).
- Adresár ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Obsahuje protokoly činnosti aplikácie.
Artefakty WhatsApp vo Windows
Artefakty WhatsApp vo Windows je možné nájsť na niekoľkých miestach. Predovšetkým ide o adresáre obsahujúce vykonateľné a pomocné súbory aplikácie (pre Windows 8/10):
- ‘C:Program Files (x86)WhatsApp’
- ‘C:Users%User profile% AppDataLocalWhatsApp’
- ‘C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp’
V adresári ‘C:Users%User profile% AppDataLocalWhatsApp’ nachádza sa log súbor ‘SquirrelSetup.log’, ktorý obsahuje informácie o kontrole prítomnosti aktualizácií a inštalácii programu.
V adresári ‘C:Users%User profile% AppDataRoamingWhatsApp’ sa nachádza niekoľko podadresárov:
Súbor ‘main-process.log’ obsahuje informácie o fungovaní programu WhatsApp.
Podadresár ‘databases’ obsahuje súbor ‘Databases.db’, ale tento súbor neobsahuje žiadne informácie o chatových alebo kontaktných údajoch.
Najzaujímavejšími z kriminalistického hľadiska sú súbory nachádzajúce sa v adresári ‘Cache’. Vo väčšine sú to súbory s názvami ‘f_*******’ (kde * — číslo od 0 do 9), obsahujúce zašifrované multimediálne súbory a dokumenty, ale medzi nimi sa nachádzajú aj nezašifrované súbory. Osobitný záujem vzbudzujú súbory ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, nachádzajúce sa v tomto istom podadresári. Soubory ‘data_0’, ‘data_1’, ‘data_3’ obsahujú externé odkazy na prenášané zašifrované multimediálne súbory a dokumenty.
Príklad informácií, ktoré sa nachádzajú v súbore ‘data_1’
Taktiež súbor ‘data_3’ môže obsahovať grafické súbory.
Súbor ‘data_2’ obsahuje avatary kontaktov (môžu byť obnovené vyhľadávaním podľa názvov súborov).
Avatary, obsiahnuté v súbore ‘data_2’:

Takže v pamäti počítača nemožno nájsť samé chaty, ale možno nájsť:
- multimediálne súbory;
- dokumenty, ktoré boli prenášané pomocou WhatsApp;
- informácie o kontaktoch vlastníka účtu.
Artefakty WhatsApp v MacOS
V MacOS je možné nájsť typy artefaktov WhatsApp, podobné tým, ktoré existujú v OS Windows.
Súbory programu sa nachádzajú v adresároch:
- ‘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 <textová premenná> WhatsApp Accounts’
V tomto adresári sa nachádzajú podadresáre, ktorých názvy predstavujú telefónne čísla, spojené s vlastníkom účtu WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
V tomto adresári sa nachádzajú informácie o inštalácii programu. - ‘C:Users%User profile%PicturesMediaték iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesMediaték iPhoto.photolibraryThumbnails’
Tieto priečinky obsahujú systémové súbory programu, vrátane fotografií a miniaturiek kontaktov WhatsApp. - ‘C:Users%User profile%LibraryCachesWhatsApp’
V tomto priečinku sa nachádza niekoľko databáz SQLite, ktoré sa používajú na ukladanie údajov do vyrovnávacej pamäte. - ‘C:Users%User profile%LibraryApplication SupportWhatsApp’
V tomto priečinku sa nachádza niekoľko podpriečinkov:
V adresári ‘C:Users%User profile%LibraryApplication SupportWhatsAppCache’ nachádzajú sa súbory ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ a súbory s názvami ‘f_*******’ (kde * je číslo od 0 do 9). Informácie o tom, aké údaje obsahujú tieto súbory, sú popísané v časti „Artefakty WhatsApp vo Windows“.V adresári ‘C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB’ môžu obsahovať multimediálne súbory (súbory nemajú prípony).
Súbor ‘main-process.log’ obsahuje informácie o fungovaní programu WhatsApp.
Zdroje
- Forenzná analýza WhatsApp Messenger na smartfónoch Android, autor: Cosimo Anglano, 2014.
- Whatsapp Forensics: Preskúmanie súborového systému a databáz v aplikáciách Android a iOS, autor: Ahmad Pratama, 2014.
V nasledujúcich článkoch tejto série:
Dešifrovanie zašifrovaných databáz WhatsAppČlánok, v ktorom budú uvedené informácie o tom, akým spôsobom prebieha generácia šifrovacieho kľúča WhatsApp, a poskytnuté praktické príklady, ktoré ukazujú, ako vykonať dešifrovanie zašifrovaných databáz tejto aplikácie.
Extrahovanie údajov WhatsApp z cloudových úložískČlánok, v ktorom opíšeme, aké údaje WhatsApp sú uložené v cloude, a opíšeme metódy extrakcie týchto údajov z cloudových úložísk.
Extrahovanie údajov WhatsApp: praktické príkladyČlánok, v ktorom sa podrobne popíše, akými programami a ako vykonať extrakciu údajov WhatsApp z rôznych zariadení.
Zdroj: habr.com








