THÈSE - SPE MATHÉMATIQUES APPLIQUÉES ET INFORMATIQUE

icon

300

pages

icon

Français

icon

Documents

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

icon

300

pages

icon

Français

icon

Ebook

Le téléchargement nécessite un accès à la bibliothèque YouScribe Tout savoir sur nos offres

THÈSE
présentée à
L’ÉCOLE POLYTECHNIQUE
pour obtenir le titre de
DOCTEUR
Specialité
MATHÉMATIQUES APPLIQUÉES ET INFORMATIQUE
par
Sébastien JOSSE
Titre de la thèse
Analyse et détection dynamique de code viraux
dans un contexte cryptographique
et application à l’évaluation
de logiciels antivirus
Soutenue le 10 Avril 2009 devant le jury composé de :
Président du jury Jean-Marc Steyaert Professeur Ecole Polytechnique
Directeur de thèse Éric Filiol Professeur ESIEA LAVAL
Rapporteurs Hervé Debar Professeur France Telecom R&D
Jean-Jacques Quisquater Professeur UCL
Examinateurs Robert Erra Docteur ESIEA PARIS
Caroline Fontaine Docteur IRISA
Cédric Lauradoux Docteur UCL
Frédéric Raynal Docteur Sogeti ESEC Remerciements
Les années consacrées à cette thèse constituent à mes yeux une expérience aussi éprouvante que passionnante. Réa-
lisée sur mon temps libre, alors que je mène à temps plein une vie professionnelle et familiale déjà très dense, j’ai
souvent douté pouvoir la mener à son terme. Aux vues des obstacles franchis et à présent que l’exercice est terminé,
je prends conscience du soutien important dont nombre de collègues, proches et amis m’ont gratifié. À tous je veux
dire ma gratitude.
Je voudrais remercier en premier lieu mon directeur de thèse, Eric Filiol, pour avoir guidé mes premiers pas dans
les arènes de la recherche. C’est son expérience, sa confiance et son amitié qui m’ont permis de mener à terme cette
aventure. J’ai particulièrement apprécié sa franchise et son ...
Voir icon arrow

Publié par

Nombre de lectures

103

Langue

Français

Poids de l'ouvrage

3 Mo

