Passer au contenu

Moteurs d’antivirus : la méthode absolue n’existe pas

Les éditeurs d’antivirus hésitent entre des moteurs tantôt déterministes, tantôt heuristiques, et en cumulent souvent deux ou trois.

Les premiers virus sont apparus voilà déjà quinze ans. Pourtant, les éditeurs n’ont pas encore trouvé la parade absolue. Pour détecter les intrus, ils hésitent toujours entre plusieurs familles de procédés, certains en cumulant deux ou trois, sans jamais parvenir au risque zéro. La faute aux auteurs de virus, dont l’intelligence serait hors norme et l’imagination débordante ? Même pas, puisqu’on ne compte toujours que quatre grandes catégories de virus : les virus de ” boot “, les exécutables, les macrovirus et les vers (qui n’ont pas besoin de fichier hôte). Les virus polymorphiques ou métamorphiques ne relèvent que de l’enrobage, tandis que les générateurs ne produisent finalement que des virus classiques.

Des milliers de variantes d’un même virus

En réalité, c’est la quantité gigantesque et le rythme d’apparition qui pose problème. Dès lors, les éditeurs sont tiraillés entre deux types de démarches. Les unes identifient à coup sûr des virus connus, mais restent inefficaces sur les nouveaux. Les autres se passent de mises à jour (du moins très fréquentes) et peuvent détecter les virus inconnus, mais elles ne sont jamais infaillibles, même en présence de codes répertoriés.Historiquement, la première méthode – encore largement utilisée, mais en perte de vitesse – consiste à scanner les fichiers afin de détecter les chaînes de caractères spécifiques aux virus connus – on parle de signatures. Elle reste, en principe, efficace tant que le fichier de signatures de l’antivirus est à jour. Mais elle se révèle très lourde, surtout lorsqu’elle est confrontée à des codes parvenant à se maquiller. C’est le cas des virus polymorphiques, qui procèdent à leur propre chiffrement et déchiffrement, prenant ainsi des milliers de formes possibles – donc autant de signatures qu’il faudrait reconnaître. Les générateurs de virus, qui produisent automatiquement des milliers de variantes d’un même virus, parviennent au même résultat. Quant aux virus métamorphiques, ils décompilent le code du fichier qu’ils infectent, s’y insèrent, puis le recompilent en régénérant un en-tête et un point d’entrée de l’exécution valides. “Le fichier corrompu fonctionne donc toujours, tandis que la recherche d’une signature, souvent limitée au début et à la fin du fichier, devient plus aléatoire “, explique Damase Tricart, chef de produits chez Symantec. La recherche de signatures doit alors s’appuyer sur des mécanismes plus génériques. Pour traiter les générateurs de virus, les laboratoires de certains éditeurs cherchent des séquences de caractères communes à de vastes ensembles de variantes de virus.

Méthode déterministe contre heuristique

Pour les virus polymorphiques, une autre solution consiste à intercepter et à reconnaître la séquence d’instructions qui provoque leur décodage. Ces deux procédés permettent d’extraire des informations, que l’on considérera comme des signatures génériques. Censées fonctionner à coup sûr sur les virus connus et leurs variantes, elles restent donc déterministes. Mais elles ne fonctionnent plus sur les virus inconnus ou sur ceux qui n’ont pas été répertoriés ou l’ont mal été.Pour détecter ces nouveaux parasites, il faut s’intéresser non pas à leur signature, mais à leur comportement. On entre dans le domaine de l’heuristique, parfois parée des habits de l’intelligence artificielle et des systèmes experts. Il s’agit en fait d’analyser les instructions, commandes et autres appels systèmes du code du fichier potentiellement dangereux, voire de l’exécuter dans un espace protégé – sorte de machine virtuelle – afin d’en comprendre les intentions. On notera, par exemple, que le code cherche à se répliquer ou à modifier un fichier système. Ce terme de méthode heuristique est, en fait, très général. En effet, entre les exécutables 16 bits et 32 bits, les macrovirus Word ou Excel, le code Java ou les VBS, de nombreux moteurs différents sont nécessaires.

Créer un profil pour chaque fichier sain

Les moteurs heuristiques sont imparfaits à double titre. Certains virus passent au travers des mailles et de fausses alertes peuvent être provoquées. Quelques éditeurs offrent donc la possibilité de définir un niveau de sensibilité optimal – en réalité, il s’agit de chercher à tâtons un point d’équilibre. Une autre stratégie de défense permet, en principe, d’éviter les fausses alertes. Elle prend le problème par l’autre bout en s’intéressant à la cible potentielle des virus. Il s’agit alors de créer et de stocker un profil pour chaque fichier non infecté ou considéré comme tel lors de l’installation de l’antivirus ou d’une nouvelle application, ou lors de la création d’une macrocommande. Un travail réalisé d’avance par l’éditeur dans le cas des fichiers systèmes ou applications connus. On constitue ainsi une base qui référence la taille des fichiers, la longueur de leurs en-têtes, ou encore le résultat d’une somme de contrôle (” checksum “). Que l’un de ces paramètres vienne à changer et la suspicion naîtra. Cette méthode est, en principe, déterministe sur les fichiers répertoriés. Mais que se passe-t-il avec les nouveaux, qui arrivent par la messagerie ou le web ? Certains produits leur réservent d’autres méthodes – recherche de la signature d’un virus ou analyse comportementale. Tegam y ajoute la notion de code certifié, ce qui transforme les fausses alertes en actions d’administration. Ainsi, les fichiers non certifiés sont soumis à l’autorisation de l’administrateur.

Des mises à jour plus ou moins fréquentes

Tegam affirme ainsi pouvoir se passer de toute mise à jour régulière. “Bien sûr, nous sortons de nouvelles versions de notre produit, explique Eyal Dotan, directeur R&D chez Tegam. Ce sera, par exemple, le cas lorsque nous offrirons une protection contre les futurs virus à 64 bits.
Mais nous préférons éviter de parler de mise à jour, notion que l’on confond vite avec l’actualisation des bases de signatures des autres produits.”Ce discours s’oppose à celui de tous les autres éditeurs, souvent accusés de chercher avant tout à vendre des services de mise à jour. Les moteurs recherchant des signatures ne peuvent, évidemment, se passer de tels services.Certains moteurs heuristiques requièrent également ce que l’on peut considérer comme des bases de comportements. Et finalement, on parvient aux mêmes volumes de mises à jour et à des fréquences comparables. Symantec met ainsi en ligne de 100 à 300 Ko de signatures par semaine. Tandis que Trend Micro, qui se limite à l’analyse comportementale, impose environ 200 Ko de mise à jour hebdomadaire. D’autres moteurs heuristiques, tel Bloodhound de Symantec, sont toutefois génériques. Ils se contentent, en effet, de deux ou trois mises à jour par an afin de reconnaître les nouveaux types de virus.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


Thierry Lévy-Abégnoli