Chaos Digest Jeudi 17 Juin 1993 Volume 1 : Numero 55 ISSN 1244-4901 Editeur: Jean-Bernard Condat (jbcondat@attmail.com) Archiviste: Yves-Marie Crabbe Co-Redacteurs: Arnaud Bigare, Stephane Briere TABLE DES MATIERES, #1.55 (17 Juin 1993) File 1--_GenVirus_, premier geneur de virus francais [#2] (manuel) Chaos Digest is a weekly electronic journal/newsletter. Subscriptions are available at no cost by sending a message to: linux-activists-request@niksula.hut.fi with a mail header or first line containing the following informations: X-Mn-Admin: join CHAOS_DIGEST The editors may be contacted by voice (+33 1 47874083), fax (+33 1 47877070) or S-mail at: Jean-Bernard Condat, Chaos Computer Club France [CCCF], B.P. 155, 93404 St-Ouen Cedex, France. He is a member of the EICAR and EFF (#1299) groups. Issues of ChaosD can also be found from the ComNet in Luxembourg BBS (+352) 466893. Back issues of ChaosD can be found on the Internet as part of the Computer underground Digest archives. They're accessible using anonymous FTP: * kragar.eff.org [192.88.144.4] in /pub/cud/chaos * uglymouse.css.itd.umich.edu [141.211.182.53] in /pub/CuD/chaos * halcyon.com [192.135.191.2] in /pub/mirror/cud/chaos * ftp.cic.net [192.131.22.2] in /e-serials/alphabetic/c/chaos-digest * cs.ubc.ca [137.82.8.5] in /mirror3/EFF/cud/chaos * ftp.ee.mu.oz.au [128.250.77.2] in /pub/text/CuD/chaos * nic.funet.fi [128.214.6.100] in /pub/doc/cud/chaos * orchid.csv.warwick.ac.uk [137.205.192.5] in /pub/cud/chaos CHAOS DIGEST is an open forum dedicated to sharing French information among computerists and to the presentation and debate of diverse views. ChaosD material may be reprinted for non-profit as long as the source is cited. Some authors do copyright their material, and they should be contacted for reprint permission. Readers are encouraged to submit reasoned articles in French, English or German languages relating to computer culture and telecommunications. Articles are preferred to short responses. Please avoid quoting previous posts unless absolutely necessary. DISCLAIMER: The views represented herein do not necessarily represent the views of the moderators. Chaos Digest contributors assume all responsibility for ensuring that articles submitted do not violate copyright protections. ---------------------------------------------------------------------- Date: THU JUN 17 15:15:40 -0400 1993 From: Jacques.Struss@email.teaser.com (Jacques Struss ) Subject: File 1--_GenVirus_, premier geneur de virus francais [#2] (manuel) * ECRITURE REUSSIE: le programme a constate en lisant le secteur concerne qu'il a bien ete modifie. Aucune protection d'ecriture n'a joue. * ECRITURE REUSSIE MAIS SECTEUR DETRUIT: idem que ci-dessus mais le programme est incapable de remettre le secteur dans son etat initial. Si votre logiciel de protection en est la cause, (faites l'essai avec et sans) changez en, c'est plus sur! * FICHIER NON TROUVE: le programme n'a pu trouver les fichiers caches ou l'interpreteur de commande COMMAND.COM. Il s'agit certainement d'une disquette non-systeme. Ces fichiers doivent se trouver dans le repertoire principal. * DISQUE PROTEGE CONTRE L'ECRITURE: le petit autocollant de protection est encore le moyen de protection le plus sur contre l'ecriture! * LECTEUR NON PRET (PORTE OUVERTE): il n'y a pas de disquette dans le lecteur ou la porte est restee ouverte. * SECTEUR NON TROUVE: provient d'une erreur de calcul surement due a un secteur BOOT incoherent ou a un formatage special. * ERREUR D'ECRITURE: erreur du controleur de disque sur operation d'ecriture. * ERREUR DE LECTURE: erreur du controleur de disque sur operation de lecture. Mauvaise disquette ou secteur detruit. * ERREUR GENERALE (DISQUE NON FORMATE): le disque est vierge. * INSTALLATION DU DRIVER IMPOSSIBLE: aucun point d'entree coherent n'a pu etre trouve dans la ROM du BIOS ou celle du controleur de disque / disque dur. Si c'est votre cas et si vous disposez d'un XT, il n'est probablement pas compatible a 100% avec le standard. S'il s'agit d'un AT, son BIOS doit egalement s'en ecarter quelque peut. ATTENTION: cela ne signifie nullement que vous etes a l'abri de ce type d'attaque, il suffit simplement de s'adapter a votre type de machine et d'en concevoir un virus specifique !!! Il est de toute facon impossible de tenir compte de toutes les versions des BIOS de la planete pour ce test. Mais sachez qu'une simple recopie sur disquette de votre BIOS permettra des lors a un programmeur mal intentionne la conception d'un driver adapte a votre machine. * SECTEUR BOOT INCOHERENT: le secteur BOOT presente des anomalies en ce qui concerne le nombre d'octets par secteur, le nombre de FAT, le nombre de secteurs par piste, de secteurs par cluster, de secteurs reserves, etc. DOCUMENTATION de GENVIRUS V2.00 Page : 12 -- L'OPTION RETOUR --------------- Cette option referme la fenetre courante et retourne aux choix precedents. L'appui sur la touche effectue la meme action. LE MENU GENERATEUR ================== ATTENTION: Pour des raisons de securite, ce menu est volontairement bride dans la version SHAREWARE de GENVIRUS (voir le menu ENREGISTREMENT, option SHAREWARE et IDENTIFICATION). Toutefois, les differentes rubriques peuvent etre consultees librement, seule la partie generation est desactivee. Le menu GENERATEUR de GENVIRUS est capable de creer des modules entierement parametrables par l'utilisateur en agissant sur: - l'action du module; - la strategie du module; - le declenchement du module; - le camouflage du module; - la reproduction du module; - la fabrication du module. Le programme affiche l'ecran suivant: +-------------------------------------------------------------------+ | Fin Test +------ GENERATEUR ------+ Enregistrement | +--------------------| |---------------------+ | Avertissement | | acTion du module | | Strategie du module | | Declenchement du module| | Camouflage du module | | reProduction du module | | Fabrication | | Retour | +------------------------+ IMPORTANT: pour toutes les actions disque suivantes, la reaction du module NE PORTERA QUE sur le drive contenant, au moment du lancement, le programme infeste et ceci, meme si le drive courant ou actuel n'est plus identique. Par exemple, si le programme contamine se trouve dans le lecteur A:, il est donc lance a partir de celui-ci. Lors du declenchement, l'utilisateur travaille sur le disque C:. Ce sera alors le lecteur A: qui se mettra en route et qui sera la cible des agissements du module. EXPLICATIONS DES RUBRIQUES: --------------------------- Pour toutes les rubriques suivantes, la selection ou deselection d'un choix se fait par appui sur . Certaines options sont exclusives et dans ce cas, leur selection efface automatiquement celles qui seraient incompatibles. DOCUMENTATION de GENVIRUS V2.00 Page : 13 -- ----> AVERTISSEMENT ------------- Affiche un texte d'avertissement. ----> ACTION DU MODULE ---------------- Permet de choisir le type d'action que va effectuer le module lors de son declenchement. -----------------------------------------------------------------------+ Test +----- GENERATEUR ------+ Enregistrement Aide | --------------| |--------------------------------+ | Avertissement | | acTion du mo+----------- ACTION du MODULE -----------+ | Strategie du| | | Declenchemen| Blocage clavier | | Camouflage d| Blocage controleur de disque | | reProduction| Defaut controleur video | | Fabrication | Defaut de memoire | | Retour | Effacement d'un fichier | +-------------| Effacement des fichiers .EXE et .COM | | Effacement de tous les fichiers | | Effacement d'une piste | | Effacement total du disque | | Destruction de la table FAT | | Destruction du repertoire | | Destruction du secteur BOOT | | Retour | +----------------------------------------+ * BLOCAGE CLAVIER: provoque le detournement de l'interruption clavier INT 09 directement sur l'INT 11 (determination de la configuration du PC). Aucun traitement n'etant effectue, les appuis touches restent sans effet. * BLOCAGE CONTROLEUR DE DISQUE: provoque le detournement de l'interruption disque INT 13 directement sur l'INT 11 (determination de la configuration du PC). Aucun traitement n'etant effectue, les acces au disque en lecture ou en ecriture restent sans effet. * DEFAUT CONTROLEUR VIDEO: provoque le detournement de l'interruption video INT 10 directement sur l'INT 11 (determination de la configuration du PC). Aucun traitement n'etant effectue, les acces a la video par le BIOS ou le DOS ne se font plus. Dans ces conditions, un DIR au clavier allumera la LED d'acces disque, mais aucun affichage ne se produira. Par contre, un programme ecrivant directement en RAM video ne sera pas perturbe. * DEFAUT DE MEMOIRE: provoque l'affichage du message suivant Erreur de parite memoire Systeme bloque. et procede au blocage du CPU. Faire un RESET par . DOCUMENTATION de GENVIRUS V2.00 Page : 14 -- * EFFACEMENT D'UN FICHIER: le programme demande le nom du fichier a effacer ainsi que son extension MAIS sans le chemin. Le moment venu, le module effectuera une recherche de fichier UNIQUEMENT sur le repertoire principal du disque (ROOT). Dans le cas ou le fichier serait absent, rien ne se passera. Les caracteres 'JOCKERS' * ou ? ne sont pas autorises. Si le nom du fichier a supprimer correspond a un sous-repertoire, il sera efface ainsi que les programmes contenus dans celui-ci. L'effacement d'un fichier s'effectue en substituant la premiere lettre de son nom par le code 0E5h. * EFFACEMENT DES FICHIERS .EXE ET .COM: au declenchement du module, tous les fichiers programmes .EXE et .COM presents dans le repertoire principal (ROOT) seront supprimes (y compris COMMAND.COM). Seront egalement effaces les fichiers caches, systemes ou a lecture seule. L'effacement d'un fichier s'effectue en substituant la premiere lettre de son nom par le code 0E5h. * EFFACEMENT DE TOUS LES FICHIERS: au declenchement du module, tous les fichiers presents dans le repertoire principal (ROOT) seront supprimes (ceci concerne les programmes, les fichiers de donnees et les repertoires). Seront egalement effaces les fichiers caches, systemes ou a lecture seule. L'effacement d'un fichier s'effectue en substituant la premiere lettre de son nom par le code 0E5h. * EFFACEMENT D'UNE PISTE: effectue l'effacement de la piste situe a 75% de la capacite du support. Tous les secteurs de la piste sont forces avec des zeros. * EFFACEMENT TOTAL DU DISQUE: au declenchement du module, tous les secteurs du disque sont forces avec des zeros. * DESTRUCTION DE LA TABLE FAT: au declenchement du module, tous les octets constituant le premier secteur de la FAT (512 octets) sont inverses deux a deux (le premier octet devient le second, le deuxieme le premier). * DESTRUCTION DU REPERTOIRE: au declenchement du module, tous les octets constituant le premier secteur du repertoire principal ROOT (512 octets) sont inverses deux a deux (le premier octet devient le second, le deuxieme le premier). * DESTRUCTION DU SECTEUR BOOT: au declenchement du module, tous les octets constituant le premier secteur du BOOT (512 octets) sont inverses deux a deux (le premier octet devient le second, le deuxieme le premier). * RETOUR: Cette option referme la fenetre courante et retourne au choix precedent. L'appui sur la touche effectue la meme action. DOCUMENTATION de GENVIRUS V2.00 Page : 15 -- ----> STRATEGIE DU MODULE ------------------- -------------------------------------------------------------------+ Test +----- GENERATEUR ------+ Enregistrement Aide | ----------| |--------------------------------+ | Avertissement | | acTion du module | | Strategie du module | | Declenchement+------- STRATEGIE du MODULE -------+ | Camouflage du| | | reProduction | infiltration par DOS (INT 21) | | Fabrication | infiltration par BIOS (INT 13) | | Retour | infiltration par driver Special | +--------------| Retour | +-----------------------------------+ * INFILTRATION PAR DOS (INT 21): toutes les actions disques utiliseront les services de l'interruption DOS INT 21 pour acceder aux secteurs ou aux fichiers du support concerne. Le choix de cette option aura egalement une incidence sur le declenchement du module pour une date ou une heure donnee. L'apparition de cet evenement ne suffira pas a autoriser le declenchement de la partie action du module. En effet, il faudra egalement que le DOS ne soit pas deja occupe (verification de l'activite du DOS par consultation du flag 'INDOS'). Cela veut dire que le module ne se declenchera pas tout seul a l'invite du DOS mais dans un programme ou immediatement apres un acces disque. Il faut donc noter qu'un eventuel acces malhonnete au disque sera tres difficile a remarquer puisque la LED du drive concerne indiquera deja une activite en cours. Mais par ailleurs, comme ces actions utilisent l'interruption 21 du DOS, elles seront facilement controlables par n'importe quel programme de protection. * INFILTRATION PAR BIOS (INT 13): toutes les actions disques utiliseront les services de l'interruption BIOS INT 13 pour acceder aux secteurs ou aux fichiers du support concerne. Comme pour l'interruption 21, le choix de cette option aura une incidence sur le declenchement du module pour une date ou une heure donnee. L'apparition de cet evenement suffira generalement pour declencher la partie action du module qui aura donc lieu au beau milieu d'un programme ou a l'invite du DOS (le flag 'INDOS' n'est pas teste). Toutefois, certains programmes retardent ou bloquent ce declenchement, ce dernier aura alors lieu des la sortie du programme concerne. En resume, pour les infiltrations par l'interruption 13, on remarque une moins grande discretion qu'au declenchement par l'INT 21 et comme ces dernieres, elles seront facilement controlables par un quelconque programme interceptant cette interruption. DOCUMENTATION de GENVIRUS V2.00 Page : 16 -- * INFILTRATION PAR DRIVER SPECIAL: toutes les actions disque utiliseront les services de l'interruption BIOS inscrite en ROM pour acceder aux secteurs ou aux fichiers du support concerne. Le module va donc effectuer une recherche dynamique du point d'entree des routines de gestion disque soit dans la ROM du BIOS pour un lecteur de disque souple, soit dans la ROM disque dur pour un disque fixe. Cette recherche est du type dynamique car le point d'entree est fonction de la marque de votre BIOS ou de celle du disque dur. Une verification de coherence est effectuee mais il se peut que votre machine s'eloigne par trop du standard PC (la fameuse compatibilite) et dans ce cas, le module restera a jamais inactif (lire toutefois page 12 la rubrique concernant le message: INSTALLATION DU DRIVER IMPOSSIBLE). Les caracteristiques de ce type de driver sont donc identiques a celles indiquees pour l'interruption 13 avec cependant une difference de taille, l'impossibilite d'empecher l'acces au disque par un programme de surveillance puisqu'aucun appel a une interruption situee dans la table des vecteurs d'interruption en RAM n'est effectuee. DANS CE CAS, AUCUNE PROTECTION LOGICIELLE N'EST PLUS A ESPERER !!! * RETOUR: Cette option referme la fenetre courante et retourne aux choix precedents. L'appui sur la touche effectue la meme action. ----> DECLENCHEMENT DU MODULE ----------------------- -------------------------------------------------------------------+ Test +----- GENERATEUR -------+ Enregistrement Aide | ---------| |--------------------------------+ | Avertissement | | acTion du module | | Strategie du module | | Declenchement du module| | Camouflage du +-- DECLENCHEMENT du MODULE ---+ | reProduction d| | | Fabrication | des Execution du programme | | Retour | pour une Date donnee | +---------------| pour une Heure donnee | | sur action Clavier | | Retour | +------------------------------+ * DES EXECUTION DU PROGRAMME: le module action devient actif des le lancement du programme. Il n'effectuera plus aucune intervention par la suite. DOCUMENTATION de GENVIRUS V2.00 Page : 17 -- * POUR UNE DATE DONNEE: le programme ouvre une fenetre et vous demande la date de declenchement souhaitee ainsi que le format de la reponse: JJ/MM/AAAA (ne pas oublier les '/'). Si votre date est valide, l'option est conservee. Dans le cas contraire, un message d'erreur apparait a l'ecran et l'option declenchement par date est desactivee (les dates programmables vont bien au-dela de l'esperance de vie des PC). Le declenchement aura lieu le jour meme a 0H00 ou des le lancement du programme si la date est depassee. * POUR UNE HEURE DONNEE: le programme ouvre une fenetre et vous demande l'heure de declenchement souhaitee ainsi que le format de la reponse: HH:MM (attention au ':'). Si votre heure est valide, l'option est conservee. Dans le cas contraire, un message d'erreur apparait a l'ecran et l'option declenchement par heure est desactivee. Le declenchement aura lieu journellement a la coincidence de l'horloge interne et de l'heure programmee ou des le lancement du programme si l'horloge interne indique une heure plus grande que celle memorisee et ce, jusqu'a minuit. * SUR ACTION CLAVIER : le declenchement du noyau action aura lieu sur appui de la barre espace a condition que le DOS ne soit pas en activite (flag 'INDOS' a 0). Le declenchement n'aura donc pas lieu a l'invite du DOS mais dans un programme ou dans une application lors d'une saisie au clavier. Pour plus de details, voir la rubrique INFILTRATION PAR DOS (INT 21). * RETOUR: Cette option referme la fenetre courante et retourne aux choix precedents. L'appui sur la touche effectue la meme action. ----> CAMOUFLAGE DU MODULE -------------------- -------------------------------------------------------------------+ Test +------ GENERATEUR ------+ Enregistrement Aide | ---------| |--------------------------------+ | Avertissement | | acTion du module | | Strategie du module | | Declenchement du module| | Camouflage du module | | reProd+------------- CAMOUFLAGE du MODULE --------------+ | Fabrib| | | Retour| module ecrasant le programme hote | +-------| module s'inserant dans le programme hote | | module code ecrasant le programme hote | | module code s'inserant dans le programme hote | | Retour | +-------------------------------------------------+ DOCUMENTATION de GENVIRUS V2.00 Page : 18 -- * MODULE ECRASANT LE PROGRAMME HOTE: le module recouvre les codes du programme hote par son propre code. Il garde le nom, les attributs, la date de creation et la taille de celui-ci (a la condition que le programme hote soit au moins aussi grand que le module genere sinon sa taille sera augmentee d'autant). Le module ayant remplace le code du programme original par le sien, ce programme ne fonctionnera plus et au lancement de celui-ci vous retournerez directement au DOS, mais le noyau attente du module sera desormais en place. MODULE ECRASANT AVANT L'INFECTION : ----------------------------------- +-------------------+ | MODULE | +-------------------+ +-----------------------------------+ | PROGRAMME HOTE | +-----------------------------------+ APRES L'INFECTION : ------------------- +-------------------+---------------+ | MODULE | FIN PRG HOTE | +-------------------+---------------+ * MODULE S'INSERANT DANS LE PROGRAMME HOTE: ce genre de module possede la particularite de ne pas detruire le programme hote, celui-ci pourra fonctionner normalement mais a la suite du module. Il gardera le nom, les attributs, la date de creation mais sa taille augmentera. Il sera donc detecte par les logiciels calculant les checksums des fichiers. Pour ce faire, l'installation du module s'effectue en 2 temps: - la portion de code du programme source correspondant a la taille du module est transferee a la fin du programme source. - le module s'insere ensuite au debut du programme source dans la partie devenue inutile. MODULE INSERANT AVANT L'INFECTION : ----------------------------------- +-------------------+ | MODULE | +-------------------+ +----------------------------------+ | PROGRAMME HOTE | +----------------------------------+ PREMIER TEMPS DE L'INFECTION (transfert debut programme a sa fin): ---------------------------- +--------------+-------------------+ | FIN PRG HOTE | DEBUT PRG HOTE | +--------------+-------------------+ DOCUMENTATION de GENVIRUS V2.00 Page : 19 -- DEUXIEME TEMPS DE L'INFECTION (mise en place du module) : ----------------------------- +-------------------+--------------+-------------------+ | MODULE | FIN PRG HOTE | DEBUT PRG HOTE | +-------------------+--------------+-------------------+ De cette maniere, la partie de code du module sera executee avant celle du programme hote et donc des le lancement du programme contamine. Neanmoins, avant de transferer le controle au programme original, le module doit effectuer la remise en condition initiale dans le bon ordre des portions de code de celui-ci. * MODULE CODE ECRASANT LE PROGRAMME HOTE: les parties actives du module sont codees. De cette facon, les utilitaires d'analyse de programme qui recherchent les appels aux routines d'interruptions comprenant des ecritures sur disque ne detecteront pas celles du module et vous assureront de sa parfaite inocuite. Les autres caracteristiques sont identiques a celles du module ecrasant le programme hote (voir plus haut). * MODULE CODE S'INSERANT DANS LE PROGRAMME HOTE: les parties actives du module sont codees. De cette facon, les utilitaires d'analyse de programme qui recherchent les appels aux routines d'interruption comprenant des ecritures sur disque ne detecteront pas celles du module et vous assureront de sa parfaite inocuite. Les autres caracteristiques sont identiques a celles du virus s'inserant dans le programme hote (voir plus haut). * RETOUR : Cette option referme la fenetre courante et retourne aux choix precedents. L'appui sur la touche effectue la meme action. ----> REPRODUCTION DU MODULE ---------------------- -------------------------------------------------------------------+ Test +------ GENERATEUR ------+ Enregistrement Aide | ---------| |--------------------------------+ | Avertissement | | acTion du module | | Strategie du module | | Declenchement du module| | Camouflage du module | | reProduction du module | | Fabrication +------- REPRODUCTION du MODULE --------+ | Retour | | +---------------| le module ne doit Pas se reproduire | | le module Doit se reproduire | | Retour | +---------------------------------------+ * LE MODULE NE DOIT PAS SE REPRODUIRE: le module restera dans le programme que vous aurez designe et ne se reproduira pas. DOCUMENTATION de GENVIRUS V2.00 Page : 20 -- * LE MODULE DOIT SE REPRODUIRE: le module comprendra une partie reproduction qui se declenchera a chaque lancement du premier programme contamine ou d'un des programmes qui aura lui-meme deja ete contamine. La partie reproduction repond aux regles suivantes: - seuls les programmes .COM seront contamines. - le module ne se reproduira jamais dans COMMAND.COM ainsi que dans les fichiers SYSTEMES, que ce soient des .SYS ou des .COM. Par contre, il sera possible de contaminer manuellement COMMAND.COM en indiquant son nom comme fichier devant contenir le module dans le menu FABRICATION DU VIRUS. - tous les autres programmes .COM qui ne seraient pas des fichiers systemes seront contamines, meme s'ils possedent le flag 'FICHIER CACHE' ou 'FICHIER A LECTURE SEULE'. - un fichier ne pourra etre contamine qu'une seule fois. - chaque lancement d'un programme contamine devant se multiplier declenche la contamination d'UN SEUL autre programme. Aucune autre tentative de reproduction ne sera effectuee durant le deroulement du programme hote. Pour cela, au moins un programme sain doit se trouver dans le repertoire courant. - la contamination ne s'etend qu'a l'interieur du repertoire courant. - s'il n'existe plus de fichier a contaminer, la reproduction sera simplement ignoree. - pour des raisons evidentes de securite, la reproduction des modules n'utilise QUE les services de l'INT 21 afin de rester facilement contenable et reperable par les logiciels de detection. La non-contamination des fichiers systemes repond aux memes imperatifs. * RETOUR: Cette option referme la fenetre courante et retourne aux choix precedents. L'appui sur la touche effectue la meme action. DOCUMENTATION de GENVIRUS V2.00 Page : 21 ------------------------------ End of Chaos Digest #1.55 ************************************