| 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ée
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 oeuvre 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és 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 les 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. |