Vous êtes sur la page 1sur 4

Virus et Antivirus

COMMENT FONCTIONNE UN VIRUS ?

Un virus est un programme informatique conçu pour modifier à votre insu le fonctionnement de votre ordinateur. Concrètement, un virus est un segment de codes exécutables qui s’implante sur un fichier cible de votre PC. Sa première fonction est de se répandre de façon systématique d’un fichier à un autre (phase "d’auto- duplication et de propagation"). La seconde est d’activer les symptômes ou les dommages prévus par le concepteur du virus : ses commandes ont généralement pour conséquence de ralentir ou d’empêcher l’exécution de certains fichiers, voire de les détruire (phase "d'activation"). Les virus sont donc une menace réelle ils représentent aujourd'hui le danger informatique à éviter en priorité pour les entreprises et même les particuliers car les nombreuses conséquences et désastres occasionnés lors de l’attaque de virus sont importants et génèrent une perte de productivité et un coût de remise en marche conséquents.

LES TYPES DE VIRUS

Les virus de secteur d'amorçage Les virus de secteur d'amorçage se tapissent dans le premier secteur d'un disque physique. A cause de la structure inhérente au DOS, le virus se trouve chargé en mémoire avant les fichiers système. Le virus peut alors contrôler l'ensemble des interruptions DOS et se ménager des opportunités inouïes de reproduction et de destruction. Les virus de secteur d'amorçage modifient soit le contenu du secteur d'amorçage du disque lui-même ou celui du secteur d'amorçage du DOS en modifiant leur contenu par les informations qu'il désire. Le contenu original du secteur est déplacé vers une autre zone du disque et le virus s'octroie cet emplacement. Le virus redirige certaines opérations vers l'emplacement où il a inscrit les données du secteur original : le virus est par conséquent exécuté en premier, ce qui lui donne toute latitude pour se loger en mémoire avant que la séquence d'amorçage ne se poursuive. Les virus de secteur d'amorçage se chargent généralement en mémoire et y demeurent jusqu'à ce que l'ordinateur soit mis hors tension.

Les virus à infection de fichiers (Parasites) Les virus à infection de fichiers se logent généralement au sein des fichiers de type .COM, .EXE ou .SYS et sont par conséquent exécutés à chaque fois qu'un fichier infecté est lancé. Ils ne sont habituellement actifs qu'au moment du premier chargement du premier fichier infecté et ne posent guère de problèmes aux programmes antivirus standards. Les virus à infection de fichiers se greffent à un fichier afin de pouvoir être exécutés. Les virus parasitaires n'ont pas la possibilité de s'exécuter ou de se reproduire d'eux-mêmes. Ils doivent modifier le contenu d'un fichier exécutable (.EXE, .COM) afin de pouvoir exercer un contrôle sur son mode d'opération. L'ordre des opérations habituellement exécutées est modifié de manière à ce que celles dictées par le virus soient toujours exécutées en priorité. Le processus d'infection est la plupart du temps invisible par l'utilisateur, car une fois le virus exécuté, le programme lancé continue à fonctionner normalement. Certains virus se greffent à la fin d'un fichier programme, d'autres au début et d'autres au début et à la fin.

Les virus non-résidents mémoire Les virus qui ne résident pas en mémoire se greffent à des fichiers .COM, .EXE ou .SYS et sont exécutés à chaque fois que le fichier infecté est lancé. Le code du virus est entièrement activé dès la première étape du lancement d'un programme infecté. D'autres programmes se trouvent alors infectés et servent à leur tour de vecteurs d'infection lorsqu'ils se trouvent exécutés. Les taux d'infection par ce genre de virus sont aussi élevés que ceux des virus résidents parce que leur taille est petite et parce qu'ils ne modifient pas les tables d'interruptions et ne se placent pas en mémoire. La méthode d'infection est, de plus, hautement imprévisible.

Les virus résidents mémoire Les virus résidents mémoire se logent dans la mémoire vive et viennent parasiter le fonctionnement de diverses fonctions de bas niveau (interruptions). Depuis leur localisation dans la RAM, ces virus peuvent causer des dommages importants tout en restant à l'abri de certains programmes antivirus. La première fois qu'un virus résident mémoire est exécuté, il vérifie s'il n'est pas déjà chargé en mémoire.

Si tel n'est pas le cas, il va se loger dans la mémoire conventionnelle ou la mémoire haute. A partir de ce moment, le virus va infecter systématiquement tous les programmes exécutés qui ne le sont pas déjà. Ce mode d'infection est à la fois rapide et efficace et engendre une diffusion du virus inégalée.

Le seul moyen pour déloger les virus de la mémoire est de couper toute source d'alimentation de l'ordinateur infecté. Un redémarrage soft n'est pas suffisant, car certains virus savent résister à ce genre d'opérations.

Les virus multiformes Les virus multiformes possèdent les caractéristiques des virus de secteur d'amorçage et des virus parasitaires. Ils peuvent infecter les fichiers .COM et .EXE ainsi que le secteur d'amorçage de disquettes et de disques durs. Démarrer un ordinateur à partir d'une disquette infectée par un virus multiformes va avoir pour effet de placer le virus en mémoire vive et d'infecter le secteur d'amorçage du disque dur de l'ordinateur. En utilisant conjointement ces deux méthodes d'infection, le virus va facilement et rapidement infecter l'ensemble des périphériques d'un PC. Peu de virus de cette sorte existent, mais ils sont responsables d'une grande part des infections virales recensées.

Les virus furtifs Les virus furtifs, autrement nommés " intercepteurs d'interruptions ", prennent le contrôle des interruptions principales du DOS pour faire croire au DOS et à un grand nombre de programmes antivirus que l'ensemble des fichiers sont sains. Cette prise de contrôle de la table d'interruptions s'effectue au tout début de la zone mémoire. Lorsqu'une application émet une requête d'interruption, celle-ci est habituellement redirigée vers la table d'interruptions qui oriente les commandes et permet au programme de fonctionner normalement. Dans le cas où un virus furtif intercepte ces requêtes, il a alors la possibilité de les rediriger où bon lui semble et par conséquent d'effectuer toutes les opérations à sa guise. Cette capacité qu'ont les virus furtifs de contrôler la table d'interruptions leur permet de se cacher de manière extrêmement efficace. Leur détection est très difficile.

Les virus polymorphes (Mutants) Les virus polymorphes cryptent ou modifient le code qui les compose à chaque fois qu'ils se reproduisent : aucune copie d'un de ces virus ne ressemble aux autres. La plupart des systèmes de détection de virus sont mis en échec par ce genre de virus, car ils se réfèrent à une base de signatures de virus connus. Les virus polymorphes ont vu leur popularité augmenter suite au développement d'un " moteur de mutation ". Le Moteur de Mutation a été mis au point par une personne ou un groupe se faisant appeler " Dark Avenger " (le vengeur noir). Il a été diffusé sur plusieurs serveurs BBS et son code de programmation a été rendu public. Il est livré avec un jeu complet d'instructions permettant de transformer n'importe quel virus normal en virus polymorphe.

Les virus réseau Les virus réseau prennent pour cible les systèmes d'exploitation pour réseaux (en général NetWare) et utilisent ensuite le réseau pour se répandre. Ils prennent le contrôle des interruptions de NetWare pour modifier l'effet des diverses requêtes d'interruptions.

Les virus flibustiers (bounty hunters) Les virus flibustiers prennent pour cible des programmes antivirus spécifiques et les mettent en échec. Ce type de virus est extrêmement rare mais est parfois très efficace contre certains programmes antivirus.

LES PRINCIPALES TECHNIQUES DE RECHERCHE DE VIRUS PAR LES ANTIVIRUS

Recherche de la signature (scanning) C'est la méthode la plus ancienne et la plus utilisée, Son avantage est qu'elle permet de détecter les virus avant leur exécution en mémoire. Son principe est de rechercher sur le disque dur toute chaîne de caractères identifiés comme appartenant à un virus. Cependant comme chaque virus a sa propre signature, il faut, pour le détecter avec un scanneur que le concepteur de l'antivirus ait déjà été confronté au virus en question et l'ait intégré à une base de données. Un scanneur n'est donc pas en mesure de détecter les nouveaux virus ou les virus polymorphes (car ceci changent de signature à chaque réplication.) Cette méthode est à la fois la plus simple à programmer mais aussi la plus longue à mettre en œuvre car elle n'est utile que si elle recense tous les virus existants. Cela représente une somme de travail considérable et est quasiment impossible à réaliser. C'est pour cela que les concepteurs d'antivirus proposent des mises à jour de la base de données tous les mois sur leur site WEB, c'est le seul moyen pour le scanneur de détecter les nouveaux virus.

