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)