<  Retour au portail Polytechnique Montréal

Analyse dynamique de logiciels malveillants

Joan Calvet

Thèse de doctorat (2013)

[img]
Affichage préliminaire
Télécharger (2MB)
Citer ce document: Calvet, J. (2013). Analyse dynamique de logiciels malveillants (Thèse de doctorat, École Polytechnique de Montréal). Tiré de https://publications.polymtl.ca/1221/
Afficher le résumé Cacher le résumé

Résumé

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.----------ABSTRACT Malicious software ---also called malware--- takes actions against a computer user's interest, e.g. by stealing its banking information, or by sending spam with its email account. In the last decade, this kind of software has significantly proliferated and their level of technical complexity has dramatically increased. In this context, the main goal of this thesis is the development of malware analysis methods to help human analysts better comprehend the threat it represents. Our first research theme is to address our understanding of malicious software with programme analysis techniques. The first difficulty comes from the fact that malware is typically only available in its machine-understandable executable form that is very hard for a human to comprehend. In this thesis, we focus on executable programmes on the x86 architecture, the most common among personal computers. These programmes are particularly difficult to analyse since they contain very little high-level information, they have the capacity of modifying themselves, and the x86 machine language includes many idiosyncrasies that are hard to model. The situation is made worse in the case of malware as they often employ protection techniques to counter programme analysis efforts. Several common analysis methods are thus rendered useless, and this is why we employ dynamic analysis ---the study of a particular execution of a programme--- as it offers great flexibility due to its precise knowledge of the internal state of the machine. In that context, the first achievement in this thesis is the large-scale and in-depth analysis of malware protection techniques. Indeed, these protections have not been studied very much as security research usually centers on the core code of the malware, where the final "payload" logic hides. In order to fill this gap of knowledge, we have studied hundreds of malware samples, carefully selected according to their threat level. By automatically measuring a set of original characteristics, we have been able to demonstrate the existence of a particularly prevalent model of protection in these programmes that is based on self-modifying code and on a strict delimitation between protection code and payload code. The second achievement of this thesis is the study of the use of cryptographic algorithms in malware protections. Where the cryptographic algorithms used are from the public domain, the problem consists in recognising the implementation of a known algorithm in machine code. This is made difficult in malware protections as they are specifically designed to make this kind of analysis intractable. To address this problem, we have developed an identification method for cryptographic implementations adapted to protected machine language programmes. We have validated our approach by identifying several implementations of cryptographic algorithms ---the majority unidentified by existing tools--- and this even in particularly obscure malware protection schemes. This has allowed us to demonstrate that the Storm Worm and Silent Banker malware had the same implementation error in the TEA algorithm (contrarily to what previous analysis had mentioned). Our second research theme is the understanding of malware at the network scale. Indeed, it has become common for machines under the control of malware to receive commands through the Internet, constituting network of robots or botnet. The operator of this botnet can coordinate the actions of infected machines, for example by initiating Denial-of-Service attacks. There are three overall methods for studying botnets: infiltration on the Internet, construction of a theoretical model and simulation, and emulation, i.e. the reconstitution of the botnet in a laboratory environment with truly infected machines. This last approach allows a high level of scientific rigour, thanks to its control of the environment, and avoids having to involve real users.

Document en libre accès dans PolyPublie
Département: Département de génie informatique et génie logiciel
Directeur de mémoire/thèse: José M. Fernandez et Jean-Yves Marion
Date du dépôt: 03 févr. 2014 14:16
Dernière modification: 24 oct. 2018 16:11
Adresse URL de 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