vendredi 12 mai 2017

Autopsie d’un ordinateur de streaming: Cas du Daily Motion

Autopsie d’un ordinateur de streaming:  Cas du Daily Motion

Auteurs :

                                   Abdelkader Mahmoudi
                                   Ange-Boris Brika
                                   Zackaria Cisse

Note de l’éditeur : Dû à la lourdeur des images ajoutées à ce texte et aux limitations inhérentes au site de blog, nous avons dû remplacer les images par des liens à cliquer. Pour consulter les figures, veuillez cliquer sur les titres de ces figures.




Sommaire
Le streaming vidéo est une activité de divertissement de plus en plus utilisée par les internautes. Les traces laissées sur le support informatique  utilisé sont sous diverses formes (furtives ou volatiles). Le présent travail se propose de faire l’inventaire des traces d’activité de streaming sur le support informatique de l’utilisateur. Les méthodes de recherche des traces s’articulent autour de l’analyse des mémoires furtives et des mémoires volatiles. Le site de streaming « DailyMotion »  est l’objet de notre étude. Une analyse et une interprétation des traces trouvées permettent de prouver  à un investigateur la visualisation d’une vidéo lue sur  DailyMotion.

1.       Introduction
L’investigation numérique est une étude informatique qui utilise les différentes opérations de détection, de sauvegarde et de récupération de preuves numériques présentes sur un support informatique en se référant aux connaissances sur le matériel et les logiciels. Le streaming vidéo permet aux utilisateurs de bénéficier de contenus vidéo et audio diversifiés. Il fait ici  l'objet d'analyses forensiques afin de déterminer les types de preuves numériques qui pourraient être extraites des supports informatiques. Cette étude approfondie du site  de streaming DailyMotion s’oriente sur la détection forensique des preuves volatiles et furtives en passant au peigne fin le navigateur web, les mémoires vives et tampons.
2.       Présentation de l’investigation numérique vidéo
Le streaming  se résume en une transmission de paquets en continu entre un client (utilisateur) et un serveur (fournisseur de service). Les paquets sont encapsulés de façon à minimiser le temps de latence au détriment d'un ordre rigoureux et de la qualité de la transmission.
De ce fait, la forensique vidéo définit  l'étude de la traçabilité de l'acheminement de ces paquets sur le support de l'utilisateur. Toutes les requêtes échangées entre le serveur et le client sont analysées de sorte à détecter les paquets vidéo (stream) provenant du site relevant de notre enquête. L’analyse du réseau donne des informations sur les échanges de données et les métadonnées issues des activités du navigateur. Il révèle des informations sur les URL et les différents contenus de pages web consultées par l'utilisateur. La forensique numérique vidéo nous amène à découvrir le fonctionnement du service de streaming.
3.       Présentation du streaming
Le streaming est un système utilisé pour la lecture instantanée de média (audio, images). Pour visualiser ou écouter un média en ligne, l’utilisateur doit télécharger le média ou le flux depuis le serveur. Ce média est téléchargé dans la mémoire tampon (stockage en mémoire et non sur le disque local). Une fois que les premiers octets de données stockées dans la mémoire tampon sont suffisants, la lecture du flux démarre et  le téléchargement continue.
Le système de streaming est constitué de 3 parties :
-          Le serveur permettant le stockage et la transmission des médias;
-          Les lecteurs média qui restituent ces données aux utilisateurs;
-          Les réseaux permettant de connecter les deux éléments précités.
Dans cette section, nous allons décrire brièvement les parties lecteurs et réseau. Elles seront les sources de notre investigation afin de trouver localement des traces.
a)        Le serveur
C’est la partie centrale du système qui a pour rôle de fournir le service de stream. Ses caractéristiques principales sont :
-          Une grande capacité de stockage et de traitement de données afin de fournir une bonne connectivité.
-          Une haute accessibilité et disponibilité.
b)       Les lecteurs multimédias
C’est la partie qui est en contact direct avec l’utilisateur. C’est le logiciel client permettant de lire, décoder et restituer les flux ; il permet de gérer les interactions avec l’utilisateur (pause, ajustement du son, rejouer …) et le cheminement des données.
 Exemple : Adobe Média Encoder,  QuickTime.
c)        Les réseaux
Le réseau englobe l’ensemble des infrastructures matérielles et protocoles logiciels permettant aux utilisateurs de transmettre des commandes au serveur et recevoir les flux souhaités.
 Les exemples de protocoles utilisés dans le streaming : UDP, RTPS, HTTP
d)       Les caches
Les caches sont des espaces pour stocker des données de manière temporaire avant ou après leur utilisation par le système. Dans un système de streaming, il existe trois types de caches : le cache serveur (cache du serveur), le cache réseau (le proxy) et le cache utilisateur (tampon ou mémoire cache). Nous allons nous intéresser uniquement au dernier cité. Le cache utilisateur est constitué d’une mémoire tampon (buffer) située sur l’ordinateur de l’utilisateur. Il sert  à stocker temporairement les flux avant le décodage et la lecture.
4.        DailyMotion en bref
a)        Description
DailyMotion est une plateforme de vidéo en ligne. Les fichiers sont regroupés par catégories (Musique, Jeux vidéo, Sport, News, Cinéma) avec une possibilité de faire des recherches par mots-clés. Les utilisateurs ont la possibilité de commenter et de noter les vidéos.
b)       Les services
La plateforme Daily Motion comporte plusieurs services à savoir : DailyMotion Cloud, Daily Motion Publisher (Service de partage de recettes publicitaires et des publicités insérées dans les lecteurs vidéo de sites partenaires), Open VoD (programme de vidéo à la demande permettant de vendre des programmes), Daily Motion Mass Uploader (logiciel permettant de faire des téléversements sur la plateforme sans passer par le web).

5.       Procédure de recherche
a)        Environnement de travail
Pour réaliser ce travail nous avons utilisé comme environnement virtuel : VMware Workstation 12 Pro avec le système d’exploitation Windows 7, Internet  Explorer 10 comme navigateur ayant 1Go de mémoire RAM. Par  besoin de performance, nous avons travaillé aussi avec un ordinateur physique avec un processeur  I7 ayant 12 Go de mémoire RAM.  Dans la machine virtuelle et réelle, nous avons installé tous les outils logiciels d'investigation numérique permettant de procéder à notre analyse:
-          DumpIt  v1.3.2 : pour faire une image de la mémoire de la machine virtuelle
-          ProcessHacker 2.39 : pour l’analyse des processus
-          Wireshark 2.0.2. : pour l’analyse du trafic réseaux
-          Volatility-2.4.standalone : pour l’analyse de la mémoire RAM
-          Windows File Analyzer version 2.6.3.0 : pour l’analyse des traces de navigation (historique, cookies)
-          FTK Imager 3.1.2.0
-          RAMmap : permet de voir la liste et la localisation de tous les processus en mémoire.

b)       Forensique volatile
i)         Capture la mémoire
Grâce au logiciel « DumpIt » nous avons effectué une capture de la mémoire virtuelle de notre machine virtuelle au format RAW. L’analyse de la mémoire capturée avec le logiciel « Volatility » nous permet d’avoir la taille de la mémoire cache et de son offset. On a procédé comme suit:   
-          Les détails de l'image avec la commande : >Volatility-2.4.standalone.exe -f IE10WIN7-20160325-152601.raw imageinfo 
-          Savoir l'offset: >volatility-2.4.standalone.exe -f IE10WIN7-20160325-152601.raw --profile=Win7SP0x86 kdbgscan 
-          Identifier tous les processus qui s'exécutent sur la machine physique: >Volatility-2.4.standalone.exe -f IE10WIN7-20160325-152601.raw --profile=Win7SP0x86 kdbgscan pslist > list.txt 
Le fichier list.txt contient tous les processus qui s'exécutent sur la machine de l'utilisateur, on peut identifier le processus Internet explorer: ce fichier est remis avec les artefacts.
-          Identifier toutes les connections a Internet: >Volatility-2.4.standalone.exe -f IE10WIN7-20160325-152601.raw --profile=Win7SP0x86 kdbgscan pslist > connections.txt.
Dans le cas où  les fichiers témoins et l'historique  seraient effacés par l'utilisateur, il est possible de les reconstituer à partir de la mémoire RAM. Le fichier connections.txt est remis avec les artefacts: dans sa fin on voit les demandes de connexions vers le site de DailyMotion (adresse IP). Ces informations sont utiles pour exploiter la mémoire capturée avec le logiciel « FTK Imager ».
Nous allons directement à cet offset et nous faisons une recherche par mot clé afin de trouver le nom du fichier vidéo. Peu après le nom de la vidéo, nous trouvons l’URL de la vidéo lue en streaming par DailyMotion.

ii)       Analyse des processus
Le navigateur choisi pour la visualisation de la page DailyMotion est Internet Explorer 10. L’outil logiciel forensique utilisé est « Process Hacker ». Il nous permet d’analyser en détail la liste des processus lancé par les  utilisateurs. L’affichage des processus se fait de façon à associer le nom du processus au programme exécuté et l’adresse mémoire en format hexadécimal. La liste des processus relatifs à l’exécution d’Internet Explorer a comme attribut l’URL des pages consultées. Dans notre cas, ils indiquent l’URL de DailyMotion.
Après le lancement de la vidéo, nous observons une augmentation du nombre de processus. Ces processus sont liés aux échanges de  paquets TCP et HTTP relatifs à la vidéo en visionnement et on y retrouve des traces :
-          Du proxy DailyMotion;
-          Des serveurs d’Akamaï Technology qui fournissent des services d'un centre de données international dans le domaine du streaming ;
-          Des serveurs d'Amazon Web Service, certainement pour la gestion des connexions au serveur vidéo depuis le nuage.
Ces données sont visibles dans l’onglet « Network » de Process Hacker via la liste des adresses associées aux processus d’Internet Explorer.
Sur le disque dur nous observons la présence de l’entrée « DailyMotion » comme clé de la base de registre :
HKCU\Software\Microsoft\Internet Explorer\LowRegistry\DOMStorage\. 
 
Un mutex faisant référence au site DailyMotion est présent dans l’entrée suivante : 
«\Sessions\1BaseNamedObjects\Low»:  Dès l'exécution du processus "iexplore" , un nouvel évènement système est crée par le
système d'exploitation dans sa base d'objet. Le nom de l'entrée de cet évènement est l'URL saisit par l'utilisateur (dans notre cas 
www.dailymotion, voir Figure 4)
 
c)        Forensique furtive
i)         Analyse des échanges de paquets sur le réseau
Nous observons tous les paquets échangés dès l’ouverture du navigateur et de la page DailyMotion. Cette opération nous permet de comprendre les protocoles utilisés dans les échanges entre le navigateur et le serveur, les adresses IP. Les principaux protocoles  sont : HTTP et TCP. Toutes les vidéos de streaming sont encapsulées dans le format de ces protocoles.
Nous commençons l’analyse du réseau avec Wireshark. En appliquant un filtre ou mot-clé HTTP dans la zone « expression »   de Wireshark, nous pouvons voir les traces des vidéos lues (la date, le nom, la taille et le format) ainsi que leurs emplacements sur le serveur. Ce filtre nous donne accès à la liste des paquets issus des requêtes Get de HTTP. En cliquant sur l’une des lignes du paquet d’une requête Get reconnu grâce à l’attribut « info », nous observons plusieurs paramètres dans la fenêtre en dessous (Figure 1 en annexe). Le paramètre « referer » permet d’avoir l’URL exact des vidéos lues. Sous l’onglet statistique > HTTP >Requêtes, nous avons toutes les informations sur les recherches, les noms et descriptions des vidéos visitées. 
Voici les noms de quelques répertoires dans Topic/Item  sur la ligne www.dailymotion : /widget_chunks/ - /logger/video/access (contient les traces de recherches effectuées)  - /vidéo/ (contient le nom de la vidéo ) - /history/log/user - /  (contient l'historique de recherches effectuéespar un utilsateur).
Pour un utilisateur possédant un compte sur le site DailyMotion, il est facile d’avoir avec Wireshark son nom utilisateur et mot de passe en clair car la connexion n'est pas chiffrée par HTTPS: Pour cela, on applique le filtre « http.request.method == POST  »  dans la zone « expression » comme le montre la figure 2 en annexe.
Il est aussi possible de voir les liens de toutes les vidéos consultées avec la date et  l’heure.
ii)       Analyse de la base de registre
LastActivityView  est un outil nous permet de visualiser les dernières activités de l’utilisateur: Il est capable de filtrer les informations de la base de registre afin de repérer les activités sur le navigateur. Dans notre cas, ces activités nous permettent de visualiser le contenu des activités sur Internet Explorer. Une autre alternative permet de découvrir les URL visités à partir de ligne de commande. La démarche est la suivante :
-          Saisir dans la barre de recherche du menu démarrer « regedit » ;
-          Suivre l’arborescence du dossier contenant les URLs: KEY_CURRENT_USER/Software/Microsoft/InternetExplorer/TypedURLS

iii)      Analyse de la mémoire interne du navigateur
(1)     Historique de navigation
Les activités sur le navigateur conservent de précieuses informations aidant à retracer les vidéos consultées par l’utilisateur. Les principales informations appelées « traces externes » sont les suivantes : l'historique de navigation, les fichiers témoins et la mémoire cache.
L’historique de navigation est disponible dans les fichiers index.dat du système d’exploitation. Pour interpréter (ou lire) le contenu du fichier, nous utilisons le logiciel « Windows File Analyser 2.6.3.0 Mitec ». Il permet de retrouver le nom du site consulté et l’heure de connexion et d’accès au site. Nous pouvons observer en cliquant sur la ligne de l’historique du site DailyMotion le nom en clair de la vidéo consultée. L'arborescence du fichier index.dat est «C:\Users\IEUser\AppData\Roaming\Microsoft\Windows\History\ History.IE5\index.dat».
Le fichier historique pourrait être effacé par l’utilisateur, mais il est possible de le récupérer en faisant une restauration du système vers un point de restauration ultérieur à la date présumée de l’action. La récupération de l’état du système à une date ultérieure permet d’analyser l’historique comme s’il n’avait jamais été effacé par le navigateur.
Un autre outil logiciel « BrowsingHistoryView » apporte plus de précision à l’historique de navigation. Il permet d’observer toutes les connexions d’un utilisateur dans le navigateur, son nom de profil, l’heure exacte de la visite du site ainsi que le nombre de visites de la page consultée.  Il est possible également de faire un tri en fonction de la date, du nom de la page et du navigateur. Cet outil révèle également en clair le nom de la vidéo visionnée.

(2)     Les fichiers témoins
Les fichiers témoins sont des fichiers stockant des informations sur un utilisateur. Grâce à ces fichiers, l’utilisateur peut se connecter et garder sa session active en sortant du site sans avoir à se connecter à nouveau. Il est possible d’utiliser également la mémoire interne du navigateur comme la « session storage » et le « local storage ». Ces deux mémoires sont enregistrées directement sur l'espace réservé au navigateur du client. Il ne nécessite pas la reformulation des requêtes aux serveurs pour l’authentification. DailyMotion  utilise ces deux technologies pour conserver les informations sur le client. Les témoins de Dailymotion sont les suivants : dmvk, hist, s_vi, ts, v1st. Ils peuvent être classés en trois groupes :
-          Les témoins de session (conservant les informations de l’utilisateur sur le serveur) exemple : dmvk ;
-          Les témoins persistants (permettant de garder l’état de la page lors des fermetures involontaires ou « shutdown » du navigateur) exemple : ts, v1st;
-          Les témoins de la partie tiers (servant à des fins de statistiques pour le serveur) exemple : s_vi .

