Malware Analysis – Les outils

Dans ce premier article, je vais vous parler des outils, souvent libres et gratuits, très utiles pour commencer dans cet exercice.
L’analyse de Malware est la discipline qui consiste à étudier un malware (Virus, Ver, Cheval de Troie, Rootkit, Backdoor, APT ..), afin de determiner avec exactitude le fonctionnement, l’origine et l’impact potentiel d’une infection. Cette discipline, très technique, est le fort des constructeur et éditeurs de solutions de cyber sécurité, et qui consiste à opérer une étude, des tests, et des simulations pour determiner le plus d’informations possible. Beaucoup de ces techniques s’inspirent du “Reverse Engineering” qui est une discipline beaucoup plus globale.
Le but de cet article est de permettre la constitution d’une boite à outils, qui vous permettera d’entammer la pratique de ces techniques pour comprendre, les dangers que confronte le monde de la cyber sécurité d’aujourd’hui.

Environnement de test

L’approche la plus naturelle pour examiner le comportement d’un malware est d’infecter une machine et utiliser des outils de monitoring pour constater l’impact et determiner le comportement. Ceci donc nous indique la nécessité de disposer d’un environnement de test.
La solution la moins onéreuse, consiste à utiliser des outils de virtualisations, qui peut nous permettre d’utiliser plusieurs machines/systèmes sur une seule machine physique. Ceci suffira pour une analyse unitaire sur un poste de travail.
Je vous conseille donc les outils Gratuits suivants dans l’ordre de préférence :

Une autre fonctionnalité interessante des systèmes de virtualisation est la possibilité de prendre des “snapshots” de la mémoire du système pendant l’execution. Cette aptitude sera très utile lors de l’analyse et permettera de reproduire des évenements assez facilement.
N’oubliez pas d’utiliser une machine physique puissante, avec une grande quantité de mémoire RAM et un grand disque dûr capable d’heberger plusieurs machines virtuelles.

Les outils d’analyse de comportement

Je vous propose ici une selection d’outils capables de monitorer et d’analyser l’usage et les modifications des ressources système. Ces outils sont d’abord pour une environnement windows, et la quasi majorité est gratuite :

  • Monitorer le système de fichier et le registre : Grace à Process Monitor et ProcDOT . Ces outils permettent notamment de savoir comment un malware s’installe dans le système à travers les modifications de fichiers et du registre.
  • Monitorer les process : à travers Process Explorer et Process Hacker qui sont une vraie alternative aux panneau “process” du fameux Gestionnaire de Taches (ctrl-alt-suppr), ils permettent notamment d’alerter sur l’usage réseau des process.
  • Monitorer le réseau : Je ne peux que vous conseiller l’excellent “sniffer” Wireshark qui est un outil limite indispensable pour analyser le flux réseau transmis et reçu par la machine. Un Must.
  • Monitorer les changement : Je vous conseille Regshot  qui est un outil très léger pour comparer le status du système avant et après l’infection.

L’analyse à travers le monitoring permet une première vue sur le comportement du malware. Si l’on veut plus de détail, il faudra faire de l’analyse de code machine, et ce à travers la série d’outils suivante :

Les outils d’analyse de code

C’est un exercice passionant. Il s’agit de découvrir les caractéristiques du malware qui sont difficiles à voir à travers le simple monitoring de changement. Il ne faut tout d’abord jamais oublié de faire des recherches pour constater les travaux des autres chercheurs en sécurité qui s’y sont confronté en premier. Et si vous n’avez pas la chance de tomber sur le code source, une série d’outils vous permet de comprendre ce code, je les distingue en deux familles :

  • Les Désassembleurs et Débugueurs : Comme OllyDbg et IDA Pro Freeware qui peuvent parcourir des executables Windows, et tenter d’afficher le code source Assembleur des instructions executés. Ces outils ont aussi des capacités “debug” qui permettent de parcourir et de faire executer des “bouts de code” avec un contrôle sur la mémoire, les registres, et les modifications de fichier. Une parfaite maitrise de ces outils, ainsi que le language assembler, vous permetteront de lire le code source, à 80% comme son créateur, avec une parfaite maitrise de l’enchainement des bouts de code.
  • Les Dumpers de Mémoire : Comme Scylla  et OllyDumpEx peuvent aider à avoir accès aux zones protégées de la mémoire, et du code qui peut par moment être injecté. Un grand nombre de malware utilise des technique de “packing” rendant le désassemblage difficile. Une analyse du code en mémoire permet une sorte de désassemblage pendant l’execution. Très utile.

Voilà, il s’agit ici de quelques outils de base pour s’attaquer à la discipline, cette liste est loin d’être exhaustive, l’objectif de la série d’articles que j’ai en tête est de montrer qu’il est nécessaire de nos jours de comprendre le fonctionnement des malwares pour mieux les combattre. Je tacherais de faire un travail de simplification et de vulgarisation avec des exemples pratiques pour une meilleure compéhension.
A bientot !


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *