- Virus polymorphe
-
Un virus polymorphe est un virus informatique qui, lors de sa réplication, modifie sa représentation, ce qui empêche un logiciel antivirus de l'identifier par sa signature. Bien qu'en apparence le virus change (du point de vue d'un programme antivirus qui lit le programme infecté), le fonctionnement du virus (sa méthode d'infection et sa charge utile) reste le même : les algorithmes ne sont pas modifiés, mais leur traduction en code-machine l'est.
Sommaire
Fonctionnement
Voici un exemple simple http://www.youtube.com/watch?v=wobeX89x7L0. La plupart des logiciels antivirus tentent d'identifier les virus en recherchant une séquence binaire spécifique au virus, sa signature. Le polymorphisme de certains virus empêche la définition de telles signatures, car il n'existe plus de séquence invariable suffisamment longue pour être spécifique au virus, c'est-à-dire pour ne pas risquer de se retrouver dans d'autres programmes non malveillants et de causer de fausses alertes.
Il existe différents moyens de modifier le code d'un virus sans modifier sa fonction.
Chiffrement
Le code est tout simplement traité comme une donnée et chiffré différemment à chaque génération du virus ; encore faut-il, pour que le virus soit fonctionnel, qu'un code de démarrage soit présent en clair dans un programme infecté par le virus pour exécuter la fonction de déchiffrement, rendre exécutable le code déchiffré (invalider le cache d'instructions, régler les droits d'exécution de la zone mémoire), et enfin appeler du code déchiffré.
Bien évidemment, le code de déchiffrement, qui ne peut pas lui même être chiffré, peut servir à établir une signature, de même que le code de lancement de la partie déchiffrée, ce d'autant plus que l'ensemble constitue un programme auto-modifiant, ce qui est particulièrement rare de nos jours sur les ordinateurs personnels (les seuls qui soient concernés par les virus), et donc a peu de risques d'être présent dans un logiciel normal (non-malveillant).
Métamorphisme
Pour pallier le problème de la fonction de décodage et de démarrage constante, les virus métamorphes utilisent une autre technique pour cacher leur code de chargement : ils réécrivent leur code-machine différemment à chaque génération soit en insérant des instructions inutiles (rembourrage), soit en utilisant différentes instructions ayant le même effet, soit en modifiant plus ou moins profondément leur structure interne par une séquence décompilation/re-compilation.
Historique
Le premier virus polymorphe connu, appelé 1260, a été écrit en 1990 par Mark Washburn.
Wikimedia Foundation. 2010.