Les infections informatiques sont des programmes ou des sous-ensembles de programmes malveillants qui, à l’insu de l’utilisateur, sont destinées à perturber, à modifier ou à détruire tout ou partie des éléments indispensables au fonctionnement normal de l’ordinateur. On différencie les programmes simples et les programmes auto-reproducteurs.
L’organisation de l’activité et le bon fonctionnement du système d’information peuvent également être perturbés par la diffusion de courriers ou d’éléments non sollicités tels que :
- des farces, en anglais jokes : programmes inoffensifs et dédiés, le plus souvent, à l’amusement,
- des courriers non sollicités, plouriels, en anglais spam : messages à caractère commercial s’appuyant éventuellement sur une usurpation d’adresse électronique,
- des arnaques financières tel que le scam : messages vous proposant un montage financier attractif derrière lequel se cache une escroquerie qui s’articule autour d’une demande d’avance de fonds de la part de la victime,
- des rumeurs, en anglais hoaxes: informations malveillantes et non fondées qui sont diffusées pour inquiéter les destinataires ou discréditer une personne ou un organisme,
- des lettres chaînes messages s’appuyant sur la crédulité des destinataires faisant appel à la piété, la générosité et/ou la superstition et proposant éventuellement un enrichissement personnel,
Nous verrons plus loin que ces attaques ont de nombreux points communs avec certains chevaux de Troie ou virus.
Les grandes familles d’infections
Programmes simples
Un programme simple contient une fonctionnalité malveillante (payload) cachée qui se déclenche ou s’initialise lors de son exécution. Il n’y a pas propagation. En un seul exemplaire, ce programme doit être introduit dans l’ordinateur ciblé. C’est souvent l’utilisateur lui-même qui, par manque de discernement, introduit le programme. Ce processus peut également être le travail d’un virus.
L’action induite peut avoir un caractère destructif ou simplement perturbateur. Elle peut être immédiate ou retardée dans le temps. Dans de nombreux cas, le programme appelé s’installe à l’insu de l’utilisateur et modifie les paramètres du système pour ensuite s’exécuter à chaque démarrage de la machine. Il agit alors de manière discrète et continue.
On retrouve dans cette catégorie:
- les bombes logiques,
- les chevaux de Troie,
- les portes dérobées,
- les outils de capture d’information,
- les outils d’attaque réseau,
- les outils d’appropriation de ressources.
Bombe logique
C’est un programme contenant une fonction destructrice cachée et 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. Elle peut être conçue pour frapper au hasard ou de manière ciblée.
Exemple de bombe logique ciblée: un programmeur insère dans le programme de paie de l’entreprise qui l’emploie une fonction de destruction dont l’exécution est déclenchée si son nom disparaît du fichier du personnel.
Exemple de bombe logique aveugle: un programmeur insère dans un logiciel public distribué gratuitement sur Internet une routine de destruction qui se déclenche chaque 1º avril.
Chevaux de Troie et portes dérobées (en anglais backdoors)
Ces programmes permettent d’obtenir un accès non autorisé sur les équipements qui les contiennent.
On utilise le terme de cheval de Troie lorsqu’il s’agit d’une fonction cachée et rajoutée au sein d’un programme légitime quelconque. Le terme de porte dérobée s’applique à tout programme malveillant spécifiquement dédié à cet effet.
Il s’agit en fait de l’un des éléments d’une application client/serveur permettant la prise de contrôle à distance d’un PC. Deux ordinateurs entrent en jeu. Le premier contient l’élément client, il pilotera le processus. Le second est la machine cible; il contient l’élément serveur le cheval de Troie ou la porte dérobée. Il devra être actif sur la machine pour pouvoir initier la connexion avec le client. Le pirate interroge le réseau, au travers d’une adresse IP. Si celle-ci est joignable, la connexion s’effectue.
Une telle prise de contrôle à distance peut être légitime (opération de télémaintenance) ou non. Dans le cas d’un acte malveillant, le propriétaire de la machine visitée a exécuté à son insu l’élément serveur; il ignore que son poste peut être visité.
Avant 1998, ces programmes ne faisaient guère parler d’eux. Cette année-là, toute une série d’outils furtifs de prise de main à distance ont été mis à disposition sur le Web. Les plus connus furent Back Orifice et Socket23.
Back Orifice (en référence à « Back Office » de Microsoft) fut créé par un groupe de hackers baptisé le culte de la vache morte (The cult of the Dead cow cDc). Voici les premières lignes d’un texte qui fut disponible sur leur site :
« Back Orifice is a remote administration system which allows a user to control a computer across a tcpip connection using a simple console or GUI application. On a local LAN or across the internet, BO gives its user more control of the remote Windows machine than the person at the keyboard of the remote machine has. »
Avec de tels outils, un pirate est à même de prendre le contrôle total de sa cible. A titre d’exemple, notons qu’il peut :
- analyser la configuration de la machine et du réseau s’y rattachant,
- modifier la base de registre,
- naviguer dans les répertoires,
- envoyer/recevoir des fichiers,
- exécuter un programme sur la machine,
- rebooter, verrouiller l’ordinateur,
- visualiser l’affichage et surveiller les frappes au clavier,
- émettre des sons.
Outils de capture d’information
Les techniques de collecte d’information sont diverses. Il est possible de classifier les outils utilisés en fonction de l’information recherchée.
Renifleur de clavier et de mots de passe
Un renifleur de clavier (en anglais keylogger) est un programme permettant d’enregistrer les frappes au clavier. Son rôle ne se limite pas à l’enregistrement d’éventuels mots de passe. Il peut être sélectif ou enregistrer l’intégralité des informations qui transitent sur le périphérique de saisie. Les outils spécifiquement dédiés à la capture de mots de passe prennent souvent la dénomination anglaise de Password-Stealer (PWS).
La plupart de ces dispositifs sont invisibles. Les frappes clavier sont généralement écrites dans un fichier temporaire chiffré et envoyé automatiquement, par courrier électronique, à l’espion.
Beaucoup de virus actuels diffusent ces différents outils. Ils profitent du mode de propagation viral pour s’installer plus aisément sur de nombreuses machines qui deviennent ainsi vulnérables à ce type d’attaque.
Certains keyloggers sont en vente libre (exemple: Ghost Keylogger ou Keylogger pro).
Publiciel et espiogiciel
Au fil de la navigation sur le Web, divers programmes sont installés sur l’ordinateur à l’insu de l’utilisateur. Ils sont plus communément connus sous leurs terminologies anglaises d’adware et de spyware.
Un adware (Advertising Supported Software) est un logiciel qui permet d’afficher des bannières publicitaires. La plupart des annonceurs sont juridiquement légitimes et leur société commerciale reconnue. Les programmes ne diffusent pas d’information vers l’extérieur mais permettent la planification ciblée de messages d’accroche.
Les spywares sont des adwares qui installent sur le poste de l’utilisateur un logiciel espion et envoient régulièrement et, sans accord préalable, des informations statistiques sur les habitudes de celui-ci.
Certains spywares ne se contentent pas de diffuser de l’information. Ils modifient les paramètres système à leur avantage pour imposer, à l’utilisateur qui en est la victime, un certain mode de navigation sur le Web. Ces logiciels peuvent aussi capturer vos habitudes en consultation hors ligne. Ils expédient les résultats de leur collecte à chaque ouverture du navigateur.
Certaines rumeurs font état d’une utilisation de la carte son à des fins d’écoute. Cette technique est à tout à fait envisageable mais aucun cas concret n’a pu être établi.
Pour contrer tout cela, il existe aujourd’hui des solutions spécifiques de détection-éradication, mais les nouvelles versions des logiciels antivirus prennent aussi en compte les spywares. Plus que jamais, la mise à jour de la base de « signatures » est nécessaire.
Outils d’attaque réseau
Attaque en Déni de Service (DoS, Denial of Service)
En termes de serveur et, plus rarement de poste client, une attaque de type DoS est une activité consistant à empêcher quelqu’un d’utiliser un service. Pour ce faire, l’attaquant utilise un programme qui cherche à rendre le système ciblé indisponible en le faisant se suspendre ou en le surchargeant.
En terme de réseau, une attaque de type DoS à consiste à submerger la victime d’un flot de trafic supérieur à sa capacité de traitement. La bande passante est alors saturée et le réseau devient indisponible.
Attaque en Déni de Service Distribué (DDoS)
Il s’agit d’une attaque de type DoS qui utilise un grand nombre de machines simultanément. Ce type d’attaque se déroule généralement en deux temps. L’attaquant tente d’abord d’installer son outil sur le plus grand nombre de machines possibles. Celui-ci est programmé pour se déclencher soit sur commande (cas des botnets), soit à un instant prédéfini. Il doit ainsi provoquer une surcharge bien plus importante que dans le cas d’une attaque unique.
Outils d’appropriation de ressources
Numéroteur furtif
Un numéroteur furtif (en anglais dialer) est un programme gérant une connexion réseau à distance. Il s’agit souvent de faciliter une liaison vers un site au contenu licite par le biais d’un numéro téléphonique surtaxé. Ces programmes s’installent généralement de manière silencieuse lors de la navigation Web.
Dans certains cas, le programme dialer démarre en même temps que l’ordinateur sans que l’utilisateur en ait la connaissance. Il établit la liaison automatiquement et reste en ligne aussi longtemps que la session est ouverte. Ils concernent essentiellement les connexions en bas débit via la ligne téléphonique, l’ADSL impliquant un autre mode d’accès à Internet.
Relais de spam
Installés sur la machine à l’insu de son propriétaire, ces mini-serveurs permettent l’émission du courrier non-sollicité (spam) vers les victimes de spammeurs. Cette technique leur évite de se faire eux-mêmes détecter et bloquer directement par leur fournisseur d’accès. Cette pratique équivaut à un détournement de ressources.
Programmes auto-reproducteurs
La finalité d’un programme auto-reproducteur est identique à celle d’un programme simple. Il s’agit d’exploiter, 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 dans un délai plus ou moins court et 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 parler de fonction malveillante (absence de payload).
Les vers et les virus forment à eux seuls la famille des programmes auto-reproducteurs, on les retrouve au premier rang des infections informatiques.
A l’époque du ver RTM (du nom de son auteur: Robert Tappan Morris), la distinction entre ver et virus est généralement acquise même si elle apparaît parfois des plus fines :
- Un ver (d’après la définition de Peter Denning en 1990) est un programme capable de fonctionner de manière indépendante. Il se propage de machine en machine au travers des connexions réseau. Un ver ne modifie aucun programme, il peut cependant transporter avec lui des portions de code qui pourront, par la suite, effectuer une telle activité (virus par exemple).
- La terminologie anglaise « worm» est dérivée du mot « tapeworm » imaginé par John Brunner dans une de ses œuvres de science-fiction « Sur l’onde de choc ».
- Un virus (d’après Fred Cohen en 1984/87) 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é. Le virus ne peut pas fonctionner d’une manière indépendante. 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.
Tout code malveillant à même de se à propager est souvent considéré comme un virus. Selon cette théorie, les vers ne sont alors qu’un sous-ensemble dans la famille des virus. C’est le parti pris que nous prendrons dans la suite de ce document. Notons cependant qu’il n’existe pas de consensus à ce sujet dans la communauté anti-virale et diverses autres définitions circulent.
Classement par cible
Il existe quatre catégories principales de virus. Elles ont chacune une cible bien précise :
- Les virus programme, dont le vecteur de contamination principal est constitué par les exécutables,
- Les virus système, dont le vecteur de contamination est le secteur de partition ou le secteur de démarrage (Boot Sector),
- Les virus interprétés qui regroupent les virus de macro sur les documents et les virus de Script utilisant un langage de programmation particulier qui se rapprochent de la programmation par lot (batch),
- Les vers qui, comme nous l’avons vu, sont les infections typique des réseaux.
De nombreux virus cumulent les cibles et renforcent ainsi leur capacité de contamination. Ils prennent alors les noms de virus multipartites ou multifonction.
Une nouvelle classe de programmes malveillants se développe depuis 2003 il s’agit des robots. Ils cumulent souvent une fonctionnalité de type « ver » et une activité d’appropriation de ressources, d’attaque réseau et/ou d’espionnage.
Virus programme
Les virus programme cherchent à infecter les exécutables binaires compilés. Le principe de fonctionnement est le suivant :
- le virus est présent dans un fichier exécutable,
- lorsque celui-ci est exécuté, le virus choisit et contamine un ou plusieurs autres fichiers,
- il agit généralement par ajout entraînant une augmentation de taille,
- s’il se maintient résident en mémoire, il infecte d’autres fichiers à l’exécution, ou simplement lors d’une manipulation.
Il existe plusieurs types de programmes, et chacun d’eux peut faire l’objet d’une attaque virale spécifique:
Programmes DOS. Jusqu’en 1999, la majorité des virus programmes fonctionnaient sous DOS et ciblaient les fichiers exécutables par ce système d’exploitation. Déjà limitée à cette époque, la proportion des infections dues à ces virus DOS n’a cessé de diminuer pour être presque inexistante aujourd’hui. Les plus courants d’entre eux étaient résidents en mémoire et utilisaient la technologie « par ajout ». Ils étaient souvent furtifs, cryptés et polymorphes.
Application Windows 16 bits. 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 a été quasi nulle.
Application Windows 32 bits. Ces programmes sont aussi appelés « Portable Executable» (PEEXE). Les fichiers VxD sont appelés « Linear Executable» (LE). On les rencontre dans les environnements Windows actuels. En forte expansion, certains utilisent des fonctions non documentées du noyau de Windows et tout comme leurs prédécesseurs, ils peuvent présenter des caractéristiques de furtivité, et de polymorphisme. Ils pourront être ou non résidents en mémoire.
A l’origine, des CD-ROM de jeu furent le principal vecteur de leur diffusion. Cette nouvelle
technique représentant un nouveau « challenge » pour les auteurs de virus, de nombreux sites Internet les proposaient au téléchargement à grand renfort de publicité.
Aujourd’hui, leur diffusion se fait par la messagerie électronique, les disques partagés et les
échanges de fichiers sur le modèle « poste à poste ». L’infection locale des fichiers sur le poste de travail n’est qu’une fonctionnalité complémentaire aidant à la propagation du virus au travers du réseau.
Pour être complet, il nous faut citer les applicatifs OS/2 (NE « New Executables » LX) et Linux (ELF Internal Format). Quelques virus existent également dans ces domaines.
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, Dos Boot Record) pour les disques durs et les disquettes.
Pour s’approprier l’un 2 de ces 2 secteurs, le virus peut être introduit via un programme spécifique (dropper ou virus multipartite). Les auteurs ont cependant immédiatement compris qu’il était beaucoup plus simple de concevoir un virus directement sous la forme d’un secteur de démarrage de disquettes. Le principe de fonctionnement adopté est le suivant :
- le virus est présent dans le secteur de démarrage d’une disquette,
- il contamine le PC lorsque le BIOS exécute le code,
- il déplace ou écrase le code original du BOOT ou du MBR du disque dur,
- il remplace ce code par lui-même,
- il sauvegarde éventuellement le code excédent (code complémentaire du virus) dans d’autres secteurs, libres ou occupés,
- dès à lors et à chaque nouveau démarrage, il sera résident en mémoire et capable d’infecter d’autres disquettes sur un simple accès.
Exemples d’infection du MBR : Jumper.B, Antiexe.
Exemple d’infection du BOOT : Form.
Virus multipartites
Un virus multipartite 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. De tels virus infectent, par exemple, le secteur de partition du système puis, une fois résidant en mémoire vive, infectent les fichiers exécutables situés sur des unités logiques.
Exemples : Tequila, One-Half.
Virus interprétés
Virus de macro
Les virus interprétés regroupent principalement les virus de macro et les virus de script. Du fait de la sophistication des outils de bureautique actuels, tout fichier de données doit être considéré comme potentiellement dangereux. Même si aujourd’hui de nombreux standards de fichier n’acceptent pas l’encapsulation de routines automatisables (macros ou scripts), cette technique tend à se développer. Un type de fichier aujourd’hui inoffensif pourra ainsi rapidement devenir dangereux.
Jusqu’à l’arrivée de WM/Concept en 1995, le grand public était persuadé qu’un virus, considéré à juste titre comme un programme, ne pouvait être véhiculé et introduit dans un ordinateur qu’avec l’aide éventuelle d’un autre programme. En clair, seuls les fichiers exécutables ou les zones systèmes des disquettes pouvaient, après infection, propager à leur tour le virus. A contrario, les fichiers ne contenant que des données étaient sans danger.
La sophistication des outils bureautiques avec l’apparition des langages a de macro a bouleversé la donne. Sans toujours en imaginer les conséquences, les fichiers de données contenant textes ou feuilles de calcul se sont trouvés enrichis de routines automatisables et programmables. Par là même, ils devenaient un nouveau terrain de jeu pour les auteurs de virus.
Lorsque apparaît le virus « Concept», de nombreuses sources annoncèrent que les chercheurs antivirus l’avaient depuis longtemps envisagé. Certains en soupçonnaient même l’existence en Europe dès le milieu de l’année 1988. Un article fut publié à ce sujet en août 1989, dans la revue « Computers & Security».
Ciblant Word 6 de Microsoft, WM/Concept (WinWord. Concept) fut cependant, en Août 1995, le premier macro-virus « in-the-wild » (dans la nature). Deux ans après (août 1997), on en comptait plus de 1300.
Se propageant rapidement, les virus de macro ont vite retenu l’attention. Avant leur apparition (1994), les virus système représentaient environ 80 % des cas de contaminations signalés, et moins d’une dizaine de virus représentait également environ 60 % des cas signalés. Ces statistiques ont été bouleversées en quelques mois. Ainsi, les virus WM/Concept, WM/Npad, WM/Mdma, WM/Wazzu et leurs variantes représentèrent en 1998 la majorité des infections recensées.
Deux ans après, la très grande majorité des virus de macro infectait les différentes versions du traitement de texte MS-Word et du tableur MS-Excel (depuis les versions Office-95, jusqu’à celles incluses dans le pack Office-2000). Des virus existaient cependant sous MS-Access et MSPowerPoint. Pour mieux atteindre ces cibles qui ne faisaient pas l’objet d’échanges incessants entre utilisateurs, le concept de « multi-applications» fut remis à la mode.
Potentiellement, tout programme utilisant des macro-commandes ou un macro-langage peut faire l’objet d’une attaque par un virus créé pour cet environnement. On a ainsi détecté quelques virus contaminant les plates-formes Lotus AmiPro/WordPro, Lotus 1-2-3, Corel 7-9 et Visio 5.
Après avoir été rudimentaires, les modes de reproduction des virus de macro se sont sophistiqués. Ils firent appel à d’autres langages de programmation de haut niveau et non plus seulement au langage machine « assembleur ». Le but de cet artifice fut souvent l’activation d’une fonction malveillante (payload) ou le contournement d’une sécurité. VBScript est un parfait exemple de ces techniques. Il permet la création de script FTP (W97M/GROOV) ou encore une interaction avec des outils de messagerie (W97M/COLDAPE.A). Les techniques de chiffrement et de polymorphie devinrent de plus en plus courantes.
Considérant que la grande majorité des virus de macro en circulation infecte Microsoft Word, une sage précaution consiste à mettre en lecture seule le fichier NORMAL.DOT et à en conserver un exemplaire sain. Selon le virus présent, la procédure de restauration s’en trouvera facilitée.
Les variations autour du concept de virus de macro sont nombreuses. Les modifications peuvent porter sur l’environnement : menus, barres d’outils, raccourcis clavier, boutons. Les effets de la charge virale peuvent être similaires à ceux des virus d’exécutables : modification d’environnement, modification de contenu, effacement de fichiers, etc.
Exemples : WM/Concept, W97M/Class, X97M/Laroux, 097M/Tristate, W97M/Melissa@MM.
Virus de script
Un langage de script 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.
Pour s’exécuter correctement, les fichiers de scripts font appel à Windows Scripting Host (WSH). Absent d’une configuration standard Windows 95 ou Windows NT4, ce logiciel est aujourd’hui installé par défaut avec les versions actuelles de Windows.
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. 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 » (traduction, lapin). Leur nombre a ensuite augmenté parallèlement à la généralisation de ce nouveau langage.
Leur apogée fut atteinte en 2000 en utilisant la messagerie électronique comme vecteur de propagation. Les précurseurs apparurent en juillet 1999. Il s’agissait de VBS/Freelink@MM, VBS/Monopoly@MM et VBS/Triplesix@MM.
Java
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.
Le virus JV/Strange Brew est apparu en Août 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. L’infection et la propagation ne peuvent avoir lieu au travers du Web. Il ne peut se propager que depuis une application locale infectée en utilisant JAVA. EXE (kit JDK Java Developper’s Kit) ou l’un de ses équivalents.
JV/Strange Brew est parfois considéré comme étant le premier virus véritablement multi platesformes car il est capable de sévir sur n’importe quel environnement exécutant une machine virtuelle Java : depuis les PC Windows jusqu’aux serveurs Unix et aux supercalculateurs Cray.
JavaScript
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 novembre 1998, certains parlèrent de virus HTML. Il s’agissait en fait de code VBScript capable de se propager via des fichiers HTML sur une machine locale.
Exemple : JS/Kak@M.
Traitement par lot
Bien avant l’apparition des langages interprétés modernes, certains auteurs se sont appliqués à créer des virus utilisant les commandes DOS au sein de fichiers batch (extension .bat). Même s’ils sont peu courants, certains d’entre eux sont très sophistiqués et peuvent être résidents en mémoire.
Exemple: BatMan.
Les vers
Il est possible de séparer les vers en deux grands groupes selon qu’ils utilisent les réseaux locaux ou qu’ils s’appuient sur Internet. A ces deux groupes, et de par la définition des vers, il faut rajouter à cette famille les vers de disquettes qui ne font que se recopier de répertoires en répertoires en passant par le lecteur A:
Vers de réseaux locaux
Il est facile de franchir le pas entre disques locaux (physiques ou logiques) et disques réseaux et la technique des vers de disquettes s’est très vite étendue à l’ensemble des disques partagés ou partageables. L’infection se déroule généralement de la manière suivante :
- 1) Recherche de disques accessibles .
- 2) Affectation de noms de lecteurs (mapping).
- 3) Copie du ver.
- 4) Exécution.
Dans de nombreux cas l’exécution est différée. Le ver cherche par exemple à se recopier dans un répertoire de démarrage et attend son heure. De ce point de vue, VBS/Netlog découvert en février 2002 en est un intéressant exemple.
Vers de messagerie (mass-mailers)
On retrouve dans cette famille, des virus programme, des macro-virus et des virus de Script. Le point commun est l’utilisation de la messagerie électronique comme moyen privilégié de propagation.
La notion de « mass-mailer» apparaît en 1999 avec W97M/Melissa@MM. Dans une courte période de temps, les virus de ce type qui apparaissent expédient un nombre impressionnant de mails. Il a fallu plus de six mois à W32/Ska.A@M pour faire le tour du monde, Melissa n’a mis que deux jours; quelques heures suffirent à VBS/LoveLetter.A@MM (virus de script).
Pour ces nouveaux venus, il fallait un signe de reconnaissance qui alerte le public. Sous l’impulsion de Vesselin Bontchev et de François Paget, le CARO (Computer Anti-virus Research Organization) adopta l’utilisation du suffixe « @MM » puis celui du suffixe « @M » :
- Le suffixe « @M» est dédié aux virus/vers qui possèdent un processus opérationnel de propagation par messagerie et qui ciblent une seule boîte aux lettres à chacune de leur activation.
- Le suffixe « @MM» est dédié aux virus/vers qui possèdent un processus opérationnel de propagation par messagerie et qui ciblent plusieurs boîtes aux lettres à chacune de leur activation.
Même si pour d’obscures raisons le caractère «-» remplace «@ », à compter de septembre 2000, la WildList’ utilise ce standard.
Vers de l’Internet
Créés grâce à une parfaite connaissance de l’environnement réseau et l’utilisation de nouvelles failles de sécurité, ces nouveaux venus sont répertoriés parmi les plus dangereux. L’attaque touche ici les serveurs et non plus les stations de travail.
Tout débute par l’exploitation d’une vulnérabilité. Celle-ci est généralement connue, mais comme les correctifs n’ont pas été appliqués sur de nombreuses machines, le nombre des serveurs vulnérables est suffisant pour une forte propagation.
Avec W32/Codered.A. worm il s’agit d’un problème de dépassement de capacité de la mémoire tampon pour lequel Microsoft proposa un correctif intitulé « MS01-033 ». Il en est de même avec W32/SQLSlammer. worm, le patch de sécurité « MS02-039 » était connu depuis juillet 2002. Aucun code viral n’est écrit sur le disque dur. La propagation se fait exclusivement en mémoire vive et sa rapidité en est le point fort :
- W32/CodeRed.A.worm transmettait des paquets TCP-SYN: sa propagation était limitée par le temps de latence nécessaire avant que n’arrivent les réponses de la cible.
- W32/SQLSlammer.worm ne transmet qu’un seul paquet UDP sans rien attendre en retour. C’est la bande passante disponible qui limite sa vitesse de propagation.
Vers « poste à poste »
Illégal lorsque non libres de droits, l’échange de fichiers musicaux et vidéo est une pratique de plus en plus courante sur le Web. Plusieurs logiciels gratuits permettent ces échanges de fichiers entre les internautes.
Depuis mai 2002 de nombreux virus utilisent les réseaux poste à poste (P2P PEER TO PEER) d’échanges de fichiers. Le virus se copie généralement dans l’un des répertoires système de Windows, modifie la base de registre pour pouvoir s’exécuter à chaque démarrage et place de nombreuses autres copies de lui-même dans le dossier de téléchargement utilisé par le logiciel d’échange. Afin d’attirer l’attention, les noms retenus correspondaient à des titres de chansons, de films à des jeux informatiques ou des fichiers à caractère sexuel.
Aujourd’hui, plusieurs centaines de vers ciblant KaZaA et/ou Morpheus sont connus.
Exemple : W32/Benjamin. worm, W32/Kazmor. worm.
Vers mIRC
Une de ces premières formes d’attaque est apparue en décembre 1997 sur Internet, et notamment sur IRC (« INTERNET RELAY CHAT »). L’une des plus connues, cible le fichier de configuration SCRIPT. INI du logiciel mIR (prononciation « murk»).
Par défaut, ce fichier se situe dans le répertoire dédié au téléchargement. De plus, un exécutable listé dans ce fichier s’exécutera lors de la fermeture du logiciel.
Dans les versions mIRC inférieures V5.3, il est alors possible d’écraser discrètement le fichier SCRIPT. INI original par une version infectée. Une fois cette manipulation faite, lorsque l’utilisateur rejoint le canal de discussion, il envoie à son tour le virus à toute personne qui rejoint ce même canal.
Tout comme les SCRIPT. INI, les nombreuses variantes de DMSETUP.EXE se propagent par « DCC Send» en infectant entre autres MIRC. INI.
De très nombreux « mass-mailers » possèdent également une fonction « vers mIRC».
Autres vers
Le ver UNIX/Admw0rm est apparu en Russie en mars 1998. Il est capable de se propager d’un environnement Linux à un autre en utilisant une faille des serveurs BIND (Berkeley Internet Name Domain). Dans son environnement original et sa version actuelle, ce ver contient diverses limitations. Une adaptation à un environnement de type INTEL n’est cependant pas à écarter.
Les robots
L’année 2003 a été celle de la naissance des robots. Parmi les plus connus, citons les familles Gaobot, Spybot et Randex. Pour s’implanter, ils utilisent des méthodes classiques : s’ils ne sont pas eux même autoreproducteurs, ils s’installent sur les machines non protégées qu’ils rencontrent par le biais du courrier électronique (spam) ou d’une vulnérabilité exploitée à l’occasion d’une visite sur un site Internet qui les diffuse.
Ce sont souvent des vers à propagation lente. Chaque variante est créée dans un but précis. La diffusion se limite parfois à une entreprise ce qui rend la détection parfois difficile. Une fois sur la machine, le robot attend des ordres venant d’un serveur distant. Il peut alors capturer de l’information, participer à des attaques groupées (DDoS) et servir de relais de spamming, de phishing et d’émission de mails infectés.
Leur durée de vie est courte, c’est leur nombre qui fait leur force. Ils sont créés, distribués afin de créer un réseau de robots (botnet) et rapidement utilisés. Ils attendent d’être sollicités par leur concepteur ou par ceux qui louent leurs services. Certains outils commerciaux douteux s’en servent comme intermédiaires.