Forensic
Introduction
Avant d’entrer dans le vif du sujet, il est nécessaire de prévenir le lecteur, qui, à la lecture du titre du chapitre, s’imagine déjà dans un appartement sombre, une lampe ultraviolet à la main ou dans un laboratoire rempli de fioles, d’instruments de mesure en tout genre et d’ordinateurs occupés par une jeune et jolie femme... Désolé. Le forensic s’apparente plus à un barbu (bien que la moustache soit également de bon aloi) assis derrière un écran écrivant des lignes grises sur un écran noir et une tasse de café à côté de lui. Rien de très excitant a priori... Pourtant, les curieux, les insomniaques et les pêcheurs (la patience est importante en informatique et encore plus en forensic) trouveront sans doute une entière satisfaction dans la pratique de cette discipline.
La patience, il en faut en effet... ainsi qu’une bonne dose de rigueur et de détermination. Lors d’une analyse forensique, il est important de toujours avoir à l’esprit que l’on ne sait pas ce que l’on découvrira, et parfois, par manque de technologie ou parce que l’attaquant aura pris soin d’effacer toute trace, vous ne trouverez simplement rien.
Mais d’abord, c’est quoi, le "forensic" ?
Commençons par le commencement... Forensic ? Forensique ? Ceci est un choix personnel... Nous pouvons nous permettre quelques excentricités, aucun des deux n’étant dans le dictionnaire de l’Académie française... Voici donc notre règle, qui a une certaine logique : en tant que discipline, nous utiliserons le mot "forensic" et lorsqu’il sera utilisé comme adjectif, nous écrirons "forensique" (par exemple "analyse...
Les méthodes
Préparation et environnement
Avant de partir tête baissée dans la recherche d’éléments, l’analyste devra au mieux "préparer le terrain". Il est important de commencer par une analyse macroscopique avant de descendre progressivement vers l’analyse microscopique.
Avoir une vue d’ensemble d’un système permet par la suite de mieux cibler les éléments. Prenons un exemple. Vous êtes appelé par une compagnie internationale qui vient de subir une attaque de type DoS et qui souhaite en trouver la cause (ceci est bien une analyse que nous pouvons qualifier de forensique, car elle cherche des preuves, même si ce n’est pas pour inculper directement un auteur de délit) et éventuellement en trouver la source. Dans ce cas concret, vous comprendrez aisément que l’analyse directe du simple serveur web qui a été rendu indisponible par l’attaque ne vous donnera pas suffisamment d’éléments pour mener à bien votre investigation.
Aussi, il vous sera utile de commencer par "le haut de la pyramide", bien souvent le pare-feu, qui vous permettra d’établir quel type de DoS a été utilisé pour mener l’attaque (SYN flood, DNS amplification) ou bien de vous rendre rapidement compte si le serveur a été victime d’une attaque locale (fork bomb, saturation d’inodes). S’il s’agit d’une attaque réseau, c’est alors vers les pare-feu et les routeurs que vos investigations devront porter en premier lieu. Vous déterminerez alors le protocole et le port qui ont été utilisés. Une fois ceci fait, si vous en avez la possibilité, vous pourrez alors étudier les logs portant sur ces informations, puis une analyse d’une capture...
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. |
Volatility Framework très puissant et multiplateforme d’analyse de données volatiles (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 paquets 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. 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...
Conclusion
L’ensemble des outils présentés dans ce chapitre sont à connaître si l’on souhaite se lancer dans une analyse forensique. Cependant, l’expert aura souvent tendance à développer ses propres outils. C’est pour cela qu’il est indispensable de maîtriser au moins un langage de programmation proche du système. De ce point de vue, Python est idéal. De plus, les principaux frameworks et outils dédiés au forensic sont développés, comme vous l’aurez constaté, dans ce langage.