Rechercher
Contactez-nous Suivez-nous sur Twitter En francais English Language
 

De la Théorie à la pratique











Abonnez-vous gratuitement à notre NEWSLETTER

Newsletter FR

Newsletter EN

Vulnérabilités

Se désabonner

Virologie informatique : vers des menaces imparables ?

février 2009 par Emmanuelle Lamandé

Les pirates informatiques font aujourd’hui preuve d’une volonté maligne et s’avèrent à la fois très structurés et innovants. La défense évoluant moins vite que l’attaque, la lutte antivirale s’en trouve de moins en moins efficace. Pourtant, le niveau des attaques détectées actuellement est encore peu élevé. Qu’en sera-t-il des attaques futures beaucoup plus évoluées ? A l’occasion des Microsoft TechDays, Eric Filiol, Directeur du laboratoire de virologie et de cryptologie opérationnelles de l’ESIEA, a dressé, dans un premier temps, un état de l’art en virologie informatique puis nous a présenté les virus du futur.

Le risque infectieux informatique est récent puisqu’il a environ 30 ans d’existence. Le premier virus officiel est apparu en 1983 sous UNIX. La preuve qu’aucun système d’exploitation n’est immunisé contre les vulnérabilités. En 1988, les virus et vers quittent les laboratoires, pour laisser place, dans les années 1990, à une mutation des technologies. En 1991, apparaissent des générateurs de virus. Suivront en 1995 les virus de document. L’année 1999 sera marquée par le ver « melissa » (macro-ver), qui utilise l’ingénierie sociale. Le ver « I love you » (ver d’e-mail) restera, quant à lui, dans les esprits de l’an 2000. En 2001, fut créé le premier ver pour Palm Pilot. Les années 2002 et 2003 marqueront un tournant dans l’intensification et la professionnalisation des attaques. Les premiers virus et vers pour téléphones portables apparaîtront en 2004. Depuis, l’évolution est exponentielle…

Infections informatiques … simples ou autoreproductrices

Pour définir les infections informatiques, Eric Filiol reprend la classification d’Adleman. Il distingue les infections simples (bombes logiques et chevaux de Troie) et les infections autoreproductrices (virus et vers). A ce jour, toutes les formes d’attaques virales peuvent être rattachées à cette classification.
- Un virus est un programme se propageant par recopie de son propre code dans des cibles préalablement choisies. Il comporte des fonctions de recherche, de copie et de lutte anti-antivirale.
- Les vers peuvent être vus comme des virus orientés réseau. La différence éventuelle avec un virus réside dans le fait que le ver n’est pas nécessairement attaché à un fichier (Code Red) et peut être un simple processus se dupliquant. Il existe des vers simples (utilisation d’une faille de sécurité), des macro-vers (utilisation d’ingénierie sociale et d’une pièce jointe bureautique infectée) et des vers de messagerie (utilisation d’ingénierie sociale et d’une pièce jointe exécutable infectée). Il parle également de virus psychologiques, où l’utilisateur sert de moyen de propagation.
- Une bombe logique est un programme résident dont la charge finale est activée en fonction d’un ou plusieurs paramètres fournis par le système ou ses entrées/sorties. L’effet à retardement plus ou moins grand.
- Un cheval de Troie est un programme composé de deux parties : le module serveur et le module client. Le module serveur, installé dans l’ordinateur de la victime, donne discrètement accès à tout ou partie de ses ressources à l’attaquant, qui en dispose via le réseau, grâce à un module client.

Les infections informatiques, qu’elles soient simples ou autoreproductrices, s’installent sur un système pour porter atteinte à la confidentialité, à l’intégrité ou à la disponibilité du système. Elles sont également susceptibles d’incriminer à tort son possesseur ou l’utilisateur dans la réalisation d’un crime ou d’un délit. C’est le principe du botnet, la personne se retrouve accusée à son insu alors qu’elle n’est que victime. Le principal risque aujourd’hui est constitué par la création de réseaux (botnets) d’ordinateurs infectés par des chevaux de Troie (PC Zombie). La tendance actuelle consiste à diminuer la vitesse de propagation au profit de la furtivité.

Les principaux modes de propagation reposent sur les échanges de fichiers (supports amovibles, …), les échanges via le réseau, le P2P, le téléchargement. L’informatique mobile représente un autre vecteur de propagation, avec notamment les mises en connexion directe LAN-WAN, les connexions de PDA, … Il relève, en outre, l’ingénierie sociale, il s’agit des comportements à risque des utilisateurs, de laxisme, ou encore de manque de conscience professionnelle. Enfin, les défauts d’administration et de paramétrage.

Furtivité, polymorphisme et blindage : les principales techniques anti-antivirales

Il distingue trois techniques anti-antivirales :
- la furtivité : il s’agit de la capacité à leurrer toute surveillance du système (humaine ou logicielle) en vue de faire croire à l’absence d’infection.
- le polymorphisme (mutation de code) : c’est la capacité à automodifier tout ou partie de son propre code (chiffrement, réécriture) afin de leurrer les tentatives de détection par analyse de forme.
- le blindage : capacité plus ou moins grande du code à résister à l’analyse par désassemblage/debugging (Whale 1990 - Bradley 2004).

Toutes les méthodes antivirales sont contournables

Aux dires des éditeurs d’anti-virus, ils détectent 100% des virus connus et inconnus, mais ce ne sont que des résultats théoriques. En 1986, Frédéric Cohen a prouvé que la détection des virus est « un problème indécidable ». Il n’existerait donc aucun programme capable de détecter tous les virus. Dans les faits et dans la réalité de l’attaquant, la logique est plutôt « donnez moi un produit hypersécurisé que je le contourne ». Cependant, ce résultat majeur de la virologie informatique, démontré par Fred Cohen, n’a jamais vraiment été illustré par des codes viraux réels. Tous les codes actuels, pour ceux que l’on parvient à détecter, sont finalement pris en compte, avec succès plus ou moins grand par les antivirus. Entre ce constat pratique et le résultat théorique de Cohen existe donc un fossé qu’il est en apparence difficile d’expliquer et d’illustrer. Une autre façon de définir le problème consiste à savoir si actuellement les antivirus et les analystes de codes malveillants sont capables de détecter tous les virus, existants déjà de nos jours. La réponse est négative.

Tous les grands antivirus sont régulièrement victimes de vulnérabilités critiques. Dans le cadre d’une de ses études, 14 d’entre eux ont été analysés. Les antivirus se fondent encore de manière quasi-exclusive sur l’analyse de forme. Il existe, de plus, une très grande similitude entre eux. Les produits antiviraux ont à faire un certain nombre de compromis techniques, pour disposer de produits toujours plus fluides et réactifs, comme l’amaigrissement des bases de signature par exemple. Les produits actuels sont trop faciles à leurrer et à contourner. Selon lui, qu’il s’agisse d’analyse de forme ou de surveillance comportementale, il est, en effet, possible de contourner chacune des méthodes antivirales. La détection antivirale est généralement un problème très difficile. Pour Eric Filiol, tout ensemble de techniques de détection est assimilable à un test statistique, avec les probabilités de faux positifs et de non détection. Ces deux risques s’opposent et l’éditeur doit faire un choix.

Les virus du futur

Il existe plusieurs types d’attaque : les attaques dites « grand public » et les attaques ciblées, qui s’avèrent indétectables. La situation réelle empire. Pour Eric Filiol, le problème est le même que dans le débat « maladies orphelines vs grandes épidémies ». Il est moins rentable financièrement de s’attaquer aux maladies orphelines. Il sera toujours possible de mettre en défaut toute technique. Il ne faut pas oublier que les anti-virus sont, avant tout, des produits commerciaux. Dans cette lutte anti-virale, Eric Filiol conseille, malgré tout, d’utiliser un logiciel antivirus, même si son efficacité restera limitée. L’antivirus doit, en outre, être associé à une politique comportementale stricte. La recherche proactive est indispensable.

Techniquement, il est possible de faire des virus indétectables. On retiendra les principaux outils :
- la simulabilité des tests statistiques : il s’agit du leurre de l’état statistique.
- la cryptologie et la stéganographie. On commence à voir apparaître des virus stéganographiques.
- la théorie de la complexité : il s’agit du nombre d’informations pour résoudre un problème. Les problèmes sont classés en classe de complexité : la classe polynomiale (P), facile à résoudre, la classe Non déterministe polynomiale (NP), difficile à résoudre, NP-complet, très difficile, … En pratique, seule la classe P est calculable. Un anti-virus ne peut donc pas faire du temps réel.

La détection virale est un problème non décidable

Existe-t-il une machine capable de résoudre le problème donné ? Selon la théorie de la calculabilité (cf Turing), certains problèmes ne sont pas calculables. Le problème de la détection virale fait partie des problèmes non décidables.

Il suffit de construire le code de telle sorte que pour l’anti-virus le problème de la détection soit difficile à calculer (NP et au-delà), voire incalculable. Il s’agit donc de leurrer les algorithmes de détection. Plusieurs alternatives sont possibles :
- utiliser les techniques de simulabilité, de cryptographie ou de statistiques malicieuses,
- utiliser les techniques de blindage pour interdire l’analyse de code,
- imaginer de nouvelles formes de malwares. Au niveau du code, il suffit à l’attaquant de penser à la fois en termes de détection par analyse de forme et détection comportementale.
- analyser la cible.

Les exemples et cas dont il s’inspire proviennent d’expertises judiciaires, de recherches en laboratoire, d’analyses d’attaques réelles ciblées. Une attaque réussie repose, selon lui, sur la combinaison du code et du protocole d’attaque, le code seul restant limité. Les modèles viraux existants ne sont pas les seuls possibles. Il prend l’exemple des codes viraux K-aire : il s’agit d’une famille de k fichier dont la réunion constitue un malware. Chaque partie apparaît anodine pour les antivirus. La détection des codes K-aire est un problème NP Complet.

Un antivirus est indispensable mais son rayon d’action sera de plus en plus limité

Il existe une infinité de manières de concevoir des malwares. Le niveau de risque est potentiellement élevé pour les attaques ciblées, probablement faible à moyen pour les autres acteurs. A l’heure actuelle, concevoir un virus vraiment évolué, qui mettra à mal les protections connues, est une chose difficile et l’apanage de programmeurs extrêmement compétents. A l’avenir, l’attaquant exploitera de plus en plus le fait qu’un produit antivirus est avant tout un produit commercial et prendra en considération des instances difficiles et complexes, voire utilisera des instances indécidables. De nouveaux modèles viraux verront également le jour. L’avenir n’est, cependant, sombre que dans le référentiel actuel, conclut-il. Un antivirus est indispensable mais son rayon d’action sera de plus en plus limité. Face à certains codes, la seule solution est d’éviter leur arrivée dans un système. La lutte antivirale doit relever prioritairement de la politique de sécurité.


Articles connexes:


Voir les articles précédents

    

Voir les articles suivants