Obligement - L'Amiga au maximum

Mardi 19 mars 2024 - 03:01  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in english


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Dossier : Le virus Lamer Exterminator
(Article écrit par Pierre Ardichvili et Cédric Beust et extrait d'A-News (Amiga News) - novembre 1989)


Quoi, encore un article sur les virus ? Vous ne pourriez pas nous parler de quelque chose de plus marrant, non ? Eh bien, si vous chopez un jour sans le savoir le Lamer Exterminator, vous risquerez tout simplement de perdre de précieux fichiers, fruits de longues heures de travail, car, contrairement à ses prédécesseurs, le Lamer Exterminator a pour but de rendre des fichiers inutilisables, et il le fait de manière remarquablement efficace.

Je me suis décidé à écrire cet article après avoir trouvé ce virus sur une disquette en provenance d'une personne dont le sérieux ne fait pourtant aucun doute. On peut avoir l'impression que tout a déjà été écrit sur les virus, mais ce dont je suis sûr en lisant certains messages sur DEEP par exemple, c'est que tout le monde n'a pas tout lu ! Lisez donc, il se pourrait que vous n'ayez pas à le regretter.

L'article est en quatre parties :
  • Un court rappel général sur les virus.
  • Quelques mots sur le Lamer Exterminator.
  • Un rappel des précautions à prendre.
  • Pour ceux qui ne se servent pas beaucoup du CLI ou du Shell, une procédure simple pour se protéger.
Première partie : bref rappel sur les virus

Ceci, c'est pour ceux qui prennent le train en route. Un virus est un programme, en général logé dans le "boot block" (bloc de démarrage) d'une disquette, et qui est activé lorsque l'on lance le système à partir de cette disquette. Il s'installe alors en mémoire, d'où il fait des choses diverses, en particulier se reproduire. Pour cela, lorsqu'il détecte l'introduction d'une nouvelle disquette, il va se recopier dans le bloc de démarrage. On ne connaît pas actuellement de virus sur l'Amiga qui se propage autrement que par le bloc d'amorce, à part le virus IRQ qui s'incruste dans la première commande de la séquence de démarrage, sauf si elle commence par une tabulation, auquel cas il va normalement s'incruster dans Dir. Mais comme vous ne savez pas nécessairement comment était faite la séquence de démarrage du copain qui a chope IRQ, on peut le trouver incrusté dans diverses commandes du répertoire C, ou par exemple dans un programme du tiroir System, comme SetMap. VirusX le trouve et l'enlève. IRQ ne fait aucun dégât.

Certains virus se contentent de faire ensuite des choses anodines, comme de passer un message à l'écran, changer le pointeur en phallus, causer des plantages intempestifs, bouffer progressivement de la mémoire, mais jusqu'à présent aucun n'attaquait délibérément des fichiers pour les détruire. Néanmoins, le simple fait d'aller se recopier dans le bloc de démarrage peut être catastrophique dans le cas d'un jeu qui utilise ce bloc pour y mettre du code contenant par exemple la présentation du jeu.

Moi-même j'ai attrapé le virus SCA en 1987 via Deluxe Paint, Electronic Arts l'a reconnu, et depuis tous leurs produits ont des blocs de démarrage standard, car il suffit en général de faire la commande "Install" sur une disquette contaminée pour y remettre un bloc de démarrage propre.

D'autres moins futés mettent dans le bloc de démarrage de certains de leurs produits un antivirus qui est lui-même un virus (par exemple le NorthStar) ; ce n'est pas intelligent car lorsque Northstar est en mémoire et qu'il voit sur le bloc de démarrage d'une disquette quelque chose qu'il croit être un virus, il va s'y recopier, et tant pis pour ce qui s'y trouvait.

Toutefois, si les concepteurs de virus sont des programmeurs astucieux mettant pour une raison ou l'autre leur talent au service d'une mauvaise action, il y a d'autres programmeurs aussi talentueux qui passent leur temps à déjouer cette manoeuvre, soit en créant des programmes de protection (un des plus connus est Steve Tibbett), soit en désassemblant les virus pour en expliquer le fonctionnement (l'un d'eux est Cédric Beust ; incidemment, Cedric, si tu pouvais à tes heures perdues nous désassembler Lamer Exterminator...), car on combat mieux un ennemi que l'on connaît bien.

Deuxième partie : le Lamer Exterminator

Tout d'abord, une grande partie de ce que je vais dire ici est extraite de la documentation de VirusX 3.20, et du fichier source de ce programme (le tout disponible sur Fish 216). Pour ceux qui pratiquent l'anglais, je vous recommande la lecture de ce fichier source, même si comme moi vous n'êtes pas programmeur ; les commentaires sont abondants et instructifs. Je cite Steve Tibbett :

"Celui-ci est un vrai destructeur. Encore un virus destiné à réellement faire mal. Voyez-vous, un "lamer", c'est un pirate de l'espèce la plus misérable, il ne déplombe pas les logiciels, il n'écrit rien, il se contente de recopier et de distribuer (note : les distributeurs du domaine public ne sont pas des "lamers", ils s'astreignent à une déontologie et à une qualité de présentation sur lesquelles je n'insiste pas). Les lamers ne font de bien à personne et le type qui a écrit ce virus a pris sur lui de leur faire la vie dure, mais à nous tous aussi par voie de conséquence."

"Quoi qu'il en soit, ce virus se charge chaque fois à un endroit différent de la mémoire, au hasard, et il est crypté, de sorte qu'on ne peut pas voir son nom, bien qu'il soit là. Il change de plus sa clé de codage chaque fois qu'il se réécrit sur une disquette. Il a un compteur et il attend soit deux redémarrages à chaud, soit trois insertions de disquettes avec infection (note : donc des disquettes amorçables et non protégées en écriture), après quoi il choisit au hasard un bloc de données - apparemment les blocs formatés en FFS ne sont pas attaqués - et y écrit "LAMER!" partout. Ceci cause évidemment des erreurs de lecture lorsque ce bloc est au milieu d'un programme ou d'un fichier. Ce virus a aussi une nouvelle méthode pour se maintenir en mémoire. Voyez-vous, si ExecBase est en bon état (somme de contrôle OK) au moment d'un redémarrage à chaud, Exec ne se donne pas la peine de le reconstruire. Le virus fait en sorte que le vecteur "SumKickData" pointe sur lui-même. Par conséquent, au redémarrage, lorsque ce vecteur est appelé, le virus se réinstalle..."

J'ai vérifié que le Lamer Exterminator résiste au redémarrage à chaud et se recopie instantanément sur le bloc d'amorce de la disquette de démarrage (si elle n'est pas protégée en écriture). On a dit que ce virus résistait à la commande "Install". Ce n'est pas exact ; le fait est que tant qu'il est en mémoire, il constate que la commande "Install" a été invoquée et va se réécrire dans le bloc d'amorce dans la foulée. Pour l'enlever, VirusX commence par le neutraliser en mémoire, puis réécrit un bloc d'amorce standard.

Troisième partie : précautions à prendre

1. Ne pas faire "Install" sur les disquettes qui ne contiennent que des données et ne servent pas au démarrage du système. Ceci leur met un bloc de démarrage inutile, qui est en fait une offre de logement à un virus qui traînerait en mémoire.

Pour enlever un bloc de démarrage d'une disquette qui n'en a pas besoin, prenez une autre disquette, formatez-la, copiez le bloc de démarrage par BootBack sur un fichier en RAM:, puis de ce fichier vers la disquette à modifier. Vous aurez ainsi sur les blocs 0 et 1 quelque chose qui ne déclenchera pas intempestivement un message de votre programme antivirus, disant qu'il a reconnu un bloc de démarrage non standard. On trouve BootBack entre autres sur Fish 157.

2. Chaque fois que c'est possible, démarrer le système par une disquette protégée en écriture.

3. Mettre dans le bloc d'amorce de votre disquette de démarrage quelque chose que vous connaissez (une image, de la musique, n'importe quoi dont l'apparition vous rassure sur le fait que votre bloc de démarrage n'a pas été altéré ; pour ma part, j'utilise Virus-Alert trouvé sur la disquette VirusKillers de Giorgio Cupertino, certains mettent une jolie liste Copper, question de goûts).

4. Mettre dans votre séquence de démarrage un antivirus général ; je recommanderais pour ma part VirusX (dernière version, pour l'instant 3.2, j'ai lu quelque part que la 3.3 est un faux, je ne l'ai pas vérifié). C'est un programme intelligent, régulièrement modifié par son auteur pour traiter les derniers virus qu'il connaît ; la version 3.2 en traite 16.

Incidemment, en cliquant avec le bouton de droite dans la barre de titre de VirusX, apparaît une fenêtre donnant des statistiques sur le nombre de disquettes vérifiées et le nombre de virus trouvés au cours d'une session ; sur la version de VirusX 3.2 que j'ai prise sur Fish 216, les compteurs totalisant le nombre des divers virus trouvés ne fonctionnent pas, du moins sur mon système. Ça n'empêche pas néanmoins VirusX de trouver les virus et de les neutraliser). Avant de vous réécrire votre bloc de démarrage, il vous demande la permission; par contre, s'il trouve un virus en mémoire, il le neutralise d'office. Il y a des tas d'autres antivirus, chacun a ses préférences.

5. Ayez sous la main ViewBoot (téléchargement ou T-Bag 18 ou AmigoTimes 1.1 ou Virus-Disk). Ceci permet de voir le contenu du bloc de démarrage. Incidemment, vous reconnaîtrez la présence de Lamer Exterminator en regardant les caractères 64 à 67 (décimal) qui sont "Ctrl-C a 4 <", ce qui, sur ViewBoot, donne ".a4<".

6. Ayez aussi sous la main DiskX (téléchargement sur Fish 71, ce n'est pas la dernière version). En choisissant dans le menu "DiskX" l'option "Search for Any ASCII Character, from block 0", vous verrez défiler (c'est un peu long) tout ce qu'il y a comme chaînes ASCII sur la disquette dans le lecteur df0: et vous ne pourrez pas manquer le bloc plein de "Lamer!" s'il y en a un. En lisant le bloc 0 avec DiskX vous pouvez d'ailleurs parfaitement vous passer de ViewBoot.

Attention toutefois en utilisant ces deux programmes : il me semble qu'il arrive que ces programmes donnent une indication fausse du contenu du bloc de démarrage ! Si la disquette à tester a été introduite récemment, et en particulier si vous avez dans votre startup-sequence un "Addbuffers" qui ajoute un gros paquet de mémoire-tampon au lecteur de disquette, lorsqu'on demande au programme d'aller lire le bloc de démarrage ou un fichier quelconque, si le contenu de ce que vous avez demandé est encore dans le tampon mémoire du lecteur, il semble que le programme se contente de lire ce qu'il y a dans le tampon mémoire sans refaire une lecture physique ! J'ai vérifié ceci à coups répétés, j'aimerais que quelques collègues en fassent autant pour confirmer ou infirmer.

7. Je doute qu'il y ait beaucoup de cas où vous puissiez reconstituer sur la disquette le bloc esquinté (ce n'est pas impossible si vous connaissez le contenu de ce bloc, mais la procédure n'est pas évidente), donc ayez des sauvegardes, encore des sauvegardes, toujours des sauvegardes. Le temps d'un XCopy ou d'un Diskcopy n'est rien à côté du travail de confection d'une image ou d'une animation, ou d'un programme.

8. Surtout si vous avez un disque dur, lorsque vous recevez de nouvelles disquettes, d'où qu'elles viennent, éteignez votre Amiga, redémarrez-le sur un Workbench simplifié protégé en écriture et muni d'un antivirus, et examinez votre disquette. Ça peut sembler lourd, mais l'assurance n'est chère qu'avant l'accident.

Quatrième partie : un outil simple

Pour ceux qui n'utilisent pas ou peu le CLI ou le Shell, ou qui n'ont pas envie de bricoler des disquettes, il y a sur le marché un outil simple et performant, c'est la disquette France n°4 de Hermès. Je dois toutefois signaler qu'à certains moments elle fait émettre par le lecteur un grognement qui donne à penser que la tête de lecture fait une navette rapide entre deux pistes distantes. A mon avis ce n'est pas très bon pour le lecteur. L'auteur de la disquette m'a confirmé que c'est bien ce qui se passe ; il pense que ce n'est pas un problème, mais il est prêt à faire une modification en fonction des réactions d'un certain nombre d'usagers qu'il va consulter.

Chaque fois que vous recevrez une disquette, quelle qu'elle soit, éteignez votre machine, redémarrez-la avec cette disquette antivirus protégée en écriture. S'il y a un virus connu, vous avez toutes les chances de l'attraper avant qu'il ne s'installe en mémoire et ne fasse d'autres dégâts.

Les virus sont comme les épidémies ; on les combat efficacement par des règles d'hygiène stricte.

Annexe : le point de vue de Cédric Beust

Je n'ai pu résister au pathétique appel lancé par Pierre Ardichvili et je me suis dont attaqué au désassemblage du virus Lamer Exterminator. Je pensais avoir tout vu en matière de virus mais force m'a été de constater que j'avais sous-estimé la puissance imaginatrice de ces vandales abrutis qui consacrent leur temps à rendre la vie impossible aux utilisateurs innocents. J'ai quelques remarques à ajouter à celles déjà faites par Pierre.

Le Lamer se distingue des autres virus par bien des côtés, que je vous décris ci-dessous.

Tout d'abord, c'est le premier virus transparent à l'utilisateur. Il ne se signale à aucun moment, et seule une personne suspicieuse qui se demanderait pourquoi ses disquettes se mettent à faire des erreurs de lecture/écriture aussi souvent et qui aurait la curiosité d'aller jeter un coup d'oeil sur le secteur incriminé pourrait découvrir à la lecture de "LAMER!LAMER!"... qu'un virus est passé par là. A noter que ces erreurs de lecture/écriture ne sont que logicielles, c'est-à-dire que n'importe quel éditeur de secteur est capable de rajuster la somme de contrôle ; bien entendu, cela ne rappellera pas l'état antérieur du bloc qui est définitivement perdu. Maigre consolation, en vérité.

Il est également le premier virus à être viscéralement méchant. Les autres se contentaient d'écraser le bloc d'amorce (ce qui n'était pas sans avoir des conséquences graves sur certaines sortes de logiciels, mais le cas restait quand même rare) et de se signaler de façon plus ou moins humoristique après une phase d'incubation, le temps qu'il ait eu le temps de se propager. Le Lamer, lui, va directement écrire à un endroit aléatoire sur la disquette. Pas besoin de décrire les conséquences que cela peut avoir.

Il inaugure une nouvelle façon de résister au démarrage, malgré tout détectable à la vérification des pointeurs CoolCapture, ColdCapture et KickTagPtr. Autre détail intéressant : la structure résidente qu'il insère ne voit jamais son premier mot (appelé MatchWord) initialisé à la valeur $4AFC, ce qui est en théorie indispensable pour que le système la reconnaisse en tant que telle lors du redémarrage. Ce mot est-il donc superflu ? Je ne m'étendrai pas davantage sur ce sujet.

En fait, il est inexact de dire qu'il choisit de détruire un secteur sur une disquette au hasard. Cette disquette doit tout d'abord être de format DOS (charmante attention ! Seuls les Amiga sont visés) et le secteur doit être de type "Data", sans quoi, il n'intéresse pas le virus. La remarque de Steve Tibbett précisant que les blocs FFS ne risquent rien est donc justifiée, mais dans la version actuelle du système d'exploitation, le FFS ne fonctionne pas sur les disquettes.

Le Lamer bat tous les records en matière de protection. L'auteur a dû consacrer la moitié de son temps de réflexion à imaginer des moyens tordus pour ne pas alerter les utilisateurs trop curieux et les antivirus. Les voici en vrac :
  • Tout d'abord, la partie vitale du code du virus est codée par une clé qui est à chaque fois modifiée. Il s'agit de simples opérations logiques qui rendent inutiles les utilitaires du genre ViewBoot et autres Guardians. A moins de savoir précisément où regarder (c'est ce que fait VirusX 3.2), on ne peut y déceler de manière évidente un virus.

  • Ensuite, il ne se charge jamais au même endroit en mémoire (faiblesse qu'avaient les SCA et autres ByteBandit). Celui-ci dépend directement de la limite inférieure de la pile Superviseur, et un décalage aléatoire est à nouveau calculé pour établir l'endroit définitif d'installation.

  • Il ne détourne pas le point d'entrée de DoIO (une des premières choses vérifiées par les antivirus) mais un de ses obscurs fils, le champ pointant sur ExecuteIO, déduit à partir de la structure Node correspondant au trackdisk.device. Ceci le contraint à rajouter une routine pour ne pas bloquer l'aspect multitâche de DoIO, et il a donc directement piqué en ROM les outils pour construire cette routine. Je ne m'étendrai pas non plus sur cet aspect technique.

  • Si jamais le virus est installé en mémoire, vous n'aurez jamais la possibilité de le lire sur une disquette. Je m'explique : si vous exprimez une commande Read, avant de vous livrer le résultat de la lecture, le Lamer vérifie qu'il ne s'agit pas d'un secteur qu'il a infecté. De deux choses l'une : si vous avez demandé à visualiser un bloc d'amorce, il vous montre un bloc d'amorce DOS standard, et sinon, un bloc rempli de zéros. C'est diabolique !
Voilà, je crois avoir fait le tour de la question. N'oubliez pas que le moyen le plus sûr d'éviter la contagion est encore de déprotéger vos disquettes le moins possible (seulement quand il le faut) et d'avoir VirusX 3.2 qui veille dans un coin de votre Workbench.


[Retour en haut] / [Retour aux articles]