Définition des virus
Les virus informatiques

Michel Dubois
myshell.dubois@neuf.fr
http://vaccin.sourceforge.net


1  Les virus informatiques

Nous venons de détailler la définition, la structure, le cycle de reproduction et les modes d'infection des virus biologiques. Nous allons maintenant appliquer la même démarche aux virus informatiques. Cette approche a pour objectif de mettre en évidence les ressemblances entre ces deux types de virus et de constater à quel point l'appellation de virus pour désigner les programmes autoreproducteurs est justifiée.

L'usage du terme de virus informatique, utilisé pour la première fois par Fred Cohen en 1983, s'est généralisé au début des années 1990. Aujourd'hui, la notion de virus informatique est mélangée, dans l'esprit du grand public, avec la notion d'infection informatique. En réalité, les virus informatiques appartiennent au vaste domaine des risques informatiques. Si nous parcourons l'arborescence des risques informatiques, nous constatons que les virus et vers informatiques appartiennent à la catégorie des programmes autoreproducteurs qui découle elle-même de la catégorie des infections informatiques, des attaques logiques et enfin de la malveillance.

1.1  Définition

C'est dans le cadre de sa thèse d'état, en 1986, que Fred Cohen s'est attaché à définir la notion de virus informatique. Il y donne deux définitions du virus informatique, la première que nous qualifierons de générale et la deuxième, plus précise s'appuie sur des fondements mathématiques, nous la qualifierons de formelle.

1.1.1  Définition générale

La définition générale d'un virus décrite par Fred Cohen est la suivante [1, page 38]:

Définition 1   Un virus est une séquence de symboles qui, interprétée dans un environnement donné (adéquat), modifie d'autres séquences de symboles dans cet environnement, de manière à y inclure une copie de lui-même, cette copie ayant éventuellement évoluée.


De cette définition se dégagent quatre critères permettant de distinguer un virus informatique d'un autre programme:
  1. Un virus est spécifique à un environnement donné;
  2. Un virus a pour seule fonction de se multiplier;
  3. Un virus seul est inerte;
  4. La multiplication du virus ne peut se faire que dans l'environnement hôte pour lequel il est définit;
Un virus informatique utilise donc l'environnement hôte pour lequel il est définit, par exemple un ordinateur, un réseau, un système d'exploitation ou encore une application spécifique, pour se multiplier et infecter ainsi d'autres entités du même environnement. Une des conséquences immédiates de cette définition, c'est qu'à l'instar des virus biologiques, la diversité génétique ralentit les chances de multiplication des virus informatiques. Ce sont donc les environnements les plus fréquents qui sont les plus atteints.

1.1.2  Définition formelle

Fred Cohen appuie sa formalisation de la notion de virus informatique sur les machines de Turing. Une machine de Turing est un modèle abstrait du fonctionnement d'un ordinateur et de sa mémoire, créé par Alan Turing en vue de donner une définition précise au concept d'algorithme.



Figure 1: La machine de Turing - vue artistique (Source Wikipedia)



Une machine de Turing est composée de trois parties:
  1. une unité de stockage ou ruban de longueur infinie et divisée en cellules. Chaque cellule contient un symbole pris parmi un alphabet fini;
  2. une tête de lecture - écriture qui se déplace d'une cellule à la fois vers la droite ou vers la gauche le long du ruban. La tête de lecture lit ou écrit des symboles;
  3. une fonction de contrôle pilotant la tête de lecture - écriture. La fonction de contrôle est composée à son tour d'un registre d'état mémorisant l'état courant de la machine et d'une table d'action - le programme. Le nombre d'états possibles est fini. La table d'action indique à la machine quelle action effectuer en fonction du contenu du registre d'état et de la cellule courante.
Fred Cohen donne la définition suivante de la machine de Turing [1, page 39-40]:

Définition 2   Une machine de Turing M est définie par la donnée La machine M est désignée alors par le quintuplet (SM,IM,OM,NM,DM). L'ensemble des machines de Turing sera noté M.


Nous avons donc, conformément aux trois parties détaillées ci-dessus, un nombre d'états possibles fini - SM -, un alphabet fini - IM -, la définition des mouvements possibles de la tête de lecture - d - et les fonctions de contrôle - OM, NM et DM.

La notion d'historique HM d'une machine de Turing M est ensuite définie à partir de trois fonctions temporelles permettant de donner pour chaque indice de temps1:
  1. l'état de la machine à l'issue de l'action en fonction de l'indice de pas - fonction temporelle d'état EM:NSM;
  2. le contenu de la cellule en fonction de l'indice de pas et du numéro de cellule - fonction temporelle de bande BM:N×NIM;
  3. le numéro de cellule après le déplacement de la tête de lecture en fonction de l'indice de pas - fonction temporelle de cellule CM:NN
Ainsi, l'historique HM(t) à un instant t donné d'une machine de Turing M est défini, et par là même l'état initial de M: HM(0). Enfin, Fred Cohen définit la structure TPM décrivant un programme de machine de Turing M et l'ensemble non vide de programmes de Turing TS.

