WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?

Vous souhaitez savoir quels types d'artefacts judiciaires de WhatsApp existent dans diffĂ©rents systĂšmes d'exploitation et oĂč ils peuvent ĂȘtre trouvĂ©s ? Alors, ce site est fait pour vous. Cet article est prĂ©sentĂ© par un spĂ©cialiste du Laboratoire d'informatique judiciaire de Group-IB. Igor Mikhailov ouvre une sĂ©rie de publications sur l'enquĂȘte judiciaire de WhatsApp et sur les informations qui peuvent ĂȘtre obtenues lors de l'analyse d'un appareil.

Il convient de noter que diffĂ©rents types d'artefacts WhatsApp sont stockĂ©s dans diffĂ©rents systĂšmes d'exploitation, et si un chercheur peut extraire certains types de donnĂ©es WhatsApp d'un appareil, cela ne signifie pas nĂ©cessairement que des types similaires de donnĂ©es peuvent ĂȘtre extraits d'un autre appareil. Par exemple, si un bloc systĂšme sous Windows est saisi, il se peut que les discussions WhatsApp ne soient pas trouvĂ©es sur ses disques (Ă  l'exception des sauvegardes d'appareils iOS qui peuvent ĂȘtre dĂ©couvertes sur ces mĂȘmes supports). Lors de la saisie de laptops et d'appareils mobiles, il y aura des particularitĂ©s. Examinons cela plus en dĂ©tail.

Artefacts WhatsApp sur un appareil Android

Pour extraire les artefacts WhatsApp d'un appareil fonctionnant sous Android, le chercheur doit avoir des droits d'administrateur (‘root’) sur l'appareil examinĂ© ou ĂȘtre en mesure d'extraire d'une autre maniĂšre un dump physique de la mĂ©moire de l'appareil, ou son systĂšme de fichiers (par exemple, en utilisant des vulnĂ©rabilitĂ©s logicielles spĂ©cifiques Ă  un appareil mobile).

Les fichiers de l'application sont situĂ©s dans la mĂ©moire du tĂ©lĂ©phone dans la partition oĂč sont stockĂ©es les donnĂ©es de l'utilisateur. En gĂ©nĂ©ral, cette partition est appelĂ©e ‘userdata’. Les sous-rĂ©pertoires et fichiers du programme se trouvent au chemin : ‘/data/data/com.whatsapp/’.

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Les principaux fichiers contenant des artefacts judiciaires de WhatsApp sur Android sont les bases de donnĂ©es ‘wa.db’ et ‘msgstore.db’.

La base de donnĂ©es ‘wa.db’ contient la liste complĂšte des contacts de l'utilisateur WhatsApp, y compris le numĂ©ro de tĂ©lĂ©phone, le nom affichĂ©, les horodatages et toute autre information fournie lors de l'inscription Ă  WhatsApp. Le fichier ‘wa.db’ se trouve au chemin : ‘/data/data/com.whatsapp/databases/’ et a la structure suivante :

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Les tables les plus intĂ©ressantes de la base de donnĂ©es ‘wa.db’ pour le chercheur sont :

  • ‘wa_contacts’
    Ce tableau contient des informations sur les contacts : l'identifiant du contact dans WhatsApp, les informations de statut, le nom d'affichage de l'utilisateur, les horodatages, etc.

    Apparence du tableau :

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
    Structure du tableau

    Nom du champValeur
    _idnuméro d'ordre de l'enregistrement (dans la table SQL)
    jidID WhatsApp du contact, enregistré au format @s.whatsapp.net
    is_whatsapp_usercontient '1' si le contact correspond à un utilisateur WhatsApp réel, '0' sinon
    statutcontient le texte affiché dans le statut du contact
    status_timestampcontient un horodatage au format Unix Epoch Time (ms)
    numbernuméro de téléphone associé au contact
    raw_contact_idnuméro d'ordre du contact
    display_namenom d'affichage du contact
    phone_typetype de téléphone
    phone_labelétiquette associée au numéro de contact
    unseen_msg_countnombre de messages envoyés par le contact mais non lus par le destinataire
    photo_tscontient un horodatage au format Unix Epoch Time
    thumb_tscontient un horodatage au format Unix Epoch Time
    photo_id_timestampcontient un horodatage au format Unix Epoch Time (ms)
    given_namela valeur du champ correspond Ă  'display_name' pour chaque contact
    wa_namenom du contact dans WhatsApp (nom affiché dans le profil du contact)
    sort_namenom du contact utilisé dans les opérations de tri
    nicknamesurnom du contact dans WhatsApp (surnom affiché dans le profil du contact)
    companyentreprise (entreprise affichée dans le profil du contact)
    titlesalutation (madame/monsieur ; salutation affichée dans le profil du contact)
    offsetoffset
  • 'sqlite_sequence'
    Ce tableau contient des informations sur le nombre de contacts ;
  • 'android_metadata'
    Ce tableau contient des informations sur la localisation linguistique de WhatsApp.