Pour analyser les fichiers témoins il est possible d’utiliser des outils facilitant l’affichage et le tri ou d’utiliser l’arborescence de fichier. Nous utilisons comme outils « IECacheView ». Nous observons la présence des témoins persistants de DailyMotion (ts et v1st) leurs dates de création et d’expiration. L’arborescence est certainement :
« C:\Users\IEUser\AppData\Roaming\Microsoft\Windows\Cookies» (spécifique à notre environnement Windows 7 et Internet Explorer 10).

(3)     Cache
La mémoire cache contient les pages web récemment visitées par l’utilisateur. Avec RamMap, nous observons en mémoire le fichier webcachev01.dat dans l’emplacement suivant:
 « C:\Users\IEuser\AppData\Local\Microsoft\Windows\Webcache\ Webcachev01.dat ».
Avec « Windows File Analyser 2.6.3.0 Mitec », nous avons des indications dans le fichier index.dat sur les pages web consultés dans le dossier :
« C:\Users\IEuser\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5». Avec cet outil, nous avons le nom, la date et l’heure de tous les liens visités sur le site DailyMotion. Cette méthode est très adaptée au navigateur Internet Explorer. Nous utilisons le logiciel « IECacheView » qui permet de parcourir en profondeur la mémoire cache. Nous analysons le fichier « Webcachev01.dat » et nous pouvons observer toutes les images provenant du streaming vidéo. En réalité, le streaming est un échange d’images. Une fois ces images associées au son, elles permettent de constituer la vidéo à visionner. Ce fichier contient également les fichiers XML propres à la vidéo en streaming: ces fichiers contiennent les informations de la vidéo à savoir le nom, le «time-code» et l’encodage de la vidéo.

6.       Interprétation des résultats
a)        Présence sur le site DailyMotion
Les démarches d’investigation ont permis d’avoir des résultats généraux. Ces résultats indiquent des traces de présence de l’utilisateur sur le site de DailyMotion. L’analyse des fichiers témoins et de la mémoire interne du navigateur nous indique plusieurs informations: Dans le « localstorage », on peut trouver  l’heure de connexion, le nom de l’utilisateur connecté et le nom du site web consulté. Dans le « sessionstorage » le navigateur  conserve le numéro de session qui est délivré par le serveur suite à une demande de vidéo.
La mémoire interne du navigateur conserve et la les informations sur l’utilisateur connecté comme le nom et le numéro d’utilisateur provenant du serveur.
L’analyse de l’historique de navigation permet de  ressortir l’activité de l’utilisateur.  L’URL du nom de domaine « www.dailymotion.com »  apparait avec  l’heure de connexion. En combinant ces informations avec celles des témoins, la cohérence des données démontre une connexion sur le site DailyMotion.
L’analyse des paquets capturés sur le trafic réseau révèle des échanges de paquets HTTP, TCP/IP, UDP avec le serveur DailyMotion. Cet échange permet de conclure que l’utilisateur a visité ou s’est connecté au site en utilisant un profil (nom d'utilisateur et mot de passe).
Une recherche par le mot clé « dailymotion » dans la capture de la mémoire vive révèle plusieurs occurrences trouvées. Ce qui confirme des activités sur le site de streaming.

b)       Preuve d’une activité de streaming
L’analyse des en-têtes HTTP  capturées dans le trafic réseau donne plus de précision sur l'URL. À travers les requêtes GET dans le champ « REFER» de l’en-tête, nous pouvons voir le nom précis de la vidéo lue sur le site.
L’analyse du contenu de la mémoire cache montre  également toutes les informations sur la connexion au serveur. Les fichiers XML contiennent des métadonnées (le titre, la description et  le lien) permettant d’identifier la vidéo.  Dans la mémoire virtuelle, nous avons la liste des processus et ceux associés à l’utilisation d’Internet Explorer. Les informations sur le processus contiennent l’URL de la vidéo. En faisant une recherche par mot-clé du nom de la vidéo sur l’étendue de la mémoire virtuelle, il est possible de retrouver l’URL de la vidéo en clair.

