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.