La base de donnĂ©es ‘msgstore.db’ contient des informations sur les messages envoyĂ©s, telles que le numĂ©ro de contact, le texte du message, le statut du message, les horodatages, les dĂ©tails des fichiers envoyĂ©s inclus dans les messages, etc. Fichier ‘msgstore.db’ se trouve au chemin : ‘/data/data/com.whatsapp/databases/’ et a la structure suivante :

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Les tableaux les plus intĂ©ressants dans le fichier ‘msgstore.db’ pour le chercheur sont :

  • 'sqlite_sequence'
    Ce tableau contient des informations générales sur cette base de données, telles que le nombre total de messages stockés, le nombre total de chats, etc.

    Apparence du tableau :

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?

  • 'message_fts_content'
    Contient le texte des messages envoyés.

    Apparence du tableau :

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?

  • 'messages'
    Ce tableau contient des informations telles que le numéro de contact, le texte du message, le statut du message, les horodatages, les détails des fichiers envoyés inclus dans les messages.

    Apparence du tableau :

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
    Structure du tableau

    Nom du champValeur
    _idnuméro d'ordre de l'enregistrement (dans la table SQL)
    key_remote_jidID WhatsApp de la personne en communication
    key_from_medirection du message : '0' – entrant, '1' — sortant
    key_ididentifiant unique du message
    statutstatut du message : '0' – livrĂ©, '4' – en attente, le serveur'5' – reçu Ă  destination, '6' – message de contrĂŽle, '13' – message ouvert par le destinataire (lu)
    need_pusha une valeur '2' si c'est un message de diffusion, sinon contient '0'
    datatexte du message (lorsque le paramÚtre 'media_wa_type' est égal à '0')
    timestampcontient un horodatage au format Unix Epoch Time (ms), la valeur est prise Ă  partir de l'horloge de l'appareil
    media_urlcontient l'URL du fichier transmis (lorsque le paramÚtre 'media_wa_type' est égal à '1', '2', '3')
    media_mime_typetype MIME du fichier transmis (lorsque le paramÚtre 'media_wa_type' est égal à '1', '2', '3')
    media_wa_typetype de message : '0' – texte, '1' – fichier graphique, '2'- fichier audio, '3' – fichier vidĂ©o, '4' – carte de contact, '5' – donnĂ©es gĂ©ographiques
    media_sizetaille du fichier transmis (lorsque le paramÚtre 'media_wa_type' est égal à '1', '2', '3')
    media_namenom du fichier transmis (lorsque le paramÚtre 'media_wa_type' est égal à '1', '2', '3')
    media_captioncontient les mots 'audio', 'video' pour les valeurs correspondantes du paramÚtre 'media_wa_type' (lorsque le paramÚtre 'media_wa_type' est égal à '1', '3')
    media_hashhachage du fichier transmis codé en base64, calculé par l'algorithme HAS-256 (lorsque le paramÚtre 'media_wa_type' est égal à '1', '2', '3')
    media_durationdurée en secondes du fichier multimédia (lorsque le paramÚtre 'media_wa_type' est égal à '1', '2', '3')
    origin.a une valeur '2' si c'est un message de diffusion, sinon contient '0'
    latitudedonnées géographiques : latitude (lorsque le paramÚtre 'media_wa_type' est égal à '5')
    longitudedonnées géographiques : longitude (lorsque le paramÚtre 'media_wa_type' est égal à '5')
    thumb_imageinformations de service
    remote_recourceID de l'expéditeur (uniquement pour les chats de groupe)
    received_timestampheure de réception, contient un horodatage au format Unix Epoch Time (ms), la valeur est prise à partir de l'horloge de l'appareil (lorsque le paramÚtre 'key_from_me' a '0', '-1' ou une autre valeur)
    send_timestampnon utilisé, a généralement la valeur '-1'
    receipt_server_timestampheure de réception par le serveur central, contient un horodatage au format Unix Epoch Time (ms), la valeur est prise à partir de l'horloge de l'appareil (lorsque le paramÚtre 'key_from_me' a '1', '-1' ou une autre valeur) serveurreceipt_device_timestamp
    heure de réception du message par un autre abonné, contient un horodatage au format Unix Epoch Time (ms), la valeur est prise à partir de l'horloge de l'appareil (lorsque le paramÚtre 'key_from_me' a '1', '-1' ou une autre valeur)read_device_timestamp
    read_device_timestample temps d'ouverture (de lecture) du message, contient un horodatage au format Unix Epoch Time (ms), la valeur est prise Ă  partir de l'horloge de l'appareil
    played_device_timestample temps de lecture du message, contient un horodatage au format Unix Epoch Time (ms), la valeur est prise Ă  partir de l'horloge de l'appareil
    raw_dataminiature du fichier transmis (lorsque le paramĂštre ‘media_wa_type’ est Ă©gal Ă  ‘1’ ou ‘3’)
    recipient_countnombre de destinataires (pour les messages de diffusion)
    participant_hashutilisé lors de l'envoi de messages avec des données de localisation
    starrednon utilisé
    quoted_row_idinconnu, contient gĂ©nĂ©ralement la valeur ‘0’
    mentioned_jidsnon utilisé
    multicast_idnon utilisé
    offsetoffset

    Cette liste de champs n'est pas exhaustive. Pour diffĂ©rentes versions de WhatsApp, certains champs peuvent ĂȘtre prĂ©sents ou absents. D'autres champs peuvent Ă©galement ĂȘtre prĂ©sents ‘media_enc_hash’, ‘edit_version’, ‘payment_transaction_id’ etc.

  • ‘messages_thumbnails’
    Cette table contient des informations sur les images transmises et les horodatages. Dans la colonne ‘timestamp’, le temps est indiquĂ© au format Unix Epoch Time (ms).
  • ‘chat_list’
    Cette table contient des informations sur les discussions.

    Apparence du tableau :

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?

