Club de la Sécurité de l'Information Français
Bienvenue au Clusif !
Accès membres | Evénements en région | Informations légales |
logo Clusif
Club de la Sécurité de l'Information Français

clusif@clusif.asso.fr / +33 1 53 25 08 80 / 11, rue de Mogador 75009 Paris
Adresse de cette page : http://www.clusif.fr/fr/production/infovir/infovir04.asp

Typologie des infections

TYPOLOGIES : Infections informatiques Virus Vers

Les infections informatiques

Les infections informatiques sont de 3 ordres. On différencie :

Programmes simples

Un programme simple contient une fonctionnalité malveillante cachée qui est appelée à se déclencher à un instant donné, sur un critère donné. Il n'y a pas propagation. Ce programme doit être introduit (volontairement ou non) dans l'ordinateur ciblé. On le retrouvera en seul exemplaire. Lorsque l'utilisateur exécute le programme, la fonctionnalité malveillante (payload) s'exécute immédiatement. Une action destructive ou simplement perturbatrice est alors mise en œuvre. Selon son but, elle sera visible ou non par l'utilisateur. Une fois l'action accomplie, le programme se termine. Il n'est généralement pas résident en mémoire.

On retrouve dans cette famille la Bombe Logique et le Cheval de Troie. La Bombe Logique est un programme contenant une fonction cachée généralement associée à un déclenchement différé. Cette fonction a été rajoutée de façon illicite à un programme hôte qui conservera son apparence anodine et son fonctionnement correct jusqu'au moment choisi par le programmeur malveillant. Le Cheval de Troie comporte également une fonctionnalité cachée. Ici, sa mise en oeuvre est immédiate et systématique. Il s'agit souvent de l'élément "serveur" d'un outil dédié à la prise de main à distance.

Programmes auto-reproducteurs

La finalité d'un programme auto-reproducteur est identique à celle d'un programme simple. Il s'agit de perturber ou de détruire. A sa première exécution, le programme cherche à se reproduire. Il sera donc généralement résident en mémoire et, dans un premier temps, discret.
Si elle existe, la fonctionnalité malveillante (payload) s'effectuera plus tard sur un critère quelconque prédéfini (trigger). Pour de nombreux virus la perturbation se limite à la reproduction et à tous les ennuis qu'elle engendre. Il n'y a pas à proprement parlé de fonction malveillante (absence de payload). Appartenant à la famille des programmes auto-reproducteurs, on retrouve les virus au premier rang des infections informatiques.

La définition "officielle" du virus a été établi par le Dr Fred Cohen en 1987 :
"... a program that can "infect" other programs by modifying them to include a possibly evolved copy of itself"

Agents malveillants Internet

Des programmes malveillants circulent spécifiquement sur INTERNET ; ils prennent habituellement le nom d'agents malveillants. Un agent est un programme, habituellement de petite taille, employé pour réaliser une tache spécifique et pour atteindre un objectif précis. Il agit de manière autonome. Intelligent, il s'adapte de lui-même à son environnement. Il a la capacité d'apprendre en utilisant sa propre expérience. Dans son domaine particulier, il possède un certain niveau d'expertise.
Afin d'augmenter les échanges d'informations, un agent peut être un lien entre diverses parties d'un système local. Il peut aussi opérer au sein d'un réseau et mettre en œuvre, de lui même, des processus d'auto-distribution. Les applets JAVA et les contrôles Active-X entrent dans cette catégorie.

Les virus

Les différents types de virus sont :

Virus programme

Un programme est une suite d'instructions exécutables par un ordinateur. Il existe plusieurs types de programmes, et chacun d'eux peuvent faire l'objet d'une attaque virale spécifique : Programmes DOS. Ce sont des fichiers exécutables par le système d'exploitation PC-DOS (Personal Computer Disk Operating System). D'abord proposés sur des serveurs BBS (Bulletin Board Systems) dédiés aux échanges, ils sont aussi disponibles sur INTERNET. Les jeux et utilitaires échangés entre utilisateurs aidèrent à leur diffusion. Cependant, malgré leur très grand nombre, la proportion des infections dues à ces virus n'a cessé de diminuer. Pour la plupart, ils sont incapables de s'exécuter correctement sur les systèmes d'exploitation d'aujourd'hui. Application Windows 16bits. Ces programmes sont aussi appelés New Executable (NE EXE). On les rencontre dans les environnements Windows 3.x. Une trentaine de virus ciblant cette plate-forme ont été recensés. Leur diffusion est quasi nulle. Application Windows 32bits. Ces programmes sont aussi appelés Portable Executable (PE EXE). Les fichiers VxD sont appelés Linear Executable (LE). On les rencontre dans les environnements Windows 95/98 et NT. Les virus ciblant cette nouvelle plate-forme sont en forme expansion. Certains utilisent en outre des fonctions non documentées du noyau de Windows. Tout comme leurs prédécesseurs, ils peuvent - entre autres - présenter des caractéristiques de furtivité, et de polymorphisme. Ils pourront être -ou non-résidents en mémoire. Jusqu'alors, les CD-ROM professionnels ou de jeu ont été la principale cause de diffusion de ce nouveau fléau. Ces nouvelles techniques d'infection représentant un nouveau défi pour les auteurs de virus, de nombreux sites INTERNET les proposent au téléchargement à grand renfort de publicité et le nombre des virus 32 bits ne cesse de croître. Pour être complet, il nous faut citer les applicatifs OS/2 (NE - New Executables - LX) et les applicatifs LINUX (ELF Internal Format). Quelques virus existent également dans ce domaine.

