Dans une guerre, il y a toujours deux camps : les attaquants et les défenseurs. Un groupe moins connu est celui des chercheurs et des développeurs. Pendant que les soldats se battent sur le front, les scientifiques et les ingénieurs recherchent et développent de nouvelles armes, défenses et outils, afin de donner un avantage à leur camp. Si l'une de ces créations est capturée par les forces adverses, elle fait l'objet d'une rétroconception pour comprendre son fonctionnement exact, comment s'en défendre et même comment la réaffecter. Il en va de même pour la guerre sur le front cybernétique : les attaquants malveillants et les administrateurs système sont les soldats, les auteurs de logiciels malveillants développent de nouvelles formes dangereuses de logiciels malveillants et les analystes de logiciels malveillants procèdent à une rétro-ingénierie de ces armes pour trouver comment les arrêter.
Qu'est-ce qu'un malware analyst ou analyste de logiciels malveillants ?
Un malware analyst est un spécialiste de la rétro-ingénierie, un programmeur et un détective. Il accomplit sa tâche en utilisant divers outils et des connaissances de niveau expert pour comprendre non seulement ce qu'un logiciel malveillant particulier peut faire, mais aussi comment il le fait. Devenir un analyste de logiciels malveillants exige beaucoup de concentration et de discipline, ainsi qu'une formation et une pratique du fonctionnement interne des systèmes informatiques, des méthodologies de programmation en plusieurs langues et un esprit vif pour résoudre des énigmes et relier les points.
Vous pouvez envisager de devenir un analyste des logiciels malveillants si vous êtes passionné par la cybersécurité, si vous aimez résoudre des énigmes et si vous aimez la perspective de toujours apprendre de nouvelles choses. Vous pourriez également l'apprécier si vous préférez une profession qui représente toujours un défi ou si vous avez hâte de travailler sur des choses nouvelles et intéressantes. Aucun jour ne ressemble au précédent, chaque jour est une occasion d'apprendre quelque chose de nouveau et d'affiner vos compétences. Outre la satisfaction personnelle que vous retirerez du métier d'analyste des logiciels malveillants, vous deviendrez également un samouraï dans la lutte pour rendre le cybermonde plus sûr.
Les qualités nécessaires qu’un analyste de logiciels malveillants devrait avoir sont :
- Très bonne capacité d’adaptation
- Capacité à apprendre vite
- Un bon résolveur d'énigmes
- Capable de sortir des sentiers battus
- Volonté d'utiliser fréquemment la méthode scientifique
Avant de s'engager sur la voie de l'analyse des logiciels malveillants, une personne doit être familiarisée avec les éléments suivants :
- Les concepts de système d'exploitation
- La programmation de haut niveau et de bas niveau
- Les principes de base de la mise en réseau
- L’utilisation de Internet pour effectuer des recherches
- Les bases de la construction
- Apprendre le langage d'assemblage : Dans la hiérarchie des langages de programmation, vous avez au sommet les langages de script comme PERL ou Python, suivis des langages de haut et moyen niveau comme C++, C. Viennent ensuite le langage d'assemblage, le langage machine et enfin le code binaire qui est lu par le matériel.
Le métier d'analyste de logiciels malveillants peut vous mener à de nombreux endroits différents au cours de votre carrière et vous pouvez être amené à analyser tous les types de logiciels malveillants, qu'il s'agisse de logiciels malveillants d'applications, d'exploits cachés dans des fichiers PDF ou de logiciels malveillants trouvés sur des smartphones.
Pourquoi un malware analyst doit connaître le langage d’assemblage ?
La plupart des logiciels malveillants sont écrits dans un langage de niveau intermédiaire et une fois le code terminé, il est compilé jusqu'au niveau inférieur pour pouvoir être lu par le matériel et/ou le système d'exploitation. À ce niveau, le code n'est pas "lisible par l'homme" ou facilement lisible par des yeux humains. Pour qu'un analyste de logiciels malveillants soit en mesure de lire le code du logiciel malveillant, il devra le désassembler. Malheureusement, le langage le plus élevé dérivé du code binaire est l'assemblage, qui est le dernier niveau de code lisible par l'homme. Par conséquent, il est impératif qu'un futur analyste de logiciels malveillants apprenne également à lire et à écrire du code Assembleur.
Le langage assembleur est de bas niveau et comporte donc beaucoup plus d'instructions que celles d'un programme de plus haut niveau. Par exemple, le code requis pour imprimer quelque chose dans la console d'un langage de haut niveau est généralement d'une seule ligne et parfois d'un seul symbole. En langage assembleur, cette simple procédure peut nécessiter entre 5 et 20 lignes de code.
Pourquoi un malware analyst doit apprendre à utiliser des outils spécifiques ?
Un analyste de logiciels malveillants doit savoir comment utiliser son propre ensemble d'outils uniques et puissants. Certains outils sont faciles à utiliser et d'autres non, certains ont des résultats clairs et d'autres vous jettent des tas de données que vous devez être capable d'analyser. Les outils d'un analyste de logiciels malveillants sont incroyablement importants et font généralement partie des premières choses apprises. Voici une liste des types d'outils nécessaires et quelques exemples :
- Désassembleur - IDA Pro
- Débogueur - OllyDbg, WinDbg
- Moniteur système - Process Monitor, RegShot. Explorateur de processus
- Moniteur réseau - TCP View, Wireshark
- Identificateur d'empaqueteur - PEID
- Outils de déballage - Qunpack. GUNPacker
- Outils d'analyse binaire - PE Explorer, Malcode Analysts Pack
- Outils d'analyse de code - LordPE, ImpRec
Une fois que vous aurez appris comment les outils fonctionnent et ce que vous pouvez faire avec eux, votre quête dans l'analyse des logiciels malveillants deviendra de plus en plus facile. Gardez également à l'esprit que, même si vous avez appris à l'origine à utiliser une suite d'outils spécifique, de nouveaux outils sont développés en permanence et peuvent être plus utiles, tant dans leur conception que dans leur fonction.
Pourquoi un malware analyst doit être familier avec les logiciels malveillants existants ?
L'apprentissage des logiciels malveillants peut sembler un peu redondant dans le cadre d'une formation d'analyste malware, mais il s'agit d'un aspect très important de votre formation. Les logiciels malveillants évoluent et changent chaque année, ils utilisent de nouvelles méthodes pour infecter et opérer et font parfois ressurgir d'anciennes méthodes si elles sont à nouveau applicables.
L'injection de processus est une méthode que les logiciels malveillants utilisent pour cacher leurs opérations. Ils doivent passer par un ensemble de fonctions pour réaliser cette technique et il est important que vous puissiez l'identifier dans le code en vous basant sur votre expérience et vos connaissances du fonctionnement des logiciels malveillants.
Pour conclure, la recherche, la pratique, la connaissance et l'expérience sont essentielles pour être en mesure d'analyser efficacement les nouveaux logiciels malveillants et devraient être les piliers de votre formation d'analyste malware.