Virus Bénéfiques
Théorie

Michel Dubois
myshell.dubois@neuf.fr
http://vaccin.sourceforge.net


Le 22 mars 1991, le record mondial de vitesse de calcul par un ordinateur est battu par une société du Massachusetts spécalisée dans le calcul parallèle1. Le record précédent était détenu par un virus écrit et distribué sur l'Internet par Robert Morris, alors étudiant à l'université de Cornell.

C'est par ce constat que Fred Cohen commence son article sur les virus bénéfiques [1]. Il démontre par la suite, que les technologies virales peuvent être utilisées à des fins bénéfiques. En effet, si un virus exécute un certain nombre de calculs sur les ordinateurs qu'il infecte et qu'il peut ensuite coordonner les résultats de ces calculs, il met en place une grille d'ordinateurs effectuant des calculs en parallèle et ceci à l'échelle mondiale.

1  Caractéristiques d'un virus bénéfique

Plusieurs spécialistes de la virologie informatique ont étudié la possibilité d'utiliser les virus à des fins bénéfiques. C'est à Vesselin Bontchev que revient le mérite d'avoir fixé les critères permettant de différencier un virus bénéfique d'un autre virus [2].

Dans le cadre d'une enquête réalisée sur le forum de news Virus-L/comp.virus, Vesselin Bontchev a demandé aux internautes de décrire les critères qui, selon eux, faisaient que les virus étaient perçus comme nocifs. Il a ensuite rassemblé et classé les réponses et en a déduit les critères définissant un virus bénéfique.

1.1  Les critères techniques

1.1.1  Le contrôle

Le premier critère technique concerne le contrôle de la propagation du virus. Par défaut, un virus se propage d'ordinateurs en ordinateurs de façon aléatoire. Ainsi, il n'est à priori pas possible de déterminer à l'avance si un ordinateur va être infecté ou pas. Un virus bénéfique doit pouvoir être contrôlé et les ordinateurs cibles fixés à l'avance.

Une solution consiste à mettre en place un système d'invitation. Avant d'infecter un ordinateur, le virus vérifie s'il y est invité et c'est seulement en cas de réponse positive qu'il s'installe sur l'ordinateur.

Vesselin Bontchev imagine alors le scénario suivant: soit une compagnie spécialisée dans la production de virus bénéfiques. Lors de la création d'un nouveau virus, elle le rend disponible sur l'un de ses sites de dépôts. Elle envoie ensuite à ses abonnés, un message contenant la clé publique du virus. L'administrateur d'un réseau désirant utiliser ce virus contrôle l'authenticité du message et envoie une invitation signée électroniquement. Cette dernière précise alors le type de virus désiré, l'adresse du réseau concerné et le mode d'entrée dans les systèmes (par exemple un numéro de port spécifique). Une fois le message reçu, le dépôt de virus bénéfiques envoie le virus choisi sur le réseau cible. Une fois sur place, le virus s'authentifie et commence à se reproduire.

1.1.2  L'identification

Le deuxième critère technique concerne l'identification du virus bénéfique par les antivirus. Les programmes antivirus détectent les virus nocifs soit à partir de leur signature, soit en contrôlant les modifications effectuées sur les programmes et documents, soit en détectant les processus et actions suspectes.

Une fois qu'un virus bénéfique est authentifié sur un ordinateur, il est possible de spécifier à l'antivirus de considérer ce virus comme un programme sûr. Ce mécanisme inhibe la détection par signature. Concernant les autres modes de détections, le virus bénéfique ne doit pas effectuer de modifications sur les programmes et documents du système. Par conséquent, un virus bénéfique ne peut être qu'un ver se propageant uniquement par les réseaux.

1.1.3  La gestion des ressources

De nombreux virus nocifs, provoquent une surcharge du système infecté pouvant aller jusqu'au déni de service.

Pour éviter ce problème, un virus bénéfique doit être conçu afin de consommer le minimum de mémoire, d'espace disque ou de temps processeur. En fait, la charge système occasionnée par le virus doit être négligeable par rapport aux bénéfices que l'utilisateur en retire. Concrètement cela implique, entre autres, qu'il n'y est qu'une seule instance du virus sur le système.

1.1.4  Les bogues

Comme tout programme informatique, un virus contient des bogues. Dans certains cas, comme avec le RTM Worm, ces bogues ont entraîné la perte de contrôle du virus.

