Analyse dynamique de logiciels malveillants

Joan Calvet

Thèse de doctorat (2013)

Accéder à ce document
Disponible
Libre accès au texte intégral dans PolyPublie
Texte Texte • 2MB •

Résumé

Un logiciel malveillant est un programme informatique qui réalise volontairement une action allant à l'encontre de l'intérêt de l'utilisateur. Durant la dernière décennie, ces logiciels ont particulièrement proliféré et leur niveau de complexité technique a drastiquement augmenté. Dans ce contexte, l'objectif de cette thèse est le développement de méthodes de compréhension des logiciels malveillants, afin d'aider l'analyste humain à mieux appréhender cette menace. Notre premier thème de recherche est la compréhension des logiciels malveillants à l'échelle du programme. La première difficulté vient du fait que ceux-ci ne sont disponibles que sous une forme exécutable, c'est-à-dire naturellement compréhensible par un ordinateur, mais pas par un être humain. Dans cette thèse, nous nous focalisons sur les programmes exécutables sur l'architecture x86, car celle-ci est la plus commune pour les ordinateurs personnels. Ces programmes sont particulièrement délicats à étudier, du fait qu'ils contiennent très peu d'informations de haut niveau, qu'ils ont la capacité de se modifier eux-mêmes et que le langage machine x86 comprend de nombreuses spécificités difficiles à modéliser. La situation est aggravée dans le cas des logiciels malveillants, car ceux-ci emploient souvent des protections contre l'analyse. De nombreuses méthodes de travail usuelles sont alors inefficaces, et c'est pour cela que nous employons l'analyse dynamique -- l'étude d'une exécution particulière d'un programme --, car elle offre une plus grande fiabilité grâce à sa connaissance précise de l'état de la machine. Dans ce contexte, la première réalisation de cette thèse est une analyse à grande échelle et en profondeur des protections de logiciels malveillants. En effet, ces protections restent peu étudiées, car la recherche en sécurité se focalise habituellement sur le cœur des logiciels malveillants, où se trouve leur logique finale. Afin de pallier cette carence, nous avons étudié des centaines d'exemplaires de logiciels malveillants, soigneusement sélectionnés pour leur dangerosité. En mesurant de façon automatique un ensemble de caractéristiques originales, nous avons pu alors montrer l'existence d'un modèle de protection particulièrement prévalent dans ces programmes, qui est basé sur l'auto modification du code et sur une limite stricte entre code de protection et code utile. La deuxième réalisation de cette thèse est l'étude des algorithmes cryptographiques dans les protections de logiciels malveillants. Dans les cas où ces algorithmes cryptographiques appartiennent au domaine public, le problème est alors de reconnaître l'implémentation d'un algorithme connu dans un programme en langage machine. Cela est rendu particulièrement difficile dans les protections de logiciels malveillants, car elles sont conçues spécifiquement pour rendre ce type d'analyse compliqué. Pour répondre à cette problématique, nous avons développé une méthode d'identification d'implémentations cryptographiques adaptée aux programmes en langage machine protégés. Nous avons validé notre approche en identifiant de nombreuses implémentations d'algorithmes cryptographiques -- dont la majorité sont complètement invisibles pour les outils existants --, et ceci en particulier dans des protections singulièrement obscures de logiciels malveillants. Cela nous a permis de montrer que les logiciels malveillants Storm Worm et Silent Banker avaient la même erreur dans leur implémentation de l'algorithme TEA (contrairement à ce que mentionnent les analyses existantes). Notre second thème de recherche est la compréhension des logiciels malveillants à l'échelle du réseau. En effet, il est devenu commun pour les machines sous le contrôle d'un logiciel malveillant de recevoir des ordres par Internet, et de constituer alors ce qu'on appelle un réseau de machines zombies (un botnet). L'opérateur de ce réseau peut ainsi coordonner les actions des machines infectées, par exemple pour déclencher des attaques de déni de service. Il existe trois grandes méthodes d'étude des botnets : l'infiltration sur Internet, la construction d'un modèle théorique pour le simuler, et finalement l'émulation, c'est-à-dire la reconstitution complète du réseau dans un environnement de laboratoire avec de véritables machines infectées. Cette dernière approche permet une grande rigueur scientifique, grâce à son contrôle sur l'environnement, et évite d'impliquer de véritables utilisateurs. La réalisation de cette thèse dans ce thème est la validation de l'émulation comme méthode d'étude à grande échelle des botnets. Pour ce faire, nous avons développé ce qui est, à notre connaissance, le premier environnement d'émulation de botnets de plusieurs milliers de machines. Grâce à cela, nous avons montré que l'exploitation d'une vulnérabilité du protocole pair-à-pair du botnet Waledac permet de prendre le contrôle de ce réseau. À cet effet, nous avons reproduit complètement ce botnet avec 3 000 machines infectées dans notre environnement d'émulation, et nous avons exploité sa vulnérabilité de multiples fois en prenant différentes mesures. De plus, nous avons découvert que le choix de distribuer la même clé cryptographique aux machines infectées n'était pas une grossière erreur des opérateurs de Waledac, mais plutôt un compromis pour optimiser les performances du réseau.

Programme:
Génie informatique
Directeurs ou directrices:
Adresse URL de PolyPublie:
Université/École:
École Polytechnique de Montréal
OAI:
oai:publications.polymtl.ca:1221
ORCID
Date du dépôt:
03 févr. 2014 14:16
Dernière modification:
14 oct. 2026 10:37
Citer en APA 7:
Calvet, J. (2013). Analyse dynamique de logiciels malveillants [Thèse de doctorat, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/1221/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document
Afficher document