Bourse d'études en Europe

Bourse doctorale en informatique à Paris : Model Checking for Malware (Virus) Detection

Vérification du modèle pour la détection des logiciels malveillants (virus) :

Le nombre de logiciels malveillants qui ont produit des incidents en 2010 est supérieur à 1,5 milliard. Un logiciel malveillant peut causer de graves dommages, par exemple, le ver MyDoom a ralenti l’accès mondial à Internet de 10 % en 2004. Les autorités chargées de l’enquête sur le crash du vol 5022 de Spanair en 2008 ont découvert qu’un système informatique central utilisé pour surveiller les problèmes techniques dans l’avion était infecté par un logiciel malveillant. . Il est donc crucial de disposer de détecteurs de virus efficaces et à jour. Les systèmes antivirus existants utilisent diverses techniques de détection pour identifier les virus tels que (1) l’émulation de code où le virus est exécuté dans un environnement virtuel pour être détecté ; ou (2) détection de signature, où une signature est un modèle de code de programme qui caractérise le virus. Un fichier est déclaré virus s’il contient une séquence d’instructions de code binaire qui correspond à l’une des signatures connues. Chaque variante de virus a sa signature correspondante. Ces techniques présentent certaines limites. En effet, les techniques basées sur l’émulation ne peuvent vérifier le comportement du programme que dans un intervalle de temps limité. Ils ne peuvent pas vérifier ce qui se passe après le délai d’attente. Ainsi, ils pourraient manquer le comportement viral s’il se produit après cet intervalle de temps. Quant aux systèmes basés sur les signatures, il est très facile pour les développeurs de virus de les contourner. Il suffit d’appliquer des techniques d’obfuscation pour changer la structure du code tout en gardant les mêmes fonctionnalités, pour que la nouvelle version ne corresponde pas aux signatures connues. Les techniques d’obfuscation peuvent consister à insérer du code mort, à remplacer des instructions par des équivalentes, etc. Les auteurs de virus mettent fréquemment à jour leurs virus pour les rendre indétectables par ces systèmes antivirus. Ces techniques présentent certaines limites. En effet, les techniques basées sur l’émulation ne peuvent vérifier le comportement du programme que dans un intervalle de temps limité. Ils ne peuvent pas vérifier ce qui se passe après le délai d’attente. Ainsi, ils pourraient manquer le comportement viral s’il se produit après cet intervalle de temps. Quant aux systèmes basés sur les signatures, il est très facile pour les développeurs de virus de les contourner. Il suffit d’appliquer des techniques d’obfuscation pour changer la structure du code tout en gardant les mêmes fonctionnalités, pour que la nouvelle version ne corresponde pas aux signatures connues. Les techniques d’obfuscation peuvent consister à insérer du code mort, à remplacer des instructions par des équivalentes, etc. Les auteurs de virus mettent fréquemment à jour leurs virus pour les rendre indétectables par ces systèmes antivirus. Ces techniques présentent certaines limites. En effet, les techniques basées sur l’émulation ne peuvent vérifier le comportement du programme que dans un intervalle de temps limité. Ils ne peuvent pas vérifier ce qui se passe après le délai d’attente. Ainsi, ils pourraient manquer le comportement viral s’il se produit après cet intervalle de temps. Quant aux systèmes basés sur les signatures, il est très facile pour les développeurs de virus de les contourner. Il suffit d’appliquer des techniques d’obfuscation pour changer la structure du code tout en gardant les mêmes fonctionnalités, pour que la nouvelle version ne corresponde pas aux signatures connues. Les techniques d’obfuscation peuvent consister à insérer du code mort, à remplacer des instructions par des équivalentes, etc. Les auteurs de virus mettent fréquemment à jour leurs virus pour les rendre indétectables par ces systèmes antivirus. s comportement dans un intervalle de temps limité. Ils ne peuvent pas vérifier ce qui se passe après le délai d’attente. Ainsi, ils pourraient manquer le comportement viral s’il se produit après cet intervalle de temps. Quant aux systèmes basés sur les signatures, il est très facile pour les développeurs de virus de les contourner. Il suffit d’appliquer des techniques d’obfuscation pour changer la structure du code tout en gardant les mêmes fonctionnalités, pour que la nouvelle version ne corresponde pas aux signatures connues. Les techniques d’obfuscation peuvent consister à insérer du code mort, à remplacer des instructions par des équivalentes, etc. Les auteurs de virus mettent fréquemment à jour leurs virus pour les rendre indétectables par ces systèmes antivirus. s comportement dans un intervalle de temps limité. Ils ne peuvent pas vérifier ce qui se passe après le délai d’attente. Ainsi, ils pourraient manquer le comportement viral s’il se produit après cet intervalle de temps. Quant aux systèmes basés sur les signatures, il est très facile pour les développeurs de virus de les contourner. Il suffit d’appliquer des techniques d’obfuscation pour changer la structure du code tout en gardant les mêmes fonctionnalités, pour que la nouvelle version ne corresponde pas aux signatures connues. Les techniques d’obfuscation peuvent consister à insérer du code mort, à remplacer des instructions par des équivalentes, etc. Les auteurs de virus mettent fréquemment à jour leurs virus pour les rendre indétectables par ces systèmes antivirus. il est très facile pour les développeurs de virus de les contourner. Il suffit d’appliquer des techniques d’obfuscation pour changer la structure du code tout en gardant les mêmes fonctionnalités, pour que la nouvelle version ne corresponde pas aux signatures connues. Les techniques d’obfuscation peuvent consister à insérer du code mort, à remplacer des instructions par des équivalentes, etc. Les auteurs de virus mettent fréquemment à jour leurs virus pour les rendre indétectables par ces systèmes antivirus. il est très facile pour les développeurs de virus de les contourner. Il suffit d’appliquer des techniques d’obfuscation pour changer la structure du code tout en gardant les mêmes fonctionnalités, pour que la nouvelle version ne corresponde pas aux signatures connues. Les techniques d’obfuscation peuvent consister à insérer du code mort, à remplacer des instructions par des équivalentes, etc. Les auteurs de virus mettent fréquemment à jour leurs virus pour les rendre indétectables par ces systèmes antivirus.