Lors de l'examen de WhatsApp sur un appareil mobile sous Android, il faut Ă©galement prĂȘter attention aux fichiers suivants :

  • Le fichier ‘msgstore.db.cryptXX’ (oĂč XX est un ou deux chiffres de 0 Ă  12, par exemple, msgstore.db.crypt12). Contient une sauvegarde chiffrĂ©e des messages WhatsApp (sauvegarde du fichier msgstore.db). Le fichier (ou les fichiers) ‘msgstore.db.cryptXX’ se trouve au chemin : ‘/data/media/0/WhatsApp/Databases/’ (carte SD virtuelle), ‘/mnt/sdcard/WhatsApp/Databases/’ (carte SD physique).
  • Le fichier ‘key’. Contient la clĂ© cryptographique. Disponible Ă  l'emplacement : ‘/data/data/com.whatsapp/files/’. UtilisĂ© pour dĂ©chiffrer les sauvegardes chiffrĂ©es de WhatsApp.
  • Le fichier ‘com.whatsapp_preferences.xml’. Contient des informations sur le profil du compte WhatsApp. Le fichier est situĂ© Ă  l'emplacement : ‘/data/data/com.whatsapp/shared_prefs/’.

    Extrait du contenu du fichier

    

    9123456789 (numéro de téléphone associé au compte WhatsApp)
    

    2.17.395 (version de WhatsApp)
    

    Hey there! I am using WhatsApp. (message affiché dans le statut du compte)
    

    Alex (nom du propriétaire du compte)
    
 
  • Le fichier ‘registration.RegisterPhone.xml’. Contient des informations sur le numĂ©ro de tĂ©lĂ©phone associĂ© au compte WhatsApp. Le fichier est situĂ© Ă  l'emplacement : ‘/data/data/com.whatsapp/shared_prefs/’.

    Contenu du fichier

    
    9123456789
    
    
    912 345-67-89
    
    7
    7
    
  • Le fichier ‘axolotl.db’. Contient des clĂ©s cryptographiques et d'autres donnĂ©es nĂ©cessaires Ă  l'identification du propriĂ©taire du compte. Se trouve Ă  l'emplacement : ‘/data/data/com.whatsapp/databases/’.
  • Le fichier ‘chatsettings.db’. Contient des informations sur la configuration de l'application.
  • Le fichier ‘wa.db’. Contient des dĂ©tails sur les contacts. Une base de donnĂ©es trĂšs intĂ©ressante (d'un point de vue judiciaire) et informative. Elle peut contenir des informations dĂ©taillĂ©es sur les contacts supprimĂ©s.

Il faut Ă©galement prĂȘter attention aux rĂ©pertoires suivants :

  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Images/’. Contient des fichiers graphiques transmis.
  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Voice Notes/’. Contient des messages vocaux dans des fichiers au format .OPUS.
  • Le rĂ©pertoire ‘/data/data/com.whatsapp/cache/Profile Pictures/’. Contient des fichiers graphiques – images des contacts.
  • Le rĂ©pertoire ‘/data/data/com.whatsapp/files/Avatars/’. Contient des fichiers graphiques – miniatures de l'image des contacts. Ces fichiers ont l'extension ‘.j’, mais restent des fichiers graphiques au format JPEG (JPG).
  • Le rĂ©pertoire ‘/data/data/com.whatsapp/files/Avatars/’. Contient des fichiers graphiques – image et miniature de l'image dĂ©finie comme avatar par le propriĂ©taire du compte.
  • Le rĂ©pertoire ‘/data/data/com.whatsapp/files/Logs/’. Contient le journal d'activitĂ© du programme (fichier ‘whatsapp.log’) et des sauvegardes des journaux d'activitĂ© (fichiers nommĂ©s au format whatsapp-aaaa-mm-jj.1.log.gz).

Fichiers journaux de WhatsApp :

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Fragment du journal2017-01-10 09:37:09.757 LL_I D [524:WhatsApp Worker #1] notification d'appel manqué/init count:0 timestamp:0
2017-01-10 09:37:09.758 LL_I D [524:WhatsApp Worker #1] notification d'appel manqué/mise à jour annuler vrai
2017-01-10 09:37:09.768 LL_I D [1:main] app-init/charger-moi
2017-01-10 09:37:09.772 LL_I D [1:main] fichier de mot de passe manquant ou illisible
2017-01-10 09:37:09.782 LL_I D [1:main] statistiques Messages Textuels : 59 envoyés, 82 reçus / Messages Média : 1 envoyé (0 octets), 0 reçu (9850158 octets) / Messages Hors ligne : 81 reçus (19522 msec de délai moyen) / Service de message : 116075 octets envoyés, 211729 octets reçus / Appels Voip : 1 appel sortant, 0 appel entrant, 2492 octets envoyés, 1530 octets reçus / Google Drive : 0 octets envoyés, 0 octets reçus / Roaming : 1524 octets envoyés, 1826 octets reçus / Données Totales : 118567 octets envoyés, 10063417 octets reçus
2017-01-10 09:37:09.785 LL_I D [1:main] media-state-manager/rafraßchir-l'état-des-médias/écriture-media
2017-01-10 09:37:09.806 LL_I D [1:main] app-init/initialiser/ minuterie/arrĂȘter : 24
2017-01-10 09:37:09.811 LL_I D [1:main] msgstore/vérifierla santé
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

  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/’. Contient les fichiers audio reçus.
  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Audio/Sent/’. Contient les fichiers audio envoyĂ©s.
  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Images/’. Contient les fichiers graphiques reçus.
  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Images/Sent/’. Contient les fichiers graphiques envoyĂ©s.
  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Video/’. Contient les fichiers vidĂ©o reçus.
  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Video/Sent/’. Contient les fichiers vidĂ©o envoyĂ©s.
  • Le rĂ©pertoire ‘/data/media/0/WhatsApp/Media/WhatsApp Profile Photos/’. Contient les fichiers graphiques associĂ©s au propriĂ©taire du compte WhatsApp.
  • Pour Ă©conomiser de l'espace sur les smartphones Android, certaines donnĂ©es WhatsApp peuvent ĂȘtre stockĂ©es sur une carte SD. Sur la carte SD, Ă  la racine, se trouve le rĂ©pertoire ‘WhatsApp’, oĂč les artefacts de ce programme peuvent ĂȘtre trouvĂ©s :

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?

  • Le rĂ©pertoire ‘.Share’ (‘/mnt/sdcard/WhatsApp/.Share/’). Contient des copies de fichiers qui ont Ă©tĂ© transfĂ©rĂ©s Ă  d'autres utilisateurs WhatsApp.
  • Le rĂ©pertoire ‘.trash’ (‘/mnt/sdcard/WhatsApp/.trash/’). Contient des fichiers supprimĂ©s.
  • Le rĂ©pertoire ‘Databases’ (‘/mnt/sdcard/WhatsApp/Databases/’). Contient des sauvegardes chiffrĂ©es. Elles peuvent ĂȘtre dĂ©chiffrĂ©es avec un fichier ‘key’, extrait de la mĂ©moire de l'appareil analysĂ©.

    Fichiers situĂ©s dans le sous-rĂ©pertoire ‘Databases’:

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?

  • Le rĂ©pertoire ‘MĂ©dia’ (‘/mnt/sdcard/WhatsApp/MĂ©dia/’). Contient des sous-rĂ©pertoires ‘Mur d'images’, ‘Audio WhatsApp’, ‘Images WhatsApp’, ‘Photos de profil WhatsApp’, ‘VidĂ©o WhatsApp’, ‘Notes vocales WhatsApp’, dans lesquels se trouvent les fichiers multimĂ©dias reçus et envoyĂ©s (fichiers graphiques, fichiers vidĂ©o, messages vocaux, photos, associĂ©s au profil du propriĂ©taire du compte WhatsApp, fonds d'Ă©cran).
  • Le rĂ©pertoire ‘Photos de profil’ (‘/mnt/sdcard/WhatsApp/Photos de profil/’). Contient des fichiers graphiques associĂ©s au profil du propriĂ©taire du compte WhatsApp.
  • Parfois, une carte SD peut contenir un rĂ©pertoire ‘fichiers’ (‘/mnt/sdcard/WhatsApp/Fichiers/’). Dans ce rĂ©pertoire se trouvent des fichiers qui contiennent les paramĂštres du programme et les prĂ©fĂ©rences de l'utilisateur.

Particularités du stockage des données sur certains modÚles de dispositifs mobiles

Sur certains modĂšles de dispositifs mobiles fonctionnant sous Android, il est possible que les artefacts WhatsApp soient stockĂ©s Ă  un autre endroit. Cela est dĂ» au changement de l'espace de stockage des donnĂ©es des applications par le logiciel systĂšme du dispositif mobile. Par exemple, sur les dispositifs mobiles Xiaomi, il existe une fonctionnalitĂ© de crĂ©ation d'un deuxiĂšme espace de travail («SecondSpace»). Lors de l'activation de cette fonction, la localisation des donnĂ©es change. Ainsi, si sur un dispositif mobile classique sous Android, les donnĂ©es de l'utilisateur sont stockĂ©es dans le rĂ©pertoire ‘/data/user/0/’ (ce qui est un lien vers le courant ‘/data/data/’), dans le deuxiĂšme espace de travail, les donnĂ©es des applications sont stockĂ©es dans le rĂ©pertoire ‘/data/user/10/’. C'est-Ă -dire, Ă  titre d'exemple de localisation du fichier ‘wa.db’:

  • dans un smartphone classique fonctionnant sous Android : /data/user/0/com.whatsapp/databases/wa.db’ (ce qui Ă©quivaut Ă  ‘/data/data/com.whatsapp/databases/wa.db’);
  • dans le deuxiĂšme espace de travail d'un smartphone Xiaomi : ‘/data/user/10/com.whatsapp/databases/wa.db’.

Artefacts WhatsApp sur un dispositif iOS

Contrairement Ă  Android, sur iOS, les donnĂ©es de l'application WhatsApp sont transmises Ă  une sauvegarde (sauvegarde iTunes). Par consĂ©quent, l'extraction des donnĂ©es de cette application ne nĂ©cessite pas l'extraction du systĂšme de fichiers ou la crĂ©ation d'un vidage physique de la mĂ©moire du dispositif Ă©tudiĂ©. La plus grande partie des informations significatives se trouve dans la base de donnĂ©es ‘ChatStorage.sqlite’, qui se situe Ă  l'emplacement : ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/’ (dans certains programmes, cet emplacement est affichĂ© comme ‘AppDomainGroup-group.net.whatsapp.WhatsApp.shared’).

Structure ‘ChatStorage.sqlite’:

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Les tables les plus informatives dans la base de donnĂ©es ‘ChatStorage.sqlite’ sont ‘ZWAMESSAGE’ et ‘ZWAMEDIAITEM’.

Apparence de la table ‘ZWAMESSAGE’:

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Structure de la table ‘ZWAMESSAGE’

Nom du champValeur
Z_PKnuméro d'ordre de l'enregistrement (dans la table SQL)
Z_ENTidentifiant de la table, a la valeur ‘9’
Z_OPTinconnu, contient gĂ©nĂ©ralement des valeurs allant de ‘1’ Ă  ‘6’
ZCHILDMESSAGESDELIVEREDCOUNTinconnu, contient gĂ©nĂ©ralement la valeur ‘0’
ZCHILDMESSAGESPLAYEDCOUNTinconnu, contient gĂ©nĂ©ralement la valeur ‘0’
ZCHILDMESSAGESREADCOUNTinconnu, contient gĂ©nĂ©ralement la valeur ‘0’
ZDATAITEMVERSIONinconnu, contient gĂ©nĂ©ralement la valeur ‘3’, est probablement un pointeur vers le message texte
ZDOCIDinconnu
ZENCRETRYCOUNTinconnu, contient gĂ©nĂ©ralement la valeur ‘0’
ZFILTEREDRECIPIENTCOUNTinconnu, contient gĂ©nĂ©ralement les valeurs ‘0’, ‘2’, ‘256’
ZISFROMMEdirection du message : '0' – entrant, '1' — sortant
ZMESSAGEERRORSTATUSstatut de transmission du message. Si le message a Ă©tĂ© envoyĂ©/reçu, alors il a la valeur ‘0’
ZMESSAGETYPEtype du message transmis
ZSORTinconnu
ZSPOTLIGHSTATUSinconnu
ZSTARREDinconnu, non utilisé
ZCHATSESSIONinconnu
ZGROUPMEMBERinconnu, non utilisé
ZLASTSESSIONinconnu
ZMEDIAITEMinconnu
ZMESSAGEINFOinconnu
ZPARENTMESSAGEinconnu, non utilisé
ZMESSAGEDATEtimestamp au format OS X Epoch Time
ZSENTDATEheure d'envoi du message au format OS X Epoch Time
ZFROMJIDID WhatsApp de l'expéditeur
ZMEDIASECTIONIDcontient l'année et le mois d'envoi du fichier multimédia
ZPHASHinconnu, non utilisé
ZPUSHPAMEnom du contact ayant envoyé le fichier multimédia au format UTF-8
ZSTANZIDidentifiant unique du message
ZTEXTtexte du message
ZTOJIDID WhatsApp du destinataire
OFFSEToffset

Apparence de la table ‘ZWAMEDIAITEM’:

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Structure de la table ‘ZWAMEDIAITEM’

Nom du champValeur
Z_PKnuméro d'ordre de l'enregistrement (dans la table SQL)
Z_ENTidentifiant de la table, a la valeur ‘8’
Z_OPTinconnu, contient gĂ©nĂ©ralement des valeurs allant de ‘1’ Ă  ‘3’.
ZCLOUDSTATUScontient la valeur ‘4’ si le fichier est chargĂ©.
ZFILESIZEcontient la taille du fichier (en octets) pour les fichiers chargés
ZMEDIAORIGINinconnu, contient gĂ©nĂ©ralement la valeur ‘0’
ZMOVIEDURATIONdurée du fichier multimédia, pour les fichiers pdf peut contenir le nombre de pages du document
ZMESSAGEcontient le numĂ©ro de sĂ©quence (diffĂ©rent de celui indiquĂ© dans la colonne ‘Z_PK’)
ZASPECTRATIOratio d'aspect, non utilisĂ©, contient gĂ©nĂ©ralement la valeur ‘0’
ZHACCURACYinconnu, contient gĂ©nĂ©ralement la valeur ‘0’
ZLATTITUDElargeur en pixels
ZLONGTITUDEhauteur en pixels
ZMEDIAURLDATEtimestamp au format OS X Epoch Time
ZAUTHORNAMEauteur (pour les documents, peut contenir le nom de fichier)
ZCOLLECTIONNAMEnon utilisé
ZMEDIALOCALPATHnom du fichier (avec chemin) dans le systĂšme de fichiers de l'appareil
ZMEDIAURLURL oĂč se trouvait le fichier multimĂ©dia. Si le fichier a Ă©tĂ© transmis d'un abonnĂ© Ă  un autre, il a Ă©tĂ© chiffrĂ©, et son extension sera indiquĂ©e comme l'extension du fichier transfĂ©rĂ© — .enc
ZTHUMBNAILLOCALPATHchemin vers la miniature du fichier dans le systĂšme de fichiers de l'appareil
ZTITLEtitre du fichier
ZVCARDNAMEhash du fichier multimédia, lors de l'envoi de fichier à un groupe peut contenir l'identifiant de l'expéditeur
ZVCARDSTRINGcontient des informations sur le type de fichier transmis (par exemple, image/jpeg), lors de l'envoi de fichier Ă  un groupe peut contenir l'identifiant du destinataire
ZXMPPTHUMBPATHchemin vers la miniature du fichier dans le systĂšme de fichiers de l'appareil
ZMEDIAKEYinconnu, probablement contient la clé pour déchiffrer le fichier chiffré.
ZMETADATAmétadonnées du message transmis
Décalageoffset

D'autres tableaux de base de donnĂ©es intĂ©ressants ‘ChatStorage.sqlite’ are:

  • ‘ZWAPROFILEPUSHNAME’. Relie l'ID WhatsApp au nom du contact ;
  • ‘ZWAPROFILEPICTUREITEM’. Relie l'ID WhatsApp Ă  l'image de profil du contact ;
  • ‘Z_PRIMARYKEY’. Le tableau contient des informations gĂ©nĂ©rales sur cette base de donnĂ©es, telles que le nombre total de messages stockĂ©s, le nombre total de chats, etc.

De plus, lors de l'examen de WhatsApp sur un appareil mobile fonctionnant sous iOS, il convient de prĂȘter attention aux fichiers suivants :

  • Le fichier ‘BackedUpKeyValue.sqlite’. Contient des clĂ©s cryptographiques et d'autres donnĂ©es nĂ©cessaires Ă  l'identification du propriĂ©taire du compte. Se trouve Ă  l'emplacement : /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Le fichier ‘ContactsV2.sqlite’. Contient les informations de contact de l'utilisateur, telles que nom complet, numĂ©ro de tĂ©lĂ©phone, statut de contact (sous forme de texte), ID WhatsApp, etc. SituĂ© Ă  l'emplacement : /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Le fichier ‘consumer_version’. Contient le numĂ©ro de version de l'application WhatsApp installĂ©e. SituĂ© Ă  l'emplacement : /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/.
  • Le fichier ‘current_wallpaper.jpg’. Contient le fond d'Ă©cran actuel de l'application WhatsApp. SituĂ© Ă  l'emplacement : /private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/. Dans les anciennes versions de l'application, le fichier utilisĂ© est ‘wallpaper’, situĂ© Ă  l'emplacement : ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’.
  • Le fichier ‘blockedcontacts.dat’. Contient des informations sur les contacts bloquĂ©s. SituĂ© Ă  l'emplacement : /private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/.
  • Le fichier ‘pw.dat’. Contient le mot de passe chiffrĂ©. SituĂ© Ă  l'emplacement : ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/’.
  • Le fichier ‘net.whatsapp.WhatsApp.plist’ (ou le fichier ‘group.net.whatsapp.WhatsApp.shared.plist’). Contient des informations sur le profil du compte WhatsApp. Le fichier est situĂ© Ă  l'emplacement : ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Library/Preferences/’.

Le contenu du fichier ‘group.net.whatsapp.WhatsApp.shared.plist’ WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Il faut Ă©galement prĂȘter attention aux rĂ©pertoires suivants :

  • Le rĂ©pertoire ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/Media/Profile/’. Contient des miniatures de contacts, de groupes (fichiers avec l'extension .thumb), des avatars de contacts, avatar du propriĂ©taire du compte WhatsApp (fichier ‘Photo.jpg’).
  • Le rĂ©pertoire ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/ Message/Media/’. Contient les fichiers multimĂ©dias et leurs vignettes
  • Le rĂ©pertoire ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Documents/’. Contient le journal d'activitĂ© de l'application (fichier ‘calls.log’) et des sauvegardes des journaux d'activitĂ© de l'application (fichier ‘calls.backup.log’).
  • Le rĂ©pertoire ‘/private/var/mobile/Applications/group.net.whatsapp.WhatsApp.shared/stickers/’. Contient des stickers (fichiers au format ‘.webp’).
  • Le rĂ©pertoire ‘/private/var/mobile/Applications/net.whatsapp.WhatsApp/Library/Logs/’. Contient les journaux d'activitĂ© de l'application.

Artifacts WhatsApp sur Windows

Les artefacts WhatsApp sur Windows peuvent ĂȘtre trouvĂ©s Ă  plusieurs endroits. Tout d'abord, ce sont les rĂ©pertoires contenant les fichiers exĂ©cutables et auxiliaires de l'application (pour Windows 8/10) :

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

Dans le rĂ©pertoire ‘C:Users%User profile% AppDataLocalWhatsApp’ se trouve le fichier journal ‘SquirrelSetup.log’, qui contient des informations sur la vĂ©rification des mises Ă  jour et l'installation du programme.

Dans le rĂ©pertoire ‘C:Users%User profile% AppDataRoamingWhatsApp’ il contient plusieurs sous-rĂ©pertoires :

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Le fichier ‘main-process.log’ contient des informations sur le fonctionnement du programme WhatsApp.

Sous-rĂ©pertoire ‘databases’ contient le fichier ‘Databases.db’, mais ce fichier ne contient aucune information sur les chats ou les contacts.

Les fichiers les plus intĂ©ressants d'un point de vue forensique sont ceux qui se trouvent dans le rĂ©pertoire ‘Cache’. Ce sont principalement des fichiers nommĂ©s ‘f_*******’ oĂč * est un chiffre de 0 Ă  9, contenant des fichiers multimĂ©dia et des documents chiffrĂ©s, mais parmi eux se trouvent Ă©galement des fichiers non chiffrĂ©s. Les fichiers ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’, qui se trouvent dans ce mĂȘme sous-rĂ©pertoire, sont particuliĂšrement intĂ©ressants. Les fichiers ‘data_0’, ‘data_1’, ‘data_3’ contiennent des liens externes vers des fichiers multimĂ©dia chiffrĂ©s et des documents transmis.

Un exemple d'informations contenues dans le fichier ‘data_1’WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Le fichier ‘data_3’ peut Ă©galement contenir des fichiers graphiques.

Le fichier ‘data_2’ contient les avatars des contacts (peuvent ĂȘtre rĂ©cupĂ©rĂ©s par des recherches dans les noms de fichiers).

Les avatars contenus dans le fichier ‘data_2’:

WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
Ainsi, il n'est pas possible de trouver les chats eux-mĂȘmes dans la mĂ©moire de l'ordinateur, mais il est possible de retrouver :

  • des fichiers multimĂ©dia ;
  • des documents Ă©changĂ©s via WhatsApp ;
  • des informations sur les contacts du titulaire du compte.

Artefacts WhatsApp sur MacOS

Sur MacOS, il est possible de trouver des types d'artefacts WhatsApp similaires à ceux présents sur Windows.

Les fichiers du programme se trouvent dans les répertoires :

  • ‘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’
    Dans ce répertoire se trouvent des sous-répertoires, dont les noms sont les numéros de téléphone associés au titulaire du compte WhatsApp.
  • ‘C:Users%User profile%LibraryCachesWhatsApp.ShipIt’
    Dans ce répertoire se trouvent des informations sur l'installation du programme.
  • ‘C:Users%User profile%PicturesMĂ©diathĂšque iPhoto.photolibraryMasters’, ‘C:Users%User profile%PicturesMĂ©diathĂšque iPhoto.photolibraryThumbnails’
    Ces répertoires contiennent des fichiers systÚme de l'application, y compris des photos et des miniatures des contacts WhatsApp.
  • ‘C:Users%User profile%LibraryCachesWhatsApp’
    Ce répertoire contient plusieurs bases de données SQLite, utilisées pour la mise en cache des données.
  • ‘C:Users%User profile%LibraryApplication SupportWhatsApp’
    Ce répertoire contient plusieurs sous-répertoires :

    WhatsApp au creux de la main : oĂč et comment dĂ©tecter les artefacts criminologiques ?
    Dans le rĂ©pertoire ‘C:Users%User profile%LibraryApplication SupportWhatsAppCache’ contiennent des fichiers ‘data_0’, ‘data_1’, ‘data_2’, ‘data_3’ et des fichiers avec des noms ‘f_*******’ (oĂč * est un chiffre de 0 Ă  9). Les informations concernant le contenu de ces fichiers sont dĂ©crites dans la section « Artefacts WhatsApp sous Windows ».

    Dans le rĂ©pertoire ‘C:Users%User profile%LibraryApplication SupportWhatsAppIndexedDB’ peuvent contenir des fichiers multimĂ©dias (les fichiers n'ont pas d'extensions).

    Le fichier ‘main-process.log’ contient des informations sur le fonctionnement du programme WhatsApp.

Sources

  1. Analyse forensic de WhatsApp Messenger sur les smartphones Android, par Cosimo Anglano, 2014.
  2. Forensique de WhatsApp : Exploration du systÚme de fichiers et des bases de données sur les applications Android et iOS par Ahmad Pratama, 2014.

Dans les prochains articles de cette série :

Décryptage des bases de données chiffrées de WhatsAppArticle dans lequel nous fournirons des informations sur la maniÚre dont la clé de chiffrement de WhatsApp est générée, avec des exemples pratiques montrant comment déchiffrer les bases de données chiffrées de cette application.
Extraction des données WhatsApp depuis les stocks en cloudArticle dans lequel nous expliquerons quelles données WhatsApp sont stockées dans le cloud et décrirons les méthodes d'extraction de ces données depuis des stocks en cloud.
Extraction des données WhatsApp : exemples pratiquesArticle dans lequel nous décrirons étape par étape quels programmes utiliser et comment extraire les données WhatsApp de divers appareils.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster