Produits de défense "générique"

Par les participants du groupe alt.comp.virus.
(Ces pages de sécurité sont le résultat d'un effort collectif continu.)

Anti-Virus Main Menu
Main Menu

Produits de défense générique - comment ils fonctionnent / Avantages et inconvénients
par Nick FitzGerald
Computer Virus Consulting Ltd.

Sans nommer des produits spécifiques, l'idée principale des produits "génériques" (ou "pas-spécifique-à-certains-virus") consiste à faire attention aux "signes d'un virus" plutôt qu'au code dont on sait qu'il constitue ou qu'il appartient à un virus connu. La méthode la plus simple, qui n'est en fait pas du tout une méthode anti-virus, est la vérification de l'intégrité des fichiers "avant et après", et dépend du truisme d'après lequel un virus doit modifier quelque chose sur votre système pour pouvoir vous infecter et ces changements doivent être détectables. Un avantage est que la surveillance en temps réel n'est pas nécessaire. Un autre avantage est que cette méthode ne s'immisce pas dans quelque chose qui semble suspect, mais qui est en fait totalement légitime. Les inconvénients sont les ennuis de la méthode "avant et après" (la vérification régulière "après", qui devrait signaler les changements, a tendance à être effectuée de plus en plus rarement), et les ennuis extrêmes liés au démarrage depuis une disquette (ou au démarrage "sain" quelle que soit la méthode) pour avoir la certitude de ne pas se faire berner par un virus "stealth" (secret).

D'autres formes d'approches antivirales génériques "plus agressives" sont "after the event application sandboxing" (exécution d'une application dans un bac à sable après l'évènement, comme on le trouve dans le produit eSafe) et diverses formes de moniteurs et/ou bloqueurs de comportement (behaviour monitor/blocker). En fait, cette partie du produit eSafe n'est en fait rien d'autre qu'un type de bloqueur de comportement ajustable). La théorie ici est que vous pouvez activement prévenir certaines "mauvaises choses" en installant du code intercepteur dans le système d'exploitation (et/ou à l'aide de l'émulation d'une application) et en empêchant les "mauvaises choses" d'avoir lieu tout en acceptant le comportement légitime d'une application. Plus précisément, vous pouvez empêcher le formatage du disque dur en interceptant par exemple toutes les fonctions de bas niveau qui peuvent être utilisées pour le formatage d'un disque dur et en empêchant toute invocation de telles interfaces d'être passée au code qui normalement s'occupe de ces invocations (ou vous pouvez permettre à certains utilisateurs ou logiciels seulement de faire appel à ces interfaces avec succès en bloquant les invocations par des logiciels interdits). En général, bien que ces approches puissent attraper /stopper beaucoup de "mauvaises choses" avant que les antivirus (mis à jour) ne les connaissent, elles peuvent aussi causer des ennuis à l'utilisateur en lui demandant de prendre des décisions complexes et techniques, ce que souvent il ne sait pas faire.

L'argument principal en faveur de la détection générique est qu'elle permet l'interception de nombreux nouveaux virus inconnus auparavant. L'inconvénient est qu'elle a tendance à produire beaucoup de fausses alertes et que l'on doit permettre au virus d'être exécuté (partiellement du moins) pour être détecté. Un grand problème posé par un nombre élevé de fausses alertes est que les utilisateurs s'habituent aux alertes ce qui augmente le risque que les utilisateurs vont ignorer le produit (pour ensuite le désactiver ou le désinstaller). Le fait que le code malfaisant doive être exécuté (du moins partiellement) signifie que ce code aura la possibilité de causer quelques dégâts. Une solution partielle à ce problème est d'employer des bloqueurs de comportement résidant en mémoire faisant partie du produit.

Il y avait des gens qui étaient opposés aux antivirus classiques ("scanners") pour beaucoup de raisons à cause de la "terrible" consommation de ressources de l'élément de protection en temps réel, qui est devenu pratiquement indispensable dans la deuxième moitié des années 90, et des problèmes d'instabilité que ces moniteurs résidents ont introduits (l'expérience avec la plupart des produits antivirus - surtout quand ils sont utilisés dans de grandes entreprises - révèle que ces problèmes d'instabilité sont presque toujours causés par d'autres logiciels ne se comportant pas correctement ou par l'exécution sur du matériel défectueux, l'antivirus étant la pièce manquante au puzzle qui se trouve à l'origine d'un problème quelconque). Il y a quelque temps déjà, cette attitude a changé et il a été convenu que les éléments de protection en temps réel étaient décisifs quand il était question d'utiliser des approches génériques telles que la surveillance de comportement et de changements.

Encore une autre approche - ce qui est quelquefois appelé l'approche de la gestion d'intégrité - n'est pas tout à fait "générique" bien qu'elle ne soit pas spécifique à un certain virus non plus. Une telle approche (il n'existe pas de produits avec une implémentation suffisamment sophistiquée pour me permettre d'en mentionner un) assume que "l'administrateur doit savoir quels logiciels ont la permission d'être lancés, par qui, et où, et qu'il va fournir un mécanisme servant à renforcer cette ligne de conduite." Ceci est, plus ou moins, l'idée "integrity shell" ("coquille d'intégrité") de Fred Cohen et, bien qu'elle n'ait pas été acceptée il y a 15 ans quand il en parlait pour la première fois, je pense qu'une telle capacité est nécessaire dans les entreprises de nos jours. Notez que ceci n'est pas simplement une approche antivirale générique car en plus des virus elle bloque les chevaux de Troie, les vers exécutables indépendants (contrairement aux ver Morris original), les jeux gaspillant du temps, des logiciels non licenciés, des logiciels dont l'utilisation ne fait pas partie de votre travail. Une telle approche de gestion d'intégrité peut aussi être employée pour contrôler l'accès à des fichiers non exécutables comme, par exemple, empêcher le téléchargement de fichiers MP3. La raison pour cela est que la gestion d'intégrité du système consiste en plus que la simple détermination qui a quel accès à quelles parts du système de fichiers (et autres dispositifs), ce qui constituait le souci principal de la sécurité informatique traditionnelle. La gestion de l'intégrité du système consiste aussi à déterminer quel code se trouve sur un système et qui peut faire quoi avec ce code; ceci peut être étendu de façon à déterminer quel contenu se trouve sur un système si on le désire.

© Claymania Creations 2001 - 2008. Tous droits réservés.