Pour contourner ces limitations, au lieu d’exécuter le programme ou d’effectuer une vérification syntaxique sur celui-ci, les détecteurs de virus doivent utiliser des techniques d’analyse qui vérifient le comportement (et non la syntaxe) du programme de manière statique, c’est-à-dire sans l’exécuter. Dans ce but, nous proposons d’utiliser le model-checking pour la détection de virus.

Le model-checking est un formalisme mathématique qui permet de vérifier si un système satisfait une propriété donnée. Elle consiste à représenter le système à l’aide d’un modèle mathématique M, la propriété à l’aide d’une formule F dans une logique donnée, puis à vérifier si le modèle M satisfait à la formule F. Le model-checking a déjà été appliqué pour la détection de logiciels malveillants. Cependant, les travaux existants présentent certaines limites.

En effet, les langages de spécification qu’ils utilisent n’ont été appliqués que pour spécifier et détecter un ensemble particulier de comportements malveillants. Ils ne peuvent pas être utilisés pour détecter tous les comportements de virus. Ainsi, l’un des principaux défis de la détection des logiciels malveillants est de proposer des formalismes de spécification et des techniques de détection capables de spécifier et de détecter un ensemble plus large de virus.

Le but de cette thèse est donc de :

1- Définir des logiques expressives pouvant être utilisées pour exprimer de manière compacte des comportements malveillants. Notre objectif est de pouvoir – exprimer un large éventail de comportements malveillants qui n’étaient pas pris en compte auparavant.

2- Définir des algorithmes de model-checking efficaces pour ces logiques.

3- Réduire le problème de détection de malware au problème de model-checking de ces logiques.

4- Implémenter ces techniques dans un outil de détection de malwares et appliquer cet outil pour détecter plusieurs malwares.

L’objectif ultime est de créer un détecteur de logiciels malveillants plus précis que les antivirus commerciaux bien connus existants.

Ce qui est financé

Un doctorat en informatique

Durée

3 années

Admissibilité

Étudiant titulaire d’un diplôme de master en informatique.

 Pièces jointes

sujet.pdf  (1,74 Mo)

Laissez un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.