Article traduit par Guillaume Bernadat

 

TITRE

"Virus" informatique (1 de 2)

Article nº
Créé le :
Modifié le : 
02821
02/05/88
02/08/99


SUJET

Cet article traite des virus, des moyens de les détecter et de les éradiquer.

NdT : Deux choses méritent d'être signalées. Tout d'abord, cet article (ainsi que la suite) est relativement ancien. J'ai essayé de remettre à jour certaines informations, étant donné que Mac OS a beaucoup évolué en matière d'interface utilisateur depuis l'époque à laquelle cet article a été écrit, mais en conservant le texte original. Ensuite, cet article est doublement intéressant. En effet, s'il traite concrétement du problème des virus, il me semble également constituer une mine d'informations intéressantes sur le coeur et les fondations du système, qui, malgré des évolutions superficielles, n'ont que relativement peu changé depuis les premières versions de Mac OS. Un bon niveau technique est quand même requis pour tout comprendre.


COMMENTAIRES

Généralités

Qu'est-ce qu'un virus ?

Un virus est un programme qui a deux objectifs distincts :

- S'étendre de machine en machine (le code est dit auto-reproductible). Ceci inclut l'infection proprement dite d'autres machines, et la prolifération du virus dans un maximum de programmes "porteurs" possibles.

- Provoquer un certain nombre de "symptômes" prévus pas le concepteur du virus. Il peut s'agir de choses très variables, dont notamment l'effacement du contenu d'un disque à une date donnée.

Un peu d'histoire

Les virus informatiques sont nés quasiment en même temps que les ordinateurs. John Van Neumann, le père des ordinateurs modernes, songeait dès 1948 à l'implémentation de code auto-reproductible. Vers la fin des années 70, il y avait même un terrain d'entraînement pour écrire des virus. Le programme Core Wars implémentait un environnement artificiel dans lequel deux virus pouvaient se mesurer l'un à l'autre.

Les virus n'existent pas que sur Macintosh

Le Macintosh n'est pas le seul système à subir des infection virales. Les gros systèmes et les mini-ordinateurs constituent également des cibles de choix pour les auteurs de virus. L'un des incidents les plus récents dans le domaine des gros systèmes a été l'infection du système de messagerie interne d'IBM, qu'un virus a réussi à mettre à genoux pendant quelques jours. Les utilisateurs de PC IBM connaissent les virus depuis plusieurs années maintenant. L'attaque est communément dirigée contre le fichier COMMAND.COM. La communauté des utilisateurs de Macintosh a eu la chance d'exister pendant longtemps sans que la programmation de virus ne devienne une activité répandue.

Les virus ne sont pas forcément conçus pour causer des dégâts, mais...

Les virus ne sont pas tous étudiés pour provoquer des dégâts. L'auteur peut simplement aspirer à prouver qu'il a réussi, et avoir la satisfaction d'entendre parler de son virus dans les magazines sur les BBS (services en ligne). Cependant, il arrive que ces virus posent des problèmes. Par exemple, le virus qui nous a résolus à écrire ces articles n'était pas conçu pour se montrer agressif, sinon dans certains cas spécifiques. Et pourtant, il consomme de la mémoire, mobilise le processeur, et peut avoir des effets de bord imprévisibles, tels que des problèmes d'impressions ou des plantages.

Pas de panique, les femmes et les enfants d'abord

Si vous pensez que votre système est infecté par un virus, il est primordial de ne pas s'affoler, de prendre du recul, et d'évaluer calmement la situation. Une fois que vous êtes certain d'avoir "attrapé" un virus, et que vous savez quels programmes sont infectés, il est relativement simple de l'éradiquer. Ce document contient assez d'informations pour vous permettre de régler leur compte à la majorité des virus.

Les virus Unix

Nous n'avons pas encore beaucoup parlé des virus Unix, mais il faut savoir qu'il existent, et l'échange de logiciels du domaine public est une chose aussi courante dans le monde Unix que dans le monde de la micro-informatique.

NdT : cette dernière remarque n'est plus vraiment d'actualité, étant donné l'engouement que suscite Linux (qui est un Unix) dans le monde de la micro-informatique.

À La Chasse Aux Virus

Quand suspecter les agissement d'un virus ?

Lorsque votre ordinateur commence à se comporter bizzarement, ou lorsqu'il se montre soudain incapable d'accomplir des tâches qu'il a toujours menées à bien par le passé. La grande difficulté dans cette activité de repérage est que des fichiers système corrompus peuvent conduire à des symptômes similaires alors qu'il n'est aucunement question de virus. Quand des difficultés surviennent, elles ont généralement plus de chances d'être causées par autre chose qu'un virus. Une fois que vous avez épuisé les sections "résolution de problèmes de base" des manuels, vous pouvez envisager l'hypothèse d'une infection virale du système.

Quels signes rechercher quand on pense avoir un virus ?

