Sujet de th`ese : Analyse de code exécutable et
Transcription
Sujet de th`ese : Analyse de code exécutable et
Sujet de thèse : Analyse de code exécutable et détection de codes malveillants • Mots clés : sécurité, cyber-défense, détection de codes malveillants, combinaisons d’approches statiques et dynamiques • Encadrants : Jean-Yves Marion (directeur, LORIA), Sébastien Bardin (CEA) • Institut : CEA LIST (Saclay, région parisienne), LORIA (Nancy) • Contact : [email protected], [email protected] Contexte. La sécurité logicielle est un problème majeure de la société de l’information, les conséquences d’un système non sécurisé pouvant affecter aussi bien des individus (phishing, paiement non autorisé, etc.) que des compagnies (fuite d’informations confidentielles) ou des états (attaques cybernétiques, virus stuxnet). Un des vecteurs d’attaque les plus privilégiés est l’utilisation de code malveillant (malware), tels que les virus ou les vers [5]. La contre-mesure classique consiste à détecter le malware par des techniques de signature syntaxique [5] (comparaison octet par octet de portions du code à analyser avec la “signature” de malware connus), puis à l’éradiquer. Cependant cette approche est très simple à contourner en utilisant des méthodes d’obfuscation (modification automatique d’un programme pour en altérer la forme sans modifier son comportement) [6]. Il s’ensuit une course sans fin entre les développeurs de malware et les développeurs d’anti-virus, mettant sans cesse à jour des bases de données de plus en plus grandes de variantes de malware connus. Signature sémantique des virus, analyse statique de code binaire. La recherche en matière de détection de malware s’oriente actuellement vers des notions de signatures plus robustes, basées sur des invariants de contrôle / données du programme ou sur des séquences d’appels de fonctions. Ces deux axes sont explorés par exemple au Laboratoire de Haute Sécurité (LHS) du LORIA [1, 4]. À l’heure actuelle ce genre d’analyse se divise globalement en deux phases : calcul de la signature sémantique à partir du code du malware, puis comparaison de cette signature avec une base de signatures dangereuses. La signature est actuellement calculée à partir d’une fraction seulement du code du malware, obtenue par analyse dynamique. L’avantage est que l’analyse dynamique est peu sensible à l’obfuscation, l’inconvénient majeur est que les signatures calculées de la sorte sont moins précises, et caractérisent moins bien le code à analyser. D’un autre côté, des progrès récents ont été obtenus dans le domaine de l’analyse automatique de code binaire. Il existe ainsi des outils d’exploration partielle des comportements du code exécutable [2], et des techniques récentes d’analyse statique permettant de retrouver avec grande précision une sur-approximation du Graphe de Flot de Contrôle d’un programme donné sous forme exécutable [3]. Ces deux axes sont explorés par exemple au Laboratoire de Sécurité Logicielle (LSL) du CEA. Sujet proposé. Ce sujet de thèse concerne le développement de techniques d’analyse de code exécutable obfusqué pour la détection de codes malveillants. Le but sera d’adapter et de combiner les techniques récentes d’analyse de code exécutable (statique et/ou dynamique) et de les interfacer avec les techniques récentes de détection de malware. Les principales difficultés attendues sont : 1. d’être capable de reconstruire des approximations fidèles du CFG de codes exécutables obfusqués, en étendant et/ou combinant les techniques actuelles d’analyse de code binaire ; 2. d’évaluer le gain qu’apporte cet apport de précision aux techniques de pointe de reconnaissance de malware ; 3. de développer des méthodes satisfaisant des contraintes fortes de temps de calcul. Par rapport aux travaux d’analyse statique développés au CEA [3], les deux principales différences sont que l’on se place ici dans le cadre de programmes obfusqués, et que la reconstruction du CFG n’a pas forcément besoin d’être sûre. Par rapport aux travaux menés au LORIA [4], la principale différence est d’améliorer la phase de reconstruction de modèle, en passant d’une analyse dynamique simple à des analyses plus poussées. Vu la difficulté du problème, différents compromis entre approximation du CFG et précision de la détection pourront être explorés, et les techniques employées pourront allier à la fois l’analyse purement dynamique, des analyses symboliques [2] et des analyses statiques [3]. Le candidat pourra chercher à étendre ces méthodes et à les combiner entre elles. Des solutions différentes pourront être proposées selon le type d’obfuscations envisagées. Le candidat pourra s’appuyer sur les compétences de ses encadrants en matière de reconstruction de CFG et d’analyse de binaire [2, 3] et de détection de malware [4]. Il aura notamment accès à la base de malware du LHS, et aux prototypes développés par le LHS et le LSL. Équipe d’accueil. Cette thèse est co-encadrée par le CEA et le LORIA. Le candidat sélectionné travaillera au sein du Département d’Ingénierie des Logiciels et Systèmes (DILS) du CEA LIST (Saclay, région parisienne). Il rejoindra plus particulièrement le Laboratoire de Sécurité Logicielle (LSL), ou il sera co-encadré par Sébastien Bardin. Le candidat sera également en contact avec le Laboratoire de Haute Sécurité (LHS) du LORIA, où il sera encadré par Jean-Yves Marion. Des visites et séjours au LHS seront prévues. Partenariat industriel. antivirus ? DGA ? Références [1] Beaucamps, P., Gnaedig, I., Marion, J.-Y. : Behavior Abstraction in Malware Analysis. In : Runtime Verification 2010. Springer, Heidelberg (2010) [2] Bardin, S., Herrmann, P. : OSMOSE : Automatic Structural Testing of Executables. International Journal of Software Testing, Verification and Reliability (STVR), 21(1), 2011 [3] Bardin, S., Herrmann, P., Védrine, F. : Refinement-based CFG Reconstruction from Unstructured Programs. In : VMCAI 2011. Springer (2011) [4] Bonfante, G., Kaczmarek, M., Marion, J.-Y. : Architecture of a morphological malware detector. In : Journal in Computer Virology (2009) [5] Filiol, É. : Les virus informatiques : théorie, pratique et applications. Springer, Heidelberg (2004). [6] Moser, A., Kruegel, C., Kirda, E. : Limits of Static Analysis for Malware Detection. In : IEEE ACSAC 2007. IEEE Computer Society, Los Alamitos (2007)