HAL Id: pastel-00005279 https://pastel.archives-ouvertes.fr/pastel-00005279 Sub
HAL Id: pastel-00005279 https://pastel.archives-ouvertes.fr/pastel-00005279 Submitted on 21 Jul 2009 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. Analyse et détection dynamique de codes viraux dans un contexte cryptographique Sébastien Josse To cite this version: Sébastien Josse. Analyse et détection dynamique de codes viraux dans un contexte cryptographique. Computer Science [cs]. Ecole Polytechnique X, 2009. English. pastel-00005279 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-Jacques Quisquater et Hervé Debar je veux dire ma gratitude pour m’avoir fait l’honneur d’être les rapporteurs 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é. Je remercie Alain Marcay et Benoît Jeannin pour avoir respectivement encouragé puis rendu possible le financement 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 logicielle du marché par les auteurs de virus. Par ailleurs, la mise à la disposition du plus grand nombre1 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 de la protection logicielle, dont l’essor récent est probablement dû aux nouvelles applications civiles de protection de 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 observer que l’extraction d’information est le plus souvent précédée d’une étape d’analyse, automatique ou manuelle, 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 malware M est défini comme la donnée d’un motif et d’une fonction de détection {SM, fM}. Nous pouvons voir une base de signatures virales comme un ensemble de schémas de détection {SM, fM}. Cette base de signatures peut être constituée de différents types d’informations : – des séquences d’octets ; – des séquences 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 virus M peut être vu [Fil07b] comme la donnée : – du langage uploads/Industriel/ these-sebastien-josse.pdf
Documents similaires










-
46
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 08, 2021
- Catégorie Industry / Industr...
- Langue French
- Taille du fichier 3.6629MB