Une fois qu'un bogue, découvert dans le code d'un virus bénéfique, est corrigé, la version patchée du virus doit être fournie avec les mêmes règles d'authentification. En reprenant le scénario évoqué plus haut, la nouvelle version du virus pourrait être diffusée de la même manière que la version originale: envoi d'un message contenant la clé publique du virus patché, puis authentification par le système et mise à jour des instances du virus présentes sur le réseau.

De plus, la possibilité de provoquer l'arrêt instantané du virus doit être proposée aux utilisateurs. En effet, si un administrateur constate un fonctionnement anormal sur un virus bénéfique, il doit pouvoir imposer l'arrêt de toutes les instances du virus sur son réseau.

1.2  Les critères éthiques et légaux

1.2.1  Modification des données

La plupart des législations interdisent la modification des données personnelles sans l'autorisation du propriétaire. Un virus bénéfique ne doit donc modifier aucune donnée. Le scénario envisagé permet de vérifier ce critère. Les actions effectuées par le virus bénéfique sont connues à l'avance et l'utilisateur "invite" lui-même le virus sur son système.

1.2.2  Détournement du virus

Un virus bénéfique peut être utilisé par un pirate comme vecteur de transport pour pénétrer dans un réseau. Afin de supprimer ce risque, un virus bénéfique doit mettre en oeuvre des techniques cryptographiques fortes pour s'authentifier dans les réseaux qu'il colonise. Une telle authentification interdisant toute modification du virus par un éventuel pirate.

Enfin, un pirate pourrait analyser un virus bénéfique afin de s'approprier son code et de développer un virus nocif similaire. Cependant, étant donné qu'un virus bénéfique tel que nous l'avons décrit, ne pénètre pas de lui-même dans un système mais attend d'y être invité, le pirate devra convaincre un utilisateur ou l'administrateur réseau du bien fondé de son virus.

1.2.3  La responsabilité

La question de la responsabilité en cas d'atteinte à l'intégrité, la disponibilité ou la confidentialité d'un système d'information est un problème complexe. Les administrateurs réseaux sont par nature très méfiants quand à l'utilisation de programmes autoreproducteurs sur leur système d'information.

Si les conditions d'implémentation d'un virus bénéfique telles que nous les avons décrites sont respectées, la responsabilité, en cas d'incident, ne repose plus intégralement sur l'administrateur. En effet, dans le cas du scénario exposé ci-dessus, il existe nécessairement un contrat signé entre l'entreprise fournissant les virus bénéfiques et l'entreprise achetant ces virus. C'est donc au niveau du contrat que les responsabilités s'établissent au même titre que lorsque la même entreprise achète un système d'exploitation ou un logiciel de comptabilité.

1.3  Les critères psychologiques

1.3.1  La confiance

Souvent, l'utilisateur d'un ordinateur s'imagine qu'il exerce un contrôle total sur ce qui se passe dans sa machine. En fait, l'ordinateur étant un outil très sophistiqué, la plupart des utilisateurs ne saisissent pas très bien les rouages de son fonctionnement interne. Cette incertitude suscite de la méfiance vis à vis de la machine et seul le sentiment de contrôler les réactions de l'ordinateur peut aider l'utilisateur à surmonter son appréhension.

C'est pourquoi, l'implémentation d'un virus bénéfique dans un réseau d'entreprise doit se faire de manière à ce que l'utilisateur continue de croire qu'il maîtrise le fonctionnement de son ordinateur. Ceci peut s'obtenir, par exemple, en lançant une campagne de communication interne. Dans ce cas, il s'agira d'expliquer le mode de fonctionnement du virus, en insistant sur son utilité, ses avantages et surtout la possibilité de le désactiver en cas de problème.

1.3.2  La vision négative des virus

Les médias ont grandement contribué à créer une vision néfaste des virus en les présentant comme étant intrinsèquement mauvais. Et de fait, la plupart des utilisateurs suspecte les virus dès qu'ils ont un problème sur leur ordinateur.

Un administrateur désirant utiliser un virus bénéfique sur son système d'information, ne doit pas l'appeller virus, s'il veut que l'action bénéfique de son virus soit reconnue.





En résumé, pour qu'un virus puisse être considéré comme bénéfique, il doit répondre aux impératifs suivants:

2  Le virus KOH