Cherchez des fichiers invisibles dans votre Dossier Système qui n'ont rien à y faire. A moins d'avoir une application qui crée justement ces fichiers dans le Dossier Système, tout fichier invisible dans le dossier système doit être considéré comme suspect. Une recherche systématique de ressources suspectes dans les fichiers de votre Dossier Système est également une bonne idée et est généralement récompensée.

NdT : Il convient tout de même de modérer son enthousiame quant à cette dernière suggestion, étant donné le nombre sans cesse croissant et déjà vertigineux de ressources à examiner, ne serait-ce que dans la valise System des versions récentes de Mac OS.

Les fichiers et les ressources à-même d'être infectés

Les fichiers qu'un virus peut corrompre accidentellement :

Tout fichier sur un volume infecté, dont les fichiers système, les documents, les applications, etc.

NdT : la liste est généralisable aux volumes qui ont été montés une fois sur un système infecté, même s'ils ne sont pas infectés eux-mêmes.

Les problèmes avec les logiciels du domaine public

La majorité des virus se répandent par l'intermédiaire des BBS, et se cachent dans des progammes du domaine public. "Sexy Ladies", un programme distribué à l'occasion d'un salon MacWorld Expo à San Fransisco, effaçait le contenu de n'importe que disquette ou disque dur depuis [le/la]quel(le) il était lancé.

Les problèmes avec les réseaux

L'utilisation des réseaux peut également favoriser la prolifération d'un virus. Différents scénarios sont envisageables, le plus simple étant celui d'un dossier contenant des logiciels publics dans lequel tout le monde vient chercher le dernier truc à la mode. Des applications partagées stockées sur un serveur peuvent également être infectées, et infecter à leur tour toutes les machines sur lesquelles elles sont exécutées par la suite.

NdGG : et n'oubliez pas qu'Internet n'est rien d'autre que le plus gros réseau informatique de la Terre, et qu'il est donc une véritable pépinière à virus.…

Aspect Techniques

Comment les virus se propagent-ils ?

Les virus peuvent se propager de nombreuses manières différentes. La manière la plus commune dont un virus se réplique sur un Macintosh consiste à installer un INIT (NdT : nous dirions extension aujourd'hui) qui lance un processus de fond (VBL), lequel guette certains occasions, comme le montage d'un disque pour se copier quelque part dessus.

Les processus (tâches) VBL

Le Macintosh a toujours disposé d'une forme limitée de processus de fond, disponible par l'utilisation de Vertical BLanking queue (VBL). Chaque fois que l'écran du Macintosh est rafraîchi (à l'exception du Macintosh II), toutes les routines résidentes dans cette queue sont exécutées. Le Macintosh II a une queue VBL vide en permanence et inutile, étant donné que l'utilisations d'écrans très variés a introduit des période de balayage vertical très différentes.

Les tâches VBL peuvent être ajoutées à la queue par n'importe quel programme. Le programme doit charger la routine dans un emplacement de mémoire, et ajouter la routine à la queue en appelant la routine en ROM Vinstall. Le programme qui a installé cette tâche est censé s'assurer que l'emplacement dans lequel la routine réside reste accessible même après la sortie du programme. Chaque tâche VBL a une période spécifique pendant laquelle il doit rester "endormi" avant d'être appelé. Chaque fois que la routine est exécutée, un compteur associé est décrémenté. Quand ce compteur atteint zéro, la routine est effacée de la queue, à moins qu'elle n'ait elle-même remis le compteur au départ.

Les tâches VBL lourdes (comme celles qui peuvent être utilisées pour répliquer un virus) peuvent interférer avec le fonctionnement normal du Macintosh, en interrompant des processus qui ne devraient pas l'être. L'exemple le plus courant est celui de l'impression sur une LaserWriter par le truchement d'un réseau AppleTalk. Si un processus VBL met trop de temps à s'exécuter, l'impression peut se terminer en queue de poisson, et laisser la connexion de la machine dans un état instable.

Dans le cas d'un virus, un INIT est vraisemblablement le coupable si une tâche VBL a été installée.

Les INITs

Les INIT (extensions...) sont des routines qui sont exécutées lorsque le Macintosh démarre. En majeure partie, elles ont accès à toutes les instructions disponibles pour un programme Macintosh standard. La grosse différence est que les variables globales en mémoire basse n'ont pas encore été réglées, c'est pourquoi un INIT ayant besoin d'accéder à ces structures normalement stockées en mémoire basse est obligé de les créer lui-même.

INITs dans le fichier System

Quand un Macintosh démarre, les INITs qui sont dans le fichier System dans le dossier "béni" (NdT : le Dossier Système) constituent les première portions de code à être exécuté. Ces INITs sont généralement réservés à l'usage exclusif d'Apple -- autrement dit, tout INIT ne provenant pas d'Apple doit être considéré comme suspect.

Le mécanisme INIT 31

