Bebzounette
Rechercher

Outils de Forensic

1. Les outils

Il existe des dizaines d’outils trĂšs performants pour faire de l’analyse forensique. Nous n’allons pas lister ici de maniĂšre exhaustive l’ensemble de ces outils, nous prĂ©fĂ©rons laisser le lecteur les dĂ©couvrir selon son bon vouloir. Cependant, nous pouvons tout de mĂȘme citer quelques outils de rĂ©fĂ©rence qui vous seront, quoi qu’il advienne, indispensables. Voici un tableau regroupant ces outils par catĂ©gorie :
RĂ©seau
MĂ©moire
Binaire
SystĂšme
Wireshark : Outil de capture et d’analyse de trames rĂ©seau.http://wireshark.org​
Volatility : Framework trĂšs puissant et multiplateforme d’analyse de donnĂ©e volatile (RAM).
Hexdump : Outil de dump hexadécimal.
The coroner’s toolkit : Suite d’outils d’analyse de systùmes UNIX.
Tcpdump : Outil de capture en ligne de commande. Sa maĂźtrise est indispensable en environnement serveur sans interface graphique.
​
Readelf : Outil de dump d’information pour les fichiers ELF.
Logstash : Outil d’analyse de logs
Scapy: Outil de manipulation de paquet TCP.
​
Gdb/ida pro: DĂ©bogueur permettant de tracer le comportement d’un programme ou d’analyser un crash dump.
​
Nous allons maintenant dĂ©tailler rapidement les fonctionnalitĂ©s principales de ces outils et leur utilisation dans l’analyse forensique d’un systĂšme.

1.1. Les outils d’analyse rĂ©seau

a. Wireshark

L’outil Wireshark est LA rĂ©fĂ©rence des mĂ©tiers liĂ©s aux rĂ©seaux. Administrateur, auditeur, consultant... Cela vaut aussi pour l’analyste forensique. Cet outil est capable de vous aider Ă  dissĂ©quer littĂ©ralement chaque paquet qui traverse votre carte rĂ©seau.
​
Vous voyez ici une capture d’établissement de connexion. En effet, on constate la prĂ©sence du flag SYN sur le paquet. L’analyste forensique remarquant par exemple un trĂšs grand nombre de ce type de paquet saura qu’il a eu affaire Ă  une attaque de type DOS par SYNflood. Pour rappel, cette attaque a pour but de saturer le serveur de connexions « en attente » en ne terminant par le three way handshake d’établissement des connexions TCP.

b. tcpdump

En cas d’absence d’environnement graphique, tcpdump est l’outil indispensable pour capturer les trames rĂ©seau avant de les analyser avec Wireshark. Voici pourquoi il est nĂ©cessaire de maĂźtriser cet outil.
tcpdump -XXX -i <interface> -s <size> -w <file.pcap>
Ici, vous noterez que nous avons choisi d’effectuer une capture avec le plus haut niveau de verbositĂ© (-XXX) et de sauvegarder le rĂ©sultat dans un fichier au format pcap, format lisible par Wireshark. Ceci vous Ă©vitera d’avoir Ă  faire une analyse « temps rĂ©el » sur la sortie standard, peu adaptĂ©e Ă  l’analyse forensique.

c. Scapy

Scapy est une bibliothĂšque Python dĂ©diĂ©e au rĂ©seau. Nous avons choisi cet outil comme rĂ©fĂ©rence car Python est un langage particuliĂšrement adaptĂ© Ă  l’analyse forensique, rapide Ă  programmer et suffisamment « proche » du systĂšme.
Pour dĂ©montrer la puissance de cet outil, voici comment rĂ©aliser un scanner de port par SYN scan (envoi d’un paquet SYN sur chaque port cible) en seulement quelques lignes.
#!/usr/bin/env python
import sys
from scapy import *
target = sys.argv[1]
fl = 22
while (fl <= 25):
p = sr1(IP(dst = target) /TCP (dport = fl, flags="S"), retry=0, timeout=1)
if p:
print "\n TCP port "+str(fl)+" is open on "+str(target)+"\n"
else:
print "\n TCP port " + str(fl) + " is open on " + str(target) + "\n"
fl = fl + 1
Si vous dĂ©sirez aller plus loin avec cet outil, sachez que vous pouvez forger Ă  peu prĂšs n’importe quel type de paquet rĂ©seau.

1.2. Les outils d’analyse mĂ©moire

a. Volatility

Volatility est un framework complet d’analyse de mĂ©moire, lui aussi Ă©crit en Python. Il peut agir sur la mĂ©moire vive comme sur une image de celle-ci, par exemple un fichier .vmem (image mĂ©moire de machine virtuelle VMware).
​
Voici par exemple le tyw, il permet d’obtenir l’ensemble des processus en cours d’exĂ©cution, leur nombre de handles ouverts ou encore le nombre de thread. De maniĂšre plus gĂ©nĂ©rale, ce que permettent les outils d’un gestionnaire de tĂąches avancĂ©, volatility le permet sur des images mĂ©moire. Dans le cas d’une analyse forensique, encore une fois, rappelons que l’essentiel du travail se fait sur des donnĂ©es « mortes ».

1.3. Les outils d’analyse binaire

a. Hexdump

Hexdump est un outil permettant l’affichage hexadĂ©cimal de tout type de fichier. Pour l’analyse binaire, il peut se rĂ©vĂ©ler trĂšs utile ; par exemple pour vĂ©rifier les donnĂ©es d’un programme, dans le cas d’un doute sur la corruption d’un systĂšme, il peut ĂȘtre indispensable de « reverse » certains fichiers binaires afin de vĂ©rifier qu’ils ne sont pas malveillants ou corrompus. Hexdump trouvera particuliĂšrement son utilisation sur les environnements serveur sans GUI. Il permettra de dumper un binaire afin de l’analyser avec un autre outil graphique (IDApro par exemple).

b. Readelf

L’outil Readelf n’est, comme hexdump, qu’un outil « consultatif ». En effet, il permet d’afficher l’ensemble des informations d’un binaire ELF, l’adresse de l’ensemble des bibliothĂšques auxquelles il est liĂ©, les adresses des diffĂ©rents symboles, etc. L’analyste forensique aura recourt Ă  cet outil s’il suspecte qu’un programme importe une bibliothĂšque « impropre » ou qu’il utilise certaines fonctions qu’il n’est pas censĂ© utiliser. Cela pourrait ĂȘtre le cas lors d’infection virale par exemple.
​

c. Gdb

Nous avons ici choisi de prĂ©senter gdb car nous nous concentrons sur les systĂšmes de types UNIX. Cependant, d’excellents dĂ©bogueurs existent sous Windows comme IDApro ou OllyDBG.
Gdb est un dĂ©bogueur, c’est-Ă -dire qu’il permet de contrĂŽler l’exĂ©cution d’un programme. Lors d’une analyse virale par exemple, il peut ĂȘtre indispensable pour l’analyste de tenter de retracer le comportement du programme malveillant Ă©tape par Ă©tape, et Ă©galement d’en contrĂŽler l’exĂ©cution.
Lorsque nous parlons de contrĂŽler l’exĂ©cution, il s’agit ici d’un niveau de dĂ©tail qui nĂ©cessitera de trĂšs solides connaissances en architecture matĂ©rielle car il est possible par exemple avec un dĂ©bogueur d’arrĂȘter un programme Ă  une instruction particuliĂšre, de changer la valeur de certains registres du processeur, et de relancer le programme. Sans aller si loin, l’analyste dĂ©butant pourra par exemple dĂ©jĂ  obtenir le code assembleur de tout programme.
​
​

​