Anti-virus
I-Introduction aux antivirus
Les antivirus sont des programmes capables de détecter la présence de virus sur un ordinateur, ainsi que de nettoyer celui-ci dans la mesure du possible si jamais un ou des virus sont trouvés.
Nettoyer signifie supprimer le virus du fichier sans l’endommager. Mais parfois, ce nettoyage simple n’est pas possible.
II-Les types d'anti-virus
On dénombre bien sûr deux types d’antivirus. Les scanners, exécutés à la demande (On-Demand Scanners), et les moniteurs, toujours actifs à l'arrière-plan (On-Access Scanners).
Nous ne nous attarderons pas sur les scanners à la demande, qui utilisent les méthodes pour chercher des virus dans tous les fichiers des supports accessibles (disques durs, CD-Roms, disquettes...).
Les moniteurs de comportement observent l'ordinateur en arrière-plan (en permanence, de manière transparente), pour détecter toute activité de type virale. Ils peuvent entre autres détecter les tentatives d'ouverture en écriture des fichiers exécutables, les tentatives d'écriture sur les secteurs d’amorçage, ou les tentatives d’un exécutable à devenir résident.
Pour détecter ces tentatives, les logiciels antivirus attrapent les principales interruptions de l'ordinateur, en les remplaçant par l'adresse de leur code. Ainsi, dès qu'un virus tente d'écrire sur le secteur d’amorçage ou sur le disque, c'est l'antivirus qui est d'abord appelé, et non le système directement. L'antivirus peut alors éliminer le virus, s’il le détecte. Un moniteur résident analyse ainsi toute l'activité du PC, que ce soit les fichiers entrants et sortants de l'ordinateur, le logiciel de messagerie électronique, les exécutables, et même souvent tous les fichiers accédés en lecture ou en écriture. Les moniteurs actuels sont également capables de parcourir les fichiers compressés auquel on accède, afin de vérifier qu’aucun des fichiers qu’ils contiennent ne promène de virus.
Un tel moniteur est extrêmement important, surtout pour les machines connectées à un réseau, et a fortiori à l’Internet. Bien sûr, les détracteurs de ce genre de logiciel arguent qu’ils ralentissent la machine, diminuent les performances. C’est une évidence, dans la mesure où ils analysent de nombreux événements du système. Néanmoins, sur des machines récentes, c’est beaucoup moins gênant pour l’utilisateur. Et c’est le prix à payer pour une tranquillité plus importante.
III-Signature virale
Comme nous l’avons vu, les virus infectant des applications, copient leur code dans ces programmes. Et les virus sont programmés pour ne pas infecter plusieurs fois le même fichier. Dès lors, ils intègrent dans l'application infectée une signature virale, c’est-à-dire une suite d’octets significative, qui leur permet de vérifier si tel ou tel programme est déjà infecté.
La méthode de base utilisée par les antivirus est donc de détecter cette signature propre à chaque virus. Évidemment, cette méthode n'est fiable que si l'antivirus possède une base virale à jour, contenant les signatures de tous les virus connus.
Néanmoins, ce mécanisme ne permet pas la détection des virus « inconnus », c’est- à-dire n'ayant pas encore été répertoriés par les éditeurs. En outre, n’oublions pas que les virus polymorphes, dont nous avons déjà parlé, sont capables de se camoufler, c’est-à-dire de rendre leur signature indétectable (en la cryptant et en la modifiant à chaque copie).
IV-Contrôleur d’intégrité des programmes
Puisque les virus modifient les programmes qu’ils infectent, certains antivirus utilisent un contrôleur d'intégrité pour vérifier si les fichiers de la machine ont été modifiés. Ainsi, une base de données est construite, qui contient des détails sur les fichiers exécutables du système, comme leur taille ou leur date de modification, et éventuellement un checksum. Dès lors, si une de ces caractéristiques change pour un exécutable, l'antivirus s’en aperçoit.
V-Analyse heuristique
L'analyse heuristique est relative à la recherche de code informatique correspondant à des fonctions de virus. C’est-à-dire qu’elle est vouée à découvrir des virus encore inconnus.
L'analyse heuristique est passive. Elle considère le code comme une simple donnée, et n'autorise jamais son exécution. Un analyseur heuristique recherche du code dont l'action pourrait s’avérer suspecte. En l’occurrence, il ne cherche pas des séquences fixes d'instructions spécifiques à un virus, mais un type d'instruction. Par exemple, des instructions visant la modification d’un fichier. Cette méthode se dirige vers une démarche « intelligente » de recherche de virus.
Cela dit, elle est loin d’être totalement efficace. Elle fonctionne bien pour les macro-virus, moins bien pour les autres. Les plus sensibles des antivirus heuristiques produisent nombre de fausses alertes, et les moins agressifs rateront à coup sûr de véritables virus.
VI-Analyse spectrale
L’analyse spectrale repose sur le postulat que tout code généré automatiquement contiendra des signes révélateurs du compilateur utilisé. De même, on part du principe qu’il est impossible de retrouver dans un vrai programme exécutable compilé certaines séquences de code. L’analyse spectrale vise donc elle aussi à repérer les virus polymorphes ou inconnus. Lorsqu'un virus polymorphe crypte son code, la séquence en résultant contient certaines associations d'instructions que l'on ne trouverait pas dans un vrai programme. C'est ce que l'analyse spectrale tente de détecter.
Par exemple, si dans un programme exécutable, l'antivirus trouve une instruction de lecture d'un octet au delà de la taille limite de la mémoire, on sera probablement en présence de code crypté, donc d'un virus polymorphe.
VII-Les antivirus sont-ils efficaces ?
Il est entendu qu’aucun antivirus ne détecte tous les virus. Lorsqu’un nouveau virus est détecté, et qu’une mise à jour est disponible, même en quelques heures, il faut la télécharger, sans quoi l’antivirus ne fonctionne pas. A part les quelques techniques de découverte des virus inconnus, qui, nous l’avons vu, ne sont pas totalement au point.
Mais, et c’est plus grave, une étude menée dans les laboratoires Hewlett-Packard en Grande-Bretagne conclue que les antivirus seraient en train de perdre la guerre contre les virus. En effet, selon eux, le principe même de fonctionnement des antivirus n'est pas efficace puisque les vers informatiques se propagent trop rapidement par rapport au temps requis pour l'application des mises à jour. Cela a été prouvé par les différents vers très connus, comme I Love You récemment.
La multiplication des machines connectées à l’Internet associée à un ver qui se transmet par le réseau occasionne une contamination massive et exponentielle en très peu de temps. Ainsi, le ver Slammer avait infecté 90% des machines vulnérables en quelques minutes. Moins de temps qu’il n’en faut pour qu’un éditeur crée la réponse. Dans une simulation par ordinateur, les chercheurs de HP ont démontrés que si les vers informatiques se propagent suffisamment rapidement, comme Blaster ou ILoveYou, les mises à jour nécessaires pour protéger les utilisateurs ne pourront pas être appliquées à temps. Les chercheurs n’ont pas de solution concrète au problème. Ils proposent de créer un système de détection de modules malicieux qui repérerait les virus possibles en étudiant leur comportement. Un peu dans l’idée des analyseurs heuristiques ou spectraux, en plus efficaces.
Annexes:
Principales sociétés éditant des logiciels antivirus
Aladdin Knowledge Systems
Alwil Software
Arcavir
AVG Technologies
Avira
AxBx
BitDefender
Computer Associates
Doctor Web, Ltd.
Eset
Frisk Software International
F-Secure Corporation
G Data
GeCAD
Hauri Inc.
Intego
Kaspersky Lab
Lavasoft
McAfee, Inc.
MicroWorld Technologies
MKS Sp z o.o.
MSCWAY inc (ex netsms)
Norman (société)
Panda Security
PC Tools
SoftWin
Sophos
Steganos
Stiller Research
Symantec Corporation
TrustPort
Trend Micro Incorporated
VirusBlokAda (VBA32)
Sources: Wikipedia, livre "Virus. Définitions, mécanismes et antidotes." (2004)
Commentaire