ARTICLE
Les machines sont des produits de notre être
et par là des fenêtres sur notre âme...
En contrôlant les machines que nous avons inventées,
et tout ce qu'on y entre, nous mesurons en direct l'état
de notre évolution.
Douglas Coupland (Microserfs)
Alors que le monde médical français se trouve impliqué
dans l'inexorable évolution de la société vers une
informatisation galopante, il semble souhaitable de faire le point sur
un phénomène émergeant associé : l'apparition
et l'évolution des virus informatiques. Infection, contamination,
épidémie, variant sont des termes fréquemment rencontrés
quand on étudie les virus informatiques. L'adoption de ce vocabulaire
suggère des similitudes avec leurs homonymes biologiques et entraîne
avec lui les grandes peurs qui hantent l'humanité depuis des millénaires
! L'usage du mot virus est-il justifié ?
Comme les virus biologiques, les virus informatiques :
- sont des fragments d'information codée, sous forme de mots
de 3 caractères pris dans un alphabet de 4 bases : A, T, C et G
pour les entités biologiques et de mots de 16 ou 32 bits (binary
units) 0 et 1 pour l'informatique ;
- se reproduisent en utilisant la « machinerie » existante
: cellule ou ordinateur, un virus ne peut donc pas se développer
hors de son hôte ;
- détournent à leur profit des ressources vitales et
de ce fait provoquent souvent différents désordres au sein
de l'organisme atteint.
Dans les deux cas on tente de lutter contre ces nuisances avec des
« outils » thérapeutiques et préventifs : vaccination
et drogues dans le cas des virus biologiques, stratégies de sauvegarde
et programmes antiviraux contre les virus informatiques.
Contrairement aux virus biologiques les virus informatiques :
- sont des créations humaines,
- n'évoluent pas spontanément.
Bien qu'ils n'attaquent pas l'homme, toute destruction d'informations
stockées sur un disque dur peut entraîner d'importantes décharges
d'adrénaline et des pertes non négligeables en temps et
en argent.
La ressemblance entre les deux phénomènes est donc frappante,
à tel point que les informaticiens chargés de la lutte
contre les virus utilisent de plus en plus fréquemment les outils
développés en biologie (programmes d'analyse phylogénétique,
recherche d'amorces spécifiques) [L1, P3] ou en médecine
(modèles épidémiologiques) [P5].
Épidémiologie
À la minute où sont écrites ces lignes, plus
de 18 000 souches virales ont été reconnues [L6]. Chaque
mois entre 300 à 400 virus apparaissent. Ces chiffres fournis par
les auteurs de logiciels antiviraux doivent être relativisés
sous peine de céder à une paranoïa aiguë. En effet,
une forte proportion des « nouveaux » virus ne sont que des
variants de virus existants. Or, seul un virus original a quelques chances
de franchir les barrières établies par les systèmes
antiviraux actuels. C'est ce qui s'est produit en 1995 avec l'apparition
du premier macrovirus prenant pour cible un type de document (les textes
Microsoft Word) considéré jusqu'à cette époque
comme ne pouvant être un vecteur d'infection.
Comme en médecine humaine, il existe des centres de références
pour surveiller l'évolution de la pathologie informatique. Les
principaux experts se retrouvent au sein d'une association appelée
le Caro (Computer Antivirus Research Organisation). C'est au sein
de cet organisme que sont établis les noms des virus. Le Caro est
constitué d'environ 30 membres qui échangent leurs informations
sur la fréquence d'infection des virus et sur l'émergence
de nouvelles souches. Il ressort de ces échanges la Wildlist
[L2] qui recense les virus in the wild (virus dans la nature).
Environ 40 personnes à travers le monde contribuent à la
Wildlist. Elles centralisent les informations recueillies au sein
de leurs pays respectifs.
D'autres organismes, Clusif [L5], Recif, Eicar, NCSA..., servent également
de lieu de rencontre pour les savants, experts et techniciens de la discipline.
Les sociétés éditrices de programmes antivirus diffusent
également de nombreuses informations [L2, L6].
En dépit du travail de ces institutions, il reste difficile
de disposer d'estimations fiables sur la prévalence des infections
virales, car toutes les composantes du système évoluent
de façon explosive : les techniques de programmation, les systèmes
d'exploitation, le taux d'équipement individuel et la courbe exponentielle
d'émergence de nouvelles souches virales. Une autre difficulté
est liée à l'hétérogénéité
de la population sensible. D'un côté les grandes sociétés,
où d'importantes équipes d'informaticiens surveillent la
mise à jour des moyens de défense antiviraux, et de l'autre,
l'individu isolé, peu au fait des risques qu'il encourt, qui échange
activement avec ses correspondants documents et programmes. Enfin, aucune
infection n'est, pour le moment, à déclaration obligatoire.
Malgré ces obstacles, des études épidémiologiques
ont pu être effectuées, parfois sur plusieurs années
[P1, P4]. En voici quelques conclusions :
La prévalence d'infection semble être en moyenne, par
trimestre, de 1 ordinateur sur 1 000. Cette estimation faite en 1991 [P4]
doit sans doute être révisée à la hausse, mais
pas de façon considérable.
Le taux de croissance des incidents infectieux est presque linéaire,
alors que le nombre de virus décrits est exponentiel. Tous les
virus n'ont pas le même taux de « réussite » et
la plupart ne sont impliqués que dans un nombre restreint, parfois
unique, de cas.
Là encore, les similitudes avec la dynamique des maladies humaines
est frappante, à tel point que les modèles de propagation
utilisés pour expliquer la diffusion mondiale du virus de l'immunodéficience
humaine (VIH) ont été appliqués pour décrire
les épidémies informatiques [P5] : les clusters (agrégats)
de population correspondent à des concentrations urbaines pour
le versant biologique, à des groupements d'ordinateurs connectés
dans les sociétés et les universités pour le versant
informatique, le mode de dissémination étant constitué
par les lignes aériennes internationales dans le premier cas et
par l'internet dans le second.
Pour un virus donné, l'évolution de la prévalence
suit dans le temps une courbe similaire à celle des maladies
humaines : initialement épidémique, elle régresse
ensuite, après l'identification du virus et la mise en place
des contre-mesures, pour s'éteindre ou se maintenir sous une
forme endémique [P4].
Éléments de taxonomie virale
La taxonomie des virus informatiques est actuellement dans l'état
où se trouvait la nomenclature des micro-organismes au début
de ce siècle : une horrible pagaille ! Bien que des organisations
comme le Caro s'efforcent de standardiser les dénominations, il
n'existe à l'heure actuelle aucune nomenclature universellement
reconnue, aucune règle systématique pour nommer les différents
programmes viraux recensés [L1]. Les noms donnés aux virus
proviennent généralement de fragments de texte inclus dans
leur code, de leur origine géographique supposée ou du lieu
de découverte (habitude également rencontrée chez
les microbiologistes) ; quand il s'agit de chiffres, ces derniers font
souvent référence à la taille du virus. Il n'y a
ni famille ni genre clairement définis, bien que de nombreuses
filiations aient été mises en évidence. Contrairement
à une idée reçue, les virus sont rarement programmés
par des « petits génies de l'informatique » [P2], développer
un virus est une tâche guère plus complexe que la fabrication
d'une bombe artisanale, et tout aussi productive. Les virus sont assez
souvent mal écrits et peuvent contenir des erreurs (des bogues)
plus nocives que le virus lui-même. Elles provoquent en particulier
des arrêts inopinés de l'ordinateur non souhaités
par leurs auteurs (un virus doit être le plus discret possible pour
réussir à se répandre). Il est simple de partir d'un
virus existant et d'effectuer quelques modifications mineures pour obtenir
un « nouveau » virus. Il existe même des programmes générateurs
de virus qui, avec parfois une interface fort conviviale, permettent de
fabriquer rapidement un virus sur mesure ! Il est évident que de
tels virus, mal optimisés, ont tous, au niveau de leur code, un
air de famille. Pour ces raisons, les virus en question n'ont aucune chance
de se répandre.
Avant tout il est nécessaire de distinguer les virus informatiques
d'autres nuisances informatiques (en anglais malware). Nous avons
indiqué dans l'introduction qu'une caractéristique majeure
des virus était leur aptitude à se multiplier. Nous mentionnerons
toutefois deux types de programmes non réplicatifs : les farces
(hoaxes), les chevaux de Troie (trojan horse). Les premières
sont des programmes introduits malicieusement dans votre ordinateur par
des « amis » pour perturber son fonctionnement. Reconfiguration
du clavier, mouvements erratiques de la souris, apparition d'impacts de
balle sur l'écran et bruits incongrus sont des manifestations habituelles
de ces mauvaises blagues. Elles sont généralement anodines
et la suppression du programme indésirable suffit pour que tout
rentre dans l'ordre. Les chevaux de Troie sont plus pervers ; comme leur
illustre ancêtre achéen, ils se présentent comme un
cadeau a priori intéressant : ce fut le cas par exemple
d'un programme qui donnait des informations sur l'épidémie
du sida. Une fois installés et lancés, ils effectuent une
action non souhaitée, généralement délétère
: infection par un virus ou déclenchement d'une bombe logique ravageant
le disque dur.
Il existe également des programmes autoreproducteurs capables
de se multiplier sans s'intégrer à un élément
constitutif de l'ordinateur (donc plus proches des parasites biologiques)
: les vers. Résidant en mémoire, ils se transmettent généralement
par les réseaux informatiques et concernent indirectement les micro-ordinateurs.
Pour utiliser un vocabulaire plus familier au lecteur, nous nous permettons
de proposer une nomenclature personnelle en familles et genres, essentiellement
basée sur des caractéristiques fonctionnelles (tableau
1) qui n'a et n'aura probablement jamais aucun caractère
officiel. Pour les noms d'espèces, c'est cependant la nomenclature
du Caro qui est conservée [L2]. Vous trouverez dans le tableau
1 une liste des virus les plus fréquemment rencontrés
dans chaque genre.
Nous pouvons d'emblée distinguer des familles établies
à partir du système d'exploitation :
Les Dosviridæ
Les Dosviridæ prennent pour cible les systèmes
MS-DOS et Windows et sont constitués de trois genres principaux
:
- Les bootivirus infectent les secteurs de démarrage
(en anglais boot sector infectors ou BSI). Les premiers
secteurs du support magnétique (disque dur ou disquette présente
dans le lecteur) sont lus à l'allumage de l'ordinateur et le code
qu'ils contiennent est exécuté. Ce code contient les informations
de configuration nécessaires au fonctionnement correct de la machine.
S'il contient un virus celui-ci va être chargé en mémoire
vive. Lors de l'accès à un autre support magnétique,
le virus viendra remplacer les secteurs de boot de ce dernier,
les secteurs originaux étant recopiés à un autre
emplacement. La nouvelle réplique virale est prête à
son tour à infecter d'autres supports magnétiques. L'avantage,
pour le virus, de ce mode de propagation réside dans le fait que
les disquettes restent encore le support de transfert le plus fréquemment
utilisé. Comme PC et compatibles ont la fâcheuse habitude
de tenter de démarrer prioritairement à partir du lecteur
de disquette, il suffit d'oublier une disquette infectée dans le
lecteur pour qu'au démarrage suivant le disque dur s'infecte à
son tour, et, par la suite, toutes les disquettes lues sur cet ordinateur.
Espèce type : Brain, reconnu en 1986. Il fut le premier
virus DOS. Largement répandu à cette époque, l'espèce
est aujourd'hui éteinte mais a donné lieu à une nombreuse
descendance. La longueur de la liste de ces virus actuellement actifs
démontre le large développement du genre.
- Les comexevirus (file virus) infectent les fichiers
exécutables ayant pour suffixe .COM ou .EXE. Ils s'implantent au
début du code du programme et sont donc lus lors de son lancement.
À ce stade, ils recherchent activement d'autres applications non
encore infectées et les contaminent (on parle alors d'infecteur
rapide : fast infector) ou bien ils s'installent en mémoire
et surveillent le lancement d'autres applications pour les infecter à
leur tour (infecteur lent : slow infector). Ce processus de contamination
est moins efficace que celui des BSI, puisqu'il nécessite, pour
se propager d'un ordinateur à l'autre, la copie (le piratage ?)
d'un programme infecté, acte moins fréquent qu'un simple
échange de disquette. Espèce type : Jerusalem, apparu
en août 1987 en Israël. Résidant en mémoire,
il provoque chaque vendredi 13 l'effacement des fichiers exécutés.
- Les multivirus (multi partite) combinent les propriétés
des deux précédents genres (infection des secteurs de
démarrage et des applications), ce qui les rend extrêmement
virulents. Espèce : type FLIP, isolé en juillet
1990.
Les Macviridæ
Les Macviridæ infectent les systèmes MacOS. Le
problème viral dans le monde Macintosh est moins aigu, ou du moins
l'était jusqu'à l'apparition des macrovirus. Il n'existe
à l'heure actuelle qu'une vingtaine de Macviridæ,
y compris les variants. Cela est probablement lié à la diffusion
plus restreinte de ce type d'ordinateur et à une accessibilité
plus limitée du système d'exploitation, ce dernier étant
d'autant plus complexe qu'il est totalement masqué à l'utilisateur.
Ces virus sont pour la plupart anodins, provoquant rarement des destructions
massives de données (ce qui ne veut pas dire qu'ils ne soient pas
gênants). Nous décrirons trois genres principaux :
- Les initiovirus utilisent le mécanisme des INIT, petits
programmes résidant en mémoire, chargés lors du démarrage
de l'ordinateur. Soixante fois par seconde le processeur exécute
ces programmes, pour afficher l'heure à l'écran, vérifier
les connexions ou l'état des périphériques. Les initiovirus
mettent ce mécanisme à profit pour effectuer leur tâche
occulte de multiplication. Espèce type : INIT_1884.
- Les applivirus sont comparables aux comexevirus du
monde PC. Espèce type : nVIR, découvert en 1987,
sur certaines configurations (présence de MacinTalk, une extension
du système qui permet de faire prononcer un texte en anglais) ;
il donne le message vocal « Don't panic ».
- Les desktopvirus étaient parmi les virus les plus répandus
du fait de leur mode de propagation. Ils infectent le fichier desktop,
invisible mais autrefois présent sur tous les supports magnétiques.
Ce fichier contient la description de l'apparence du bureau (position
et aspect des icônes de fichiers). Il est automatiquement lu lors
du démarrage de l'ordinateur ou de l'introduction d'une disquette,
le virus infecte alors tous les fichiers desktop qu'il rencontre. Les
systèmes 7 et postérieurs n'utilisent pas la même
forme de fichier desktop et sont réfractaires à l'infection,
mais ils peuvent se comporter comme des « porteurs sains »,
jouant le rôle de vecteur pour infecter des disquettes initialisées
sous système 6 ou antérieur. Ils sont facilement éradiqués
par la simple purge du fichier desktop (reconstruction du bureau). Espèce
type : WDEF, qui a donné naissance à plusieurs variants.
Les Macroviridæ
Les Macroviridæ, ou macrovirus, représentent la
famille de virus la plus fréquemment rencontrée à
l'heure actuelle (près de la moitié des infections recensées
[L2]). Ils contaminent des documents bureautiques (textes et feuilles
de calcul) sur toutes plates-formes confondues, PC et Mac. Le terme de
macrovirus ne fait pas référence à une taille plus
importante des virus, mais au fait qu'ils utilisent un langage de macro-instructions
bien connu des utilisateurs de tableurs.
Ils infectent soit une liste d'instructions (les macros), soit les
documents. Ils contaminent généralement l'environnement
de travail par le biais de macros automatiques (AutoOpen, AutoClose,
AutoExec, etc.) ou par celles appelées pour enregistrer un document
(FileSave, FileSaveAs). L'infection des fichiers modèles (template
files), point de départ de nouveaux documents, est également
très efficace. Les langages utilisés pour écrire
ces virus sont visual basic for applications (VBA) ou wordbasic
(WB). Ils provoquent, par détournement de macros standard,
le remplacement de menus ou la redéfinition de boutons ou de
touches fonction. Ils sont parfois dépendants du langage national
(un virus anglo-saxon n'infectera pas un logiciel français).
Ils se propagent sur toutes les plates-formes et on peut distinguer
autant de genres qu'il existe de logiciels bureautiques concernés
(Word, Excel, Ami Pro, Lotus 1-2-3, Lotus Notes). Espèce type
: Concept isolé en 1995.
Cycle de réplication
Contrairement aux virus animaux, les virus informatiques n'existent
pas sous forme libre. L'infection se fait par un support informatique
qui doit être introduit dans l'ordinateur sain et activé
par l'utilisateur. Ce support peut être une disquette, une application
ou un document.
Au démarrage de l'ordinateur à partir de la disquette,
au lancement de l'application ou à l'ouverture du document, le
code viral présent est chargé dans la mémoire vive
de l'ordinateur. Les instructions qui le composent sont exécutées
par le microprocesseur. La réplication s'effectue immédiatement
dans une nouvelle cible, où le virus reste en mémoire en
tant que programme résidant. Il surveille l'activité de
l'ordinateur pour recopier le code viral lors de l'introduction d'une
nouvelle disquette ou du lancement d'une autre application.
La figure 1 décrit
un exemple de contamination d'une application par un comexevirus. Ce
dernier commence par dupliquer les premières instructions de
l'application à la fin de celle-ci. La taille de la section copiée
est égale à la taille du génome viral. Une instruction
de saut est également ajoutée pour rétablir la
continuité logique de la lecture du code. Dans une seconde phase,
la séquence virale vient remplacer la séquence recopiée
et se termine par une autre instruction de saut pointant vers la copie
précédemment effectuée. Lors de l'exécution
du programme infecté (figure
2), le code viral est lu en premier, puis le code originel de
l'application semble s'exécuter normalement sans que l'utilisateur
puisse détecter la modification. L'accroissement de la taille
du programme, la présence d'une séquence exogène
en début de programme et les séquences de saut seront
des indices qu'utiliseront les programmes antivirus pour détecter
l'infection.
Pouvoir pathogène
Un virus n'est qu'une suite d'instructions exécutables. Il
ne pourra jamais altérer le matériel, mais, cette limitation
mise à part, il peut faire tout ce que fait un programme. Très
souvent, le virus se contente de se multiplier, mais, en dehors de cette
tâche vitale (pour lui !), il peut également effectuer une
autre action appelée la charge virale (payload) ; l'expression
charge virale s'entend ici dans son sens pyrotechnique, elle n'a aucun
rapport avec le nombre de virus présents sur le système.
Lorsque le virus fait exploser sa charge, il peut initialiser le disque
dur, compresser des fichiers, les encrypter ou les renommer. Il peut se
manifester par des signes plus immédiats (parfois avec un humour
rarement apprécié par la victime [L4]) comme afficher des
messages (« you get a virus arfh, arfh »), faire rebondir
une balle à l'écran, émettre par le haut-parleur
des messages moqueurs (« don't panic »). De telles manifestations
restent rares, car la place disponible pour un virus est par nature très
limitée.
Le payload est retardé par rapport à l'infection,
ce délai est nécessaire au virus pour lui laisser le temps
de proliférer avant de se manifester au grand jour. L'action
doit être déclenchée par un événement
particulier (trigger) : une date (les vendredis 13 sont très
prisés, ainsi que les dates anniversaires d'événements
politiques divers) ou un nombre déterminé d'actes de l'utilisateur
(nombre de démarrages de l'ordinateur, ou de lancements d'une
application infectée).
Prévention et
thérapeutique
Bien que très médiatisés, les virus ne sont qu'un
des problèmes qui peuvent affecter le fonctionnement d'un ordinateur
(catastrophes naturelles, foudre, incendies, inondations ou, plus banalement,
coupures de courant). Le moyen principal de lutte contre les virus est
celui qui sera également efficace contre tous ces autres problèmes
: la sauvegarde fréquente du disque dur. Avant de faire
l'acquisition d'un disque de 9 giga octets (neuf milliards de caractères
!), posez-vous toujours la question (et posez-la à votre fournisseur)
: « Comment vais-je sauvegarder tout cela ? ». Une fois ce problème
résolu, il est bon de vérifier l'absence de virus sur le
disque dur avant de le sauvegarder.
Il existe des gestes simples qui permettent de limiter les risques
d'infection : sur PC, les BIOS (basic input output systeme) récents
permettent d'interdire le démarrage à partir d'une disquette,
évitant ainsi toute contamination par bootivirus (BSI).
On peut utiliser sans risque le courrier électronique. Ignorez
les messages mettant en garde contre des virus tels qu'Irina, Good Times,
Deeyenda, Ghost ou Penpal Greetings ! ce sont des farces (hoaxes)
[L7]. Il n'existe actuellement aucun virus susceptible de contaminer un
ordinateur directement par la lecture d'un courrier électronique.
En revanche, il n'en est pas de même pour les pièces jointes,
tout document Word peut contenir des macrovirus. Une bonne précaution
consiste à sélectionner dans les options du traitement de
texte celle qui demande de ne pas lancer sans avertissement les macros
automatiques. Enfin, avant d'ouvrir tout document provenant d'une source
extérieure (y compris d'amis n'ayant pas lu cet article !), il
faut vérifier son intégrité à l'aide d'un
programme antivirus. Ce type de programme est essentiel pour la bonne
santé d'un ordinateur car aucune source n'est sûre. Qu'importe
celui choisi, il en faut un, correctement installé et régulièrement
mis à jour.
Le but de ces programmes est triple : signaler la présence
d'un virus après (ou mieux avant) l'infection, stopper la contamination
en cours en éradiquant le virus et, si possible, restaurer les
fichiers dans leur état d'origine.
Ces programmes antivirus sont nombreux. On en trouve actuellement
plus d'une dizaine sur le marché. Cette profusion montre l'intense
concurrence qui règne dans ce domaine. Cette pléthore n'a
pas que des aspects négatifs. Si un programme antivirus dominait
le marché, il serait immédiatement la cible de toutes les
stratégies offensives des virus visant à le contourner,
voire à le rendre totalement inopérant. C'est ce qui a failli
se produire quand la société Microsoft a fourni, avec la
version 5 de MS-DOS, un antivirus intégré au système
d'exploitation. Dans les versions suivantes de ses systèmes d'exploitation,
Microsoft n'a pas renouvelé l'expérience, se bornant à
les rendre (sans trop de succès) moins sensibles aux attaques virales.
Pour effectuer leur tâche, les programmes antiviraux peuvent
déployer plusieurs stratégies :
- Les scanners disposent d'une bibliothèque de «
signatures » virales (analogues à des sondes génétiques)
et balayent le disque à la recherche de ces fragments de codes
spécifiques. Ce sont des outils de détection fiables permettant
une identification précise des virus en cause avant l'infection
et déclenchant peu de « faux positifs ». Il existe cependant
plusieurs inconvénients à l'utilisation de cette technique
: à l'apparition d'un nouveau virus (ou d'un variant d'un virus
préexistant « muté » au niveau de la signature)
le système sera incapable de déceler la présence
de ce nouvel « antigène ». Les programmes antivirus utilisant
cette méthode doivent donc être régulièrement
mis à jour, ce qui se fait actuellement sur les sites Internet
des fournisseurs. Les listes de signatures s'allongent cependant avec
le temps et le processus de détection devient de plus en plus long
! Certains virus dits « polymorphes » échappent la plupart
du temps aux scanners : ces virus au repos sont encryptés à
l'aide d'une clé aléatoire. Lors de son activation, ils
commencent par se décrypter pour reconstituer un code opérationnel.
Ils se reproduisent puis, en fin de réplication, ils s'encryptent
à nouveau en utilisant une nouvelle clé. Ils présentent
alors une séquence différente de la séquence initiale.
La seule portion de code qui reste immuable est donc l'unité de
cryptage qui utilise une suite d'instructions que l'on peut trouver dans
des programmes parfaitement normaux et donc peu susceptibles de fournir
une signature spécifique.
- Les vérificateurs d'intégrité (integrity
checkers) constituent une autre méthode de détection
virale. Si des indices globaux décrivant la structure des fichiers
(analogue au GC % d'un organisme) ont été préalablement
consignés sur le disque, une modification liée à
l'infection sera détectée. Cette méthode est très
sensible, peu de virus échappent à ce mode de détection.
Si on ne peut, par cette méthode, identifier le virus en cause,
les informations de description de fichier permettent assez souvent de
restaurer les fichiers atteints. Les vérificateurs d'intégrité
présentent cependant certains inconvénients. Ils sont peu
spécifiques, certains programmes normaux modifient d'eux-mêmes
leur code, provoquant de fausses alertes. L'enregistrement des fichiers
de description du disque doit être effectué avant l'infection
virale. La détection ne s'effectue qu'après l'atteinte virale.
Enfin, cette technique est totalement inapplicable pour la détection
des macrovirus car les fichiers cibles (des documents) sont par nature
modifiés très fréquemment par l'utilisateur.
- La méthode de recherche heuristique est plus récente,
son but est de trouver dans les secteurs de démarrage, en tête
des fichiers exécutables (suffixe COM ou EXE) et dans les fichiers
de macrocommandes, une suite d'instructions visant à exécuter
des actions suspectes, telles que : une demande d'allocation mémoire
n'utilisant pas les procédures standard (ce comportement est typique
de certains virus dits « furtifs » pour cacher leur présence
en mémoire), des instructions de saut répétées
au lancement d'une application (figure
2), une date ou une heure de modification de fichier incorrecte
(la dernière modification effectuée à l'improbable
61 e seconde marque le fichier comme déjà infecté
et évite les infections multiples), une procédure de recherche
et d'accès à d'autres fichiers exécutables dans le
but de les infecter, l'interception du lancement d'autres logiciels (ce
comportement n'est pas toujours le signe d'une activité virale
: certains logiciels normaux font cela, par exemple des programmes...
antiviraux !). La recherche heuristique est une des techniques les plus
prometteuses. Elle ne nécessite pas de mise à jour (sauf
en cas d'apparition d'un type de virus original comme ce fut le cas pour
les macrovirus) et elle peut se révéler suffisante pour
protéger un ordinateur. De nombreux antivirus l'utilisent en association
avec les autres techniques de détection.
- La méthode des leurres (decoys), bien qu'assez rarement
utilisée, est cependant extrêmement efficace pour donner
l'alerte. Les leurres sont des fichiers créés par l'antivirus
et ont pour seul but de présenter une proie tentante à un
virus éventuel. Ces fichiers, totalement inertes, ne seront jamais
modifiés sauf s'ils sont infectés par un virus. L'antivirus
n'a plus qu'à surveiller ses pièges et à donner l'alerte
si l'un d'eux est altéré. Cette méthode, comme la
méthode heuristique, est capable de détecter des virus inconnus
et ne nécessite pas de mise à jour.
Il est à noter que la plupart des antivirus combinent plusieurs
des techniques que nous venons de décrire.
À la suite de la détection du virus, la dernière
opération que doit exécuter le programme antivirus est
son éradication. Deux méthodes peuvent être appliquées.
La méthode « vétérinaire » consiste à
détruire les fichiers contaminés. C'est probablement la
plus sûre quand on dispose de copies saines des fichiers infectés.
La seconde méthode, plus proche de la médecine humaine,
tente de restaurer les fichiers atteints. Cette restauration ne peut
se faire que si l'on connaît le mécanisme d'action du virus.
Lorsque le virus a été positivement identifié,
par exemple par sa signature, l'antivirus est alors censé savoir
ce qu'il faut faire pour rétablir les fichiers dans leur état
originel. Certains antivirus sont également capables d'analyser
le code du virus pour en comprendre le mode de fonctionnement et effectuer
les opérations inverses.
Déjà demain
En cette fin du xxe siècle les hommes ont trouvé
en l'informatique un extraordinaire outil pour réaliser ce rêve
immémorial : la création de la vie (ou plus modestement
de quelque chose qui y ressemble). Ils disposent d'une matière
infiniment plus souple que ne l'était la pierre pour Pygmalion,
les rouages pour Vaucanson ou les morceaux de cadavres du docteur Frankenstein.
Cette soif de création, associée à la soif de détruire
(le côté obscur de la force ?) sont les deux moteurs qui
font qu'il y aura toujours des individus pour programmer des virus.
On peut déjà craindre l'apparition de deux nouveaux
genres viraux : les Activiridæ et les Javaviridæ.
Ils infecteront les pages HTML par l'intermédiaire de composants
activX (plates-formes Wintel) ou d'applets Java (sur toutes les plates-formes).
Il suffira alors de consulter une page sur le Ouèb (en anglais
Web) pour infecter son ordinateur et éventuellement tous les documents
au format HTML présents sur les disques. Ces virus n'existent pas
encore, mais le pouvoir potentiel de pénétration qu'ils
représentent en font la menace de demain. Tous les experts s'accordent
pour reconnaître que les composants activX représentent un
risque majeur, les composants (petits programmes initialement prévus
pour animer une page sur Internet) sont directement liés au système
d'exploitation, ils peuvent lire et écrire sur le disque dur local
et lancer des programmes. Le cas des applets développés
en Java est différent. Ils s'exécutent au sein d'une machine
virtuelle, un pseudo-ordinateur aux fonctions limitées et en théorie
complètement dissocié de l'ordinateur hôte. Un applet
Java ne peut ni lire ni écrire sur votre disque. Malgré
tout de très rares failles de sécurité ont été
découvertes et pourraient être mises à profit pour
créer des virus. Des programmes antivirus se prévalent déjà
de pouvoir parer ces menaces encore inexistantes !
L'ingénierie virale n'a pas que des aspects négatifs,
certains programmes parfaitement licites et utiles ont des comportements
similaires à ceux des virus et sont parfois signalés comme
tels par les programmes antivirus. Certains systèmes de protection
et de confidentialité « infectent » tous les fichiers
à protéger pour les rendre inviolables sans l'introduction
d'un mot de passe. Des agents se propagent dans l'Internet à la
manière des vers (mais de façon moins anarchique) pour rapporter
à leur propriétaire les adresses de sites contenant des
informations qu'ils ont été dressés à trouver.
Enfin certains auteurs [P6] espèrent que les virus informatiques
seront le germe d'une véritable vie artificielle (en anglais AL)
et qu'ils pourront nous aider à modéliser les phénomènes
biologiques aussi complexes que mal connus de l'évolution. L'avenir
le dira, et peut-être n'aurons-nous pas longtemps à attendre
!
REFERENCES
P1. Dataquest. 1991. Computer Virus Market Survey for National Computer
Security Association. San Jose.
P2. Gordon S. The generic virus writer. Proceedings of the Fourth International
Virus Bulletin Conference. Jersey, UK, septembre 1994.
P3. Kephart JO, Sorkin GB, Arnold WC, et al. Biologically inspired
defenses against computer viruses. Proceedings of the 14th International
Joint Conference on Artificial Intelligence, Montreal, August 20-173
; 25, 1995. Distributed by Morgan Kaufmann Publishers, Inc.
P4. Kephart JO, White SR. Measuring and modeling computer virus prevalence.
Proceedings of the 1993 IEEE Computer Society Symposium on Research
in Security and Privacy. Oakland, California, May 24-26, 1993 : 2-15.
P5. Kephart JO, White SR. Directed-graph epidemiological models of
computer viruses, Proceedings of the 1991 IEEE Computer Society Symposium
on Research in Security and Privacy, Oakland, California, May 20-22,
1991 : 343-59.
P6. Ludwig MA. Mutation d'un virus. Édition Addison-Wesley France,
1994.
Ces liens ont été vérifiés avant la publication
de cet article. Mais, compte tenu de l'extrême mobilité
du Ouèb (WEB), nous ne pouvons garantir leur persistance.
L1. http://pages.pomona.edu/~dhull/vclassif.htm : un article sur une
tentative de classification des virus informatiques.
L2. http://www.av.ibm.com/InsideTheLab/Monitor/Wildlist : les mises
à jour mensuelles de la Wildlist.
L3. http://www.cis.ohio-state.edu/hypertext/faq/usenet/computer-virus/top.html
: toutes les réponses aux questions que vous vous posez sur les
virus informatiques.
L4. http://www.club.innet.be/~ewillems/payload.htm : quand les virus
montrent leur nez, une galerie de portrait.
L5. http://www.clusif.asso.fr/img_nav/infovirus.htm : le Clusif (Club
industriel de sécurité informatique français) donne
des informations sur les virus nouveaux, sur les sociétés
qui proposent des moyens de lutte.
L6. http://www.drsolomon.com/vircen/stats.cfm : un graphique en ligne
du nombre de souches virales recensées (pour faire peur).
L7. http://www.kumite.com/myths/home.htm : tout sur
les virus mythiques et autres légendes.
|