7.       Conclusion
L’investigation numérique dans l’objectif de prouver la visualisation d’une vidéo sur le site de DailyMotion requiert une démarche précise et rigoureuse. Dans un premier temps, nous avons présenté l’investigation numérique vidéo et les principes de fonctionnement de streaming sur le site DailyMotion. Dans un deuxième temps, il a fallu définir une procédure d’enquête avec un environnement restreint: Cette procédure  consisté à analyser les échanges de paquets réseau, les processus exécutés, les mémoires liées aux activités du navigateur et la mémoire volatile de l’utilisateur. De cette analyse, nous retenons que la majorité des traces de l’activité de streaming sont contenues dans  la mémoire cache réservée aux activités du navigateur. L'analyse de l’historique et de la mémoire allouée au navigateur permet de retrouver l’URL de la vidéo cible ainsi que l’horaire de l’activité et le nom du profil utilisateur.
Une étude plus approfondie sur la mémoire pourrait être celle qui permettrait de reconstituer la vidéo entièrement. La restauration de la vidéo à partir de la mémoire constituerait une preuve irréfutable de l’utilisation du streaming vidéo et une grande avancée pour le secteur de l’investigation numérique vidéo.

8.       Glossaire
        UDP : « User Datagramme Protocole » est un protocole de transport de paquets appartenant à la couche transport.
        URL : « Uniform Ressource Locator » est une chaine de caractère utilisée pour indiquer au navigateur comment avoir accès aux ressources internet.
        TCP : « Transmission Control Protocol » est un protocole de transport de paquets garantissant la fiabilité grâce aux échanges d’accusés de réception entre le serveur et le client.
        HTTP : « Hypertext Transport Protocol » est un protocole de transport de appartenant à la couche application entre le client, le serveur, les proxys et autres systèmes d’Internet.
        Mutex : c’est une primitive de synchronisation qui permet de protéger une zone du code, en garantissant l’accès aux ressources partagées nécessaires à son exécution et en la rendant accessible à plusieurs processus.

9.       Médiagraphie
a)       Articles
-          [1] PANTOS, Roger ed., "HTTP Live Streaming", 2013.
[https://tools.ietf.org/html/draft-pantos-http-live-streaming-19].
-          [2] ERICSSON, "3GPP adaptive HTTP Streaming (AHS)", 2010. [http://irdeto.com/documents/Collateral/wp_disney_ieee_watermarking_system_for_adaptive_streaming.pdf].
-          [3] MICROSOFT Corporation, "Smooth Streaming Protocol specification", 2012. [http://download.microsoft.com/download/9/5/E/95EF66AF-9026-4BB0-A41D-A4F81802D92C/[MS-SSTR].pdf].
b)      Articles de revues / Journaux
-          [3] REIDENBERG,Joel R.,.Protection de la vie privée et l’interdépendance du droit, de la technologie et de l’autorégulation. Cahiers du CRID 19.  p. 191210, 2001.
-          [4] XU, C., Steganography in Compressed Video Stream. First International Conference on Innovative Computing, Information and Control - Volume I (ICICIC’06). p. 269–272, 2006.

c)       Sites web
-          [5] Digital Watermaking. Forensics And Piracy Deterrence, [http://goo.gl/QwHshV], consulté le 03 Mars 2016.
-          [6] File Forensicswith Signatures. Billatnapier, [https://goo.gl/ld1M48], consulté le20 février 2016.
-          [7] Dailymotion.Wikipédia, [https://goo.gl/4EfZjq] ,consulté le13 février 2016.

d)      Liste des logiciels utilisés et source
Nom
Source
Process Hacker 2.39
http://goo.gl/lQ0S5R
RamMap v 1.5
https://goo.gl/45kPUV
DumpIt v 1.3.2
http://goo.gl/BgSZFS
Mitec Windows File Analyzer 2.6.3.0
http://goo.gl/NYrEot
Volatility-2.5.standalone
http://goo.gl/9B7wp5
Wireshark 2.0.2.
https://goo.gl/0FWZyG
IECacheView 1.56
http://goo.gl/vMLX5N
IECookiesView 1.77
http://goo.gl/qXbGMy
BrowsingHistoryView 1.85
http://goo.gl/O1Asmn