Suivez-nous

Divers

Le point sur les virus (2/4)

Calmusac

Publié le

 

Par

Infection de fichier

<<--Page 1

Des virus pour tous les goûts

Le groupe des virus de fichier recense les virus qui utilisent le système (un ou plusieurs de ses fichiers) pour se propager. Sous Windows par exemple, il est possible d’insérer des virus dans n’importe quel fichier exécutable (.bat, .sys, .exe et .com). Cela arrive également sur Macintosh Classic et Unix, et donc sur OS X. Les virus peuvent également infecter des bibliothèques, des applications, des codes sources, des modules objet… ils peuvent également se sauvegarder eux-mêmes sous forme de fichiers de données (quans ils sont mal écrits ou lorsqu’ils sont en action notamment). On classe ces virus selon leur méthode d’infection des fichiers : effaçant, parasites, compagnon, liens, vers et code source.

Les virus effaçants
Cette méthode est la plus traditionnelle : le fichier efface purement et simplement le contenu du fichier cible et le remplace par son propre code, rendant les fichiers infectés irrécupérables. On les repère en général assez vite, puisque le système et la plupart des applications cessent de fonctionner correctement dans un laps de temps relativement court. Certaines variétés se nichent plus “simplement” en en-tête de fichier, permettant à celui-ci d’être utilisé presque normalement, bien qu’ayant une en-tête endommagée.

Les virus parasites
On désigne ainsi les virus qui doivent modifier le contenu du fichier cible pour l’infecter tout en transférant des copies d’eux-mêmes, mais laissent les fichiers totalement ou partiellement utilisables. La plupart d’entre eux s’enregistrent dans le haut du fichier, certains, moins nombreux, à sa fin, d’autres encore, plus rares, en plein milieu. Le but étant toujours d’être le moins repérable possible. La méthode d’insertion varie également du déplacement d’un fragment du fichier vers sa fin, à la copie de son propre code dans les parties réputées inutilisées du fichier (les «cavités »).

Incorporation du haut du fichier
Il existe deux méthodes pour ce faire. La première consiste à copier le haut fichier cible à sa fin, et son corps dans l’espace libérée du haut. Dans la seconde méthode, le virus crée sa copie en RAM, s’ajoute au fichier cible, et sauve le tout, concaténé, sur le disque. En plus de cela, certains virus ajoute un bloc d’informations additionnelles à la fin du fichier[[Les virus de type « Jérusalem » font ainsi.]].

Infection de fichier

Infection de fichier

Infection de fichier

Infection de fichier

Si l’apanage des infections de haut de fichiers revient évidemment aux BAT du DOS de Windows, on en trouve cependant un nombre non négligeable sur les fichiers éxécutables de systèmes Linux. Dans ce cas, pour que le fichier cible reste utilisable les virus ont deux manières de procéder : nettoyer le fichier infecté le temps de son utilisation par le système, puis s’y introduire à nouveau, ou bien replacer le code original dans la RAM et allouer les adresses nécessaires dans le corps du programme (ce qui, somme toute, est le travail d’un système d’exploitation).

Incorporation en fin de fichier
La méthode la plus répandue pour ce type d’infection consiste simplement à ajouter le virus à la fin du fichier cible. Le virus doit alors modifier le haut du fichier de telle façon que le code du virus soit exécuté en premier. On pourrait croire que cette manière de procéder est spécifique à Windows tellement on trouve peu de virus procédant ainsi sur d’autres systèmes (hormis quelques spécimens sur OS/2).

Incorporation en milieu de fichier
Il existe plusieurs manières de procéder. La plus basique consiste en un déplacement d’un fragment du fichier à sa fin, suivi de l’écriture du code vérolé dans l’espace libéré. Cette méthode ressemble fortement à l’une des précédentes. Certains virus, les « mutants », compressent le fragment transféré de manière à conserver la taille du fichier cible inchangée.
Une autre méthode utilise les « cavités » : le virus s’enregistre dans des endroits inutilisés du fichier. Ce virus peut être copé dans les parties inutilisées de la table d’allocation d’adresses (typiquement dans un BootExe) ou dans l’en-tête d’un exécutable, dans la pile d’un COM ou dans une chaîne de caractères d’un compileur.