Nous pouvons maintenant donner la définition formelle d'un ensemble viral:

Définition 3  

M  ∀ V  (M,V)∈V  ⇔  [VTS]   et  [MM]   et  [∀ vV  [∀ H
M  [∀ t  ∀ j

[

  1. CM(t)=j   et
  2. EM(t)=EM(0)   et
  3. (BM(t,j),…,BM(t,j+∣ v∣ −1))=v
]

⇒  [∃ v'∈ V  [∃ t'>t  [∃ j'

[

  1. [[(j'+∣ v'∣)≤ j]   ou  [(j+∣ v∣)≤ j']]   et
  2. (BM(t',j'),…,BM(t',j'+∣ v'∣ −1))=v'   et
  3. [∃ t''  tel que  [t<t''<t']   et  [CM(t'')∈ j',…,j'+∣ v'∣ −1
]

  ]  ]  ]  ]  ]  ]  ]  ]


Ce qui se traduit par:

Définition 4   Pour toute machine de Turing M et tout ensemble non vide de programmes de Turing V, la paire (M,V) est un ensemble viral, si et seulement si, pour tout virus vV, pour tous les historiques de la machine M alors, pour tout instant tN et toute cellule j de M si
  1. la tête de lecture est devant la cellule j à l'instant t et
  2. M est dans son état initial à l'instant t et
  3. les cellules de la bande commençant à l'indice j contiennent le virus v.
alors, il existe un virus v'∈ V, à l'instant t'>t et à l'indice j' tel que
  1. j' est suffisamment loin de v,
  2. les cellules de la bande commençant à l'indice j' contiennent le virus v' et
  3. pour tout instant t'' tel que t<t''<t', v' est écrit par M.
De façon abrégée, V est un ensemble viral relativement à M, si et seulement si, [(M,V)∈V] et v est virus relativement à M, si et seulement si, [vV] tel que [(M,V)∈V].


Nous avons donc une machine de Turing M qui est dans son état initial HM(0) à l'instant t. Elle pointe alors sur la cellule j de la bande contenant le début d'un programme viral de machine de Turing v. La définition formelle de Fred Cohen nous dit qu'à l'instant t' > t, nous avons un nouveau programme viral de machine de Turing v' dont le début est placé dans la cellule j' >> j de la bande et qui a été écrit par M dans l'interval de temps t' − t.

Il est important de noter que la définition de virus donnée par Fred Cohen, décrit un programme qui a pour seule et unique fonction de se recopier2. À aucun moment, il n'est question de charge finale. Nous avons là aussi une différence avec les virus biologiques dans le sens où, fondamentalement, un virus informatique n'a aucune action néfaste sur l'environnement qu'il utilise pour se reproduire. Malheureusement, la capacité de réplication des virus informatiques est largement utilisée par les pirates de tous bords pour transporter les charges finales qu'ils ont élaborées. Faussant du même coup notre perception de la virologie informatique.

1.2  Structure et cycle de vie

1.2.1  Diagramme fonctionnel

Contrairement aux virus biologiques, il est difficile de parler de structure d'un virus informatique, nous parlerons plutôt de diagramme fonctionnel. Ce dernier résume de manière schématique l'articulation des différentes routines composant un programme autoreproducteur. Un diagramme fonctionnel standard comprend:



Figure 2: Diagramme fonctionnel d'un virus informatique



1.2.2  Cycle de vie

Tout comme les virus biologiques, les virus informatiques possèdent un cycle de vie. Lorsqu'il est complet, ce cycle conduit à une infection virale de plus ou moins grande importance et éventuellemnt à des dégats collatéraux sur les systèmes ciblés. La durée de chacune des phases de la vie d'un virus est variable selon le virus considéré. De même, tous ne parcourent pas l'ensemble des phases du cycle. Ainsi, certains virus ne dépassent pas le stade de la phase de conception, leur auteur peut chercher à produire un proof of concept ou alors, le nombre de bogues de programmation fait que le virus n'est pas fonctionnel.

L'analogie entre le cycle de vie des virus biologiques et informatiques diffère uniquement au niveau de la phase de conception. En effet, il n'y a pas de phase de conception pour les virus biologiques, leur origine précise est méconnue4. Certains spécialistes intègrent deux phases supplémentaires dans le cycle de vie d'un virus informatique: une phase dite d'assimilation et une phase dite d'éradication. La phase d'assimilation correspondant à l'étape pendant laquelle le virus est découvert et assimilé par les spécialistes de la lutte antivirale, notamment par les éditeurs de logiciels antivirus. La phase d'éradication correspondant à la période durant laquelle, la signature du virus étant intégrée dans les bases des logiciels antivirus, la suppression du virus et la vaccination des systèmes concernés commencent.

À l'instar des virus biologiques, nous n'avons pas intégré ces deux phases dans le cycle de vie du virus pour deux raisons: la première est que les phases d'assimilation et d'éradication font intervenir des actions externes au virus proprement dit et la deuxième raison, conséquence indirecte de la première, est que nous avons assimilé le cycle de vie du virus à son cycle de reproduction. En effet, ce dernier est propre aux virus en général tandis que d'autres organismes comme les bactéries dans le monde du vivant où les infections informatiques dans le monde informatique connaissent des phases d'assimilation et d'éradication5.

1.3  Modes d'infection

Les virus se reproduisent en infectant les fichiers exécutables de leur système cible. Le processus d'infection consiste donc à identifier l'exécutable cible et à intégrer dans son code binaire une copie du virus. Le fichier exécutable résultant est donc un mélange de l'exécutable original et du virus. Il existe quatre modes d'infections d'un fichier exécutable définissant quatre famille de virus [1, page 96]:



Figure 3: Infection par écrasement et par recouvrement de code



1.3.1  Virus par écrasement de code

Avec ce mode d'infection, le virus se recopie dans les fichiers exécutables cibles en remplaçant tout ou partie de leur code avec son propre code (voir Fig. 3). Ce mode d'infection est utilisé par de petits virus, généralement sans routine de charge finale. L'un des premiers effets de ces virus est la dégradation des fichiers exécutables du système. Trois situations se présentent:

1.3.2  Virus par recouvrement de code

Dans ce mode d'infection, le virus rajoute son code à celui du programme cible. La taille du fichier résultant augmente de la taille du virus. Le virus a deux possibilités pour accoler son code. Le première technique dite prepend consiste, pour le virus, à ajouter son code en tête du code du programme cible. Dans ce cas, il doit modifier les adresses d'appel des fonctions et des données du programme cible afin que ce dernier continue de fonctionner normalement. L'autre technique de recouvrement dite append consiste, pour le virus, à placer son code à la fin du code du programme cible. Dans ce cas, le virus place dans l'en-tête du programme cible une fonction de saut permettant d'exécuter le virus en premier, et de transférer ensuite le contrôle au programme infecté (voir Fig. 3).

1.3.3  Virus par entrelacement de code

Ce mode d'infection est spécifique aux virus infectant le format PE des fichiers exécutables 32 bits de Windows. Un exécutable au format PE se divise en deux parties (voir Fig. 4). La première partie se compose de l'en-tête PE et la deuxième partie correspond aux sections du fichier contenant le code et les variables. L'en-tête PE est elle-même composée des éléments suivants:



Figure 4: Structure d'un fichier exécutable PE



Chaque section du fichier PE contient une structure IMAGE_SECTION_HEADER décrivant la section et notamment sa taille, arrondie au multiple de 512 octets supérieurs. C'est dans cet arrondi que réside la vulnérabilité du format PE permettant au virus de s'y intégrer sans changer la taille du fichier exécutable. En effet, si par exemple, le code contenu dans une section occupe 1600 octets, la place qu'il occupe réellement sur le disque est de 2048 octets, il reste donc 448 octets vides.

Pour infecter un exécutable PE par entrelacement de code, le virus récupère, dans l'en-tête PE, les données concernant les zones inoccupées des sections. Il ne lui reste plus, ensuite, qu'à se copier, par fragments, dans ces espaces libres et à mettre en place les routines lui permettant de maintenir la cohérence du fichier infecté et de se regrouper en mémoire pour s'exécuter. Les virus utilisant ce mode d'infection, conjuguent les avantages des virus fonctionnant par écrasement de code, en ne modifiant pas la taille du fichier infecté, et des virus fonctionnant par recouvrement de code, en maintenant la fonctionnalité du programme infecté.

1.3.4  Virus par accompagnement de code

Avec ce mode d'infection, le programme cible n'est pas modifié et son intégrité est respectée. Le principe de l'infection par accompagnement est le suivant. Une fois que le virus a repéré un fichier cible, il se copie dans un fichier supplémentaire qu'il crée auparavant sur le disque. Ce fichier va accompagner le programme cible. Ainsi, lorsque l'utilisateur exécute le programme cible, le virus contenu dans le fichier compagnon est exécuté en premier lieu, ensuite le virus exécute lui-même le programme cible qu'il accompagne.

Pour pouvoir parvenir à ce résultat, plusieurs techniques sont envisageables:

1.3.5  Virus par modification de code source

Contrairement aux quatres modes d'infection précédent, le mode d'infection par modification de code source agit non pas sur un fichier exécutable mais sur le code source de cet exécutable. Le principe d'infection est le suivant. Lorsque le virus se duplique, au lieu de réaliser une copie de son exécutable, c'est son propre code source qu'il copie6. De même, la destination de la copie n'est plus un fichier exécutable mais le code source de ce programme. Nous avons donc finalement, un virus dont la routine de copie consiste à ajouter son propre code source au code source de sa cible. Ainsi, la prochaine fois que le programme infecté est compilé, l'exécutable résultant contient les routines virales en son sein.

Ce mode d'infection présente de multiples avantages. Tout d'abord, l'exécutable ainsi produit intègre parfaitement le virus et rend donc la détection antivirale plus difficile. Ensuite, le développeur de virus n'est plus limité à un type de système d'exploitation, si sont code viral est suffisamment standard, le virus peut être compilé sur plusieurs architectures différentes.

1.4  Taxonomie

À l'instar des virus biologiques, les virus informatiques peuvent être classés en fonction de différents critères, comme: Il est relativement difficile de classer un virus informatique. En effet, les virus modernes, afin d'être plus efficace, combinent plusieurs techniques d'infections ou visent plusieurs systèmes cibles ou encore utilisent plusieurs techniques de camouflage. Nous détaillons ici, une classification fonctionnelle des virus présentée par Éric Filiol dans [1].

1.4.1  Virus d'exécutables

Les virus d'exécutables sont les premiers types de virus apparus historiquement. Leur principe de réplication consiste à se loger au sein des fichiers binaires en employant l'un des modes d'infection étudié précédemment. Ces virus sont donc fortement dépendants du format des fichiers binaires cibles. En effet, chaque type de fichier binaire a sa propre architecture interne, le virus doit donc s'adapter à cette architecture pour infecter sa cible. En raison de ces contraintes, le programmeur de virus d'exécutables doit connaître l'architecture interne des fichiers qu'il veut infecter. De plus, ces virus sont souvent développés en langage assembleur.

Nous pouvons définir un virus d'exécutable de la façon suivante:
Définition 5   Un virus d'exécutable est un code viral contenu dans un fichier objet exécutable, activé par exécution de ce fichier soit sous l'action inconsciente de l'utilisateur soit par l'intermédiaire d'une autre application.


Les principaux formats de fichiers objets susceptibles d'être infectés par un tel virus sont:

1.4.2  Virus de documents

Les experts en sécurité informatique sont restés longtemps sceptiques quand à la possibilité de virus se propageant à l'aide de fichiers non exécutables. Il faut attendre août 1995 pour voir le premier virus de document, il s'agit du macro-virus Concept infectant les documents Word. Depuis cette date, le nombre de virus de document n'a cessé d'augmenter ainsi que le nombre de plateformes différentes touchées. Le virus de document le plus connu du grand public est, sans doute, le virus LoveLetter alias I Love You écrit en Visual Basic Script.

La définition d'un virus de document est la suivante [1]:
Définition 6   Un virus de document est un code viral contenu dans un fichier de données non exécutable, activé par interpréteur contenu de façon native dans l'application associée au format de ce fichier (déterminé par son extension). L'activation du code malveillant est réalisée, soit par une fonctionnalité prévue dans l'application (cas le plus fréquent), soit en vertu d'une faille interne de l'application considérée (de type buffer overflow par exemple).


Cette définition n'est pas restreinte à la catégorie des virus de documents les plus connus à savoir les macro-virus. En fait, la liste des cibles potentielles des virus de documents est relativement importante. Nous pouvons citer notamment: Les graphes des figures 5 et 6 donnent une idée de la répartition des virus de documents depuis janvier 1995 jusqu'à début 2006. L'analyse de ces figures révèle plusieurs choses:
  1. Tout d'abord, le premier virus de document apparaît bien en août 1995;

  2. La cible privilégiée des virus de documents est l'application Microsoft Word (W97M et WM) suivie de près par Microsoft Excel (X97M, XM et XF). Les virus de documents qui infectent les documents Word et Excel sont des macro virus. Leur prédominance explique qu'ils soient les plus célèbres des virus de documents;

  3. L'évolution dans le temps des catégories de virus suit logiquement l'évolution des applications cibles. Ainsi, les virus de documents pour les premières versions de Word (WM) prédominent entre 1995 et début 2000, laissant ensuite la place aux virus spécifiques des versions plus récentes de Word (W97M).

  4. Une autre catégorie de virus de document apparaît fin 2000, ce sont les virus écrit en Visual Basic Script (VBS). Même si leur nombre reste inférieur à celui des macro virus, ils ont, à l'instar de LoveLetter, un impact beaucoup plus important aussi bien en terme de vitesse de propagation, qu'en terme de nombre de systèmes infectés.



Figure 5: Evolution des virus de documents






Figure 6: Répartition des virus de documents



1.4.3  Virus de démarrage

Les virus de démarrage ont pour cible les organes nécessaires au démarrage d'un ordinateur: le Basic Input Output System (BIOS) et le Master Boot Record (MBR).

Le BIOS, est le logiciel stocké sur l'EPROM8 de l'ordinateur. Il est le premier programme exécuté lors du démarrage et il sert à contôler l'état des composants de l'ordinateur et à les initialiser pour permettre ensuite au système d'exploitation de prendre le relais. La mémoire utilisée pour stocker le BIOS étant réinscriptible, il est techniquement possible à un virus de s'y copier.

Un virus de BIOS présente de nombreux avantages. Tout d'abord, il est exécuté en premier et à chaque démarrage de l'ordinateur. Ensuite, il est indédectable par les antivirus, en effet, ceux-ci sont lancés bien plus tard par le système d'exploitation. Un tel virus, exécuté à partir du BIOS, est affranchi des contraintes de droits d'accès sur les données stockées sur le disque dur.

La dernière action du BIOS consiste à charger en mémoire et à exécuter le MBR. Ce dernier, est un exécutable de 512 octets qui contient la table de partition du disque dur utilisée par le système pour charger et exécuter le secteur de boot de la partition active (voir Fig. 7). Cette étape est le point de départ du lancement du système d'exploitation. Le MBR est donc lu juste après le BIOS. Comme il est également accessible en écriture, il est une cible de choix pour les virus de MBR.

Un virus de MBR dispose de deux techniques d'infection. Soit il détruit le MBR existant et le remplace intégralement. Dans ce cas le virus est limité à une taille de 512 octets, et peut difficilement contenir une routine de charge final. Soit le virus est plus sophistiqué et dans ce cas il dépasse la limite des 512 octets. Dans ce cas, il se copie sur le disque dur et sauvegarde le MBR original. Ensuite il modifie le MBR afin d'être exécuté à chaque démarrage. Ainsi, lors du démarrage suivant, il est exécuté lors de lancement du MBR modifié, ensuite il se reconstruit en mémoire à partir de sa sauvegarde sur le disque dur et enfin il exécute le MBR sauvegardé afin de démarrer l'ordinateur normalement.

Un virus de MBR présente les mêmes avantages qu'un virus de BIOS avec, en plus, la possibilité de mettre en oeuvre des techniques de furtivité interdisant sa détection par un antivirus.



Figure 7: Exemple de MBR - Ordinateur sous GNU/Linux Debian et Windows XP utilisant GRUB



À partir de ces données nous pouvons proposer une définition des virus de démarrage:
Définition 7   Un virus de démarrage est un code viral contenu dans un fichier objet exécutable et inséré, soit dans le BIOS d'un ordinateur, soit dans le MBR d'un système de stockage de données. L'activation du code malveillant est réalisée par l'ordinateur lors de sa séquence de démarrage.


1.4.4  Virus comportementaux

Cette catégorie de virus regroupe les virus qui se distinguent par leur comportement spécifique. Ce comportement a pour but soit d'augmenter la furtivité du virus, soit d'augmenter sa vitesse de propagation. On distingue les types de comportement suivants:

1.4.5  Autres virus

Les techniques virales évoluant, de nouveaux types de virus, difficilement classables, sont apparus. Parmi eux, nous trouvons notamment les virus multipartites et les virus psychologiques.

Afin d'être plus efficaces, certains virus combinent plusieurs techniques virales ou encore visent plusieurs cibles, ce sont les virus multipartites. À titre d'exemple, certains virus infectent aussi bien les fichiers exécutables d'un système Windows que ceux d'un système Linux. D'autres sont à la fois des virus d'exécutable et des virus de démarrage, d'autres encore sont simultanément des virus d'exécutables et des virus de documents. Ces virus, sont plus difficile à élaborer, mais, leur cible potentielle étant plus étendue, ils ont un pouvoir infectieux plus important.

Les virus psychologiques sont apparus récemment. Plus connus sous le nom de joke ou de hoax, ces virus s'appuient sur des techniques d'ingénierie sociale, pour abuser de l'incrédulité de leurs victimes potentielles. La définition d'un virus psychologique est donc la suivante [1]:
Définition 8   Un virus psychologique est une désinformation incitant l'utilisateur, par des techniques d'ingénierie sociale, à produire des effets équivalents à celui d'un virus ou d'un ver: propagation et action offensive.


Ces virus sont potentiellement dangereux dans le sens où, une fois qu'ils ont trompé la confiance de l'utilisateur, ils se propagent très rapidement (le plus souvent par email) et poussent l'utilisateur à exécuter des actions irrémédiables sur son système (effacement du fichier kernel32.dll par exemple).

BONJOUR A TOUS,
UN DE MES CORRESPONDANTS A ETE INFECTE PAR UN VIRUS QUI CIRCULE SUR LE MSN
Messenger. LE NOM DU VIRUS EST jdbgmgr.exe L'ICONE EST UN PETIT OURSON. IL
EST TRANSMIS AUTOMATIQUEMENT PAR MESSENGER AINSI QUE PAR LE CARNET
D'ADRESSES. LE VIRUS N'EST PAS DETECTE PAR McAFEE OU NORTON ET RESTE EN
SOMMEIL PENDANT 14 JOURS AVANT DE S'ATTAQUER AU DISQUE DUR. IL PEUT DETRUIRE
TOUT LE SYSTEME.
JE VIENS DE LE TROUVER SUR MON DISQUE DUR! !! AGISSEZ DONC TRES VITE POUR
l'ELIMINER COMME SUIT:
1. Aller à DEMARRER, faire "RECHERCHER"
2. dans la fênetre FICHIERS-DOSSIERS taper le nom du virus:jdbgmgr.exe
3. Assurez vous de faire la recherche sur votre disque dur "C"
4. Appuyer sur "RECHERCHER MAINTENANT"
5. Si vous trouvez le virus L'ICONE EST UN PETIT OURSON son nom jdbgmgr.exe
" NE L'OUVREZ SURTOUT PAS!!!!!
6.Appuyer sur le bouton droi de la souris pour l'eliminer (aller
à la CORBEILLE) vous pouvez aussi l'effacer en appuyant sur SHIFT DELETE
afin qu'il ne reste pas dans la corbeille.
7. aller à la CORBEILLE et l'effacer definitivement ou bien
vider la corbeille.
SI VOUS TROUVEZ LE VIRUS SUR VOTRE DISQUE DUR ENVOYEZ CE MESSAGE A TOUS VOS
CORRESPONDANTS FIGURANT SUR VOTRE CARNET D'ADRESSE CAR JE NE SAIS PAS DEPUIS
QUAND IL EST PASSE.
DESOLEE POUR CET INCIDENT! ET MERCI D'AGIR VITE
 


Figure 8: Exemple de virus psychologique: jdbgmgr.exe



1.4.6  Les vers

Dans la classification des risques informatiques, le ver appartient à la catégorie des programmes autoreproducteurs au même titre que le virus. Pourtant, la seule particularité du ver, par rapport au virus, réside dans le fait que son vecteur de propagation n'est pas un autre fichier mais un réseau informatique. Ainsi, la routine de copie du ver consiste à chercher des systèmes accessibles par le réseau, à s'y connecter et s'y installer. Un ver est donc bien un programme informatique qui a la capacité de se reproduire. À ce titre il répond en tous points à la définition du virus informatique. C'est la raison pour laquelle, un ver est un type de virus particulier.

L'intérêt du ver par rapport au virus réside dans son pouvoir infectieux: Si l'effet d'un virus classique est généralement limité dans l'espace à une région ou un petit groupe de pays, celui du ver, en particulier pour les dernières générations, est planétaire. [1, page 132].

Un exemple récent du pouvoir infectieux des vers est celui du ver Nyxem alias MyWife, Blackworm. Ce ver, qui a commencé à faire parler de lui le 15 janvier 2006, est un exécutable de 95 Ko écrit en Visual Basic. Il infecte les ordinateurs lorsqu'un utilisateur imprudent clique sur la pièce jointe de l'email qu'il vient de recevoir. Il se propage également par les partages réseaux montés sur l'ordinateur infecté. Il tente ensuite de désactiver un certain nombre de logiciel antivirus. Et enfin, cherche des adresses emails dans le carnet d'adresses local pour s'y envoyer automatiquement en utilisant des sujets et des corps de messages variés.

La charge finale de Nyxem, très proche de celle de LoveLetter, consiste, le troisième jour de chaque mois à compter du 3 février 2006, à chercher, sur tous les disques accessibles localement ou sur le réseau, les fichiers .DOC, .XLS, .MDB, .MDE, .PPT, .PPS, .ZIP, .RAR, .PDF, .PSD et .DMP et à les remplacer par la chaîne de caractères: DATA Error [47 0F 94 93 F4 K5].

En général, il est difficile d'établir le nombre de systèmes infectés par un virus ou un ver. Dans le cas de Nyxem, chaque ordinateur infecté par le ver génère une requète HTTP pointant sur l'URL de la page Web de statistiques: webstats.web.rcn.net/cgi-bin/Count.cgi. Il semble que cette routine ait été insérée dans le code du ver par son auteur pour lui permettre de suivre son évolution. Nous sommes donc en présence d'un ver récent, ayant un grand pouvoir infectieux et dont les statistiques d'infection sont relativement fiables.

L'étude réalisée par Caida9, montre qu'entre 469 507 et 946 835 ordinateurs, dans plus de 200 pays, ont été infectés par Nyxem entre le 15 janvier 2006 et le 1er février 2006.

Trois sous-classes de vers sont considérées:

1.5  The Common Malware Enumeration

1.5.1  Le standard du CARO

La dénomination d'un virus est relativement anarchique. Traditionnellement, c'est celui qui décompile le code d'un virus et en réalise l'analyse le premier qui donne au virus son nom. Dans le monde de la lutte antivirale, chaque entreprise dispose de son laboratoire de recherche et la primeur de l'annonce de la découverte d'un nouveau virus est devenu un argument commercial. Pour garder cette avance sur leurs concurrents, les grands éditeurs de logiciels antiviraux n'hésitent plus à s'attribuer la découverte d'un même virus en lui donnant chacun son propre nom. Ainsi, à titre d'exemple, le ver Nyxem est référencé sous 27 noms différents (voir Fig. 9).

Logiciel Antivirus Nom attribué
Authentium W32/Kapser.A
AntiVir Worm/KillAV.GR
Avast! Win32:VB-CD [Wrm]
AVG Worm/Generic.FX
BitDefender Win32.Worm.P2P.ABM
ClamAV Worm.VB-8
Command W32/Kapser.A(exact)
Dr Web Win32.HLLM.Generic.391
eSafe Win32.VB.bi
eTrust-INO Win32/Blackmal.F!Worm
eTrust-VET Win32/Blackmal.F
Ewido Worm.VB.bi
F-Prot W32/Kapser.A(exact)
F-Secure Email-Worm.Win32.Nyxem.e
Fortinet W32/Grew.A!wm
Ikarus Email-Worm.Win32.VB.BI
Kaspersky Email-Worm.Win32.Nyxem.e
McAfee W32/MyWife.d
Nod32 Win32/VB.NEI worm
Norman W32/Small.KI (W32/Small.KI)
Panda W32/Tearec.A.worm (W32/MyWife.E.Worm)
QuickHeal I-Worm.Nyxem.e
Sophos W32/Nyxem-D
Symantec W32.Blackmal.E
Trend Micro WORM_GREW.A (Worm_BLUEWORM.E)
VBA32 Email-Worm.Win32.VB.b
VirusBuster Worm.P2P.VB.CIL


Figure 9: Les 27 noms de référencement de Nyxem (source http://www.av-test.org)



En 1991, le Computer Antivirus Research Organization (CARO)10 propose de définir un standard de dénomination des virus. Sous l'impulsion de Vesselin Bontchev et de Fridrik Skulason ce standard est diffusé en 1993. Il propose de nommer les virus à partir de la syntaxe suivante [2]:

<Nom_de_famille>. <Nom_de_Groupe>. <Rang_de_variante_majeure>. <Rang_de_variante_mineure>[:Singularité]
  1. Le nom de famille désigne la famille à laquelle le virus appartient. Une famille de virus regroupe les virus ayant des similitudes structurales. Chaque éditeur de logiciel antivirus définit ses propres familles de virus. Seules quelques règles de base sont fixées concernant le choix du nom (pas de nom de marque, pas de nom de personne, pas de nom obscène, ...). Les virus dont la taille est inférieure à 100 octets appartiennent à la famille Trivial, les virus de recouvrement appartiennent à la famille HLLO, les virus compagnons appartiennent à la famille HLLC enfin, les virus relativement petits et qui ne font que se reproduire appartiennent à l'une des sous-famille Silly;

  2. Le nom de groupe permet de regrouper des virus semblables au sein d'une même famille;

  3. Le rang de variante majeure est utilisé pour regrouper les virus semblables au sein d'un même groupe. Le rang de variante majeure est un nombre. Dans certain cas il représente la taille du virus;

  4. Le rang de variante mineure regroupe des virus de même taille, structure et comportement. Le rang de variante mineure se limite à une ou deux lettres s'incrémentant dans le temps;

  5. La singularité permet de préciser le type de variante entre deux virus semblables. Par exemple, un virus existant peut être repris par un auteur de virus afin de lui rajouter du polymorphisme. La différence entre le virus original et sa version polymorphe se retrouve alors au niveau de la singularité;
Ce standard n'est pas adopté par l'ensemble des éditeurs, de plus, ceux qui l'adoptent, y apportent souvent leurs propres adaptations. Enfin, au fil du temps, le standard se révèle insuffisant. À titre d'exemple, lors de sa sortie, les macro-virus et les virus ciblant Windows n'existaient pas. Afin de pallier ces failles, le Fully Specified Malware Name (FSMN) est défini sous l'impulsion de Nick FitzGerald du CARO.

Le FSMN reprend la première proposition du CARO en rajoutant de nouveaux éléments. La syntaxe de dénomination des logiciels malveillants devient alors:

[<Malveillance>://] [<Plateforme>/] <Nom_de_famille> [.<Nom_de_Groupe>] [.<Taille>] .<Rang_de_variante_mineure> [Dévolution] [Singularité]


Les items rajoutés sont:

1.5.2  L'initiative CME

Comme nous venons de le voir, la standardisation de la dénomination des virus est une tâche difficile qui n'entraîne pas l'adhésion de l'ensemble des éditeurs de logiciels antivirus. Il en résulte une confusion dans l'esprit du grand public qui ne facilite pas la mise en place de mesures effectives et ciblées face à une attaque virale.

En 2005, le United States Computer Emergency Response Team (US-CERT)13, développe le Common Malware Enumeration (CME)14.

À travers l'adoption d'une méthode neutre d'identification partagée des logiciels malveillants, les objectifs du CME sont:
  1. Réduire la confusion du public dans le référencement des logiciels malveillants;
  2. Améliorer la communication entre les éditeurs de logiciels antivirus;
  3. Soutenir l'echange d'informations entre les éditeurs de logiciels antivirus et les communautés de spécialistes en Sécurité des Systèmes d'Informations;
Le principe du CME, est simple, lors de la découverte d'un nouveau logiciel malveillant, chaque éditeur le nomme comme auparavant. Ensuite, le CME définit un identifiant unique regroupant les différentes appellations du logiciel malveillant. L'identifiant CME est simple et répond à la syntaxe suivante:

CME - n où n désigne un numéro compris entre 1 et 999.


Le CME est adopté largement par la communauté des éditeurs de logiciels antivirus. En septembre 2005, McAfee, Symantec, Trend Micro, Microdoft, Sophos, Computer Associates, Norman, Kaspersky Lab, MessageLabs, F-Secure et ICSA Labs y avaient adhéré.

CME-901
Antivirus Nom attribué
CA Win32.Mydoom.AZ
Kaspersky Lab Email-Worm.Win32.Mydoom.am
McAfee W32/Mydoom.be!zip
Microsoft Win32/Mydoom.AR!CME-901
Norman MyDoom.AT
Panda Mydoom.AR
Sophos W32/MyDoom-BC
Symantec W32.Mydoom.BA
Trend Micro WORM_MYDOOM.BA
CME-243
Antivirus Nom attribué
CA Win32.Zotob.A
F-Secure Zotob.A
Kaspersky Lab Net-Worm.Win32.Mytob.cd
McAfee W32/Zotob.worm
Microsoft Worm:Win32/Zotob.A!CME-243
Norman W32/Zotob.A
Panda Zotob.A
Sophos W32/Zotob-A
Symantec W32.Zotob.A
Trend Micro WORM_ZOTOB.A


Figure 10: Le référencement CME de MyDoom et Zotob (source http://cme.mitre.org)



References

[1]
Filiol (E.), Les virus informatiques: théorie, pratique et applications. Springer, 2004.

[2]
Bontchev (V. V.) et Skulason (F.),  A new virus naming convention , CARO meeting, 1991. Consultable sur http://vx.netlux.org/lib/asb01.html.

1
Fred Cohen considère que la notion de temps coïncide avec celle d'indice de pas. C'est à dire que la machine de Turing M réalise une action par unité de temps.
2
Nous pouvons noter par la même occasion que la copie du virus n'est pas obligatoirement identique à l'originale.
3
La virulence de la routine d'infection de ce virus a entraîné des pannes par déni de service sur les serveurs.
4
Il existe trois hypothèses concernant l'origine et l'évolution des virus.

La première d'entre elles défend l'idée que les virus et les cellules sont apparus en même temps dans la soupe primordiale et ont évolué ensuite parallèlement. Dans ce scénario, au début de l'apparition de la vie, les plus anciens systèmes génétiques d'autoréplication sont devenus plus complexes et se sont enveloppés dans un sac lipidique pour aboutir à l'origine des cellules. Une autre forme réplicative aurait pu garder sa simplicité pour former des particules virales.

La deuxième hypothèse part de l'idée que les virus pourraient dériver de cellules ayant subit une régression. D'après cette hypothèse, les ancêtres des virus auraient été des êtres vivants libres ou des micro-organismes devenus des prédateurs ou des parasites dépendant de leur hôte. Les relations de parasitisme entraînent la perte de nombreux gènes, cet organisme aurait co-évolué avec la cellule hôte et n'aurait conservé que sa capacité à répliquer son acide nucléique et le mécanisme de transfert de cellule à cellule.

Enfin, dans la dernière hypothèse, les virus peuvent avoir pour origine des morceaux d'acides nucléiques qui se sont échappés du génome cellulaire pour devenir indépendant. Ce phénomène pourrait avoir eu lieu lors d'erreurs au cours de la réplication du matériel génétique.
5
Aujourd'hui, les logiciels antivirus ne font pas que de la lutte antivirale pure, ils protègent également les ordinateurs d'autres formes d'infections informatiques comme les chevaux de Troie, le spam, les objets activeX hostiles, les adwares, ...
6
Ce mode de copie est inspiré des programmes quine.
7
Les programmes DOS ont un accès total sur le système et ne savent pas coopérer avec d'autres programmes tandis que les programmes Windows mettent en oeuvre un multitâche préemptif.
8
l'Erasable Programmable Read Only Memory est le type de mémoire non volatile le plus couramment utilisé sur les micro ordinateurs modernes.
9
http://www.caida.org/analysis/security/blackworm/
10
http://www.caro.org/tiki-index.php
11
Cheval de Troie
12
C'est le cas du macro virus Rapi qui n'implémente pas la totalité des macros qui le compose dans ses virus fils.
13
Le US-CERT a été crée en 2003 afin de protéger les infrastructures Internet des États-Unis et de coordonner la défense et la riposte aux cyber-attaques visant les intérêts américains. Le US-CERT travaille en collaboration avec les différentes agences fédérales, la communauté des chercheurs et l'industrie. http://www.uscert.gov
14
http://cme.mitre.org/index.html
Page précédente SourceForge.net Logo

This document was translated from LATEX by HEVEA.