Utilisation d'un contrôleur d'intégrité des fichiers Schématiquement, un contrôleur d'intégrité va construire un fichier contenant les noms de tous les fichiers présents sur le disque dur auxquels sont associées quelques caractéristiques. Ces dernières peuvent prendre en compte la taille, la date et l'heure de la dernière modification ou encore un checksum (somme de contrôle). Un CRC (code de redondance cyclique), ou un algorithme de checksum avec un système de chiffrement propriétaire pourra détecter toute modification ou altération des fichiers en recalculant le checksum à chaque démarrage de l'ordinateur (si l'antivirus n'est pas résident), ou dès qu'un fichier exécutable est ouvert par un programme (si l'antivirus est résident) ; en effet si le checksum d'un programme avant et après son exécution est différent, c'est qu'un virus a modifié le fichier en question, l'utilisateur en est donc informé. D'autre part l'antivirus peut aussi stocker la date et la taille de chaque fichier exécutable dans une base de données, et tester les modifications éventuelles au cours du temps. Il est en effet rare de modifier la taille ou la date d'un fichier exécutable. La parade pour les virus est de sauvegarder la date du fichier avant la modification et de la rétablir après.

Moniteur de comportement Les moniteurs de comportement ont pour rôle d'observer l'ordinateur à la recherche de toute activité de type virale, et dans ce cas de prévenir l'utilisateur. Typiquement, un moniteur de comportement est un programme résident que l'utilisateur charge à partir du fichier AUTOEXEC.BAT et qui reste actif en arrière-plan, surveillant tout comportement inhabituel. Les différentes manifestations d'un virus pouvant être détectées sont :

Les tentatives d'ouverture en lecture/écriture des fichiers exécutables. Les tentatives d'écriture sur les secteurs de partitions et de démarrage. Les tentatives pour devenir résident. Pour repérer ces tentatives les antivirus détournent les principales interruptions de l'ordinateur et le remplaçant par l'adresse de leur code. Les interruptions détournées son l’Int 13H (disque dur), l’Int 21H (DOS). Ainsi dès qu'un virus tente d'écrire sur le secteur de Boot, c'est l'antivirus qui est d'abord appelé, et qui peut ainsi prévenir l'utilisateur qu'un virus tente de modifier le secteur de Boot. L'antivirus peut alors éliminer le virus de la mémoire, enregistrer une partie de son code dans la base de données et lancer un scanning pour repérer la(les) souche(s) sur le disque disque dur et les détruire.

Démarche heuristique Fondamentalement, l'analyse heuristique concerne la recherche de codes correspondant à des fonctions virales. Elle est différente dans son principe d'un moniteur de comportement qui surveille des programmes ayant une action de type virale. L'analyse heuristique est comme le scanning, passive. Elle considère le code comme une simple donnée, et n'autorise jamais son exécution. Un analyseur heuristique va donc rechercher du code dont l'action est suspecte s'il vient à être exécuté. L'analyse heuristique permet par exemple, pour les virus Polymorphes de chercher une routine de déchiffrement. En effet une routine de déchiffrement consiste à parcourir le code pour ensuite le modifier. Ainsi lors de l'analyse heuristique, l'antivirus essaie de rechercher non pas des séquences fixes d'instructions spécifiques au virus mais un type d'instructions présent sous quelque forme que ce soit. Pour en revenir à notre exemple de virus polymorphes, l'antivirus cherche une suite d'instructions de lecture suivie d'une suite d'instructions d'écriture.

Cette méthode est donc un peu plus intelligente que les autres : car elle vise à analyser les fonctions et instructions les plus souvent présentes et que l'on retrouve dans la majorité des virus. Cette méthode permet ainsi, contrairement au scanning, de détecter des nouveaux virus dont la signature n'a pas été ajoutée à la base de données.

Analyse spectrale Tout code généré automatiquement est supposé contenir des signes révélateurs du compilateur utilisé. De même, au contraire, Il est impossible de retrouver dans un vrai programme exécutable compilé certaines séquences de code. C'est grâce à ce principe qu'entre en jeu l'analyse spectrale. Cette analyse vise à repérer les virus polymorphes qui sont indétectables autrement (leur signature changeant à chaque réplication). En effet, lorsqu'un virus polymorphe crypte son code, la séquence en résultant contient certaines associations d'instructions que l'on ne trouve pas en temps normal ; c'est ce que détecte l'analyse spectrale. 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.