Virus sans point d’entrée
Il s’agit d’un groupe particulier, que les anglais ont nommé EPO (pour Entry Point Obscuring). Ces virus enregistrent l’instruction de passer leur propre code quelque part au milieu du fichier cible et d’ensuite prendre le contrôle, non pas immédiatement avant d’interpréter le code du fichier vérolé, mais après un appel à une routine contenant le code d’insertion du corps du virus. Comme cette routine peut n’être appelée que très rarement, le virus peut « dormir » pendant un temps très long dans un fichier [[On peut compter en années.]] et n’est libéré que sous certaines conditions bien précises.

Avant d’écrire la commande d’insertion dans le milieu du fichier cible, le virus doit trouver l’adresse « correcte », sans cell-ci le fichier infecté serait endommagé (ce qui paradoxalement, à ce stade, n’est pas le but). Certains virus recherchent une en-tête de routine standard écrite en C/Pascal et la remplacent par leur code, d’autres désossent les séquences de code exécutable après les avoir placés en RAM et sélectionnent ensuite la commande d’insertion adaptée. Une troisième manière consiste à intercepter et contrôler des interruptions, pour placer le code vérolé au lieu de l’appel à la routine d’interruption.

Les virus compagnons
Ces virus ne modifient pas le fichier qu’ils infectent. Ils se divisent en trois grands groupes. Le premier dispose d’un algoritme qui crée un clone du fichier cible afin que lorsque ce dernier est lancé, ce soit son clone (donc, le virus) qui prenne le contrôle.
Un second groupe comprend les virus qui renomment le fichier cible, mémorisent le nouveau nom en vue d’une utilisation ultérieure, et écrivent leur propre code sur le disque sous le nom de l’exécutable. Cette méthode présente l’avantage de fonctionner sur l’immense majorité des plate-formes informatiques.
Le troisième groupe enfin rassemble les “path companions”, et est spécifique au DOS, nous le mentionnons donc à titre d’information. Soit ils enregistrentre leur code sous le nom du fichier cible mais dans un répertoire « au-dessus » de l’hôte exécutable, soit ils déplacent la cible dans un sous-répertoire, le but de la manipulation étant d’être trouvés, et donc exécutés, par le DOS avant le fichier hôte.

Les vers
Cette famille de virus tend à avoir sa propre classification, tant elle a rencontré de succès ces dernières années. D’une certaine façon, un vers est un virus-compagnon modifié, à la différence qu’ils ne lie pas sa présence à celle d’un hôte exécutable. Sa multiplication est le résultat d’une simple opération de copie sur un disque ou dans un répertoire, avec l’espoir de voir cette copie immédiatement lancée par l’utilisateur[[L’astuce la plus triviale pour ce faire consiste à donner un nom « évocateur » au vers, comme installeMoi.exe par exemple.]].

Certains vers utilisent des techniques moins basiques, mais dans l’ensemble le principe reste le même. Il convient de différencier par ailleurs les vers de fichiers des vers de réseau. Les premiers utilisent les fonctions du système d’exploitation, les seconds se multiplient à l’aide des protocoles de réseau.

Les virus-liens
A l’instar des compagnons, ces virus ne modifient pas le contenu de leur cible, mais obligent plutôt le système d’exploitation à exécuter leur code à la place du code sain, en modifiant les champs nécessaires du système de fichiers. Les seuls virus de ce type connus à ce jour, les « Dir_II », infectent le système en enregistrant leur corps sur le dernier cluster du disque logique. L’infection ne modifie donc que le numéro du premier cluster du fichier où réside le secteur du répertoire correspondant. Ce nouveau point de départ du fichier pointe sur le cluster contenant en fait le fichier vérolé, ainsi les tailles des fichiers et le contenu des clusters utilisés par le virus sont-ils inchangés, et il n’y a qu’une seule occurence du virus pour l’ensemble des fichiers infectés sur un disque logique.

Virus-lien

Virus-lien

Les virus code-source
Les virus qui s’attaquent aux compileurs de bibliothèques, modules objet et codes source sont encore suffisamment exotiques pour n’être pas énormément répandus. On en recensait une dizaine l’an dernier. Les fichiers infectés ne sont tout bonnement plus exécutables et ne peuvent pas conséquent plus répandre le virus après avoir été infectés. Cependant l’infection de code source est la suite logique du principe de multiplication. Le virus ajoute son code source à celui du fichier exécutable original ou son propre dump en héxadécimal (l’opération est plus facile à réaliser ainsi) ; dans ce cas le fichier infecté est à même de propager son virus uniquement après compilation et linking.

Page suivante (3/4)