Virus système

Préalablement à l'apparition des macro-virus, les virus systèmes étaient de loin les plus répandus. Ils infectent les zones systèmes des disques durs ou des disquettes :

  • secteur de partitions (MBR, Master Boot Record) pour les disques durs,
  • secteur d'amorce (BOOT) pour les disques durs et les disquettes.

Rappelons simplement ici qu'un virus système ne peut contaminer un disque dur qu'au cours d'une tentative de démarrage avec une disquette infectée quelconque (bootable ou non). Toutes les caractéristiques des virus programme se rencontreront aussi dans cette catégorie ; à l'exception d'une seule : tous les virus système sont résidents en mémoire. La source de diffusion est donc l'échange de disquette. Cette pratique diminuant fortement avec la mise en place des messageries d'entreprise, la propagation de ces virus est en forte baisse.

Virus multipartite

Un virus multipartite (certains utilisent le terme de bivalent) cherche à infecter les zones systèmes des disques durs ou des disquettes et les fichiers exécutables. Selon des critères propres à chaque virus, l'une ou l'autre des techniques d'infection est mise en œuvre à un instant donné. Le but recherché est une plus grande propagation.

Macro-virus

Une macro est une suite d'instructions exécutée par un programme ou un ordinateur. On utilise généralement ces instructions pour automatiser des tâches ennuyeuses et répétitives et pour accélérer son travail. Les macros sont réalisées dans un langage de programmation spécial et grâce à un outil d'aide à la création que l'on retrouve dans tous les outils bureautique performants. Les macro-virus ont tout d'abord ciblé les outils bureautiques de Microsoft le plus répandu : Word6 et Word7 (Word95). Ils étaient alors écrits en WordBasic (WB). Excel5 (Excel95), mais surtout Office97, proposent maintenant le Visual Basic for Applications (VBA). C'est avec ce nouvel outil que les virus sont aujourd'hui écrits. Word et Excel sont les 2 outils bureautique privilégiés par les auteurs de virus. Des virus existent cependant sous Access et PowerPoint. D'autres plates-formes, tels qu'AmiPro, Lotus123, Corel Draw et Visio ont fait l'objet de quelques attaques virales. Le quasi-monopole de Microsoft a cependant conduit les auteurs de virus à privilégier cette cible. Le langage de programmation utilisé est indépendant du système d'exploitation. Un virus ainsi développé, peut donc se propager sur des plates-formes différentes (Windows 3.11, 95, NT, Macintosh Système 7 ou Système 8) dès que celle-ci accueille la même suite bureautique. Lors de leur apparition, ces virus semblaient plus faciles à réaliser que ceux programmés en assembleur. Ils sont cependant devenus de plus en plus sophistiqués. Certains virus s'attaquant aux feuilles de calcul Excel sont remarquablement furtifs. Bon nombre d'entre eux se propagent sans problème avec les versions anti-SR1 d'Office 97 qui présentent pourtant quelques éléments de protection supplémentaires. Tous les outils bureautiques sont affectés. Pour mieux atteindre certaines cibles qui ne font pas l'objet d'échanges incessants entre utilisateurs, le concept de "multi-application" est de nouveau à la mode (Word97 + Excel97 + PowerPoint97, par exemple)

Virus de "script"

Un langage de scripts est un langage de programmation spécialisé destiné à contrôler l'environnement d'un logiciel. Interprété, il peut donc être exécuté sur toute machine disposant de l'interpréteur approprié. Deux des plus utilisées sont VBScript et Javascript.

Virus "VBScript"

