|
Cours pratique sur les virus
Ce qui suit est une
traduction partielle des Frequently
Asked Questions (Foire aux questions) du groupe de discussion
Virus-L/comp.virus.
Q : Qu'est-ce qu'un virus informatique ?
Q : Qu'est-ce qu'un ver ?
Q : Qu'est-ce
qu'un cheval de Troie ?
Q : Quels sont les principaux
types de virus ?
Q : Qu'est-ce qu'un virus
furtif ?
Q : Qu'est-ce qu'un virus
polymorphe ?
Q : Qu'est-ce qu'un infecteur lent et un
infecteur rapide ?
Q : Qu'est-ce qu'un infecteur
occasionnel ?
Q : Qu'est-ce qu'un virus
compagnon ?
Q : Qu'est-ce qu'un virus
blindé ?
Q : Qu'est-ce qu'un macro virus ?
Q : Qu'est-ce qu'un faux virus ?
Q :
Glossaire
Q : Qu'est-ce qu'un virus informatique ?
A: Selon la
définition bien connue de Fred Cohen, un virus informatique est un petit
programme capable d'infecter et de modifier d'autres programmes en se dupliquant
(le cas échéant de façon évolutive) sur des disques informatiques. Pour mériter
le nom de "virus", ce programme ne doit pas nécessairement endommager les
fichiers de façon irrémédiable (les supprimer ou les corrompre). Cependant, la
définition de Cohen (par exemple, pour les termes "programme" et "modifier") est
légèrement différente de celle des développeurs d'anti-virus ; il place dans
cette catégorie des programmes que la plupart d'entre nous ne considèrent pas
comme des virus.
Nombreux sont ceux
qui utilisent ce terme de façon générale pour désigner tout programme qui tente
de dissimuler ses fonctions (pernicieuses) et de se reproduire sur le plus grand
nombre d'ordinateurs possible. (Voir la définition de "Cheval de Troie".) Vous
devez savoir que les capacités d'un "programme" de contamination peut dépasser
largement les apparences - soyez prudent sur ce que peut faire ou ne pas faire
un virus !
Ces "plaisanteries"
sont très graves ; elles se propagent plus rapidement qu'elles ne s'arrêtent et
le plus inoffensif des virus peut être fatal. Par exemple, un virus qui bloque
le fonctionnement de votre ordinateur peut avoir des conséquences fatales en
milieu hospitalier. Les développeurs de virus eux-mêmes ne pourraient pas les
stopper, même s'ils le voulaient ; il est impératif que les utilisateurs
d'ordinateurs soient sensibilisés aux virus et ne restent plus dans l'ignorance
et l'ambivalence qui ont favorisé leur expansion.
Q : Qu'est-ce qu'un ver ?
Un ver informatique
est un programme complet (ou un ensemble de programmes) qui est capable de
répandre des copies fonctionnelles de lui-même (ou de ses segments) sur d'autres
systèmes informatiques (en règle générale via un réseau). Contrairement aux
virus, les vers n'ont pas besoin de programme hôte. Il existe deux types de
vers : les vers de station de travail et les vers de réseau.
Les vers de station
de travail sont entièrement contenus dans le système sur lequel ils tournent et
ils utilisent les connexions réseau pour se copier sur d'autres machines. Ceux
qui se terminent après s'être copiés sur un autre système (il n'y a donc qu'un
seul exemplaire du ver sur le réseau à un moment donné) sont parfois appelés
"lapins".
Les vers de réseau
sont constitués de plusieurs parties (ou "segments"), chacune tournant sur des
machines différentes (qui exécutent le cas échéant des actions différentes) et
utilisant le réseau pour communiquer : par exemple, pour propager un segment
d'une machine à l'autre. Les vers de réseau possédant un segment principal qui
coordonne les actions des autres segments sont parfois appelés
"pieuvres".
Q : Qu'est-ce qu'un cheval de Troie ?
R : Il s'agit d'un
programme qui fait quelque chose de non documenté, mais voulu par le
programmeur, dont l'utilisateur ne voudrait pas s'il en était informé. Pour
certains, le virus est un cas particulier de cheval de Troie, c'est-à-dire un
cheval de Troie capable de se propager à d'autres programmes (et donc de les
transformer, à leur tour, en chevaux de Troie). Pour d'autres, un virus qui ne
cause aucun dommage délibéré (autre que sa simple reproduction) n'est pas un
cheval de Troie. Finalement, malgré les diverses définitions, beaucoup utilisent
le terme "cheval de Troie" pour qualifier uniquement les programmes malveillants
qui *ne se reproduisent pas*, de sorte que la catégorie des chevaux de Troie et
celle des virus sont des catégories distinctes.
Q : Quels sont les principaux types de virus ?
A: En règle
générale, on distingue deux catégories de virus. La première catégorie regroupe
les virus qui infectent les fichiers et dont l'action consiste à se lier à des
programmes normaux. Ces virus infectent généralement les programmes .COM et/ou
.EXE de façon arbitraire, mais certains peuvent également infecter des
programmes qui requièrent une exécution, tels que les fichiers .SYS, .OVL, .PRG,
et .MNU.
Les virus de
fichiers peuvent avoir une action directe ou être résidents. Le virus à action
directe choisit un ou plusieurs programmes et il les infecte chaque fois que le
programme qui le contient est exécuté. Le virus résident se cache quelque part
dans la mémoire la première fois qu'un programme infecté est exécuté, puis il
infecte d'autres programmes au moment où *ils* sont exécutés (c'est le cas de
Jérusalem) ou lorsque certaines conditions sont remplies. "Vienna" est un virus
à action directe. La plupart des virus sont résidents.
La deuxième
catégorie de virus regroupe les virus qui infectent le système ou
l'enregistrement de démarrage : ces virus qui infectent le code exécutable des
zones système d'un disque ne sont pas des fichiers ordinaires. Sur les systèmes
DOS, il existe les virus ordinaires qui n'infectent que le secteur d'amorçage du
DOS et les virus MBR qui infectent l'enregistrement de démarrage principal sur
les disques fixes et le secteur d'amorçage du DOS sur les disquettes. "Brain",
"Stoned", "Empire", "Azusa" et "Michelangelo" en sont des exemples. Ces virus
sont toujours résidents.
Enfin, certains
virus sont capables d'infecter à la fois des fichiers et des secteurs système
(par exemple, le virus Tequila). Ces virus sont appelés "multiformes" (ce nom
fait l'objet de nombreuses critiques) ou "boot-and-file" (secteur d'amorçage et
infection de fichiers).
Les virus de
système de fichier ou de cluster (exemple, Dir-II) modifient les entrées des
tables de répertoires de telle sorte que le virus est chargé et exécuté avant
que le programme voulu ne le soit. Le programme n'est pas altéré, mais sa
référence dans le répertoire est modifiée. Certains considèrent ces virus comme
une troisième catégorie à part entière alors que d'autres considèrent qu'ils
sont une sous-catégorie de virus.
Q : Qu'est-ce qu'un virus furtif ?
R : Un virus furtif
est un virus qui dissimule les modifications apportées aux fichiers ou à
l'enregistrement de démarrage ; il surveille les appels aux fonctions de lecture
des fichiers ou des blocs physiques de supports de stockage et il falsifie les
résultats renvoyés par ces fonctions ; les programmes qui tentent alors de lire
ces zones voient la forme non infectée de l'original du fichier au lieu de la
forme réelle infectée. Cette méthode permet au virus de ne pas être détecté par
les programmes anti-virus qui recherchent les modifications éventuelles
apportées aux fichiers par les virus. Néanmoins, pour que cela soit possible, le
virus doit être résident dans la mémoire lors de l'exécution du programme
anti-virus.
Exemple : Le tout
premier virus de DOS, "Brain", qui se greffe sur le secteur d'amorçage,
surveille les entrées/sorties du disque physique et redirige toute tentative de
lecture d'un secteur d'amorçage infecté par "Brain" vers la zone du disque où se
trouve le secteur d'amorçage d'origine. Par la suite, les virus "Number of the
Beast" et "Frodo" ont également utilisé cette technique.
Contre-mesures :
Pour qu'aucun virus ne puisse falsifier les résultats, il est donc nécessaire de
disposer d'un système "sain". Avant toute recherche de virus, il convient
d'installer le système à partir d'une copie saine et fiable de l'original ;
c'est la règle d'or de la profession. Avec DOS, (1) démarrez le système à partir
des disquettes DOS originales (c'est-à-dire les disquettes démarrage/programme
provenant d'un fournisseur connu et protégées en écriture depuis leur création),
(2) utilisez uniquement les utilitaires des disquettes originales tant que la
vérification des virus n'a pas été effectuée.
Q : Qu'est-ce qu'un virus polymorphe ?
R : Un virus
polymorphe est un virus qui produit différentes copies de lui-même (mais qui
restent opérationnelles) dans l'espoir que les anti-virus ne seront pas capables
d'en détecter toutes les instances.
L'auto-cryptage à
clé variable est une méthode qui permet d'échapper aux anti-virus qui se
réfèrent à une base de signatures de virus connus ; ces virus (Cascade, par
exemple) n'entrent pas dans la catégorie des virus polymorphes car leur code de
cryptage est toujours le même et ils peuvent donc être utilisés comme signature
de virus même par les anti-virus les plus simples (excepté si un autre virus ou
programme utilise la même routine de cryptage).
Certains virus
polymorphes sont créés à partir d'un schéma de cryptage nécessitant différentes
routines : une seule de ces routines est pleinement visible dans chaque instance
du virus (c'est le cas du virus "Whale"). Les anti-virus se référant aux
signatures doivent exploiter plusieurs signatures (une pour chaque méthode de
cryptage) pour identifier un virus de ce type de façon fiable.
Des virus
polymorphes plus sophistiqués (V2P6, par exemple) modifient, dans leurs copies,
la séquence des instructions : ils les entremêlent d'instructions "parasites"
(par exemple, une instruction "No Operation" ou une instruction de chargement
d'un registre non utilisé avec une valeur arbitraire), interchangent des
instructions indépendantes ou même utilisent des séquences d'instructions
variées ayant des effets identiques (par exemple, "Subtract A from A" et "Move 0
to A"). Un anti-virus simple se référant aux signatures n'est pas capable
d'identifier ce type de virus de façon fiable ; le développement d'un "moteur
d'analyse" sophistiqué serait nécessaire, après des recherches approfondies
effectuées sur le virus concerné.
Le virus polymorphe
le plus sophistiqué détecté à ce jour est le "moteur de mutation" mis au point
par un Bulgare se faisant appeler "Dark Avenger" (le vengeur noir). Il se
présente sous la forme d'un module objet. Il est possible de transformer
n'importe quel virus en virus polymorphe en ajoutant certains appels au code
source assembleur et en les reliant aux modules du moteur de mutation et du
générateur de nombres aléatoires.
L'apparition des
virus polymorphes a rendu leur détection de plus en plus difficile et coûteuse ;
en effet, l'ajout de chaînes de recherche de plus en plus nombreuses à des
programmes anti-virus simples ne peut être une méthode adéquate de traitement de
ces virus.
Q : Qu'est-ce qu'un infecteur lent et un infecteur
rapide ?
R : Un virus à
infection de fichier typique (comme Jérusalem) se duplique dans la mémoire
lorsque le programme qu'il a infecté est exécuté, puis il infecte d'autres
programmes lorsqu'eux-mêmes sont exécutés.
Un infecteur rapide
est un virus qui, lorsqu'il est activé en mémoire, infecte non seulement les
programmes qui sont exécutés, mais également ceux qui sont simplement ouverts.
Par conséquent, si on lance une analyse anti-virus ou un vérificateur
d'intégrité, tous les programmes (ou tout au moins un grand nombre d'entre eux)
sont infectés en même temps. Les virus "Dark Avenger" et "Frodo" en sont des
exemples.
Le terme "infecteur
lent" fait référence aux virus qui, s'ils sont activés en mémoire, n'infectent
des fichiers que s'ils sont modifiés (ou créés). Le but est de faire croire aux
utilisateurs de vérificateurs d'intégrité que les rapports de modification
(produits par le vérificateur) sont dus à des motifs légitimes. "Darth Vader"
est un exemple de virus lent.
Q : Qu'est-ce qu'un infecteur occasionnel ?
R : Les infecteurs
occasionnels sont des virus qui infectent de manière sporadique (par exemple, un
fichier exécuté sur dix ou seuls les fichiers dont la taille est comprise dans
une certaine limite, etc.). En infectant moins souvent, ces virus réduisent la
probabilité d'être découverts par l'utilisateur.
Q : Qu'est-ce qu'un virus compagnon ?
R : Un virus
compagnon est un virus qui, au lieu de modifier un fichier existant, crée un
nouveau programme qui est exécuté (à l'insu de l'utilisateur) par l'interpréteur
de ligne de commande au lieu du programme voulu. Le nouveau programme exécute
ensuite le programme original et tout paraît normal. Ceci est généralement
accompli en créant un fichier .COM infecté portant le même nom qu'un fichier
.EXE existant. Les vérificateurs d'intégrité qui ne cherchent que les
*modifications* apportées aux fichiers existants ne détectent pas ce type de
virus.
(Tous les
informaticiens ne considèrent pas ce type de code malveillant comme un virus car
il ne modifie pas les fichiers existants.)
Q : Qu'est-ce qu'un virus blindé ?
R : Un virus blindé
est un virus qui utilise des astuces spéciales pour que son dépistage, son
désassemblage et la compréhension de son code soient plus difficiles. "Whale"
est un bon exemple de virus blindé.
Q : Qu'est-ce qu'un macro virus ?
R : De nombreuses
applications permettent de créer des macros. Une macro correspond à une série de
commandes qui servent à exécuter une tâche spécifique dans une application. Ces
commandes peuvent être enregistrées sous forme de combinaisons de touches ou
dans un langage macro spécial.
Un macro virus est
un virus qui se propage uniquement via un type de programme, généralement
Microsoft Word ou Microsoft Excel. Ces programmes contiennent en effet des
macros qui s'exécutent automatiquement à l'ouverture d'un document ou d'une
feuille de calcul. En même temps qu'ils infectent les macros auto-activables,
les macro virus infectent le modèle de macro global qui s'exécute chaque fois
que vous lancez le programme. Donc, une fois que le modèle de macro global est
infecté, chaque fichier ouvert par la suite est contaminé et le virus se
propage.
Q : Qu'est-ce qu'un faux virus ?
R : Comme si les
virus normaux de suffisaient pas, il y a des gens qui ont le temps de créer des
faux virus. Ces virus canulars apparaissent généralement sous la forme d'un
message électronique décrivant un virus particulier qui n'existe pas. Ces
messages annoncent toujours le même scénario et expliquent que si vous
téléchargez un message électronique ayant un objet particulier, votre disque dur
sera effacé (ce qui est impossible parce que le texte d'un message ne peut pas
héberger un virus).
Ces messages ont
pour seul objectif de paniquer les utilisateurs. L'auteur envoie le message
d'alerte et demande au lecteur de le faire suivre à ses connaissances. Le
message agit ensuite comme une chaîne de lettres, il se propage sur Internet
lorsque les utilisateurs le reçoivent et innocemment le transfèrent à d'autres
personnes. "Good Times" est un pseudo virus type -- il a été créé en 1994 et
depuis cette date il a fait plusieurs fois le tour de la planète. La meilleure
chose à faire lorsque vous recevez ce type de message est de l'ignorer et de le
supprimer, puis de vous protéger avec votre logiciel anti-virus et de bonnes
pratiques informatiques.
Q : Glossaire
Virus de secteur
d'amorçage = Virus qui agit lorsque l'ordinateur démarre (contrairement au
virus de fichier). Les virus de secteur d'amorçage peuvent infecter les
enregistrements de démarrage des disques durs et des disquettes. Ils remplacent
l'enregistrement de démarrage existant par leur propre code. Le virus s'exécute
lorsque le système démarre à partir du disque dur ou de la disquette et il
installe son propre code dans la mémoire du système et peut ainsi infecter
ultérieurement d'autres disques durs ou disquettes.
CMOS
(Complementary Metal Oxide Semiconductor) = Semi-conducteur complémentaire à
métal-oxyde : Zone de mémoire utilisée sur les PC AT et les PC plus puissants
pour le stockage des informations. La RAM CMOS (ci-dessous) était utilisée à
l'origine pour conserver les informations de date et d'heure lorsque le PC était
éteint. La mémoire CMOS n'est pas dans l'espace d'adressage normal de l'unité
centrale et ne peut pas être exécutée. Un virus peut placer des données dans la
mémoire CMOS ou la corrompre, mais il ne peut pas s'y loger.
DBS (DOS
Boot Sector) = Secteur d'amorçage du DOS : Premier secteur d'une partition DOS
logique dans un disque dur ou premier secteur absolu d'un disquette. Ce secteur
contient le code de démarrage qui permet de charger le DOS. Certains virus de
secteur d'amorçage infectent plutôt le DBS (secteur d'amorçage du DOS) que le
MBR (enregistrement de démarrage principal) lorsqu'ils contaminent des disques
durs.
DOS (Disk
Operating System) = Système d'exploitation du disque. Nous utilisons le terme
"DOS" pour désigner les systèmes MS-DOS, PC-DOS ou DR DOS pour les PC et
compatibles, même s'il existe des systèmes d'exploitation appelés "DOS" sur
d'autres machines.
Virus à
infection de fichiers = Virus qui infecte les fichiers exécutables. Il
prend le contrôle à la première exécution du programme.
MBR (Master
Boot Record) = Enregistrement de démarrage principal : Enregistrement de
démarrage principal (piste 0, tête 0, secteur 1) sur un disque dur de PC, qui
contient généralement la table de partition (sur certains PC, il contient
simplement un secteur d'amorçage). Ce n'est pas la même chose que le premier
secteur du DOS (secteur logique 0).
Virus
multiforme = Virus qui infecte à la fois les enregistrements de démarrage et
les fichiers. Parfois appelé virus bimodal ou bipartite.
Virus
polymorphe = Virus qui se protège des programmes anti-virus en cryptant et
en modifiant son code chaque fois qu'il se reproduit.
RAM (Random
Access Memory) = Mémoire à accès aléatoire : Emplacement où sont chargés les
programmes pour leur exécution ; pour pouvoir être activés, les virus doivent
s'en approprier une partie. Certains anti-virus peuvent déclarer qu'un virus est
actif dès qu'ils le découvrent dans la RAM, même s'il se trouve dans une zone
tampon de la RAM et qu'il n'est pas véritablement actif.
Chaîne
d'analyse = Séquence d'octets (caractères) présente dans un virus connu mais
(espérons-le) pas dans des programmes légitimes. Le terme "signature" est
parfois utilisé à la place. Les développeurs d'anti-virus réduisent la
probabilité de faux positifs en sélectionnant soigneusement leurs chaînes
d'analyse.
TOM (Top Of
Memory) = Mémoire haute : Dernière partie de la mémoire conventionnelle dont la
limite architecturale est située à 640 Ko sur la plupart des PC. Les premiers PC
avaient une mémoire haute moins importante, mais la quantité de mémoire est
toujours un multiple de 64 Ko. Un virus d'enregistrement de démarrage sur un PC
réside généralement juste au-dessous de cette limite et falsifie la valeur
déclarée pour la mémoire haute en indiquant l'emplacement du début du virus. La
vérification des modifications de cette valeur peut permettre de détecter un
virus, bien que cette valeur puisse changer pour des raisons légitimes. Un très
petit nombre de PC ayant des gestionnaires/paramétrages de mémoire inhabituels
peuvent annoncer plus de 640 Ko.
TSR
(Terminate but Stay Resident) = Programme résident : Il s'agit de programmes PC
qui restent dans la mémoire pendant que vous continuez à utiliser l'ordinateur
pour d'autres tâches ; ce sont notamment les petits utilitaires, les logiciels
réseau et la grande majorité des virus. Les virus résidents attendent dans la
mémoire un événement externe, par exemple une copie de fichier ou l'insertion
d'une disquette, pour infecter un autre programme.
Faux Virus, Vrais Problèmes
Il existe dans le monde de la lutte permanente contre les virus, une
nuisance, qui n’est pas un virus, mais dont il est de notre devoir d’informer
les utilisateurs. Cette nuisance, est appelé «virus hoax», que l’on peut
traduire par faux virus. Un faux virus est tout simplement un message e-mail
rédigé de telle façon que la personne recevant le message sera tenté, pour
informer, ou rendre service de le transmettre à toutes les personnes qu’il
connaît. Le but pour le créateur du message est de saturer les serveurs de
messageries des grandes entreprises grâce à l’effet de chaîne. Une personne
envoie le message à dix personnes qui elles même le transmettent à dix autres
etc…C’est en fait l’ancêtre des attaques par saturation.
Les premiers
faux virus apparus en Mars 1997 étaient des messages dont le sujet tournait
autours des virus, par exemple un message avec un texte du type : « Attention si
vous recevez un message intitulé AOL4FREE, ne l’ouvrez pas, en effet cela
entraînera la destruction de votre disque dur, envoyez ce message à tous ceux
que vous connaissez afin de les prévenir . » Bien sûr de nombreuses personnes,
par devoir, transmettaient le message sans perdre de temps. Autre exemple,
encore plus invraisemblable pour les professionnels de l’informatique, mais
totalement plausible pour les novices, un message expliquant que plus de trois
millions de téléphones portables sont infectés par un virus, qui se transmet si
l’on répond à un appel d’un utilisateur ayant masqué son numéro. Le message se
termine bien sur par la phrase classique : « transmettez ce message à tous
vos amis et collègues possédant un téléphone portable. »
On observe
depuis quelques mois une modification dans les messages de type faux virus. En
effet, moins de personnes se font berner maintenant par des messages comme celui
ci-dessus. Les créateurs de faux virus ont donc modifié leur stratégie. Les
nouveaux messages font croire aux personnes les recevant que s’ils transmettent
le message ils ont quelque chose à y gagner. Ces messages se rapprochent plus
des messages publicitaires du type SPAM, reçu tous les jours dans les boites de
courrier électronique.
L’exemple le plus récent qui a remporté un grand
succès et qui illustre cette nouvelle tactique, j’ai moi-même reçu trois fois le
message de trois personnes ne se connaissant absolument pas dans la même
journbée, a touché la société de téléphonie mobile Ericsson. Ericsson a même du
afin d’enrayer la propagation de ce message et les appels arrivant chez eux,
émettre un communiqué de presse sur le sujet. Le message se présente comme
provenant à l’origine d’une personne du marketing d’Ericsson, qui explique que
Nokia est entrain de céder ses téléphones gratuitement sur Internet et que donc
pour contre attaquer chez Ericsson on propose d’offrir gratuitement un téléphone
Ericsson sous certaines conditions. Les conditions sont de faire suivre le
message à 8 personnes pour recevoir un téléphone T18, ou à 20 personnes pour
recevoir le tout nouveau modèle WAP R320. Depuis ce message, j’en ai vu arriver
au moins trois ou quatre autres construit de la même façon, un prenant pour
cible Nokia, un autre permettant de recevoir d’une société de VPC, un CD pour
chaque personne à qui le message était transmis, et il en existe de nombreux
autres.
En conclusion ces faux virus sont une nuisance de tous les
jours, et à l’opposé des virus ne nécessite pas de talent de programmation,
juste une certaine créativité et un peu de talent en écriture.
Quelques règles simples permettent de lutter contre cette
nuisance.La première, si vous recevez un message concernant un soi disant virus
qui se termine par transmettez cette information à tous vos amis et collègues,
aucun doute à avoir, c’est un faux virus, aucun éditeur d’antivirus ou autre
source sérieuse n’utilise ce genre de formule. Ne transmettez pas le message,
effacez-le.
Deuxième règle, la plus simple, traitez votre courrier
électronique comme vous traitez votre courrier postal. Prendriez vous au sérieux
un courrier postal vous demandant de donner les coordonnés de 10 de vos amis en
échange d’un téléphone portable ?
|