WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?

Хочаце даведацца, якія тыпы крыміналістычных артэфактаў WhatsApp існуюць у розных аперацыйных сістэмах і дзе менавіта яны могуць быць выяўлены - тады вам сюды. Гэтым артыкулам спецыяліст Лабараторыі камп'ютарнай крыміналістыкі Group-IB Ігар Міхайлаў адкрывае серыю публікацый аб крыміналістычным даследаванні WhatsApp і аб тым, якія звесткі можна атрымаць пры аналізе прылады.

Адразу адзначым, што ў розных аперацыйных сістэмах захоўваюцца розныя тыпы артэфактаў WhatsApp, і калі з адной прылады даследчык можа атрымаць пэўныя тыпы дадзеных WhatsApp, гэта зусім не азначае, што падобныя тыпы дадзеных можна атрымаць з іншай прылады. Напрыклад, калі адбіраецца сістэмны блок пад кіраваннем АС Windows, то на яго дысках, верагодна, не будуць выяўлены чаты WhatsApp (выключэнне складаюць рэзервовыя копіі iOS-прылад, якія могуць быць выяўлены на гэтых жа назапашвальніках). Пры адабранні наўтбукаў і мабільных прылад будуць свае асаблівасці. Пагаворым пра гэта падрабязней.

Артэфакты WhatsApp у Android-прыладзе

Для таго, каб атрымаць артэфакты WhatsApp з прылады пад кіраваннем АС Android, даследчык павінен мець правы суперкарыстальніка ("корань") на доследнай прыладзе або мець магчымасць іншым спосабам выняць фізічны дамп памяці прылады, або яго файлавую сістэму (напрыклад, выкарыстаючы праграмныя ўразлівасці пэўнай мабільнай прылады).

Файлы прыкладання размяшчаюцца ў памяці тэлефона ў раздзеле, у якім захоўваюцца дадзеныя карыстальніка. Як правіла, гэты раздзел носіць імя 'userdata'. Падкаталогі і файлы праграмы размяшчаюцца па шляху: '/data/data/com.whatsapp/'.

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Асноўнымі файламі, якія змяшчаюць крыміналістычныя артэфакты WhatsApp у АС Android з'яўляюцца базы дадзеных 'wa.db' и 'msgstore.db'.

У базе дадзеных 'wa.db' змяшчаецца поўны спіс кантактаў карыстальніка WhatsApp, уключаючы нумар тэлефона, якое адлюстроўваецца імя, часовыя пазнакі і любую іншую інфармацыю, указаную пры рэгістрацыі ў WhatsApp. Файл 'wa.db' размяшчаецца па шляху: '/data/data/com.whatsapp/databases/' і мае наступную структуру:

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Найбольш цікавымі табліцамі ў базе даных 'wa.db' для даследчыка з'яўляюцца:

  • 'wa_contacts'
    Гэтая табліца змяшчае інфармацыю аб кантактах: id кантакту ў WhatsApp, інфармацыю аб статусе, якое адлюстроўваецца імя карыстальніка, часовыя адзнакі і г.д.

    Вонкавы выгляд табліцы:

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
    Структура табліцы

    Імя поля Значэнне
    _ідэнтыфікатар парадкавы нумар запісу (у SQL табліцы)
    джыд WhatsApp ID кантакту, запісваецца ў фармаце <нумар тэлефона>@s.whatsapp.net
    is_whatsapp_user утрымоўвае '1' калі кантакту адпавядае фактычны карыстач WhatsApp, '0' у іншым выпадку
    статус змяшчае тэкст, які адлюстроўваецца ў статусе кантакту
    status_timestamp змяшчае часовую пазнаку ў фармаце Unix Epoch Time (ms)
    нумар нумар тэлефона, асацыіраваны з кантактам
    raw_contact_id парадкавы нумар кантакту
    адлюстраванне_імя якое адлюстроўваецца імя кантакту
    phone_type тып тэлефона
    phone_label пазнака, асацыяваная з нумарам кантакту
    unseen_msg_count колькасць паведамленняў якія былі адпраўленыя кантактам але не былі прачытаныя атрымальнікам
    photo_ts змяшчае часовую пазнаку ў фармаце Unix Epoch Time
    thumb_ts змяшчае часовую пазнаку ў фармаце Unix Epoch Time
    photo_id_timestamp змяшчае часовую пазнаку ў фармаце Unix Epoch Time (ms)
    given_name значэнне поля супадае з 'display_name' для кожнага кантакту
    wa_name імя кантакту ў WhatsApp (адлюстроўваецца імя, указанае ў профілі кантакту)
    sort_name імя кантакту, якое выкарыстоўваецца ў аперацыях сартавання
    мянушка нік кантакту ў WhatsApp (адлюстроўваецца нік, указаны ў профілі кантакту)
    кампанія кампанія (адлюстроўваецца кампанія, указаная ў профілі кантакту)
    назва зварот (спадарыня/спадар; адлюстроўваецца зварот, настроены ў профілі кантакту)
    зрушэнне зрушэнне
  • 'sqlite_sequence'
    Гэтая табліца змяшчае інфармацыю аб колькасці кантактаў;
  • 'android_metadata'
    Гэтая табліца змяшчае інфармацыю аб моўнай лакалізацыі WhatsApp.