VBScript a été créé à partir de VBA et de VISUAL BASIC. il repose sur du code source en clair et non sur du code compilé tel que celui des applets. Tout un chacun peut donc voir et modifier le code des scripts qu'il rencontre. VBScript doit être aussi considéré comme un langage autonome. Avec l'arrivée des nouvelles versions de WINDOWS, il se peut qu'il détrône les fichiers de traitement par lots composés d'une série de commande DOS (fichiers BATCH). Les premiers virus purement VBScript datent d'octobre 1998. En raison de leurs capacités de propagation hors du commun, l'un des alias donné au premier né de la famille fut RABBIT. Leur nombre augmente parallèlement à la généralisation de ce nouveau langage. Les premiers virus VBScript qui se propagèrent sérieusement apparurent en juillet 1999. Il s'agit de vers de messagerie (VBS/Freelink@mm, VBS/Monopoly@mm & VBS/Triplesix@mm).

VIRUS "Javascript"

JAVA est un langage créé par SUN MICROSYSTEMS. Il est comparable au C++ et orienté objet. Il est indépendant de toute plate-forme. Son exécution ne nécessite que la présence du processeur virtuel "Java Virtual Machine". Java permet de réaliser deux types de programmes : des applets et des applications. Alors qu'un applet n'est qu'une forme hybride de programme incorporé à un document HTML, Java permet aussi la réalisation d'applications intégrées complètes et autonomes qui peuvent avoir le contrôle total du système. JavaScript n'est PAS Java ! En effet, si Java est un langage compilé, JavaScript, développé par la société NETSCAPE, est interprété. Le code est inclus soit dans une page HTML, soit dans un fichier à l'extension standard ".js". Du point de vue viral, notez bien la distinction faite au niveau du préfixe (JV pour Java, JS pour JavaScript). A titre d'exemple, JS/TheFly @mm est un ver JavaScript. Il est contenu dans un fichier attaché THE_FLY.CHM (Compiled HTML Help File). En août 1998, avec JV/Strangebrew, la première expérience des auteurs de virus se fit avec Java [Raiu, 1998]. Il s'agit du premier virus natif java, il est capable d'infecter aussi bien les applets que les applications. Cependant ses capacités d'infection sont limitées, un applet infecté n'infectera pas un autre applet ni une application. De plus, l'infection et la propagation ne peuvent avoir lieu au travers du WEB, depuis un navigateur tel que Netscape ou Internet Explorer. Le virus ne peut se propager que depuis une application locale infectée utilisant JAVA.EXE (kit JDK - Java Developper's Kit) ou l'un de ses équivalents. Le virus STRANGEBREW est considéré comme étant le premier virus véritablement multi plates-formes car il est capable de sévir sur n'importe quelle plate-forme exécutant une machine virtuelle Java, depuis les PC Windows 95 jusqu'aux serveurs Unix et aux super calculateurs Cray.

Virus HTML

En novembre 1998, certains parlèrent de virus HTML. Il s'agit en fait de code VBScript capable de se propager via des fichiers HTML sur une machine locale.

Vers (worms)

En 1988, à l'époque du ver RTM (du nom de son auteur : Robert Tappan Morris), la distinction entre ver et virus est généralement acquise :

  • Un ver [Denning, 1988, 1989] est un programme capable de fonctionner de manière autonome. Il peut propager une version fonctionnelle et complète de lui-même vers d'autres machines. Le terminologie anglaise (worm) est dérivée du mot "tapeworm" que l'on trouve dans un roman de Science Fiction de 1975. A l'époque, le ver n'a pas forcément une connotation malveillante, il peut accomplir un travail utile dans un réseau.
  • Un virus [Cohen, 1984, 1987] est un programme capable d'infecter d'autres programmes en les modifiant pour y inclure une copie de lui-même qui pourra avoir légèrement évoluée. Le virus ne peut pas fonctionner d'une manière autonome. L'exécution du programme hôte est nécessaire à son activation. Par analogie avec son cousin biologique, il se multiplie au sein de l'environnement qu'il cible et entraîne corruption, perturbation, et/ou destruction.

A l'heure actuelle, le ver est généralement considéré comme un sous-ensemble dans la famille des virus. Tout code malveillant à même de se propager est considéré comme un virus: le ver utilisant explicitement le réseau ou la messagerie électronique pour se dupliquer. Cette généralisation s'impose depuis l'apparition des virus du type VBS/BubbleBoy@mm qui n'infectent pas d'une manière "parasitaire" mais introduisent un fichier viral qui sera ensuite exécuté automatiquement.

Ces derniers-nés ont une très haute capacité de propagation; ils utilisent la messagerie électronique pour s'auto-distribuer et ont été baptisés selon une terminologie anglaise "mass-mailer" ou "mass-mailing virus". Ils reprennent en fait l'idée d'une partie de leurs prédécesseurs.

Mailers et Mass-mailers (suffixe "@m" et "@mm")

La notion de "mass-mailer" apparaît avec W97M/Melissa@mm. Dans une courte période de temps, les virus de ce type qui apparaissent expédient un nombre impressionnant de mail. Il a fallu plus de six mois à W32/Ska.A@m pour faire le tour du monde, Melissa n'a mis que 2 jours.

Pour ces nouveaux venus, il fallait un signe de reconnaissance qui alerte le public. S'apparentant tout d'abord aux macro-virus, et sous l'impulsion de divers de ses membres, le CARO adopta l'utilisation du suffixe "@mm". En janvier 2000, lors d'échanges sur le forum VMACRO, Francois PAGET, membre du CLUSIF tentait d'en préciser l'utilisation :

  1. Le suffixe "@mm" est dédié aux virus/vers qui possèdent un processus opérationnel de propagation par messagerie.
  2. Outre l'infection via la messagerie, ces macro-virus ont généralement un processus d'infection standard DOC<->DOT.
    7 cas sont référencés :
    1. Les 2 modes d'infections sont fonctionnels : on utilisera le suffixe "@mm" (exemple W97M/Melissa.A@mm)
    2. Le mode DOC<->DOT ne fonctionne pas ou n'existe pas. La propagation se fait uniquement par mail : on utilisera le suffixe "@mm" (exemple W97M/Melissa.T@mm)
    3. Le mode messagerie ne fonctionne pas. La propagation se fait uniquement de fichier à fichier (DOC<->DOT) : pas de suffixe (exemple W97M/Mck.H),
    4. Aucun processus d'infection n'est opérationnel. Il y a copie vers le NORMAL.DOT mais l'infection récursive échoue. C'est la création d'un auteur de virus : celui-ci est un "intended", sans suffixe,
    5. Aucun processus d'infection n'est opérationnel. Pas de copie vers le NORMAL.DOT, pas de récursivité. C'est la création d'un auteur de virus : celui-ci est un "intended", sans suffixe,
    6. Aucun processus d'infection n'est opérationnel. Il y a copie vers le NORMAL.DOT mais l'infection récursive échoue. C'est une corruption ou un objet généré automatiquement : celui-ci n'est rien du tout !
    7. Aucun processus d'infection n'est opérationnel. Pas de copie vers le NORMAL.DOT, pas de récursivité. C'est une corruption ou un objet généré automatiquement : celui-ci n'est rien du tout !

Aujourd'hui, un consensus général a vu le jour. Tout virus (et non plus seulement les macro-virus) qui cible de multiples boites à lettres se voit affecté du suffixe "@mm". Citons à titre d'exemple : W32/PrettyPark@mm, VBS/Loveletter.A@mm.

Même s'ils sont parmi les plus répandus, les avis furent longtemps partagés quant à l'attribution du suffixe pour les virus tels que W32/SKa ou JS/Kak. Les échanges entre spécialistes aboutirent à la création du suffixe "@m". W32/Ska@m cible un seul destinataire à chaque activation. Certains diront que sa propagation n'est donc pas "explosive". Tout comme JS/Kak@m, ils ont fait plusieurs fois le tour de la planète, ce ne fut qu'une question de temps. Qui plus est, il semble que leur présence perdure.

"Mailers" et "mass-mailers" se définissent maintenant de la manière suivante :

  1. Le suffixe "@m" est dédié aux virus/vers qui possèdent un processus opérationnel de propagation par messagerie et qui cible une seule boite à lettres à chacune de leur activation.
  2. Le suffixe "@mm" est dédié aux virus/vers qui possèdent un processus opérationnel de propagation par messagerie et qui cible plusieurs boites à lettres à chacune de leur activation.
  3. Outre l'infection via la messagerie, ces virus/vers peuvent également avoir un processus d'infection standard DOC <-> DOT ou plus généralement FICHIER <-> FICHIER. Parmi les 7 cas référencés au paragraphe précédent, on retiendra pour les 2 premiers :
    1. Les 2 modes d'infections sont fonctionnels : on utilisera le suffixe adéquat (exemple W97M/Melissa.A@mm, W95/Babylonia@m, W32/MTX@mm),
    2. Le mode FICHIER <-> FICHIER ne fonctionne pas ou n'existe pas. La propagation se fait uniquement par mail : on utilisera le suffixe adéquat (exemple W97M/Melissa.T@mm, JS/Kak.A@m, W32/Ska@m, VBS/Loveletter.A@mm).

Même si pour d'obscures raisons le caractère "-" remplace "@" ; à compter de septembre 2000, la WildList utilise ce standard.

Club de la Sécurité de l'Information Français
Association loi de 1901
11, rue de Mogador 75009 Paris
+33 1 53 25 08 80