En Infosec, on se sert de la forensic pour retrouver des attaques, répondre à des incidents, mettre à jour un espionnage, notamment industriel, une exfiltration de données, une falsification de documents ou encore une perte de données.
Il existe deux méthodes d’analyses :
Dans une méthode en « live », le défi sera de minimiser l’impact à l’intégrité du système pendant la capture des données volatiles. Pour faire simple et illustrer cette affirmation : lorsque l’on va capturer une image d’un système, on va écrire sur le registre du système, donc on va laisser une trace. Dans ces cas-là, on peut avoir recours à un write blocker avant l’acquisition.
Il peut y avoir plusieurs étapes lors d’une analyse forensic. Elles peuvent aller de quatre à vingt-un selon ce qui est demandé. Le schéma le plus traditionnel en comporte quatre et se décompose ainsi :
Identification : trouver et identifier les informations, généralement, on se contente de procéder à une image du système dans un premier temps.
Les données volatiles sont les données qui sont perdues lors d’une extinction, typiquement, cela touchera la RAM mais les informations sont parfois récupérables. Cela va concerner
Lorsque l’on dit que ces données sont perdues, elles ne le sont pas toujours réellement. Si on prend l’exemple d’une machinant fonctionnant sous Windows Seven, ces informations vont pouvoir être récupérées dans le registre.
Les données non-volatiles sont les données qui ne sont pas perdues et qui sont en mémoire morte comme les clefs USB ou les disques durs.
La plupart des appareils électroniques permettent de reconstituer les activités qui ont été faites. En fouillant dans certaines parties du système, on peut retracer l’activité d’un navigateur Web, d’un système de fichiers, des connexions réseau ou des périphériques qui ont pu être branchés.
Il existe énormément d’outils pour procéder à des analyses forensics, certains systèmes d’exploitation y sont d’ailleurs entièrement dédiés. Mais la fragilité des systèmes fait qu’il convient de travailler de façon minutieuse et très organisée de façon à ne pas perdre les informations ni à les altérer.
Pour extraire ces informations sur le dump mémoire que nous avons réalisé, nous utiliserons le framework open source Volatility. Pour faire cet analyse du dump de la mémoire, nous avons récupéré le fichier memoire sur ce lien :
:+1: https://s3-eu-west-1.amazonaws.com/course.oc-static.com/courses/1750151/OC-002-memdump.zip
Pour lancer Volatility, il suffit d’ouvrir un terminal et d’entrer par exemple la commande volatility -h pour afficher les options disponibles (voici le début).
Ci-dessous quelques commands Plugin :
Nous avons utilisé l'option ImageInfo de Volatility sur notre dump mémoire avec la
commande ci-dessous :
Cette option vous permettra d’obtenir les informations de profil de votre image. Comme vous pouvez le voir sur la sortie console ci-dessus, le champ « suggested profile » propose des suggestions de profils qu’il faudra ensuite préciser à Volatility avec l’option « –profile= ».
Pour extraire la liste des processus, il est possible d’utiliser l’option pslist comme ci-dessous :
Les DLL, pour Dynamic Link Library, sont les librairies dans Windows. Ce sont des fonctions préalablement codées et disponibles sur le système. Pour éviter de recoder certaines fonctions, l’API Windows fournit une liste de DLL permettant de manipuler des données, de faire des connexions réseau ou encore d’écrire des fichiers.
Le registre contient divers paramètres et configurations pour le système d'exploitation Windows. En tant que composant principal de Windows, il est accédé en permanence pendant le temps d'exécution. Ainsi, il est logique que le système place en mémoire tout ou partie des fichiers du registre.
La commande malfind peut être utilisée pour détecter de l’injection de code malveillant.