lundi 27 août 2012

Programmations des types fondamentaux de virus


1.1.         Préliminaires

Les programmeurs de virus utilisent énormément d’astuces ou de failles des systèmes informatiques qui sont très spécifiques, c’est pourquoi les algorithmes qui vont vous être présentés dans cette partie sont des cas possibles parmi beaucoup d’autre, dont on ne peut dresser ici une liste exhaustive. L’inventivité des programmeurs de virus est en effet stupéfiante. D’autre part, pour ne pas rentrer dans des détails de programmation qui seront ultérieurement étudiés en partie 2, les algorithmes fournis seront simplifiés à l’extrême.

2.2.         Les virus infecteurs de fichier

Tout virus infecteur de fichier exécute en premier une routine de recherche d’un fichier hôte sain à contaminer. Prenons le cas d’un virus cherchant un fichier .HOT dans une arborescence de répertoires DIR. L’organigramme d’une telle routine pourrait être le suivant :





Il existe plusieurs façons d’installer un virus infecteur dans un fichier hôte (partie infection ci-dessus). Nous en distinguerons 3 :
·        Par recouvrement du programme hôte par le code du virus. Le programme hôte est alors perdu. Notons qu’un tel virus est très facile à réaliser mais aisément identifiable.

·        En  renommant le programme hôte avec un nom excentrique, et en prenant le nom original de l’hôte (virus compagnon).

·        Ou en se copiant à l’intérieur du programme hôte, ce qui impose d’en modifier la structure.

La dernière stratégie est la plus employée car c’est la plus discrète. Etudions la en détail. Sois un programme .HOT à infecter. Sa structure en mémoire est typiquement :




Figure 3.2 : Fichier infecté par un virus parasite


Un dernier type de virus infecteur de fichier est le virus résidant. Celui-ci ne se reproduit pas lorsque le programme hôte est exécute, mais se recopie dans un zone mémoire où il reste en veille en détournant par exemple des interruptions systèmes (cas du PC). Il ne se reproduira que lorsque l’interruption sera appelée. Il est ainsi dissocié de son programme hôte, ce qui réduit les risques de se faire repérer.


2.2.         Les virus systèmes

Chaque système informatique (PC, station Sun, HP48…) possède son propre mode de démarrage, auquel le virus système est intimement lié. Nous allons donc  nous restreindre au cas des PC pour comprendre comment marche un virus système.
Lors de sa mise sous tension, la CPU (unité centrale) du PC commence par exécuter un programme écrit en ROM, le BIOS, chargé de configurer la machine autour de la CPU. En fin d’exécution, le BIOS recherche une zone mémoire, appelée secteur de démarrage, et charge la CPU de l’exécuter. Ce secteur de démarrage contient un programme construit par le système d’exploitation pour permettre à la CPU de le lancer. Le virus système est installé de façon à être exécuté avec ce programme. Pour cela, il le remplace en général sur le secteur de démarrage, après en avoir fait une copie qui sera exécuté après le virus.
Pour se reproduire, le virus système a 2 possibilités : soit il cherche un autre disque pour en infecter le secteur de démarrage (Tout disque, ou disquette, en contiens effectivement un). Soit, il infecte un fichier utilisateur, depuis lequel il infectera ultérieurement un autre disque, ou encore il se fait résidant. Dans ce dernier cas, le virus est dit hybride.
Un virus système rudimentaire pourrait fonctionner comme suit (Figures 4.1 et 4.2) :









Aucun commentaire:

Enregistrer un commentaire