|
Pourquoi
un Antivirus ?
Pour Sécuriser les ordinateurs et préserver l'intégrité des données
d'un ordinateur, qui peuvent être d'une importance énorme (par exemple,
la base de données d'une banque ne doit sous aucun prétexte être modifiée
par un virus...)
Aspects techniques des Antivirus
Les Antivirus rivalisent souvent d'ingéniosité pour combattre les virus.
Cependant ces derniers trouvent souvent la parade. Nous allons parler ici
des différentes techniques utilisées par les Antivirus pour combattre
leur raison de vivre.
Principales
techniques de recherche virus
Nous présenterons quatre techniques majoritairement utilisées par les
Antivirus pour localiser les virus. Il s'agit du scanning, du moniteur de
comportement, du contrôleur d'intégrité et de la recherche heuristique.
Brièvement présenté, le scanneur recherche dans tous les fichiers ou en
RAM un code spécifique qui est censé indiquer la présence d'un virus.
Le moniteur de comportement surveille les actions habituellement menées
par les virus, les contrôleurs d'intégrité signalent les changements
intervenus dans les fichiers et enfin la recherche heuristique recherche
des instructions généralement utilisées par les virus.
Recherche
de la signature
On nomme ça aussi 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 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 existant. Cela représente une somme de travail considérable
et est quasiment impossible à réaliser. C'est pour ça que les
concepteurs Antivirus proposent des mises à jour de la base de donnée
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é
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 Antivirus n'est pas résident), ou dès qu'un fichier exécutable
est ouvert par un programme (si 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 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. Que va faire le zouave ? Description d’attaque virale. 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.
Démarche
heuristique
Fondamentalement, l'analyse heuristique concerne la recherche de code
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 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 la modifier. Ainsi lors de l'analyse heuristique, Antivirus essaie
de rechercher non pas des séquences fixes d'instructions spécifiques au
virus mais un type d'instruction présent sous quelque forme que ce soit.
Pour en revenir à notre exemple de virus polymorphes, Antivirus cherche
une suite d'instructions de lecture suivie d'une suite d'instruction 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étéctables 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 va détecter l'analyse spectrale. Par exemple,
si dans un programme exécutable, 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.
Techniques d'éradication de virus
Une fois un virus détecté, que ce soit en mémoire ou sur le disque dur,
il reste à le supprimer. Une fonction primordiale des Antivirus est donc
la suppression des virus. Leur but est de débarrasser l'utilisateur de ce
programme malveillant. Mais il n'est pas si simple que l'on croit de les
éradiquer et de récupérer le programme original. En effet cela est
impossible dans le cas de virus avec recouvrement : ils détruisent une
partie du programme sain lors de sa duplication. La seule solution est la
destruction des fichiers infectés ou carrément le formatage du disque
dur. Pour les autres, même si ce n'est pas irréalisable, la tache est
cependant très ardue : il faut savoir très précisément où est localisé,
dans le fichier, le virus en question sachant qu'il peut être composé de
plusieurs parties, ensuite il faut le supprimer, et enfin aller chercher
la partie du programme dont le virus avait pris la place et la restaurer.
Toutes ces manipulations nécessitent une connaissance parfaite du virus
et de son mode d'action. Cette éradication se faisant par une recherche
(du virus, de la partie déplacée), toutes les caractéristiques des différents
virus doivent être répertoriées dans une base de donnée mise à jour
pratiquement quotidiennement.
Source: Dataz magazine |