Vous êtes sur le site public du Cert-IST
Articles sur les vers "correcteurs"

Date :22 Juin 2005

Publication: Article

Depuis quelques années, après chaque infection massive sur Internet par un ver malicieux utilisant une vulnérabilité d'un système d'exploitation donné, des vers "bienveillants" apparaissent quelques temps après dans le but de corriger les systèmes vulnérables afin d'empêcher de nouvelles infections.

Ainsi, après les infections massives du ver "Blaster" (CERT-IST/AV-2003.257), le ver "Nachi" (CERT-IST/AV-2003.261) a vu le jour. Son but était de corriger les systèmes Microsoft Windows vulnérables à "Blaster" et notamment à la vulnérabilité utilisée par ce dernier (CERT-IST/AV-2003.227).

Par le passé, plusieurs vers de ce type se sont déjà illustrés comme "Code Green" (CERT-IST/IF-2001.008) utilisé pour se prémunir du ver "Code Red" (CERT-IST/AL-2001.004c).

Mais est-ce que ces vers sont vraiment bénéfiques pour la sécurité d'un système d'information ?

L'application d'un ver "correcteur" dans un système d'information (SI) pourrait s'avérer séduisante car ce ver corrigerait de manière automatique et extrêmement rapide les machines vulnérables. De plus, le ver serait configuré pour ne pas sortir du SI pour lequel il a été créé/configuré, ce qui confinerait son domaine de propagation.

Dans un cadre idéal, les fonctionnalités d'un tel ver devraient être les suivantes :

  1. Infection du système via la vulnérabilité qu'il est censé "fermer",
  2. Correction de la vulnérabilité,
  3. (Désinfection si un ver donné est déjà présent sur un système)
  4. Recherche de nouvelles machines vulnérables (scan),
  5. Infection des machines vulnérables,
  6. Désinfection du système.

Mais ce schéma se trouve confronté à deux principaux problèmes :

  • Point 2 : la correction de la vulnérabilité peut se trouver assez difficile dans le cadre de systèmes d'exploitation supportant plusieurs langages (ex : Microsoft Windows – le ver "Nachi" ne corrigeait que les versions anglaises et coréennes de Windows),
  • Point 6 : le ver oublie "souvent" cette partie, ce qui nécessite un nettoyage ultérieur de la machine.

De plus, une telle entreprise, outre les 2 problèmes ci-dessus (problèmes de conception propres au ver), ouvre des problèmes beaucoup plus critiques qui compromettent la viabilité de ce type de solution :

  • Le ver tend à augmenter de façon significative le trafic réseau, ce qui peut à terme entraîner la saturation de ce dernier (Cf. l'article sur le site de la Navy).
  • Le ver s'exécute sur la machine à l'insu de l'utilisateur.
  • Ce type d'activité reste illégal et répréhensible en dehors du cadre de l'entreprise (atteinte à l'intégrité des données à l'insu de l'utilisateur).
  • Quelle est la réaction du système lorsque l'opération d'installation du correctif ne se passe pas correctement ?
  • L'application du correctif est susceptible de rentrer en conflit avec une application du système.
  • Comment faire dissocier par les anti-virus, un ver "correcteur" d'un ver malicieux ?
  • Quelle est la garantie qu'un ver "correcteur" ne contient pas de fonctions cachées (porte dérobée, ..) ?

De plus, il est possible que le ver "correcteur" ne puisse pas agir sur un système déjà infecté. En effet, un ver malicieux lorsqu'il infecte un système utilise généralement une vulnérabilité sur un service réseau de ce dernier. Cette vulnérabilité est très souvent un débordement de pile qui permet à terme d'exécuter des actions malveillantes sur le système. Cependant, lors de ce débordement de pile, le service visé devient inaccessible, ce qui rend le système indétectable par un ver "correcteur". Le système ne sera donc pas corrigé.

A l'inverse, il se peut qu'un ver "correcteur" croie qu'un système est "sain" alors qu'il ne l'est pas. En effet, il arrive que certains vers, une fois qu'ils ont infecté un système, agissent sur la vulnérabilité qu'ils ont utilisée lors de l'infection pour empêcher une nouvelle infection. Pour cela, ils corrigent eux-mêmes cette vulnérabilité ou arrêtent le service vulnérable. Le ver "correcteur" détecte alors ce système comme "sain" car le service vulnérable n'est plus actif ou a été corrigé.

Tous ces points tendent à démontrer les limites actuelles des vers "correcteurs". Bien que cela puisse apparaître comme une solution séduisante au premier abord, ce type de ver reste un domaine exploratoire, mais qui ne peut être adapté aux besoins de sécurité de SI.

Pour plus d'information :