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:
-
Un virus est spécifique à un environnement donné;
- Un virus a pour seule fonction de se multiplier;
- Un virus seul est inerte;
- 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:
-
une unité de stockage ou ruban de longueur infinie et divisée en cellules. Chaque cellule contient un symbole pris parmi un alphabet fini;
- 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;
- 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
-
d'un ensemble de n+1 états SM={s0,s1,…,sn} avec n∈N,
- d'un ensemble de m+1 symboles IM={i0,i1,…,im} avec m∈N,
- d'un ensemble d={−1,0,+1} décrivant les mouvements possibles pour la tête de lecture,
- d'une fonction de sortie OM:SM × IM→ IM,
- d'une fonction de transition NM:SM × IM→ SM,
- d'une fonction de déplacement DM:SM × IM→ d,
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:
-
l'état de la machine à l'issue de l'action en fonction de l'indice de pas - fonction temporelle d'état EM:N→ SM;
- le contenu de la cellule en fonction de l'indice de pas et du numéro de cellule - fonction temporelle de bande BM:N×N→ IM;
- 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:N→N
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 ⇔ [V∈ TS] et [M∈M] et [∀ v∈ V [∀ HM [∀ t ∀ j
[
-
CM(t)=j et
- EM(t)=EM(0) et
- (BM(t,j),…,BM(t,j+∣ v∣ −1))=v
]
⇒ [∃ v'∈ V [∃ t'>t [∃ j'
[
-
[[(j'+∣ v'∣)≤ j] ou [(j+∣ v∣)≤ j']] et
- (BM(t',j'),…,BM(t',j'+∣ v'∣ −1))=v' et
- [∃ 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 v∈ V, pour tous les historiques de la machine M alors, pour tout instant t∈N et toute cellule j de M si
-
la tête de lecture est devant la cellule j à l'instant t et
- M est dans son état initial à l'instant t et
- 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
-
j' est suffisamment loin de v,
- les cellules de la bande commençant à l'indice j' contiennent le virus v' et
- 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, [v∈ V] 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
-
Routine de recherche de la cible: Avant d'infecter un nouveau système, le virus vérifie si la cible est accessible en écriture, si elle est exécutable et avec le bon format et si elle n'a pas déjà été infectée. Contrairement au virus biologique, un virus informatique est strictement dépendant du système pour lequel il est programmé. Enfin, la phase de contrôle de surinfection est importante car elle améliore l'efficience du virus et limite les possibilités de détection;
- Routine de copie: Grâce à cette routine, le virus écrit une copie de son propre code dans sa cible. C'est la présence d'une routine de copie qui fait qu'un simple programme informatique devient un virus informatique;
- Routine d'anti-détection: Afin d'améliorer ses chances de survie, un virus doit être indétectable sur le système qu'il infecte;
- Routine de charge finale: Le virus peut contenir une charge finale. La volonté de nuire de la plupart des programmeurs de virus fait que la présence d'une charge finale néfaste est quasiment systématique. Cependant, cette dernière routine n'est pas obligatoire et n'entre pas dans la définition formelle d'un virus informatique. Pour certains virus, comme Slammer, la routine de charge finale se confond avec la routine de copie3;
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.
-
Phase de conception: Cette étape correspond à la période durant laquelle un programmeur développe et teste le virus. Selon les compétences techniques du programmeur et la complexité du virus, cette période peut s'étaler de quelques heures à quelques jours. Les virus s'appuyant sur des vulnérabilités logicielles pour se propager, il ne faut pas que ce temps soit trop important au risque de perdre en efficacté de propagation;
- Phase de gestation: Une fois le virus fonctionnel, il est placé à un endroit stratégique grâce à un programme d'apparence inoffensive appelé dropper. Le dropper choisit, est spécifique à la cible recherchée. Ainsi, il pourra s'agir d'un email utilisant des techniques d'ingénierie sociale pour améliorer ses chances de propagation ou encore de portes dérobées laissées par d'autres virus;
- Phase de réplication: C'est la phase clé de la vie d'un virus. En fonction de la pertinence de la routine de copie et de son adéquation avec la cible, le virus se reproduira plus ou moins rapidement et à plus ou moins grande échelle. Deux modes de réplication sont à prendre en compte, le mode actif et le mode passif. Le premier cas se recontre dans deux situations:
-
soit l'utilisateur, abusé par les actions d'ingénierie sociale, exécute le dropper et lance la routine de copie du virus, nous parlerons alors de primo-infection;
- soit l'utilisateur ouvre un fichier déjà infecté et lance ainsi la routine de copie du virus;
Dans le mode passif, le dropper est copié sur un support et transmis aux victimes potentielles. L'histoire des virus informatiques est émaillée de cas de virus transmis ainsi par des industriels suite à des erreurs ou des négligences. C'est par exemple le cas de Concept diffusé par Microsoft ou de CIH diffusé en 1999, dans les ordinateurs de la gamme Aptiva par la société IBM [1];
- Phase d'incubation: Une fois le virus installé sur son système cible, la phase d'incubation commence. D'une durée variable, cette étape correspond au temps écoulé entre la primo infection et l'apparition des premiers symptômes liés à l'activation de la charge finale. Pendant ce temps, le virus doit survivre à l'intérieur du système en limitant, voire en empêchant, sa détection:
-
soit par l'utilisateur. En effet, un ralentissement du système, un message d'erreur intempestif, une surcharge d'un support de stockage sont autant de signes dont la survenue peut faire penser à la présence d'un virus;
- soit par le système lui-même. Si un antivirus est activé sur le système infecté, le virus doit mettre en oeuvre des techniques spécifiques pour éviter d'être détecté.
- Phase de maladie: Si le virus contient une routine de charge finale, cette phase correspond à son activation. Les modes de déclenchement de la charge finale sont nombreux et dépendent de l'endroit dans le code du virus où la routine correspondante est placée. En effet, si cette dernière est placée en tête de code, elle est systématiquement exécutée avant toute infection, si elle est placée en fin de code, elle n'est exécutée qu'après la routine de copie, sinon son exécution peut être, par exemple, conditionnée à la réussite de l'infection.
Enfin, le déclenchement de la phase de maladie peut être lié à un évènement particulier comme une date système, le nombre d'infections réalisées, le nombre d'ouvertures d'un document, le nombre de redémarrage du système. Dans ce cas, la charge finale est une bombe logique et le virus devient le vecteur de transport de la bombe.
La nature de la charge finale est elle aussi variable. Elle peut être de nature létale ou non létale. Dans ce dernier cas, les symptômes de l'action du virus se résument à l'affichage d'images ou d'animations, de messages textuels ou sonores ou encore de musique. La charge finale est de nature létale quand ces symptômes portent atteinte à l'un des trois domaines fondamentaux de la sécurité des systèmes d'information:
-
la confidentialité de l'information par le vol ou la divulgation de données;
- l'intégrité du système ou de l'information par le formatage de disque dur, la destruction ou la modification de données;
- la disponibilité du système ou de l'information par la saturation ou le redémarrage aléatoire du système ou par le chiffrement de données;
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:
-
soit le virus écrase la partie initiale du code de la cible, dans ce cas le programme infecté ne peut plus se lancer. C'est le mode d'infection viral le plus courant et aussi le moins furtif, en effet, un programme qui brutalement ne fonctionne plus attire davantage l'attention de l'utilisateur;
- soit le virus écrase la partie centrale ou finale du code de la cible, dans ce cas le programme infecté peut ne plus être fonctionnel. Dans ce cas, le virus doit écrire une fonction de saut vers la zone de son propre code dans l'en-tête du programme cible. Ce mode d'infection est plus furtif que le précédent, en effet si la fonction de saut est bien programmée, le lancement du programme, provoquera l'exécution du virus puis redonnera la priorité au déroulement normal du programme infecté;
- soit le virus remplace intégralement le code du programme cible par son propre code. Dans ce cas également, la furtivité est nulle car la taille des fichiers infectés est identique;
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
-
un en-tête DOS permettant d'exécuter le programme dans cet environnement et d'afficher le message indiquant que l'application ne fonctionne que sous Windows;
- une structure IMAGE_FILE_HEADER contenant des informations sur la date et l'heure de création, le type de processeur, le nombre de sections du fichier, la taille de l'en-tête optionnel, ...
- une structure IMAGE_OPTIONAL_HEADER contenant, entre autres, la taille du code, des variables prédéfinies et non prédéfinies, l'adresse du début du code, l'adresse du début de la section des variables et un tableau de seize structures IMAGE_DATA_DIRECTORY contenant l'adresse virtuelle relative et la taille de chaque section.
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:
-
la première technique est celle de l'exécution préemptive. Elle s'appuie sur une particularité du système d'exploitation cible. Ainsi, dans le monde DOS - Windows, si trois fichiers exécutables ont le même nom, c'est celui qui porte l'extension .COM qui est exécuté en premier, puis celui dont l'extension est .EXE et enfin celui dont l'extension est .BAT. Donc, si un virus veut infecter le fichier explorer.exe à l'aide de cette technique, il suffit qu'il se copie dans un fichier explorer.com pour être exécuté systématiquement à chaque démarrage de Windows;
- la deuxième technique s'appuie sur la hiérarchisation des chemins de recherche des exécutables. Souvent définie dans la variable PATH, cette hiérarchisation précise dans quels répertoires et dans quel ordre chercher les fichiers exécutables. Si un virus cherche à infecter un fichier exécutable en utilisant cette technique, il lui suffit de se copier dans un fichier portant le même nom mais dans un répertoire prioritaire dans l'ordre de recherche. Le code viral est ainsi exécuté avant le code du fichier originel. Une autre solution consiste, pour le virus, à modifier la variable PATH en y plaçant le répertoire où il s'est copié en tête. Ainsi, il est certain d'être exécuté prioritairement;
- la troisième technique consiste à renommer le programme cible. Le virus se copie alors dans un fichier dont le nom est celui du programme cible original. Lorsque l'utilisateur exécute le programme infecté, il exécute le virus. Ce dernier exécute sa routine de copie et exécute le programme cible renommé. Cette techique présente l'avantage d'être indépendante du système d'exploitation;
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:
-
le format de fichier visé: exécutable ou document;
- l'organe cible: secteur de boot, pilote de périphérique;
- le langage de programmation utilisé: assembleur, langage interprété;
- le comportement: infecteur rapide ou lent, résident ou non, polymorphe, furtif;
- la nature de la charge finale: espionnage, destructions de données;
- le mode de fonctionnement: binaire, psychologique;
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:
-
les fichiers exécutables au format COM. Ces fichiers, d'une taille maximale de 64 Ko, sont en fait une copie, sur le disque dur, de l'organisation du programme en RAM. Un programme COM ne possède pas d'en-tête, il commence à l'adresse 100h, juste après le Program Segment Prefix servant à définir son état dans l'environnement DOS. Il doit impérativement s'arrêter avant la pile d'où la limitation de 64 Ko. Un virus infectant un tel programme devra respecter cette contrainte de taille;
- les fichiers exécutables au format EXE 16-bits. Ces programmes disposent d'un en-tête leur permettant de gérer plusieurs segments et ainsi de dépasser la limite des 64 Ko. Un virus infectant un EXE 16-bits augmente la taille du fichier, il doit donc modifier judicieusement l'en-tête afin de garantir une projection correcte des segments en mémoire;
- les fichiers exécutables au format EXE 32-bits - format PE;
- les fichiers au format VxD. VxD est l'abréviation de Virtual Device Driver. Les fichiers VxD sont des pilotes de périphérique virtuel. Ce concept a été développé par Microsoft afin de permettre la cohabitation des programmes DOS avec les programmes Windows7;
- les fichiers de drivers. Virus spécifiques pour les pilotes de périphériques;
- les fichiers exécutables au format ELF. ELF est l'abréviation de Executable and Linking Format; Ce format d'exécutable est utilisé dans le monde Unix. Un fichier objet ELF est composé de l'en-tête ELF, du Program Header Table, de une à plusieurs sections et de la Section Header Table. Le format ELF supporte plusieurs types de processeurs avec des architectures de bus allant de 8 à 64 bits;
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 documents utilisant des langages de scripts comme HTML, JavaScript, Visual Basic Script, Perl, PHP, Python, Ruby, AppleScript;
- les documents au format Adobe Acrobat, CorelDraw, AutoCAD, Lotus, Microsoft Office, Microsoft project, Visio, OpenOffice, MapInfo;
- les documents permettant de mettre en oeuvre des routines spécifiques comme Postscript, LATEX ou TEX, Macromedia et Shockwave;
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:
-
Tout d'abord, le premier virus de document apparaît bien en août 1995;
- 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;
- 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).
- 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:
-
les virus résidents. Ce type de virus, une fois exécuté, reste actif dans la mémoire du système sous la forme de processus. Seul l'arrêt de l'ordinateur met fin au processus viral. Une fois en mémoire, le virus à toute latitude pour agir sur le système infecté: désactivation ou inhibition de l'antivirus ou de certaines fonctionnalités du système d'exploitation, infection d'autres exécutables;
- les virus binaires. Encore appelés virus combinés ou virus avec rendez-vous. Un tel virus V est en fait composé de deux virus V1 et V2, chacun ayant une action virale partielle et anodine. Le virus devient efficace grâce à l'action conjointe des deux virus qui le composent. Il existe deux types de virus binaire. Dans le premier cas, l'action des virus V1 et V2 est séquentielle: le premier virus active le deuxième. Dans le deuxième cas, l'action des virus V1 et V2 est parallèle, ils fonctionnent alors simultanément et combinent leurs actions respectives;
- les virus blindés. Afin de réaliser l'analyse d'un virus, il est nécessaire de faire du reverse engineering à partir de son fichier exécutable. Cette technique consiste à désassembler un fichier objet, à en étudier la structure et les mécanismes afin de pouvoir remonter jusqu'au code source original. Ce processus, bien que long et compliqué, est indispensable pour affiner les techniques antivirales. Afin de contrarier cette approche, certains programmeurs de virus ont développé des techniques rendant encore plus difficiles les opérations de désassemblage du code. Les virus blindés sont les virus qui mettent en oeuvre ces techniques: code leurre, chiffrement dynamique du code, blocage du processus de déboguage;
- les rétrovirus. Ces virus utilisent les vulnérabilités des antivirus pour se rendre indétectable;
- les virus lents - virus rapides. Ces virus sont généralement des virus d'exécutables résidents. La différence lent - rapide se fait dans le contrôle de leur pouvoir infectieux. Ainsi, un virus lent n'infecte que les exécutables nouvellement créés ou modifiés. Ceci lui permet d'être relativement discret face aux antivirus, notamment ceux fonctionnant par contrôle d'intégrité. À l'opposé, un virus rapide infecte tous les fichiers qui sont exécutés ou ouverts. Le virus est moins furtif, mais il peut détourner l'antivirus en infectant tous les fichiers que ce dernier ouvre pour les contrôler;
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
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:
-
Les vers simples. Aussi connus sous le nom de worm, ils se propagent sur les réseaux sous forme de trames spécialement conçues afin d'exploiter des vulnérabilités des systèmes cibles. Exemple de ver simple: Slammer;
- Les macro-vers sont des programmes hybrides, mélange de macro-virus et de ver. Le mode de dissémination se fait par des pièces jointes contenant des documents bureautiques infectés par un macro-virus. Une fois ouvert, le ver infecte le système et parcourt le carnet d'adresses local afin de s'envoyer par email sous forme de pièce jointe. Exemple de macro-ver: Melissa;
- Les vers d'emails. Aussi connu sous le nom de mass-mailing worm, ces vers se propagent de façon fulgurante sous forme de pièce jointe d'email. Ils utilisent les failles du lecteur d'email cible pour s'exécuter automatiquement lors de leur arrivée sur un ordinateur. Exemple de ver d'email: LoveLetter;
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 |
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é]
-
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;
- Le nom de groupe permet de regrouper des virus semblables au sein d'une même famille;
- 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;
- 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;
- 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:
-
La malveillance. La liste des malveillances possibles est la suivante: virus, trojan11, dropper, intended, kit et garbage;
- La plateforme. Ce champ définit le système d'exploitation, le logiciel ou le format de données cible;
- Le rang de variante majeure disparaît au profit de la taille du logiciel malveillant;
- La dévolution désigne les variantes qu'un virus crée de lui-même. En effet, certains virus12, et plus particulièrement les macrovirus, lors de leur phase de réplication, ne créent pas un clone exact d'eux-même, mais une variante ne contenant pas les mêmes routines que le virus père;
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:
-
Réduire la confusion du public dans le référencement des logiciels malveillants;
- Améliorer la communication entre les éditeurs de logiciels antivirus;
- 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 |
| |
|
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
This document was translated from LATEX by
HEVEA.