Un certain nombres de virus bénéfiques ont déjà vu le jour, cependant, aucun d'entre eux ne répond à l'ensemble des critères que nous venons d'évoquer. Nous pouvons citer notamment: À titre d'exemple, nous allons détailler le fonctionnement du virus KOH. Ce virus, écrit par Mark Ludwig [4], permet de chiffrer l'ensemble d'un disque dur.

2.1  Justification

2.1.1  virus de démarrage résident

Si l'on souhaite chiffrer l'intégralité d'un disque dur, les technologies virales semblent les plus appropriées. En effet, un logiciel standard de chiffrement est dépendant du système d'exploitation et doit donc attendre que celui-ci soit chargé pour pouvoir fonctionner. Cette contrainte implique que le secteur de démarrage du disque dur ne soit pas chiffré, ce qui représente une vulnérabilité non négligeable.

L'utilisation d'un virus de démarrage permet de s'affranchir du système d'exploitation et de chiffrer l'intégralité du disque dur. De plus, le virus est résident, ce qui offre plusieurs avantages. Tout d'abord, le virus est exécuté et chargé en mémoire à chaque démarrage de l'ordinateur, ensuite, le virus exécute les opérations de chiffrement et de déchiffrement en toute transparence.

Au final, nous avons un virus qui se lance automatiquement, dès le démarrage de l'ordinateur, et qui gère les opérations de chiffrement et de déchiffrement de la totalité du disque dur de façon transparente pour l'utilisateur.

2.1.2  Autoreproduction

À l'époque ou KOH a été écrit, l'utilisation des disquettes était généralisée. En tant que programme autoreproducteur, KOH présente alors plusieurs avantages: Un tel outil de chiffrement - déchiffrement des supports de stockage est un réel atout pour une entreprise ou une administration. En effet, il est difficile de contrôler les flux entrant et sortant des disquettes. KOH utilise des clés de chiffrement différentes pour les disquettes et les disques durs. L'administrateur réseau peut très bien distribuer les clés de chiffrement des disques durs mais pas celles des disquettes. Ainsi, l'utilisateur indélicat ne peux pas lire ses disquettes sur un ordinateur autre que ceux de son lieu de travail.

2.2  Modes d'action




Figure 1: Création d'une disquette de boot contenant KOH






Figure 2: Chiffrement d'un disque dur par KOH pendant la séquence de boot



KOH est un virus de démarrage, résident et non furtif, ayant comme unique action d'assurer le chiffrement et le déchiffrement des supports de stockage. Les sources du virus comprennent cinq fichiers:

2.2.1  Colonisation

KOH se copie sur les disquettes et disques durs en remplaçant le secteur de démarrage original par le sien, puis en copiant le reste de son code dans une zone inoccupée du disque. Cette zone est protégée en marquant, dans la FAT, les secteurs correspondants comme défectueux.

