Les virus informatiques
comme sous-produits des logiciels exclusifs

Article essentiellement écrit entre le 2001-07-31 et le 2001-08-01, disponible sous la licence bugroff. L'article lui-même est long de 6900 mots, auxquels il faut rajouter 2500 mots pour le glossaire (valeurs approchées par excès au 2001-09-14). Je cherche quelqu'un pour compléter une courte adaptation en anglais.
-- par François-René Rideau

Table des matières

Introduction

Régulièrement, un virus informatique défraie la chronique en infectant quelques millions d'ordinateurs et en causant des dommages considérables pour autant de personnes. La réponse des media consiste en général à présenter la chose comme allant de soi, et à culpabiliser les utilisateurs en les incitant à installer un anti-virus. En cela, ils se font les porte-paroles directs de divers groupes d'intérêts commerciaux (Microsoft et les vendeurs d'anti-virus), et ils manquent à leur premier devoir, qui est de chercher à s'informer eux-mêmes avant d'informer le public, plutôt que de se faire une courroie de transmission pour les lobbies les plus forts du moment.

J'entends démontrer comment l'existence de logiciels exclusifs en général, et particulièrement de systèmes d'exploitation exclusifs, de par leur principe même, et par opposition aux logiciels libres, sont la principale raison pour laquelle les virus informatiques représentent un danger. J'entends démontrer en particulier comment Microsoft a beaucoup fait pour favoriser l'émergence de virus, et doit être tenu pour principal responsable, en tant qu'auteur du système d'exploitation Windows.

J'énoncerai alors mon réquisitoire contre les éditeurs de logiciels exclusifs, et je proposerai des solutions pour les utilisateurs, en signalant les discours responsables que les media peuvent tenir pour améliorer la situation.

Les virus ne sont pas une fatalité, sauf avec les systèmes exclusifs.

Comparatif entre systèmes libres et exclusifs
au point de vue de la sécurité

Ci-dessous, un tableau comparatif expliquant pourquoi les systèmes libres, comme Linux, FreeBSD, NetBSD, OpenBSD, et autres, sont intrinsèquement moins susceptibles d'être victimes de virus que les systèmes exclusifs, comme Windows, MacOS (9 et antérieurs), etc.

Notons qu'avec MacOS X, Apple mélange les genres, puisque sous son interface graphique se cache maintenant un système libre de type BSD ; la situation concernant MacOS X est donc quelque part entre les deux. De même, les systèmes exclusifs de type Unix, pour lesquels la majorité écrasante des logiciels applicatifs échangés entre utilisateurs sont des logiciels libres ont une situation intermédiaire.

Enfin, les systèmes Linux et Windows étant les plus répandus dans leurs catégories respectives, ceux pour lesquels sont diffusés le plus de logiciels et pour lesquels les infrastructures de diffusion sont les plus développées, ils sont pris comme exemples typiques. Néanmoins, les arguments développés sont essentiellement liés au mode de diffusion des logiciels, aussi, si un système ou l'autre était détrôné dans sa catégorie, son successeur serait dans la même situation vis-à-vis des virus. Tout part de cette vérité incontournable, que dans les systèmes exclusifs, il est tout à fait normal pour les utilisateurs de s'échanger de proche en proche des programmes, alors que dans les systèmes libres, les utilisateurs vont directement chercher les logiciels à une source sûre.

Critère Systèmes Exclusifs (Windows, etc.) Systèmes Libres (Linux, etc.)
Mode de diffusion des programmes Les éditeurs de logiciels exclusifs interdisent de copier et de rediffuser légalement leurs programmes ; même pour ceux de leurs programmes qui sont gratuits, ou gratuits à l'essai, ils se réservent souvent chacun le monopole de la diffusion de leurs logiciels à travers un site officiel lourd, souvent avec enregistrement des utilisateurs, etc. De plus, les logiciels exclusifs étant moins prompts à répondre aux besoins des utilisateurs que les logiciels libres, il existe toute une pléthore de "petits utilitaires" destinés à pallier ces déficiences, qui sont disponibles par autant de sources diverses, et jamais par le fournisseur habituel du système d'exploitation. De tout cela il ressort que dans les systèmes exclusifs, il est tout à fait normal pour les utilisateurs de s'échanger de proche en proche des programmes, et d'installer des logiciels de provenance variée et incontrôlable, que ce soient des copies licites, semi-licites ou illicites -- c'est la promiscuité des logiciels. De là découle principalement et irrémédiablement la propension naturelle des systèmes exclusifs à être attaqués par des virus. La copie officieuse par les particuliers est d'ailleurs entrée depuis les années 1990 dans la stratégie de marketing normale mais tacite de tous les éditeurs de logiciels exclusifs grand public. Ces éditeurs appellent du nom de "piratage" cette pratique si naturelle qu'ils ne la combattent pas ni ne peuvent la combattre, tentant par une telle propagande injurieuse de légitimer aux yeux du public leurs monopoles de propriété intellectuelle. Les éditeurs de systèmes exclusifs auront beau tenter de créer des sites centralisés sous leur contrôle pour la diffusion de logiciels, ils ne pourront répondre à la demande du public pour installer toute une série d'utilitaires, de jeux, de démonstrations, etc., qui sont libres, gratuits, ou en shareware, et pullulent si vite qu'aucun éditeur ne pourra jamais payer ses employés pour tous les suivre. Ainsi, la première chose que je fais sur une machine Windows est d'installer PuTTY ; et si je devais vraiment travailler sur une telle machine, j'installerais Cygwin. La dernière version de chacun des logiciels que chaque utilisateur voudra installer sera-t-elle jamais disponible depuis le portail de Microsoft ? Les systèmes libres permettent la libre diffusion des programmes. Il y a donc une concurrence acharnée entre les diffuseurs qui organisent cette diffusion sur un marché libre. Du coup, les systèmes de diffusion (appelés "distributions" dans le milieu des utilisateurs de Linux) sont tous d'excellente qualité et de grande facilité d'accès, chacun de plus pouvant facilement copier les bons points des autres, sans en être empêché par brevets ni copyrights. La procédure normale d'installation de logiciels par les utilisateurs est donc de laisser le système tout installer depuis un serveur choisi entre autre pour sa sûreté sur un marché fortement concurrentiel. Certaines distributions offrent un très large éventail de programmes, avec un choix entre les toutes dernières versions de (presque) tout ce qui se fait ou des versions un peu plus anciennes mais beaucoup plus stables d'un peu moins de programmes. Même quand il s'agit d'installer des programmes qui ne sont pas librement diffusables, les distributions Linux offrent sur leurs serveurs habituels des installateurs automatiques. Ces installateurs automatiques vont chercher eux-mêmes ces logiciels exclusifs depuis une source sûre, ou indiquent à l'utilisateur comment se les y procurer ; mais surtout, avant d'effectuer l'installation proprement dite, ils vont vérifier l'intégrité des logiciels téléchargés, ne laissant aucune chance aux virus. Enfin, les rares fois où un utilisateur voudra installer un logiciel non encore présent dans sa distribution (et la concurrence pousse les diffuseurs à faire en sorte que ce soit rarement le cas), il pourra télécharger les paquets sources ou binaires directement depuis le serveur des auteurs. Dans les systèmes libres, jamais au grand jamais il n'est considéré comme "normal" de s'échanger des logiciels d'utilisateur à utilisateur, la diffusion de programmes étant réservée aux experts et aux auteurs, qui savent ce qu'ils font. C'est de là qu'il découle que les systèmes libres sont essentiellement imperméables aux virus.
Exécution implicite de code À une époque où les virus étaient déjà un problème non négligeable, Microsoft a décidé de rendre très facile d'insérer du code (notamment Basic mais pas exclusivement) au milieu de ses documents Office, des pages webs, des messages de courrier électronique. Cela a ouvert la voie a un très grand nombre de virus, et même de vers, qui tirent parti de telles fonctionnalités pour s'activer à l'insu de l'utilisateur, qui croit consulter un document inoffensif. L'exécution automatique de programmes lors de l'ouverture de CD-ROM, de fichiers .zip, de répertoires, sont aussi des erreurs, qui perdurent. Dans les temps où les logiciels libres étaient jeunes, inconnus du public, et tournaient sur des systèmes où les virus n'étaient pas un problème pratique, d'aucuns ont introduit des fonctionnalités d'exécution implicite de code dans leurs logiciels. Déjà à l'époque, ces fonctionnalités ont suscité un tollé, des correctifs et solutions de rechange sont immédiatement apparues, et la concurrence a rapidement remplacé tout logiciel avec une tel trou de sécurité par des versions concurrentes sécurisées. De nos jours, cela fait longtemps que les auteurs de logiciels libres n'écrivent plus de logiciel aussi ouvertement insécurisé, et que le marché rejette tout logiciel présentant un tel risque. C'est encore une fois la libre concurrence qui permet de sanctionner et de circonscrire cette source d'insécurité. Jamais un trou de sécurité aussi énorme que l'exécution implicite de code n'a été implanté dans un système libre grand public, qui moins est de façon aussi systématique, volontaire, documentée, standardisée que l'on a pu l'observer avec Microsoft. Il n'y a jamais eu de virus ou de ver basé sur un tel trou de sécurité tournant sur les systèmes libres.
Vitesse de réaction Les éditeurs monopolistiques de logiciels exclusifs ne subissent la pression d'aucune concurrence pour réagir aux problèmes de sécurité. Microsoft a mis très longtemps (plusieurs années) avant de reconnaître que l'exécution implicite de code était un problème, malgré les plaintes des experts en sécurité, et a mis longtemps (plusieurs mois) avant de réussir à désactiver cette "facilité" dans ses installations par défaut (et encore, la facilité reste dans les anciennes configurations, et peut être réactivée dans les nouvelles). Microsoft ayant le monopole de la diffusion et de la modification de ses logiciels, eux seuls pouvaient pourtant corriger ce trou de sécurité; et même si des tierces parties arrivaient à fournir des correctifs, cela ne changerait rien à leurs ventes, et ne crée donc aucune pression concurrentielle sur Microsoft. Rien ne garantit donc que Microsoft ou qu'un quelconque éditeur de logiciel exclusif ne prendra pas de décision semblablement méprisante du public dans le futur, ni qu'il réagira plus vite que Microsoft ne l'a fait dans le passé. Les fournisseurs de systèmes libres sont en libre concurrence. Comme il existe un public très sensible aux problèmes de sécurité, les experts en sécurité sont donc pris en compte par le marché ; tous les fournisseurs doivent alors s'aligner très vite sous peine de perte de parts de marché -- Le public ne leur pardonne pas leur éventuelle lenteur de réaction. Grâce à la libre disponibilité des sources, dans le cas le pire où leur fournisseur particulier est lent, les administrateurs systèmes et même les utilisateurs peuvent prendre eux-mêmes des mesures sans avoir à attendre que le détenteur de monopole réagisse.
Granularité des installations Dans les systèmes exclusifs actuels, les programmes d'installation de logiciels, voire les simples logiciels exécutés peuvent modifier n'importe quelle partie du système au cours de leur déroulement normal. De ce fait, lorsqu'un logiciel suspect a été exécuté, ou a eu une chance de s'exécuter sur une machine, c'est l'intégrité entière de tout le système qui est en jeu. Il est impossible de vérifier et/ou de réinstaller indépendamment les composants du système, et la seule solution complètement fiable est de tout réinstaller à partir de zéro (une expérience qui peut être particulièrement traumatisante, dès qu'un ordinateur utilise des composants matériels ou logiciels non standards). Une telle mesure est très lourde, et résulte donc en des coûts de maintenance importants pour ceux qui les appliquent, et en des risques de sécurité importants pour ceux qui ne les appliquent pas (et donc des coûts importants en réparation pour les malchanceux parmi eux). Une telle situation tient beaucoup à des défauts de conception des systèmes exclusifs actuels pour lesquels des mesures correctives d'ordre technique seraient concevables ; mais ces défauts s'inscrivent dans la logique implacable des logiciels exclusifs. Le principe même de l'exclusivité des logiciels déplace artificiellement toute la valeur liée à un logiciel dans son acquisition et son achat initial, au détriment des services de maintenance, complètement dévalués. Ces services, du coup, ne sont plus fournis à aucun particulier, ni même aux petites entreprises, mais seulement, et à prix d'or, aux grands comptes, dont les besoins cumulés et les moyens sont assez grands pour surmonter (en les payant) les barrières protectionnistes à leur commercialisation. Ainsi, tout service non fourni par un éditeur ne peut pas être rattrapé par le marché, et en particulier, tous les services de packaging, d'outils pour la gestion facile d'une installation logicielle, etc. Il est possible à un utilisateur (et il est commun pour un administrateur) de composer sa propre installation d'après un choix parmi une multitude de "paquets" disponibles (la distribution debian, par exemple, en propose plus de 7000). Chaque paquet installe des fichiers bien distincts de ceux des autres paquets, et il est possible très facilement d'installer de nouveaux paquets, de vérifier l'intégrité d'un paquet installé, de remplacer ou de mettre à jour un paquet non satisfaisant par son comportement ou sa sécurité, de traquer les programmes n'appartenant pas à un paquet répertorié, etc. Au pire, il est possible de prendre la liste des paquets installés, et de recommencer semi-automatiquement une installation complète à partir des paquets d'un diffuseur de confiance (et d'un système de démarrage de confiance), en conservant tous les paramètres de personnalisation que l'on désire. Grâce à l'absence de monopoles, ont été rendu légalement possible, économiquement abordable et techniquement facile d'une part la séparation fonctionnelle entre administration et utilisation, et d'autre part l'existence de "distributions" prêtes à être installées, offrant ainsi une façon homogène de gérer ses installations logicielles, indépendamment des éditeurs et des auteurs. Bref, encore une fois, l'existence d'une industrie de la diffusion indépendante (grâce à la liberté de modification et de redistribution) de toute industrie d'édition des logiciels, a permis l'émergence de solutions techniques efficaces aux problèmes de maintenance des installations logicielles.
Vulnérabilité forcée Puisque Microsoft a un monopole de propriété intellectuelle sur ses logiciels, il est impossible pour les utilisateurs de lire les documents créés par les logiciels Microsoft à moins de s'équiper des mêmes logiciels vulnérables. Un logiciel exclusif met ses utilisateurs à la merci des choix effectués par son éditeur, que ce soit Microsoft ou pas. Les logiciels libres sont basés en général sur des formats de fichiers documentés et standards, et au pire sur un code source modifiable ; il est donc toujours possible de lire les fichiers des uns et des autres sans avoir à subir les vulnérabilités d'un logiciel particulier. Les utilisateurs ne sont jamais forcés de suivre les choix douteux d'un fournisseur monopolistique. Ils peuvent toujours migrer leurs applications vers un logiciel compatible (qui est toujours possible à écrire, grâce à la libre disponibilité des sources), modifier le logiciel existant pour le rendre sûr, ou migrer leurs données vers un format différent pour lequel il existe un logiciel satisfaisant.
Compatibilité Le modèle des logiciels exclusifs implique que les éditeurs ne distribuent pas librement les sources de leur programmes : par peur d'être copiés, par peur de révéler un "secret de fabrication", par peur qu'un concurrent en profite, par peur que les utilisateurs découvrent à quel point ils sont mal écrits, par peur que leurs fabuleux "brevets" ne soient révélés comme n'étant qu'une petite astuce de rien du tout, par peur que les utilisateurs découvrent leurs tactiques d'espionnage, parce que les fournisseurs de certains modules essentiels ne voudraient pas, parce qu'ils sont inexploitables sans toute une chaîne d'outils eux-mêmes exclusifs, etc. À la place, les utilisateurs n'ont affaire qu'à des exécutables binaires précompilés pour ne fonctionner que dans certaines conditions précises. Pour que ces binaires continuent à fonctionner et que leur modèle ne s'écroule pas, les éditeurs de systèmes exclusifs sont forcés de garder une compatibilité binaire d'une version à l'autre du système. C'est ainsi que WindowsMe peut faire fonctionner à l'identique les binaires des programmes écrits pour MS-DOS il y a vingt ans. Cette compatibilité binaire implique une grande inertie au changement dans l'évolution du système : il est très difficile de corriger une erreur de réalisation, ou pire, une erreur de conception, sous peine d'être incompatible avec des programmes existants et non amendables dont on suspecte qu'ils pourraient éventuellement faire usage d'une fonction du système d'une façon qui exige de rester compatible avec les erreurs précédentes. L'architecture de ces systèmes est donc vite frappée d'inertie puis de sclérose. Les trucs et astuces permettant de faire évoluer tout de même le système en restant compatible s'accumulent et deviennent une masse incontrôlable d'une extrême complexité. La compatibilité binaire a donc des effets dynamiques désastreux qui encourage entre autre l'apparition et la survie des trous de sécurité qui rendent la vie facile aux auteurs de virus. Les logiciels libres sont disponibles avec leur code source, librement modifiable. Quand le reste du système évolue, il est donc possible de faire évoluer les programmes en recompilant les sources modifiés pour obtenir un nouvel exécutable binaire. Il est donc facile de corriger les trous de sécurité. Les besoins de compatibilité binaire des systèmes libres sont donc réduits, et cela permet de les résoudre de manière plus facile, plus ciblée, et plus sûre : il ne s'agit de faire tourner qu'un nombre restreint d'anciens logiciels exclusifs bien identifiés (programmes bureautiques, nagivateurs ouèbes, jeux, etc.), qui ne requièrent pas une compatibilité binaire aussi complète qu'avec les systèmes exclusifs : il suffit à chaque fois de n'être compatible qu'avec l'ensemble limité de fonctions effectivement utilisées par chacun de ces logiciels, et il est possible d'apporter des correctifs spécifiques pour chacun d'eux. La plupart des programmes, et de manière très importante, tous les programmes qui jouent un rôle crucial dans la sécurité du système, sont libres, et donc évoluent sans avoir à conserver les anciennes erreurs ni à laisser croître indéfiniment des couches de compatibilité complexes. À noter que la disponibilité des sources permet aussi à tous les experts soucieux de la sécurité de leur système de vérifier qu'il n'y a pas de trou de sécurité. La compatibilité au niveau des sources entraîne donc une dynamique très positive durant laquelle les problèmes de sécurité sont facilement résolus. Avec les logiciels libres, il n'y a plus besoin de contourner les erreurs de conception et de réalisation (sauf de façon vraiment temporaire, quand on est pressé), car il est possible de les corriger.
Mode de diffusion de paquets de données Les systèmes d'exploitation exclusifs Windows et MacOS ne comprenant pas de gestionnaire de paquetages décent, même les paquets les plus inoffensifs sont généralement diffusés sous forme de programmes binaires "auto-extractibles", rendant impossible toute distinction entre programmes potentiellement dangereux et données inoffensive. Windows comprend depuis peu un gestionnaire de fichier .zip, mais comme celui-ci comprend une option intégrée d'exécution automatique de programme depuis le fichier .zip, cela favorise la dissémination de virus plutôt que ne l'empêche. Les systèmes libres comprennent depuis toujours des gestionnaires de paquets de données .zip, .tar.gz, et autres, aussi efficaces qu'inoffensifs. Il est certes possible de transporter des programmes dans de tels paquets (aucun système n'empêchera jamais le transport de virus), mais ces programmes ne seront jamais activés automatiquement. Les paquets de données que s'échangent les utilisateurs sont donc aussi sûrs que possible. Parmi les types de paquets disponibles, il existe certes des paquets potentiellement dangereux car exécutant implicitement des programmes, les paquets .shar ; mais pour cette raison même, presque personne ne les utilise, sauf cas très spécifique ; en tout cas, le grand public n'y est jamais confronté, et il n'y a pas de virus connu s'étant jamais transmis de la sorte. Notons que les paquets d'installation de programmes, qui sont par principe dangereux, sont facilement distinguables des paquets destinés aux utilisateurs de par leur type différent (.rpm, .deb, ports BSD) et les outils distincts qui les manipulent.
Modes de défense Les anti-virus pour systèmes exclusifs sont essentiellement réactifs. Et pour cause ! Puisqu'il est "normal" avec les systèmes exclusifs de s'échanger des programmes, il n'est pas faisable pour un anti-virus de refuser a priori d'exécuter un programme -- les options à cet effet sont vites désactivées par les utilisateurs mécontents. Il n'est donc possible que de tester si un programme est infecté par un virus connu, et sinon accepter de l'exécuter. Les anti-virus ne sont alors efficaces qu'à condition de disposer d'une liste à jour des virus, ce qui donne lieu à une lucrative industrie des mises à jours pour les marchands d'anti-virus. Or, la mise à jour concernant un virus ne peut avoir lieu qu'après que le virus ait fait assez de dégâts pour avoir été détecté, analysé, et contrecarré par les fabricants d'anti-virus. Même pour les utilisateurs d'anti-virus mettant régulièrement leur logiciel à jour, cette solution vient donc souvent trop tard. De plus, les anti-virus sont souvent des logiciels complexes qui interagissent bizarrement avec le système, et peuvent causer des pertes de performances et autres comportements gênants. Enfin, cette "solution" dépend elle-même de logiciels exclusifs qui sont chers et donc ne sont pas universellement déployés ni ne le seront jamais. Les anti-virus pour systèmes libres sont essentiellement proactifs. Puisqu'il n'est pas normal pour des utilisateurs de s'échanger directement des programmes, sauf pour des raisons spécifiques entre experts, les mesures de vérification consistent à refuser a priori d'exécuter tout programme dont la provenance n'est pas assurée, et en particulier tout programme transmis par disquette, CD-ROM ou courrier électronique. Une telle mesure est simple. Elle inscrite par défaut dans tous les logiciels de manipulation de courrier. Elle ne laisse aucun laps de temps à des virus "non encore répertoriés" pour s'exprimer. Elle ne dépend pas d'une quelconque mise-à-jour, ni n'est susceptible d'être jamais invalidée. Elle n'interfère en rien avec le comportement normal du système. Elle est universellement déployée, et le restera toujours.
Auditabilité Il est des cas malheureux où il est trop coûteux voire impossible de se passer d'importer des logiciels en provenance de sources moins sûres. Ces cas sont d'autant plus fréquents que les éditeurs de systèmes exclusifs, monopoleurs des droits d'adaptation de leurs logiciels, n'ont pas les ressources pour les adapter aux besoins fins de tous les utilisateurs, et sont autant de sources distinctes auxquelles il faut faire confiance. Dans ces cas, rendus trop fréquents par l'opacité du système, la compatibilité au niveau binaire, directement liée à l'absence de droit de modification des logiciels, empêche ou rend extrêmement coûteux tout audit fin du comportement des programmes, ce qui diminue d'autant la sécurité des systèmes, et rend très complexes et coûteuses les mesures techniques à prendre par les utilisateurs vraiment soucieux de sécurité. Il est certes possible aux grands comptes d'acheter le droits d'auditer les sources des programmes, mais cela est cher et hors de portée de la plupart des utilisateurs, et l'absence de partage de l'information empêche l'évaluation des risques, et entraîne des coûts d'assurance conséquent même chez les grands comptes pouvant acheter le droit d'auditer les logiciels. Mais surtout, l'absence de liberté de faire des modifications soi-même et de les partager avec des tiers limite considérablement l'intérêt de tels audits tout en empêchant d'en mettre les coûts en commun. Il y a toujours des cas où il est utile voire nécessaire d'utiliser des logiciels en provenance de source peu sûre. Ces cas sont certes rendus peu fréquents par concurrence entre diffuseurs qui les pousse à fournir, chacun sur son créneau d'utilisateurs, la panoplie logicielle la plus large et les configurations les plus adaptées. Dans ces cas, la disponibilité des sources rend possible et facile l'audit des logiciels, pour détecter toute opération suspecte qu'un logiciel mal intentionné (ou écrit sans souci de sécurité) pourrait effectuer. De plus, la liberté de modifier les sources et de partager ces modifications permet aux utilisateurs de partager universellement les coûts de ces audits, les auditeurs étant eux-mêmes dans une concurrence universelle. Ainsi, ces audits sont universels, permanents, à la portée de tous, au bénéfice de tous, et au coût minime. Tout utilisateur individuel ou groupe d'utilisateurs ayant un besoin d'audit spécifique pourra obtenir sur un marché libre, au prix marginal, un service adapté à ses besoins.
Traçabilité Puisqu'il est "normal", avec les systèmes exclusifs, d'installer des programmes de toute provenance, il est très difficile de tracer l'origine d'un virus s'étant propagé dans le monde entier. Cette absence quasi-complète de traçabilité confère une impunité aux auteurs de virus, qui ont peu de chance d'être identifiés avec certitude, et sont donc ainsi encouragés dans leur activité malveillante. Cette absence de traçabilité rend impossible l'éradication des virus à leur source, ou les mesures proactives de destruction de virus non encore activés auprès des personnes potentiellement contaminées à ces sources. Notons bien qu'il est imaginable de rajouter une certaine traçabilité si l'auteur du système d'exploitation (Microsoft, Apple) arrive à centraliser ou autrement organiser la diffusion des logiciels, ou du moins leur signature cryptographique. Cependant les coûts associés (infrastructure PKI au niveau mondial) pour atteindre la couverture nécessaire (100% des logiciels installés par les non-initiés), les dérives potentielles (surveillance des logiciels installés, racket ou filtrage des développeurs, etc.), et le manque d'adaptation intrinsèque au modèle monopolistique rendent peu probable aussi bien de telles tentatives que leur succès. Espérons tout de même que les systèmes exclusifs prendront cette voie à terme. Puisque les systèmes libres encouragent l'installation des programmes à se faire pour chaque machine directement depuis un serveur bien identifié parmi un petit nombre de sources connues et répertoriées, il est très facile de tracer l'origine d'un éventuel trou de sécurité. Cette traçabilité décourage les auteurs de virus potentiels, qui auront bien moins de chance d'échapper à la justice. Elle encourage les diffuseurs de logiciels, en libre concurrence, à prendre toutes les précautions nécessaires à éviter une contamination, sous peine de perdre leur réputation et leur clientèle. Elle permet d'éradiquer rapidement toute source détectée de virus, et d'informer au plus vite toute personne ayant été en contact avec une telle source.
Homogénéité Du fait que Microsoft a le monopole légal de la diffusion de Windows, et en fait que chaque éditeur de logiciels exclusif a le monopole légal de la diffusion de ses logiciels, les parcs installés avec les systèmes exclusifs sont très homogènes. Cela implique qu'une vulnérabilité découverte dans un logiciel exclusif rend immédiatement possible l'écriture d'un virus pouvant infecter facilement tous ces systèmes sans grande sophistication. Le développement d'un virus pour système exclusif qui ait un large rayon d'action devient alors un exercice relativement simple, à la portée du moindre adolescent boutonneux en mal de révolte, ou du moindre voyou en col blanc en proie à des pulsions malveillantes. La concurrence entre diffuseurs de systèmes libres, autant que la pérennité de ces systèmes qui permet aux anciennes installations de survivre avec quelques menus correctifs sans réinstallation, et et la facilité d'adaptation des logiciels aux besoins des utilisateurs entraînent une grande variété logicielle dans le parc des machines installées avec des systèmes libres. Les systèmes libres fonctionnant sur un grand nombre d'architectures processeur différentes (i386, powerpc, sparc, etc.), et la compatibilité des programmes libres se faisant au niveau des sources et non pas des binaires, il y a une grande variété de matériels fonctionnant avec les systèmes libres, chacun configuré d'une façon spécifique. Les auteurs potentiels de virus doivent donc gérer une très large hétérogénéité logicielle et matérielle s'ils veulent que leur virus puisse se propager sur une proportion intéressante de systèmes libres. Cela implique une grande sophistication qui met l'écriture de virus hors de portée des amateurs qui développent habituellement des virus. En fait, pour faire un virus sérieux infectant une proportion non négligeable des systèmes libres malgré leur hétérogénéité, il faudrait une équipe de professionnels à plein temps pendant plusieurs mois. Cela ne s'est pas encore vu, et il y a peu de chance que cela se voie jamais, car il est difficile d'imaginer quiconque financer un tel projet -- à peine des rumeurs de tel effort connu, la réaction (technique, économique, judiciaire) des acteurs du Libre Logiciel ne se ferait pas attendre. Cette hétérogénéité, qui limite considérablement la propagation des virus, n'est cependant qu'un facteur parmi d'autre qui contribue à rendre improbable le succès d'un virus sous Linux et les autres systèmes libres.
Circonscription des dégâts Les systèmes exclusifs rendant "normal" l'installation de programmes par un utilisateur, il est "normal" pour un utilisateur de pouvoir installer des programmes. Il est donc quasi impossible, sans qu'il en résulte un grand inconfort pour l'utilisateur, d'insérer des mesures proactives pour lui interdire l'installation de programmes. Un utilisateur moyen a donc souvent l'occasion d'installer des programmes ayant un accès total à l'ensemble du système, et un programme malveillant peut profiter d'une telle facilité pour infecter profondément le système. Durant de nombreuses années, les systèmes exclusifs actuels n'ont fait aucun effort dans la direction de la circonscription des droits des utilisateurs moyens, et il reste à voir si les récentes et timides tentatives intégrées à certaines versions récentes de ces systèmes (Windows 2000, MacOS X) seront vraiment efficaces, face au besoin d'installer des programmes intrinsèque au modèle de diffusion de logiciels exclusifs. Dans les systèmes libres Linux et BSD basés sur l'architecture Unix, les utilisateurs normaux exécutent leurs programmes dans un cadre où leurs droits d'accès sont réduits. Les effets d'un éventuel programme malicieux activé par un utilisateur sont donc circonscrits selon les droits d'accès de l'utilisateur. Cela limite fortement à la fois les dégâts possibles par un tel programme, mais aussi ses possibilités de se propager, et ses possibilités de passer inaperçu. Certes, certaines installations basées sur des systèmes libres possèdent des trous de sécurité permettant d'outrepasser les droits d'un simple utilisateur, mais concurrence entre diffuseurs oblige, ces trous sont d'expérience moins nombreux et plus vite corrigés que pour les systèmes exclusifs ; de plus, l'hétérogénéité des installations rend extrêmement difficile l'écriture d'un programme malicieux capable de profiter d'assez de trous de sécurité pour devenir un virus capable de se propager loin. Bref, dans l'extrême majorité des cas, les chances d'un virus d'effectuer des changements profonds dans le système sont minimes. À partir du moment où le système est indemne, des programmes habituels de détection d'intrusion peuvent rendre la vie dure à toute forme de virus connu. Donc, même si des imperfections ont pu exister dans le passé, qui n'ont d'expérience jamais été utilisées par des virus, l'architecture des systèmes libres est intrinsèquement plus saine que celle des systèmes exclusifs existants ou à venir.
Identification des exécutables Les systèmes exclusifs existants offrent toute une série de circonstances aggravantes favorisant les virus, et rendant très difficile l'éducation des utilisateurs. En effet, la mesure prophylactique la plus importante pour éviter les virus est d'identifier les programmes exécutables potentiellement dangereux, par opposition aux simples données inoffensives. Or, les systèmes exclusifs existant (Windows, MacOS) rendent cette identification difficile, rendant toute telle mesure extrêmement difficile de la part des utilisateurs moyens : en effet, sous Windows, les "extensions" de nom de fichier correspondant à des exécutables sont nombreuses et en fluctuation constante : entre autres .EXE, .COM, .PIF, .VBS, à une époque, .DOC, et qui sait ce que l'avenir réserve. De plus, ces extensions sont masquées par défaut par l'interface utilisateur. Sous MacOS, il est impossible à un utilisateur moyen utilisant l'interface par défaut de distinguer un exécutable malicieux disposant d'un icône trompeur d'un fichier de donnée inoffensif. Sous Linux et les autres systèmes libres basés sur l'architecture Unix, les programmes exécutables sont facilement identifiables à leur droit d'accès spécial. En plus, s'ils ne sont pas dans la liste des chemins d'accès autorisés, ils ne peuvent être activés qu'explicitement. Sur une machine correctement configurée (et la concurrence entre fournisseurs assure que la plupart des machines le seront si elles ne le sont pas encore et qu'une menace point un jour), il n'y a donc aucun risque d'activation involontaire d'un programme malicieux.
Critères conjoncturels, appelés à disparaître Actuellement les systèmes de chez Microsoft représentant le plus grand parc installé, particulièrement auprès des utilisateurs les plus débutants et donc encore naïfs ; ils sont aussi la cible de choix pour tous les virus, ce qui représente un risque supplémentaire, quoique temporaire. Notons toutefois que le risque structurel lié à l'homogénéité de ces système implique que même une fois qu'ils seront moins nombreux que les systèmes libres, les systèmes exclusifs seront toujours une cible plus attractive. Ils ne perdront leur pouvoir d'attraction qu'à partir du moment où le parc installé par Windows sera dépassé non pas par le parc de tous les systèmes libres, mais par le parc total du seul plus grand fournisseur de systèmes libres (actuellement, peut-être RedHat Linux) ; et encore, la facilité de développement des virus est un facteur d'attraction de la plateforme Windows pour les auteurs de virus. Dans la pratique, la quasi-totalité des virus répertoriés comme ayant commis des dégâts notables ces dernières années fonctionnaient sous Windows, quelques uns sous Mac OS, aucun sous Linux. Les systèmes libres représentant actuellement un parc total assez réduit de machines, qui plus est avec des utilisateurs en général plus expérimentés et moins enclins à se laisser berner par un cheval de Troie, ils ne sont actuellement pas très rentables en temps de développement comme cible potentielle pour les auteurs de virus. Ces facteurs sont certes temporaires, mais ils sont appréciables, et constituent un avantage compétitif supplémentaire (et souvent injustement négligé dans les études de TCO) pour les entreprises qui passeraient à Linux avant les autres pour leur bureautique.

Remarquons que sur la plupart des critères donnés, les arguments se répartissent en deux catégories. D'une part, les monopoles de propriété intellectuelle propres au modèle exclusif, en rendant illégale toute tentative d'organisation efficace de la diffusion des logiciels, créent une situation d'inefficacité légalement obligatoire et ouvrent la voie à toutes les attaques des virus. D'autre part, les mêmes monopoles créent une dynamique de développement de logiciels de mauvaise qualité ; or, les conditions qui mènent à un logiciel bien conçu et bien réalisé sont les mêmes qui mènent à un logiciel robuste, sans trou de sécurité ; les systèmes exclusifs mènent donc à des logiciels peu sûrs. Dans chacun des deux cas, il s'agit de l'inefficacité propre à un monopole légal, de diffusion ou de modification des logiciels, inefficacité depuis longtemps connue des économistes. Rien de nouveau sous le soleil donc : il ne s'agit que de répéter inlassablement ce qui est déjà connu, et que les groupes d'intérêts veulent nous faire oublier pour mieux nous dépouiller de notre argent.

Responsabilité des éditeurs de logiciels exclusifs

Non seulement les éditeurs de logiciels exclusifs portent leur responsabilité dans les conséquences directes du modèle monopolistique qu'ils ont imposé, mais Microsoft en particulier est complètement responsable des circonstances aggravantes qu'il a créées : exécution implicite de code (plus ou moins corrigée, après plusieurs années), gestion désastreuse de l'installation de paquets (toujours pas corrigée), interface graphique rendant impossible à l'utilisateur moyen la distinction entre programmes et données (toujours pas corrigée), serveurs pleins de trous de sécurité (corrigés au fur et à mesure, mais avec lenteur). De nombreuses parmi les graves erreurs commises par Microsoft étaient faciles à corriger, mais ne l'ont pas été, malgré des années d'avertissements émis par les experts en sécurité.

Toutefois, par-delà Microsoft en tant qu'acteur particulier et ses erreurs spécifiques, il ne faut pas perdre de vue l'essentiel : c'est tout le modèle des logiciels exclusifs qui est en cause. Certes, Microsoft a fait des erreurs, et en est responsable, mais il n'y aurait rien eu de mieux à attendre d'aucun autre éditeur de logiciel exclusif, s'il avait réussi à gagner à la place de Microsoft la bataille des systèmes d'exploitation exclusifs. D'une part, nous avons vu plus haut comme le modèle de diffusion des logiciels dans le cadre d'un système exclusif créait les conditions de propagation des virus. D'autre part, le modèle des logiciels exclusifs, avec sa compatibilité binaire, oblige l'auteur des systèmes d'exploitation à conserver, jusqu'à la sclérose, tous les défauts de conception passés, et en particulier tous les trous de sécurité potentiels utilisés par certains applicatifs existants.

Il ne faut pas croire que l'exclusivité de certains logiciels soit quelque chose de normal, naturel, ou légitime. Il s'agit de privilèges légaux, conférés par des gouvernements protectionnistes à des groupes d'intérêts spéciaux, et justifiés a posteriori par des juristes, économistes et autres intellectuels spécialisés dans la fabrication de couvertures pour de tels rackets de protection.

L'informatique souffre d'une longue maladie causée par un virus très dangereux. Ce virus est l'exclusivité légale des logiciels, au profit des éditeurs, et au détriment de tous les utilisateurs effectifs ou potentiels.

Ce que peuvent faire les utilisateurs

À propos de logiciel libre, il faut bien se rendre à l'évidence que la question à se poser pour un responsable informatique n'est pas « allons-nous migrer ? », mais « quand et comment allons-nous migrer ? ». En effet, tout logiciel exclusif a une durée de vie limitée, et il faudra payer le coût de migration tôt ou tard, de toute façon. Seuls les logiciels libres sont pérennes, et sur le long terme, la question des coûts est vite réglée. Reste alors à prévoir et budgetiser le plan de migration vers des systèmes libres.

Enfin, Virus ou pas virus, logiciel exclusif ou libre, je tiens cependant à rappeler qu'il est indispensable d'effectuer des sauvegardes régulières de toutes données auxquelles on tient -- un malheur est si vite arrivé !

Conclusion

Les systèmes exclusifs sont la cause structurelle directe des dégâts occasionnés par les virus informatiques. Face au discours aussi fallacieux que dominant présentant les virus comme une fatalité, et incitant à l'emploi de logiciels anti-virus, il faut expliquer que non, les virus ne sont pas une fatalité, et que non, les anti-virus ne sont et ne peuvent être ni une solution rentable sur long terme, ni une protection complètement fiable sur le court terme. La véritable solution, à défaut de pouvoir traîner en justice les responsables des systèmes exclusifs, est d'abandonner ces systèmes, et le plus vite possible, et de migrer vers des systèmes libres.

Les virus ne sont pas une fatalité. Ils disparaîtront, peu après les systèmes exclusifs.

Glossaire

Activation

Tant que le programme contenant un cheval de Troie n'est pas lancé, le cheval de Troie reste sans effet. Ce qui reste vrai dans le cas d'un virus basé sur un cheval de Troie. Un système peut donc contenir en son sein un virus ou un cheval de Troie, sans que celui-ci n'en affecte aucunement le comportement, parce que le programme correspondant n'est pas lancé. Quand le virus ou le cheval de Troie est lancé, on dit qu'il est activé. Un virus peut même être véhiculé par des systèmes immunisés, qui recopient sans jamais pouvoir l'activer un programme infecté.

Certains chevaux de Troie et certains virus ne s'activent réellement que sous certaines conditions (date, phase de la lune, présence d'une connexion internet, taux de remplissage du disque, etc.), et sinon restent endormis sans déployer (tous) leurs effets nocifs. Les programmes qui restent longtemps endormis et ne s'activent que rarement sont appelés des bombes logiques.

Attaque

Une attaque ("attack" en anglais) est une tentative par un utilisateur du système (local ou distant, autorisé ou non autorisé) d'outrepasser les droits d'accès normalement prévus, et de faire effectuer au système un comportement non prévu. Un système qui est susceptible d'être attaqué avec succès est dit vulnérable.

On classifie en général les attaques selon leur effet. Une attaque permettant de mettre une machine hors d'état d'effectuer ses tâches habituelles est un DoS (Déni de Service). Une attaque permettant d'exécuter du code en outrepassant les autorisations normalement requises correspond à un trou de sécurité; c'est ce deuxième genre d'attaque qui permet la propagation de virus.

Avion

Un "avion", aussi connu sous le nom de système pyramidal ("pyramid scheme" en anglais), est une escroquerie très fréquemment transmise sous forme de lettres en chaîne.

Un avion consiste à faire payer les nouveaux venus au bénéfice des plus anciens membres du système, chacun étant censé recevoir par les nouveaux qu'il parrainera plus qu'il n'a payé aux anciens qui l'ont parrainé. Le problème, bien entendu, est que plus les gains sont importants et rapides, plus vite il faut pouvoir trouver des nouveaux arrivants pour payer les anciens. Or, le nombre de nouveaux arrivants nécessaires pour maintenir le système à flot croît exponentiellement avec le temps, et dans la plupart des cas, les systèmes pyramidaux font banqueroute bien vite, par épuisement de la réserve de nouveaux arrivants potentiels. (Cela s'est notamment vu en Albanie en 1990.)

Les systèmes pyramidaux sont une forme d'escroquerie illégale dans de nombreux pays, dont la France. Le système français de retraite par répartition, cependant, est considéré par beaucoup d'économistes comme un système pyramidal caractérisé (quoique promettant des gains faibles et lents, ce qui lui donne plus de temps à vivre) : les gestionnaires misent en effet officiellement pour éviter la banqueroute sur la croissance exponentielle indéfinie de la population active, leur solution de rattrapage étant d'augmenter les cotisations et de diminuer les prestations, de façon que les participants auront reçu moins qu'ils n'auront cotisé, contrairement à la propagande officielle. Quoiqu'il en soit, tout système qui promet de donner à chacun plus qu'il a misé (intérêts compris), sans travail et sans risque, est une escroquerie.

Bombe logique

Une bombe logique ("logic bomb" en anglais) est un programme nuisible qui n'active son comportement nocif qu'après un certain temps, ou à une certaine date, ou quand certaines conditions sont réunies. Jusqu'à ce que cette condition soit vérifiée, le comportement d'un tel programme ne laissera donc pas soupçonner sa nature véritable.

Certains virus parmi les pires se contentent habituellement de se propager, mais contiennent une bombe logique qui une fois activée détruit ou corrompt les données des utilisateurs. En dehors de tout virus, il s'est vu qu'une bombe logique soit déposée par l'auteur d'un programme pour nuire à un client doit il était prévisible qu'il refuserait de payer à l'échéance prévue.

Cheval de Troie

Un cheval de Troie ("Trojan horse" en anglais, voire "Trojan" pour simplifier) est un programme caché dans un autre, et effectuant des tâches indésirables à l'insu de l'utilisateur. Le nom "Cheval de Troie" fait bien sûr référence au mythique piège tendu par les grecs aux troyens durant la Guerre de Troie, telle que relatée par Homère dans l'Iliade.

Un cheval de Troie ne sert pas forcément à propager un virus, même si les virus se servent souvent de chevaux de Troie pour se propager. Un cheval de Troie peut servir à attaquer un trou de sécurité dans un système administré par un administrateur trop confiant, à modifier une base de donnée au bénéfice d'un pirate, ou autrement à effectuer tout acte d'espionnage ou de nuisance à l'intérieur du système dans lequel le cheval est activé.

La plupart des virus utilisent une forme de cheval de Troie pour s'activer, puis se répliquent en créant de nouveaux programmes ou fichiers hôtes à partir de programmes ou fichiers cibles, qu'ils envoient eux-mêmes par courrier électronique, ou qui, ils espèrent, seront transmis manuellement par les utilisateurs.

Cible

Une cible ("target" en anglais) d'un virus est un système vulnérable que le virus va attaquer (système cible) ou un programme ou fichier de données que le virus va modifier (programme ou fichier cible). La cible devient un hôte, une fois le virus propagé avec succès.

Dans les années 1980, avant l'avènement des gros disques durs pour tous, la cible préférée était la disquette de démarrage. Le virus s'activait quand on démarrait sur une disquette infectée (souvent, en oubliant la disquette dans le lecteur), et se recopiait alors sur toute disquette inscriptible insérée dans la machine; il se propageait de machine en machine par l'échange de disquette entre amis. Progressivement, avec l'ère des gros disques durs et des CD-ROMs, les disquettes sont tombées en désuétude, et ces virus ont disparus plus pour cette raison que par les contre-mesures à leur encontre prises à de multiples niveaux du système.

D'abord à côté des disquettes de démarrage, puis en remplacement, les virus ont ciblés les programmes exécutables binaires. Une fois infecté, un programme activait le virus sur les autres programmes présents sur la machine (ou nouvellement copiés). Puis, l'échange de programmes entre amis, sur disquettes, CD-ROM, ou par courrier électronique, était le mode de propagation principal.

Avec la popularisation de l'Internet, le courrier électronique est devenu le moyen principal d'échange de programme. La cible est alors la configuration du système, ou certains binaires très particuliers, de façon à activer le virus à chaque démarrage. Le mode de propagation généralement associé est ou bien l'attaque d'un trou de sécurité connu dans un logiciel Microsoft, ou bien l'incitation à ce que la personne recevant le courrier active elle-même un cheval de Troie caché dans un attachement exécutable.

Il est bien sûr concevable qu'un virus utilise de nombreuses cibles et de nombreux modes de propagation différents, mais étant donné la vie facile actuellement offerte aux virus simples, il semble que plus personne n'écrive vraiment de virus complexes.

Mais la situation s'est aggravée à cause de nombreuses décisions particulièrement désastreuses de Microsoft, qui relèvent de la négligence malveillante. Tout d'abord, l'insistance de Microsoft de permettre aux courriers d'exécuter du code en Visual Basic a ouvert une ère de vers ciblant Outlook. Puis, la mauvaise conception de Windows, combinée à l'interface graphique cachant les extensions de fichiers a rendu quasi-impossible à l'utilisateur non expert de faire la différence entre un programme potentiellement dangereux et un simple fichier de donnée inoffensif, rendant infiniment complexe (et inaccessible aux débutants) toute mesure proactive de filtrage du courrier.

Défaut

Le sens habituel du mot défaut, en informatique comme ailleurs en français, est pour qualifier un erreur dans la conception ou la réalisation d'un logiciel, en quoi il traduit le mot anglais "bug", aussi traduit par "bogue" en français. Toute vulnérabilité d'un programme est à ce titre un défaut.

Cependant, un anglicisme courant consiste aussi à parler des "défauts" d'un programme pour désigner non pas ses bogues, mais les réglages de sa configuration par défaut. En informatique, et dans le contexte de problèmes de sécurité en particulier, "les défauts" (au pluriel) fait souvent (mais pas toujours) référence à ce deuxième sens.

Démon

Dans le jargon des programmeurs Unix, un démon est un programme qui tourne en permanence, et accepte de servir des requêtes locales ou distantes. Les démons mal écrits ou mal configurés comportant des trous de sécurité sont les cibles préférées des programmes et des personnes mal intentionnées.

L'usage inapproprié de langages de bas niveau comme C ou C++ pour l'écriture de démons mène très souvent à des trous de sécurité impossibles dans des langages plus sérieux (comme Erlang, OCaml, Common LISP, Perl, etc.). Corriger de tels trous de sécurité est un lent et ingrat travail d'experts, tel qu'effectué systématiquement, dans le monde des systèmes libres, par la remarquable équipe d'OpenBSD.

Déni de Service

Un déni de service ("Denial of Service" en anglais), souvent abrégé "DoS", est une attaque permettant à un programmeur malveillant de mettre hors service une partie ou la totalité d'un ordinateur. L'expression "DoS" se dit aussi d'une vulnérabilité permettant une attaque de type DoS.

Exploiter

Exploiter ("to exploit" en anglais) veut dire tirer parti d'une vulnérabilité pour arriver à attaquer effectivement un système. Le mot anglais "exploit" désigne une méthode pour exploiter une vulnérabilité.

Certaines vulnérabilités peuvent ne représenter qu'un danger potentiel qu'aucune méthode connue ne permet encore d'exploiter, tandis que d'autres possèdent déjà un "exploit" répertorié, voire un ver ou un virus utilisant cet "exploit".

Hôte

Un hôte ("host" en anglais) est un système, programme, ou fichier de données qui est infecté par un virus.

Lettre en chaîne

Une lettre en chaîne ("chain letter" en anglais) est une sorte de virus à propagation complètement manuelle. Les cibles d'un tel virus sont les personnes naïves, qui propageront le virus en l'envoyant à d'autres personnes.

Pour inciter les victimes à propager le virus, on fait appel à leur superstition ("vous serez béni si vous propagez cette lettre, maudit sinon"), leur avidité ("plus vous propagerez cette lettre, plus vous recevrez d'argent"), leur sens civique ("prévenez toutes vos connaissances du danger représenté par telle menace" -- la menace en question étant souvent un virus imaginaire, le véritable virus étant la lettre en chaîne elle-même), leur humour mal placé ("envoyez cette blague à tous vos amis"), leur compassion ("diffusez cette pétition pour une bonne cause"), ou tout autre sentiment.

Parfois, les effets secondaires d'un tel virus consistent à inciter les victimes naïves à participer à un avion (système financier pyramidal). Parfois, ces virus sont accompagnés de blagues plus ou moins drôle. Parfois, ils incitent à envoyer une plainte contre telle ou telle entreprise, ou à souscrire à une offre commerciale bidon de la part d'une entreprise, avec pour effet de mettre l'entreprise dans l'embarras de répondre à un grand nombre de sollicitations basées sur une information bidon. Le plus souvent, ils ne sont que des appels à la superstition.

Mode de Propagation

On classifie les virus selon les modes qu'ils emploient pour se propager. Un virus à propagation complètement automatique est appelé un ver. Un virus à propagation complètement manuelle est une lettre en chaîne. La plupart des virus requièrent l'assistance humaine à un moment ou à un autre, en générale, l'ouverture manuelle d'un programme comportant un cheval de Troie. Le mode de propagation d'un virus est très lié à sa cible; selon la cible choisie, certains modes de propagation sont possibles seulement.

Par défaut

"Par défaut" ("by default" en anglais) qualifie la configuration d'un système ou d'un programme tel qu'il est normalement livré par le constructeur ou installé par le diffuseur. On parle des "paramètres par défaut" d'un programme ("default settings" en anglais). La configuration par défaut est aussi celle utilisée par la plupart des utilisateurs -- en tout cas, par tous les utilisateurs non expérimentés, cible principale des virus et autres attaques. Par une traduction trop rapide de l'anglais, on parle souvent des "défauts" (au pluriel) d'un programme, non pas pour désigner d'éventuelles erreurs, mais pour désigner les paramètres de sa configuration par défaut ("the defaults" dans le jargon anglais). Si le diffuseur fait bien son travail, il n'y a pas de défaut dans "les défauts". Malheureusement, tel n'est pas toujours le cas.

Trou de sécurité

Un trou de sécurité ("security hole" en anglais) est une vulnérabilité permettant à un attaquant de faire effectuer par le système des tâches qu'il ne devrait normalement pas avoir le droit d'effectuer.

Les pires trous de sécurités, les trous de sécurité distants ("remote security hole" en anglais) permettent la propagation de vers en provenance d'autres systèmes. Les trous de sécurité locaux ("local security hole" en anglais) nécessitent d'être déjà dans la place pour les exploiter; d'où l'usage de chevaux de Troie par les programmeurs mal intentionnés pour tenter d'y accéder.

Ver

Un ver ("worm" en anglais) est un virus à propagation complètement automatique. Les cibles des vers sont en général les serveurs et démons pour lesquels il existe des trous de sécurité connus, surtout quand ces trous de sécurité sont présents dans les configurations par défaut livrées par les installateurs.

Les logiciels de lecture de courrier électronique de Microsoft ont notamment été la cible privilégiée des vers pendant plusieurs années, jusqu'à ce qu'enfin Microsoft consente à retirer l'exécution automatique de programmes reçus par ses logiciels, et y arrive effectivement (ce qui ne s'est pas fait du premier coup). De nos jours ils sont encore la cible privilégiée des virus.

Virus

Un virus ("virus" en anglais) est un programme qui modifie d'autres programmes de façon à se propager de machine en machine.

On peut classifier les virus selon plusieurs critères indépendants : leur mode de propagation plus ou moins automatique, leurs effets secondaires plus ou moins malveillants, la cible plus ou moins spécifique de leurs modifications.

Dans un contexte technique, les spécialistes réservent le mot "virus" à la situation d'un cheval de Troie qui s'autoréplique, et qui nécessite une action manuelle pour se propager ou pour être activé. Notamment, ils n'utiliseront jamais le mot "virus" dans la situation spécifique où le terme "ver" convient. Enfin, l'emploi du mot "virus" pour désigner un cheval de Troie qui ne s'autoréplique pas, un genre d'attaque différent voire une erreur informatique en général est complètement incorrect, quel que soit le contexte.

Vulnérabilité

Une vulnérabilité ("vulnerability" en anglais) est un défaut logiciel permettant à certains utilisateurs d'attaquer avec succès un système où ce logiciel est installé.

Certaines vulnérabilités sont trouvées par des experts en sécurité avant d'être découvertes par des programmeurs mal intentionnés; elles peuvent alors ne pas (encore) avoir de méthode d'exploitation connue, et même être corrigées avant que quiconque ait le temps de les exploiter. Ou encore, elles peuvent rendre facile et probable l'exploitation de la vulnérabilité par une attaque de type DoS, mais difficile et improbable (quoi que parfois néanmoins possible) une attaque créant un vrai trou de sécurité (i.e. compromettant la confidentialité voire l'intégrité des données).

Pointeurs

Quelques pointeurs pour en savoir plus :
Faré -- François-René Rideau -- Ðặng-Vũ Bân