У базе дадзеных 'msgstore.db' змяшчаецца інфармацыя аб перададзеных паведамленнях, такая як нумар кантакту, тэкст паведамлення, статус паведамлення, часовыя пазнакі, звесткі аб перададзеных файлах, уключаных у паведамленні, і г.д. Файл 'msgstore.db' размяшчаецца па шляху: '/data/data/com.whatsapp/databases/' і мае наступную структуру:

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Найбольш цікавымі табліцамі ў файле 'msgstore.db' для даследчыка з'яўляюцца:

  • 'sqlite_sequence'
    Гэтая табліца змяшчае агульную інфармацыю аб гэтай базе дадзеных, напрыклад, агульная колькасць захоўваемых паведамленняў, агульная колькасць чатаў і г.д.

    Вонкавы выгляд табліцы:

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?

  • 'message_fts_content'
    Змяшчае тэкст перададзеных паведамленняў.

    Вонкавы выгляд табліцы:

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?

  • 'messages'
    Гэтая табліца змяшчае такую ​​інфармацыю, як нумар кантакту, тэкст паведамлення, статус паведамлення, часовыя пазнакі, звесткі аб перададзеных файлах, уключаных у паведамленні.

    Вонкавы выгляд табліцы:

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
    Структура табліцы

    Імя поля Значэнне
    _ідэнтыфікатар парадкавы нумар запісу (у SQL табліцы)
    key_remote_jid WhatsApp ID партнёра па камунікацыі
    key_from_me напрамак паведамлення: '0' - уваходнае, '1' - выходнае
    key_id унікальны ідэнтыфікатар паведамлення
    статус статус паведамлення: '0' - дастаўлена, '4' - чакае на серверы, '5' - атрымана па месцы прызначэння, '6' - кантрольнае паведамленне, '13' - паведамленне адчынена атрымальнікам (прачытана)
    need_push мае значэнне '2', калі гэта шырокавяшчальнае паведамленне, у іншым выпадку ўтрымоўвае '0'
    gegevens тэкст паведамлення (калі параметр 'media_wa_type' роўны '0')
    адзнака часу змяшчае часовую пазнаку ў фармаце Unix Epoch Time (ms), значэнне бярэцца з гадзінніка прылады
    media_url утрымоўвае URL які перадаецца файла (калі параметр 'media_wa_type' роўны '1', '2', '3')
    media_mime_type MIME-тып перадаецца файла (калі параметр 'media_wa_type' роўны '1', '2', '3')
    media_wa_type тып паведамлення: '0' - тэкст, '1' - графічны файл, '2'- аўдыё-файл, '3' - відэа- файл, '4' - картка кантакту, '5' - геададзеныя
    media_size памер перадаванага файла (калі параметр 'media_wa_type' роўны '1', '2', '3')
    media_name імя перадаецца файла (калі параметр 'media_wa_type' роўны '1', '2', '3')
    media_caption Змяшчае словы 'audio', 'video' для адпаведных значэнняў параметру 'media_wa_type' (калі параметр 'media_wa_type' роўны '1', '3')
    media_hash закадаваны ў фармаце base64 хэш перадаецца файла, разлічаны па алгарытме HAS-256 (калі параметр 'media_wa_type' роўны '1', '2', '3')
    media_duration працягласць у секундах для медыяфайла (калі параметр 'media_wa_type' роўны '1', '2', '3')
    паходжанне мае значэнне '2', калі гэта шырокавяшчальнае паведамленне, у іншым выпадку ўтрымоўвае '0'
    шырата геададзеныя: шырыня (калі параметр 'media_wa_type' роўны '5')
    даўгата геададзеныя: даўгата (калі параметр 'media_wa_type' роўны '5')
    thumb_image службовая інфармацыя
    remote_recource ID адпраўніка (толькі для групавых чатаў)
    received_timestamp час атрымання, утрымоўвае часавую пазнаку ў фармаце Unix Epoch Time (ms), значэнне бярэцца з гадзін прылады (калі параметр 'key_from_me' мае '0', '-1' ці іншае значэнне)
    send_timestamp не выкарыстоўваецца, звычайна мае значэнне '-1'
    receipt_server_timestamp час атрымання цэнтральным серверам, утрымоўвае часавую пазнаку ў фармаце Unix Epoch Time (ms), значэнне бярэцца з гадзін прылады (калі параметр 'key_from_me' мае '1', '-1' або іншае значэнне
    receipt_device_timestamp час атрымання паведамлення іншым абанентам, утрымоўвае часавую пазнаку ў фармаце Unix Epoch Time (ms), значэнне бярэцца з гадзін прылады (калі параметр 'key_from_me' мае '1', '-1' або іншае значэнне
    read_device_timestamp час адкрыцця (чытання) паведамлення, утрымоўвае часавую пазнаку ў фармаце Unix Epoch Time (ms), значэнне бярэцца з гадзін прылады
    played_device_timestamp час прайгравання паведамлення, утрымоўвае часавую пазнаку ў фармаце Unix Epoch Time (ms), значэнне бярэцца з гадзін прылады
    raw_data мініяцюра перадаецца файла (калі параметр 'media_wa_type' роўны '1' або '3')
    recipient_count колькасць атрымальнікаў (для шырокавяшчальных паведамленняў)
    participant_hash выкарыстоўваецца пры перадачы паведамленняў з геададзенымі
    у галоўнай ролі не выкарыстоўваецца
    quoted_row_id невядома, звычайна ўтрымоўвае значэнне '0'
    mentioned_jids не выкарыстоўваецца
    multicast_id не выкарыстоўваецца
    зрушэнне зрушэнне

    Гэты спіс палёў не з'яўляецца вычарпальным. Для розных версій WhatsApp частка палёў могуць прысутнічаць ці адсутнічаць. Дадаткова могуць прысутнічаць палі 'media_enc_hash', 'edit_version', 'payment_transaction_id' і г.д.

  • 'messages_thumbnails'
    Гэтая табліца змяшчае інфармацыю аб перададзеных выявах і часовыя пазнакі. У калонцы 'timestamp' час паказаны ў фармаце Unix Epoch Time (ms).
  • 'chat_list'
    Гэтая табліца змяшчае інфармацыю аб чатах.

    Вонкавы выгляд табліцы:

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?

Таксама пры даследаванні WhatsApp у мабільнай прыладзе пад кіраваннем Android трэба зважаць на наступныя файлы:

  • файл 'msgstore.db.cryptXX' (дзе XX - адна ці дзве лічбы ад 0 да 12, напрыклад, msgstore.db.crypt12). Змяшчае зашыфраваную рэзервовую копію паведамленняў WhatsApp (рэзервовая копія файла msgstore.db). Файл (ці файлы) 'msgstore.db.cryptXX' размяшчаецца па шляху: '/data/media/0/WhatsApp/Databases/' (віртуальная SD-карта), '/mnt/sdcard/WhatsApp/Databases/ (фізічная SD-карта)'.
  • файл 'key'. Змяшчае крыптаграфічны ключ. Размяшчаецца па шляху: '/data/data/com.whatsapp/files/'. Выкарыстоўваецца для расшыфроўкі зашыфраваных рэзервовых копій WhatsApp.
  • файл 'com.whatsapp_preferences.xml'. Змяшчае інфармацыю аб профілі акаўнта WhatsApp. Файл размяшчаецца па дарозе: '/data/data/com.whatsapp/shared_prefs/'.

    Фрагмент змесціва файла

    <?xml version="1.0" encoding="ISO-8859-1"?>
    …
    <string name="ph">9123456789</string> (номер телефона, ассоциированный с аккаунтом WhatsApp)
    …
    <string name="version">2.17.395</string> (версия WhatsApp)
    …
    <string name="my_current_status">Hey there! I am using WhatsApp.</string> (сообщение, отображаемое в статусе аккаунта)
    …
    <string name="push_name">Alex</string> (имя владельца аккаунта)
    … 
  • файл 'registration.RegisterPhone.xml'. Змяшчае інфармацыю аб нумары тэлефона, асацыяванага з акаўнтам WhatsApp. Файл размяшчаецца па дарозе: '/data/data/com.whatsapp/shared_prefs/'.

    Змесціва файла

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <map>
    <string name="com.whatsapp.registration.RegisterPhone.phone_number">9123456789</string>
    <int name="com.whatsapp.registration.RegisterPhone.verification_state" value="0"/>
    <int name="com.whatsapp.registration.RegisterPhone.country_code_position" value="-1"/>
    <string name="com.whatsapp.registration.RegisterPhone.input_phone_number">912 345-67-89</string>
    <int name="com.whatsapp.registration.RegisterPhone.phone_number_position" value="10"/>
    <string name="com.whatsapp.registration.RegisterPhone.input_country_code">7</string>
    <string name="com.whatsapp.registration.RegisterPhone.country_code">7</string>
    </map>
  • файл 'axolotl.db'. Змяшчае крыптаграфічныя ключы і іншыя дадзеныя, якія неабходныя для ідэнтыфікацыі ўладальніка акаўнта. Размяшчаецца па шляху: '/data/data/com.whatsapp/databases/'.
  • файл 'chatsettings.db'. Змяшчае інфармацыю аб канфігурацыі прыкладання.
  • файл 'wa.db'. Змяшчае дэталі кантактаў. Вельмі цікавая (у крыміналістычным аспекце) і інфарматыўная база даных. У ёй можа быць знойдзена падрабязная інфармацыя аб выдаленых кантактах.

Таксама трэба зважаць на наступныя каталогі:

  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Змяшчае перададзеныя графічныя файлы.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/'. Змяшчае галасавыя паведамленні ў файлах фармату .OPUS.
  • Каталог '/data/data/com.whatsapp/cache/Profile Pictures/'. Змяшчае графічныя файлы - выявы кантактаў.
  • Каталог '/data/data/com.whatsapp/files/Avatars/'. Змяшчае графічныя файлы – мініяцюры выявы кантактаў. Гэтыя файлы маюць пашырэнне '.j', але, тым не менш, з'яўляюцца графічнымі файламі фармату JPEG (JPG).
  • Каталог '/data/data/com.whatsapp/files/Avatars/'. Змяшчае графічныя файлы - малюнак і мініяцюру малюнка, усталяванага як аватар уладальнікам акаўнта.
  • Каталог '/data/data/com.whatsapp/files/Logs/'. Змяшчае часопіс працы праграмы (файл 'whatsapp.log') і рэзервовыя копіі часопісаў працы праграмы (файлы з імёнамі фармату whatsapp-гггг-мм-дд.1.log.gz).

Файлы часопісаў WhatsApp:

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Фрагмент часопіса2017-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 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 by 0 bytes sent, 1524 bytes received / Total Data: 1826 bytes sent, 118567 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_ID [1:main] msgstore/checkdb/list _jobqueue-WhatsAppJobManager 16384 drw=011
2017-01-10 09:37:09.820 LL_ID [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

  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Audio/'. Змяшчае атрыманыя аўдыёфайлы.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/'. Змяшчае адпраўленыя аўдыёфайлы.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Images/'. Змяшчае атрыманыя графічныя файлы.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/'. Змяшчае адпраўленыя графічныя файлы.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Video/'. Змяшчае атрыманыя відэафайлы.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/'. Змяшчае адпраўленыя відэафайлы.
  • Каталог '/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/'. Змяшчае графічныя файлы, асацыіраваныя з уладальнікам акаўнта WhatsApp.
  • Для эканоміі месца ў памяці Android-смартфона частка даных WhatsApp можа захоўвацца на SD-карце. На SD-карце, у каранёвым каталогу, размешчаны каталог "WhatsApp", дзе могуць быць знойдзены наступныя артэфакты гэтай праграмы:

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?

  • Каталог '.Share' ('/mnt/sdcard/WhatsApp/.Share/'). Змяшчае копіі файлаў, якія былі перададзены іншым карыстальнікам WhatsApp.
  • Каталог '.trash' ('/mnt/sdcard/WhatsApp/.trash/'). Змяшчае выдаленыя файлы.
  • Каталог 'Databases' ('/mnt/sdcard/WhatsApp/Databases/'). Змяшчае зашыфраваныя рэзервовыя копіі. Яны могуць быць расшыфраваны пры наяўнасці файла 'key', вынятага з памяці аналізаванай прылады.

    Файлы, якія знаходзяцца ў падкаталогу 'Databases':

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?

  • Каталог «Палова» ('/mnt/sdcard/WhatsApp/Media/'). Змяшчае падкаталогі 'WallPaper', 'WhatsApp Audio', 'WhatsApp Images', 'WhatsApp Profile Photos', 'WhatsApp Video', 'WhatsApp Voice Notes', у якіх знаходзяцца атрыманыя і перададзеныя мультымедыя файлы (графічныя файлы, відэафайлы, галасавыя паведамленні, фатаграфіі, асацыіраваныя з профілем уладальніка акаўнта WhatsApp, шпалеры).
  • Каталог 'Profile Pictures' ('/mnt/sdcard/WhatsApp/Profile Pictures/'). Змяшчае графічныя файлы, асацыіраваныя з профілем уладальніка акаўнта WhatsApp.
  • Часам на SD-карце можа прысутнічаць каталог 'files' ('/mnt/sdcard/WhatsApp/Files/'). У гэтым каталогу змяшчаюцца файлы, у якіх захоўваюцца налады праграмы і перавагі карыстальніка.

Асаблівасці захоўвання дадзеных у некаторых мадэлях мабільных прылад

У некаторых мадэлях мабільных прылад пад кіраваннем АС Android магчыма захоўванне артэфактаў WhatsApp у іншым месцы. Гэта абумоўлена зменай прасторы захоўвання дадзеных прыкладанняў сістэмным праграмным забеспячэннем мабільнай прылады. Так, напрыклад, у мабільных прыладах Xiaomi ёсць функцыя стварэння другой працоўнай прасторы ("SecondSpace"). Пры актывацыі дадзенай функцыі адбываецца змена месцазнаходжання дадзеных. Так, калі ў звычайнай мабільнай прыладзе пад кіраваннем АС Android дадзеныя карыстача захоўваюцца ў каталогу '/data/user/0/' (што з'яўляецца спасылкай на звыклыя '/data/data/'), то ў другой працоўнай прасторы дадзеныя прыкладанняў захоўваюцца ў каталогу '/data/user/10/'. Гэта значыць, на прыкладзе месцазнаходжання файла 'wa.db':

  • у звычайным смартфоне пад кіраваннем АС Android: /data/user/0/com.whatsapp/databases/wa.db' (што эквівалентна '/data/data/com.whatsapp/databases/wa.db');
  • у другой працоўнай прасторы смартфона Xiaomi: '/data/user/10/com.whatsapp/databases/wa.db'.

Артэфакты WhatsApp у iOS-прыладзе

У адрозненне ад Android АС, у iOS дадзеныя прыкладанні WhatsApp перадаюцца ў рэзервовую копію (iTunes backup). Таму, выманне дадзеных гэтага прыкладання не патрабуе вымання файлавай сістэмы ці стварэнні фізічнага дампа памяці доследнай прылады. Большая частка значнай інфармацыі змяшчаецца ў базе даных 'ChatStorage.sqlite', якая размяшчаецца па шляху: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/' (у некаторых праграмах гэты шлях адлюстроўваецца як 'AppDomainGroup-group.net.whatsapp.WhatsApp.shared').

Структура 'ChatStorage.sqlite':

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Найбольш інфарматыўнымі ў базе дадзеных 'ChatStorage.sqlite' з'яўляюцца табліцы 'ZWAMESSAGE' и 'ZWAMEDIAITEM'.

Вонкавы выгляд табліцы 'ZWAMESSAGE':

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Структура табліцы 'ZWAMESSAGE'

Імя поля Значэнне
Z_PK парадкавы нумар запісу (у SQL табліцы)
Z_ENT ідэнтыфікатар табліцы, мае значэнне '9'
Z_OPT невядома, звычайна ўтрымоўвае значэнні ад '1' да '6'
ZCHILDMESSAGESDELIVEREDCOUNT невядома, звычайна ўтрымоўвае значэнне '0'
ZCHILDMESSAGESPLAYEDCOUNT невядома, звычайна ўтрымоўвае значэнне '0'
ZCHILDMESSAGESREADCOUNT невядома, звычайна ўтрымоўвае значэнне '0'
ZDATAITEMVERSION невядома, звычайна змяшчае значэнне '3', верагодна, з'яўляецца паказальнікам тэкставага паведамлення
ZDOCID невядома
ZENCRETRYCOUNT невядома, звычайна ўтрымоўвае значэнне '0'
ZFILTEREDRECIPIENTCOUNT невядома, звычайна ўтрымоўвае значэнні '0', '2', '256'
ZISFROMME напрамак паведамлення: '0' - уваходнае, '1' - выходнае
ZMESSAGEERRORSTATUS статус перадачы паведамлення. Калі паведамленне адпраўлена/атрымана, тое мае значэнне '0'
ZMESSAGETYPE тып перадаецца паведамлення
ZSORT невядома
ZSPOTLIGHSTATUS невядома
ZSTARRED невядома, не выкарыстоўваецца
ZCHATSESSION невядома
ZGROUPMEMBER невядома, не выкарыстоўваецца
ZLASTSESSION невядома
ZMEDIAITEM невядома
ZMESSAGEINFO невядома
ZPARENTMESSAGE невядома, не выкарыстоўваецца
ZMESSAGEDATE часовая адзнака ў фармаце OS X Epoch Time
ZSENTDATE час адпраўкі паведамлення ў фармаце OS X Epoch Time
ZFROMJID WhatsApp ID адпраўніка
ZMEDIASECTIONID змяшчае год і месяц адпраўкі медыяфайла
ZPHASH невядома, не выкарыстоўваецца
ZPUSHPAME імя кантакту адправіў мэдыяфайл у фармаце UTF-8
ZSTANZID унікальны ідэнтыфікатар паведамлення
ZTEXT тэкст паведамлення
ZTOJID WhatsApp ID атрымальніка
OFFSET зрушэнне

Вонкавы выгляд табліцы 'ZWAMEDIAITEM':

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Структура табліцы 'ZWAMEDIAITEM'

Імя поля Значэнне
Z_PK парадкавы нумар запісу (у SQL табліцы)
Z_ENT ідэнтыфікатар табліцы, мае значэнне '8'
Z_OPT невядома, звычайна ўтрымоўвае значэнні ад '1' да '3'.
ZCLOUDSTATUS утрымоўвае значэнне '4' калі файл загружаны.
ZFILESIZE змяшчае даўжыню файла (у байтах) для загружаных файлаў
ZMEDIAORIGIN невядома, звычайна мае значэнне '0'
ZMOVIEDURATION працягласць медыяфайла, для pdf файлаў можа змяшчаць колькасць старонак дакумента
ZMESSAGE утрымоўвае парадкавы нумар (нумар адрозніваецца ад таго, які паказаны ў калонцы 'Z_PK')
ZASPECTRATIO суадносіны бакоў, не выкарыстоўваецца, звычайна мае значэнне '0'
ZHACCURACY невядома, звычайна мае значэнне '0'
ZLATTITUDE шырыня ў пікселях
ZLONGTITUDE вышыня ў пікселях
ZMEDIAURLDATE часовая пазнака ў фармаце OS X Epoch Time
ZAUTHORNAME аўтар (для дакументаў, можа змяшчаць назву файла)
ZCOLLECTIONNAME не выкарыстоўваецца
ZMEDIALOCALPATH імя файла (з указаннем шляху) у файлавай сістэме прылады
ZMEDIAURL URL, па якім знаходзіўся мэдыяфайл. Калі файл перадаваўся ад аднаго абанента іншаму, ён быў зашыфраваны, і яго пашырэнне будзе паказана як пашырэнне файла, які перадаецца — .enc
ZTHUMBNAILLOCALPATH шлях да мініяцюры файла ў файлавай сістэме прылады
ZTITLE загаловак файла
ZVCARDNAME хэш медыяфайла, пры перадачы файла ў групу можа ўтрымоўваць ідэнтыфікатар адпраўніка
ZVCARDSTRING змяшчае інфармацыю аб тыпе перадаванага файла (напрыклад, image/jpeg), пры перадачы файла ў групу можа змяшчаць ідэнтыфікатар атрымальніка
ZXMPPTHUMBPATH шлях да мініяцюры файла ў файлавай сістэме прылады
ZMEDIAKEY невядома, верагодна, утрымоўвае ключ для расшыфроўкі зашыфраванага файла.
ZMETADATA метададзеныя перадаванага паведамлення
Зрушэнне зрушэнне

Іншымі цікавымі табліцамі базы дадзеных 'ChatStorage.sqlite' з'яўляюцца:

  • 'ZWAPROFILEPUSHNAME'. Суадносіць WhatsApp ID з імем кантакту;
  • 'ZWAPROFILEPICTUREITEM'. Суадносіць WhatsApp ID з аватаркай кантакту;
  • 'Z_PRIMARYKEY'. Табліца змяшчае агульную інфармацыю аб гэтай базе дадзеных, такую ​​як агульная колькасць захоўваемых паведамленняў, агульная колькасць чатаў і г.д.

Таксама пры даследаванні WhatsApp у мабільнай прыладзе пад кіраваннем iOS трэба зважаць на наступныя файлы:

  • файл 'BackedUpKeyValue.sqlite'. Змяшчае крыптаграфічныя ключы і іншыя дадзеныя, якія неабходныя для ідэнтыфікацыі ўладальніка акаўнта. Размяшчаецца па шляху: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • файл 'ContactsV2.sqlite'. Змяшчае інфармацыю аб кантактах карыстальніка, такую ​​як ПІБ, нумар тэлефона, статус кантакту (у выглядзе тэксту), WhatsApp ID і г.д. Размяшчаецца па шляху: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • файл 'consumer_version'. Змяшчае нумар версіі ўстаноўленага прыкладання WhatsApp. Размяшчаецца па шляху: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • файл 'current_wallpaper.jpg'. Змяшчае бягучыя шпалеры фону праграмы WhatsApp. Размяшчаецца па шляху: /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. У старых версіях прыкладання выкарыстоўваецца файл 'wallpaper', які размяшчаецца па шляху: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'.
  • файл 'blockedcontacts.dat'. Змяшчае інфармацыю аб заблакіраваных кантактах. Размяшчаецца па шляху: /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • файл 'pw.dat'. Змяшчае зашыфраваны пароль. Размяшчаецца па шляху: '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/'.
  • файл 'net.whatsapp.WhatsApp.plist' (або файл 'group.net.whatsapp.WhatsApp.shared.plist'). Змяшчае інфармацыю аб профілі акаўнта WhatsApp. Файл размяшчаецца па дарозе: '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/'.

Змесціва файла 'group.net.whatsapp.WhatsApp.shared.plist' WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Таксама трэба зважаць на наступныя каталогі:

  • Каталог '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/'. Змяшчае мініяцюры кантактаў, груп (файлы з пашырэннем .thumb), аватары кантактаў, аватар уладальніка акаўнта WhatsApp (файл 'Photo.jpg').
  • Каталог '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message/Media/'. Змяшчае мультымедыя-файлы і іх мініяцюры
  • Каталог '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/'. Змяшчае часопіс працы праграмы (файл 'calls.log') і рэзервовыя копіі часопісаў працы праграмы (файл 'calls.backup.log').
  • Каталог '/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/'. Змяшчае стыкеры (файлы ў фармаце '.webp').
  • Каталог '/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/'. Змяшчае часопісы працы праграмы.

Артэфакты WhatsApp у Windows

Артэфакты WhatsApp у Windows можна знайсці ў некалькіх месцах. Перш за ўсё, гэта каталогі, якія змяшчаюць выкананыя і дапаможныя файлы праграмы (для Windows 8/10):

  • 'C:Program Files (x86)WhatsApp'
  • 'C:Users%User profile% AppDataLocalWhatsApp'
  • 'C:Users%User profile% AppDataLocalVirtualStore Program Files (x86)WhatsApp'

У каталогу 'C:Users%User profile% AppDataLocalWhatsApp' размяшчаецца лог-файл 'SquirrelSetup.log', У якім знаходзіцца інфармацыя аб праверцы наяўнасці абнаўленняў і інсталяцыі праграмы.

У каталогу 'C:Users%User profile% AppDataRoamingWhatsApp' знаходзіцца некалькі падкаталогаў:

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
файл 'main-process.log' змяшчае інфармацыю аб рабоце праграмы WhatsApp.

Падкаталог 'databases' змяшчае файл 'Databases.db', але гэты файл не ўтрымлівае ніякай інфармацыі аб чатах або кантактах.

Найбольш цікавымі з крыміналістычнага пункту гледжання з'яўляюцца файлы, якія знаходзяцца ў каталогу 'Cache'. У асноўным гэта файлы з імёнамі 'f_*******' (дзе * - лік ад 0 да 9), якія змяшчаюць зашыфраваныя мультымедыя-файлы і дакументы, але сярод іх сустракаюцца і незашыфраваныя файлы. Адмысловая цікавасць уяўляюць файлы 'data_0', 'data_1', 'data_2', 'data_3', якія знаходзяцца ў гэтым жа падкаталогу. Файлы 'data_0', 'data_1', 'data_3' утрымоўваюць вонкавыя спасылкі на перадаваныя зашыфраваныя мультымедыя-файлы і дакументы.

Прыклад інфармацыі, якая змяшчаецца ў файле 'data_1'WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Таксама файл 'data_3' можа змяшчаць графічныя файлы.

файл 'data_2' змяшчае аватары кантактаў (могуць быць адноўлены пошукам па загалоўках файлаў).

Аватары, якія змяшчаюцца ў файле 'data_2':

WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
Такім чынам, у памяці кампутара нельга знайсці самі чаты, але можна знайсці:

  • мультымедыя-файлы;
  • дакументы, якія перадаваліся з дапамогай WhatsApp;
  • інфармацыю аб кантактах уладальніка акаўнта.

Артэфакты WhatsApp у MacOS

У MacOS можна знайсці тыпы артэфактаў WhatsApp, падобныя тым, якія маюцца ў АС Windows.

Файлы праграмы знаходзяцца ў каталогах:

  • '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'
    У гэтым каталогу знаходзяцца падкаталогі, імёны якіх уяўляюць сабой нумары тэлефонаў, асацыіраваных з уладальнікам акаўнта WhatsApp.
  • 'C:Users%User profile%LibraryCachesWhatsApp.ShipIt'
    У гэтым каталогу змяшчаецца інфармацыя аб усталёўцы праграмы.
  • 'C:Users%User profile%PicturesМедыятэка iPhoto.photolibraryMasters', 'C:Users%User profile%PicturesМедыятэка iPhoto.photolibraryThumbnails'
    У гэтых каталогах змяшчаюцца службовыя файлы праграмы і, у тым ліку, фатаграфіі і мініяцюры кантактаў WhatsApp.
  • 'C:Users%User profile%LibraryCachesWhatsApp'
    У гэтым каталогу знаходзяцца некалькі SQLite-баз, якія выкарыстоўваюцца для кэшавання дадзеных.
  • 'C:Users%User profile%LibraryApplication SupportWhatsApp'
    У гэтым каталогу знаходзіцца некалькі падкаталогаў:

    WhatsApp на далоні: дзе і як можна выявіць крыміналістычныя артэфакты?
    У каталогу 'C:Users%User profile%LibraryApplication SupportWhatsAppCache' знаходзяцца файлы 'data_0', 'data_1', 'data_2', 'data_3' і файлы з імёнамі 'f_*******' (дзе * - лік ад 0 да 9). Інфармацыя пра тое, якія звесткі ўтрымліваюць гэтыя файлы, апісана ў раздзеле "Артэфакты WhatsApp у Windows".

    У каталогу 'C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB' могуць утрымоўвацца мультымедыйныя файлы (файлы не маюць пашырэнняў).

    файл 'main-process.log' змяшчае інфармацыю аб рабоце праграмы WhatsApp.

крыніцы

  1. Forensic analysis of WhatsApp Messenger па Android smartphones, па Cosimo Anglano, 2014.
  2. Whatsapp Forensics: Eksplorasi сістэма berkas dan basis data pada applied Android dan iOS by Ahmad Pratama, 2014.

У наступных артыкулах гэтай серыі:

Расшыфроўка зашыфраваных баз WhatsAppАртыкул, у якім будзе прыведзена інфармацыя аб тым, якім чынам адбываецца генерацыя ключа шыфравання WhatsApp, і дадзены практычныя прыклады, якія паказваюць, як вырабіць расшыфроўку зашыфраваных баз гэтага прыкладання.
Выманне дадзеных WhatsApp з хмарных сховішчаўАртыкул, у якой мы раскажам, якія дадзеныя WhatsApp захоўваюцца ў аблоках, і апішам метады вымання гэтых дадзеных з хмарных сховішчаў.
Выманне дадзеных WhatsApp: практычныя прыкладыАртыкул, у якой будзе пакрокава апісана, якімі праграмамі і як вырабіць выманне дадзеных WhatsApp з розных прылад.

Крыніца: habr.com

Дадаць каментар