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

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

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

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.

Last updated