Un INIT spécial du fichier System, INIT 31, a été conçu pour permettre l'exécution d'autres INITs ne provenant pas d'Apple sans avoir à les installer directement dans le fichier System. Quand tous les autres INITs du fichier System ont été exécutés, INIT 31 balaie le Dossier Système à la recherche de fichiers du type INIT, RDEV et cdev, et exécute les ressources INIT qu'ils contiennent. Ces fichiers sont chargés dans l'ordre alphabétique. Evidemment, une solution pour cacher des segments de virus consiste à mettre des INIT dans des fichiers d'un tel type, mais qui résidaient déjà dans le Dossier Système et qui semblent par conséquent au dessus de tout soupçon.

Les CDEVs

Le type "cdev" indique que le fichier contient un Tableau de bord. Quand le Tableau de bord est chargé, il balaie le contenu du Dossier Système à la recherche de fichiers du type "cdev" Lorsqu'il en trouve un, il charge la ressource ICN# du fichier (s'il en possède une) dans la liste des icônes qui apparaissent à gauche du Tableau de bord. Lorsqu'on clique sur l'icône du cdev dans le Tableau de bord, le code dans la ressource "cdev" est exécutée. Un virus peut aisément tirer parti de ce mécanisme pour infecter un système, lancer une tâche VBL, etc.

NdT : Encore des résidus de l'ancienne architecture du système, à l'époque duquel le Tableau de bord était unique, et était extensible par l'ajout de modules. Aujourd'hui, nous parlerions de Tableaux de bord au pluriel. Mais malgré ces modifications superficielles d'interface, les fondations restent pratiquement les mêmes, et les risques encourus aussi.

De nombreux fichiers cdev contiennent des INITs, et sont responsables à la fois du lancement de tâches de fond, et de la configuration de ces tâches. C'est le cas des économiseurs d'écran. Un INIT lance une tâche VBL, et le cdev permet de configurer à quel moment l'économiseur entre en action. Les cdev système standards d'Apple ne contiennent pas d'INITs (NdT : plus maintenant... Contre-exemple flagrant : le Tableau de Bord "Mémoire"), mais rien n'empêche un virus d'en installer à l'intérieur pour y cacher son propre code.

Les DRVRs

Les ressources DRVR ont généralement une ou deux fonctions : elles peuvent contenir du code pour un accessoire de bureau (NdT : encore un concept abandonné par Apple en apparence, vu qu'il n'a plus de sens avec l'orientation prise par les systèmes actuels, mais dont les fondements restent présents, actifs, et constituent une cible potentielle), ou du code pour des pilotes permettant au système d'effectuer un certain nombre de tâches telles qu'imprimer. Une fois encore, il est question de code. Dès qu'il y a du code susceptible d'être exécuté quelque part, l'auteur d'un virus peut en tirer profit.

Tout comme les cdevs, lorsqu'un DRVR est ouvert, soit en lançant un accessoire de bureau, soit à l'initiative du système lui-même, les portions de code correspondant sont exécutées. C'est là qu'un virus peut entrer en activité.

Les ressources CODE

Chaque application possède au moins deux ressources CODE. La première de ces deux a un ID de 0, et contient la jump table. Ce tableau fournit les informations de base permettant à un programme d'appeler les routines dans d'autres segments. Le dernier truc à la mode pour les virus est de modifier la ressource CODE d'ID 0 d'une application, de façon qu'une autre ressource CODE qu'il aura installé soit appelée avant l'exécution proprement dite du programme. Ce dernier segment de CODE est alors susceptible d'aller voir s'il n'y aurait pas moyen d'infecter le système, et dans le cas contraire, passe à l'action. Une fois ceci au point, il suffit aux auteurs de virus de publier une copie d'une application infectée sur un BBS, et le virus se répandra à travers le monde.

Les applications qui supportent des procédures externes

Les virus peuvent aussi tirer parti de procédures externes qui sont autorisées par certaines applications. L'exemple parfait de ce cas est HyperCard, avec ses XCMDs et ses XFCNs. C'est ainsi que le virus MacMag s'est répandu.

La suite de cet article est "Virus" Informatiques (2 de 2).


Informations sur ce document
Produit :
Logiciels Apple
Catégorie :
Virus Detection Logiciels & Information
Sous-catégorie :
Virus
Article original :
Computer "Viruses" (1 of 2)

Copyright © 1988-99 Apple Computer, Inc. All rights reserved.

Traduction ©1999, Guillaume Bernadat & Guillaume Gete, tous droits réservés.

Retour au sommaire des archives

Macintosh|TIL FR|Kaleidoscope|Liens|Humour|Super Mario Bros|L'auteur|Mailing List

© 1998, Guillaume Gete ; Design du logo Gete.Net : © Gregory Janiszewski
Toute reproduction interdite sans accord des auteurs.
Toutes les informations reproduites sur ce site sont données à titre strictement personnel
par l'auteur et ne peuvent être considérées comme étant la représentation
officielle d'informations émanant d'Apple Computer, Inc.