Le virus n'infecte les disquettes que si l'indicateur de condition FD_INFECT est égal à un. Dans ce cas, il commence par chiffrer le contenu de la disquette de sorte que si le processus de contamination échoue (manque d'espace libre), la disquette peut être utilisée normalement.

Lorsqu'un ordinateur démarre à partir d'une disquette contenant KOH, celui-ci demande s'il faut chiffrer le disque dur (voir Fig. 2). En cas de réponse positive, le disque dur est chiffré puis le système démarre normalement. En cas de réponse négative, le virus ne fait rien, par contre, il repose la question à chaque redémarrage de l'ordinateur.

2.2.2  Chiffrement

KOH utilise l'International Data Encryption Algorithm (IDEA)2 pour chiffrer et déchiffrer les données. IDEA chiffre des blocs de 64 bits avec des clés de 128 bits. Les processus de chiffrement et de déchiffrement sont similaires.

KOH conserve trois clés de 128 bits stockées dans HD_KEY, HD_HPP et FD_HPP3.

2.2.3  Détournement d'interruption

KOH détourne les interruptions 13H pour le disque dur et 09H pour le clavier.

Le DOS utilise l'interruption 13H pour accéder au disque. En interceptant tous les appels à l'interruption 13H, KOH peut effectuer les opérations de chiffrement - déchiffrement de façon totalement transparente. Ainsi, lorsque le DOS cherche à ouvrir un fichier sur le disque, le virus intercepte l'appel, déchiffre le fichier et l'envoie au système d'exploitation. Lors de l'enregistrement d'un fichier, l'opération inverse se déroule.

L'interruption 09H est utilisée par le DOS pour la gestion du clavier. Le détournement de cette interruption permet à KOH de mettre en place des raccourcis clavier. Ainsi, la combinaison de touches <CTRL> <ALT> <K> permet de changer de phrase clé, <CTRL> <ALT> <O> permet de dire à KOH de chiffrer automatiquement ou non les disquettes et <CTRL> <ALT> <H> désinstalle le virus.

2.3  KOH virus bénéfique?

Le virus KOH répond-il aux critères d'un virus bénéfique tels que nous les avons définis ci-dessus?

Concernant les critères techniques, le contrôle de la propagation du virus n'est pas assuré. Certes, la demande d'autorisation de chiffrement du disque dur est effective, mais lorsque la question est posée, le virus est déjà dans l'ordinateur. Concernant l'identification, KOH est considéré, par les logiciels antivirus, comme étant un virus de la famille des virus Stealth_Boot. Il ne répond donc pas au critère. Concernant le critère de gestion des ressources, KOH est optimisé pour effectuer du chiffrement de disque dur à la volée. En dehors du chiffrement initial du disque, son action est transparente pour l'utilisateur. Il répond donc correctement à ce critère. Enfin pour le critère de gestion des bogues, il n'existe aucune infrastructure permettant de mettre à jour le virus. Cependant, lors de son lancement, KOH affiche à l'écran un avertissement (voir Fig. 2) demandant de faire une sauvegarde du système avant d'effectuer le chiffrement. Donc en cas de bogue dans le code du virus, l'utilisateur dispose normalement d'une sauvegarde de ses données.

Concernant les critères éthiques et légaux, KOH ne modifie pas les données personnelles de l'utilisateur: une fois le chiffrement terminé, l'utilisateur retrouve l'ensemble de ses informations. Par contre, le code source du virus étant ouvert, un développeur mal intentionné peut rajouter des routines nocives au virus et le faire passer pour l'original. Il n'y a aucun contrôle de l'authenticité du virus lors de son utilisation. Enfin, le problème de la responsabilité reste entièrement du domaine de l'administrateur ou de l'utilisateur.

Concernant les critères psychologiques, KOH met en confiance son utilisateur: les messages qu'il affiche et la documentation fournie par son auteur sont clairs et précis. Malheureusement, KOH est considéré comme un virus, et à ce titre un administrateur sera naturellement méfiant avant de l'implanter sur son réseau.

En conclusion, KOH ne satisfait pas pleinement aux critères d'un virus bénéfique. Cependant, il n'existe pas actuellement de virus bénéfique répondant à l'ensemble des critères techniques, éthiques, légaux et psychologiques. KOH est, à ma connaissance, celui qui s'en rapproche le plus.

References

[1]
Cohen (F.),  A case for benevolent viruses , 1991. Consultable sur http://www.all.net/books/integ/goodvcase.html.

[2]
Bontchev (V. V.),  Are good computer viruses still a bad idea? , EICAR Conference 1994, 1994. Consultable sur http://www.people.frisk-software.com/~bontchev/papers/goodvir.html.

[3]
Cohen (F.),  Current trends in computer viruses . International Symposium on Information Security, 1991. http://all.net/books/integ/japan.html.

[4]
Ludwig (M.), Du virus à l'antivirus. Dunod, 1997.

1
Depuis le 30 juin 2005, ce record est détenu par l'équipe OASIS qui rassemble des chercheurs de l'INRIA Sophia Antipolis, du laboratoire CNRS I3S et de l'Université de Nice Sophia-Antipolis. Ces chercheurs sont les premiers au monde à avoir calculé le nombre de façons de déposer 25 reines sur un échiquier de taille 25 x 25 de sorte que les reines ne puissent être en prise. Ce nombre est égal à 2 207 893 435 808 352. Le calcul s'est exécuté sur une grille de PCs de bureau à l'INRIA Sophia Antipolis.
2
IDEA est un algorithme de chiffrement par bloc mis au point, en 1991, par Xuejia Lai et James Massey de l'Institut Fédéral de Technologie Suisse. Initialement cet algorithme a été crée pour emplacer le Data Encryption Standard (DES).
3
HPP est l'acronyme de Hashed PassPhrase.
Page précédente SourceForge.net Logo

This document was translated from LATEX by HEVEA.