THÈSE présentée à L’ÉCOLE POLYTECHNIQUE pour obtenir le titre de DOCTEUR Specialité MATHÉMATIQUES APPLIQUÉES ET INFORMATIQUE par Sébastien JOSSE Titre de la thèse Analyse et détection dynamique de code viraux dans un contexte cryptographique et application à l’évaluation de logiciels antivirus Soutenue le 10 Avril 2009 devant le jury composé de : Président du jury Jean-Marc Steyaert Professeur Ecole Polytechnique Directeur de thèse Éric Filiol Professeur ESIEA LAVAL Rapporteurs Hervé Debar Professeur France Telecom R&D Jean-Jacques Quisquater Professeur UCL Examinateurs Robert Erra Docteur ESIEA PARIS Caroline Fontaine Docteur IRISA Cédric Lauradoux Docteur UCL Frédéric Raynal Docteur Sogeti ESEC Remerciements Les années consacrées à cette thèse constituent à mes yeux une expérience aussi éprouvante que passionnante. Réa- lisée sur mon temps libre, alors que je mène à temps plein une vie professionnelle et familiale déjà très dense, j’ai souvent douté pouvoir la mener à son terme. Aux vues des obstacles franchis et à présent que l’exercice est terminé, je prends conscience du soutien important dont nombre de collègues, proches et amis m’ont gratifié. À tous je veux dire ma gratitude. Je voudrais remercier en premier lieu mon directeur de thèse, Eric Filiol, pour avoir guidé mes premiers pas dans les arènes de la recherche. C’est son expérience, sa confiance et son amitié qui m’ont permis de mener à terme cette aventure. J’ai particulièrement apprécié sa franchise et son soutien inconditionnel face aux difficultés de tous ordres qui peuvent jalonner la route du thésard. Je tiens également à le remercier de son implication et de la disponibilité dont il a su faire preuve dans la direction de mon travail. Enfin, Eric a su me communiquer une partie de la passion scientifique qui l’habite et de son goût du travail, parfois acharné. J’espère avoir l’opportunité de poursuivre avec lui cette collaboration le plus longtemps possible. Mes remerciements vont ensuite aux autres membres du jury, pour avoir bien voulu lire et valider mes travaux. À Jean-JacquesQuisquateretHervéDebarjeveuxdiremagratitudepourm’avoirfaitl’honneurd’êtrelesrapporteurs de cette thèse. Je les remercie pour leur bienveillance et leurs conseils avisés. Je remercie aussi très chaleureusement Jean-Marc Stayaert pour avoir bien voulu présider le jury. Sa bonne humeur contagieuse m’a permis de passer cette épreuve dans les meilleurs conditions. Je remercie enfin Robert Erra, Frédéric Raynal, Caroline Fontaine et Cédric Lauradoux pour leur examen attentif du manuscrit et la qualité de leurs questions et remarques, qui devraient me permettre de progresser dans mes futures activités de recherche. Je voudrais remercier Guillaume Dabosville et Guillaume Geffard, avec qui j’ai eu l’opportunité de collaborer sur plusieurs travaux. Leur décontraction et leur amitié m’ont été précieuses. Je remercie également l’ensembles des membres du Laboratoire de Virologie et Cryptologie Opérationnelles, avec qui j’ai pu collaborer, et en particulier Philippe Beaucamps et Grégoire Jacob pour les intéressantes conversations que nous avons eu sur le sujet. Je tiens à remercier Dominique Chauveau, Lionel Van Aertryck, Alexandre Gazet et David Boucher pour avoir pris le temps de relire certaines de mes soumissions. Leurs remarques m’ont clairement permis d’en améliorer la qualité. JeremercieAlainMarcayetBenoîtJeanninpouravoirrespectivementencouragépuisrendupossiblelefinancement de certains déplacements, parfois à l’autre bout du monde. Je remercie également les personnes des secteurs civil et de Défense avec qui j’ai eu l’occasion de travailler ces trois dernières années au cours de missions d’étude sur les problématiques de protection logicielle et de rétro- ingénierie, pour l’enrichissement que m’a apportée leur collaboration. Je pense en particulier à François Daudé, Olivier Vivolo, Gaëtan Le Gouelvic, Antoine Monsifrot et Briag Morange. Je remercie enfin ma femme, Stéphanie, qui a su s’armer de patience durant la rédaction de cette thèse. Puisse-t-elle me pardonner ce temps que je ne lui ai pas consacré. i Introduction Motivations L’utilisateur final d’un produit antivirus ne sait pas toujours quelle confiance il peut placer dans son produit an- tivirus pour parer convenablement la menace virale. Pour répondre à cette question, il est nécessaire de formuler la problématique de sécurité à laquelle doit répondre un tel produit et de disposer d’outils et de critères méthodo- logiques, techniques et théoriques permettant d’évaluer la robustesse des fonctions de sécurité et la pertinence des choix de conception au regard d’une menace virale identifiée. Une bonne compréhension de la menace virale rend indispensable une veille technologique continue. Nous avons observé ces dernières années une tendance à l’utilisation de plus en plus systématique d’applications de protection 1logicielle du marché par les auteurs de virus. Par ailleurs, la mise à la disposition du plus grand nombre de généra- teurs automatiques de variantes d’un même programme viral (kits de génération de virus) de plus en plus évolués [Szö05] impose un nouveau défi à relever pour les éditeurs de produits antivirus et une remise en cause profonde de leur choix de conception. Je pense que ces outils ne sont pas encore représentatifs de l’état de l’art dans le domaine delaprotectionlogicielle,dontl’essorrécentestprobablementdûauxnouvellesapplicationscivilesdeprotectionde contenu (gestion numérique des droits). Si les concepteurs de programmes malicieux utilisent volontier les packers d’exécutables, ils n’utilisent pas encore (pour les codes viraux identifiés) d’outils plus évolués, comme les chaînes de compilation spécialisées, dont la distribution reste encore très discrétionnaire. Nous avons choisi d’analyser la menace potentielle que représenterait l’utilisation de ce type d’outils spécialisés par les auteurs de virus. Les programmes viraux font un usage intensif de la cryptographie, tant pour contrôler l’intégrité de leur code ou de leur environnement d’exécution, que pour protéger leurs données critiques en confidentialité et échapper à la détection. Ces mécanismes crypographiques doivent être évalués dans un contexte cryptographique particulier, ap- pelé contexte d’attaque boîte blanche, dans lequel l’environnement d’exécution est supposé complètement maîtrisé par l’attaquant. Dans ce contexte cryptographique, l’attaquant est en mesure de mener une analyse dynamique du programme viral et d’instrumenter le système d’exploitation. L’identification de la menace virale et sa modélisation sont des étapes cruciales avant toute organisation d’une ligne de défense. L’évaluation d’un produit anti-virus doit se faire sur la base de l’énoncé d’une problématique de sécurité, permettant de définir des objectifs de sécurité. Un tel produit propose plusieurs fonctions de sécurité, permettant de couvrir les objectifs de sécurité. Parmi les différentes fonctions de sécurité proposées par un produit antivirus, l’une d’entre elles revêt une impor- tance cruciale et concentre le savoir-faire des éditeurs de produits antivirus : la fonction de détection virale. Les schémas 1 et 2 présentent de manière synthétique l’architecture générale et le fonctionnement du moteur de détection virale d’un produit antivirus. Nous pouvons remarquer que le processus de détection se fonde toujours sur une base de connaissance. 1 Près de 200 kits de génération de virus sont téléchargeables sur le site web Vx Heavens [Hea08]. 1 Introduction Nous avons représenté sur le schéma 1 le processus d’élaboration du schéma de détection d’un virus. Nous pouvons observerquel’extractiond’informationestleplussouventprécédéed’uneétaped’analyse,automatiqueoumanuelle, lors de laquelle la protection fournie par un outil du marché est supprimée ou contournée (unpacking), puis d’une phase de désassemblage, permettant d’extraire une représentation intermédiaire du code. Cette représentation est ensuite normalisée, pour aboutir à un schéma de détection, destiné à être stocké dans une base d’information. Nous adoptons la définition suivante d’un schéma de détection : Définition 0.0.1 (Schéma de détection [Fil06]). Un schéma de détection d’un malwareM est défini comme la donnée d’un motif et d’une fonction de détection{S ,f }.M M Nous pouvons voir une base de signatures virales comme un ensemble de schémas de détection{S ,f }. CetteM M base de signatures peut être constituée de différents types d’informations : – des séquences d’octets; – des sces d’instructions assembleur; – des séquences d’appels à des fonctions externes du système d’exploitation; – des données liées aux interactions du programme avec certains objets du système d’exploitation, comme le système de fichiers ou la base de registre; – des graphes de flots de contrôle, c’est-à-dire la représentation sous forme de graphes des branchements entre blocs de code de programmes (ou de portions de programmes). Un schéma de détection d’un virusM peut être vu [Fil07b] comme la donnée : – du langage L produit par une grammaire G ,M M – d’un automate à états finis, capable de reconnaître le langage L .M Le langage L peut être constitué de séquences d’octets ou d’instructions assembleur. Il peut être constitué deM séquences d’appels à des fonctions externes. Il peut être constitué de termes représentant des graphes de flots de contrôle [BKM08]. Avec ce formalisme (celui des grammaires formelles), le problème de détection se ramène au problème d’apparte- nance d’un mot au langage L . La fonction de détection f est un automate à états finis capable de reconnaîtreM M le langage L , ce dernier définissant le motif de détectionS .M M Un schéma de détection d’un virusM peut être vu [FJ07] comme la donnée : – deladistributiond’uneloideprobabilitécaractérisantl’informationoud’unmodèleλ formésurdesdonnéesM d’apprentissage (c’est-à-dire que les paramètres du modèle sont estimés sur les données d’apprentissage); – d’une règle de décision générée sur la base de d
Voir icon more
Alternate Text