[Copyright Notice]

Virus et anti-virus sur Linux - Chapitre 4
Les vers


4.1 Définition

Il s'agit d'un programme autonome, contrairement au cheval de Troie, qui est capable de se dupliquer de machine en machine en utilisant les capacités et faiblesses d'un réseau.


4.2 Méthodes d'infection

Les vers sont souvent assimilés à des virus, alors que les différences entre eux sont sensibles.

Un virus se propage de manière passive d'une machine hôte à une autre machine hôte, alors qu'un ver va utiliser le réseau comme moyen de propagation sans intervention humaine.

Son but n'est pas d'être destructeur, mais de se reproduire. Lorsque l'on parle de réseau, c'est de toutes les possibilités offertes par la machine hôte pour atteindre une autre machine sur le réseau. Les méthodes de propagation les plus courantes sont le courrier électronique, et l'utilisation de protocoles réseaux tels que « telnet » et « rlogin ».


4.3 Les effets

Un ver utilisera toutes les ressources matérielles et logicielles disponibles. La machine sera surchargée, car elle devra traiter un grand nombre de requêtes. Les conséquences peuvent être une surcharge du réseau (en fonction de la dimension de la ligne réseau à laquelle la machine est connectée).


4.4 Importance des vers sous GNU/Linux

Les vers exploitent généralement les failles des protocoles réseaux. Ces failles existent sur pratiquement tous les systèmes, mais tendent à diminuer. Là encore, la présence d'une personne compétente à la charge de l'administration du réseau s'avère nécessaire, pour se tenir informée et appliquer les mises à jour logicielles et mettre en place les sécurités pour empêcher la propagation des vers.


4.5 Un exemple de ver


4.5.1 Le ver d'Internet

Le ver d'Internet est un programme écrit par Robert Morris, qui a fait rage à la fin de l'année 1988.

Le ver est un programme complexe en dépit de ses imperfections et de ses erreurs de programmation.

Il est composé de 2 parties :

La sonde essaie un nombre restreint de tentatives d'intrusion sur une machine du réseau. Si elle y arrive, elle se compile et s'exécute sur la machine pénétrée, pour partir à la recherche du corpus.

Le ver possède 4 méthodes d'attaques principales et de nombreuses méthodes de défense (utilisées principalement pour éviter sa détection et son élimination). Par la suite, nous désignerons ces différentes méthodes comme suit :

Les méthodes F et S exploitent les imperfections de conception et de sécurité des programmes Sendmail et Finger, qui avaient été introduits dans certaines versions d'UNIX (BSD, SUN Microsystem, etc...).

La méthode F exploite une fonctionnalité de BSD pour laquelle il est possible à un utilisateur d'obtenir des informations sur un utilisateur d'une machine distante. Cette fonctionnalité utilise un algorithme qui ne vérifie pas la longueur de la requête. La méthode F exploite tout particulièrement cette omission en soumettant de longues requêtes qui recouvrent l'espace alloué par le programme et utilise cette espace pour ses besoins néfastes.

La méthode S exploite un attribut de débogage qu'a laissé le concepteur du programme Sendmail. Cet attribut lui permet de tester le programme sur une machine distante sans avoir besoin de droits particuliers sur celle-ci, et il argue que cela est nécessaire pour maintenir le programme dans un réseau distribué. Cet attribut peut être désactivé par les administrateurs au moment de l'installation du système, car il est activé par défaut. Si il est positionné, le ver peut combiner cette capacité avec une autre, qui consiste à utiliser un nom de programme plutôt qu'un utilisateur comme destinataire du courrier électronique. Le ver envoie alors un message contenant la sonde à une commande, qui indirectement, va permettre la compilation et l'exécution de celle ci. Elle cherchera alors à récupérer le corpus et reconstruire un nouveau ver.

La méthode P cherche à infecter les utilisateurs d'une machine distante en devinant leur mot de passe. Elle exploite une méthode connue selon laquelle les utilisateurs choisissent un mot de passe qu'ils peuvent retenir facilement en effectuant des permutations sur leur nom de compte. Par exemple, l'utilisateur « lsm » utilisera « mls » comme mot de passe. De plus, elle utilise une liste de mot de passe standard que son auteur a construit au fil des ans en utilisant des techniques de piratage standard.

La méthode R exploite une fonctionnalité qui n'est pas forcément une imperfection. Elle permet à un utilisateur d'avoir le même nom de compte, le même mot de passe et le même numéro d'identifiant sur des machines distinctes. Lorsqu'il cherche à infecter une nouvelle machine, le ver va chercher l'existence de noms de compte et de numéro d'identifiant, sur d'autres machines qu'il aurait déjà infecté. Si il en trouve un, il essaye de le pirater avec le même mot de passe. Cette méthode est utilisée en conjonction avec la méthode P. C'était la première méthode qui était essayée.

Ce ver est conçu de telle manière que :

On a dit après analyse qu'environ 10% des machines qui composait le réseau à cette période (environ 60000 machines), n'ont pas supporté la surcharge d'opérations et qu'il aurait causé une perte de 150 à 200 millions de dollars.

Depuis les systèmes UNIX ont corrigé ces outils et mis en place d'autres mécanismes pour renforcer la sécurité.

L'algorithme utilisé par finger effectue maintenant une vérification sur la longueur de la chaîne passée en argument.

L'option de débogage de Sendmail a été retirée depuis.

Les outils d'administration et de création d'utilisateur préviennent au moment de la création si le mot de passe choisit est trop simple. Toutes ces corrections permettent simplement de limiter les risques d'un nouveau ver, mais ne les éliminent pas complètement.


4.5.2 Le ver multi plate-forme

On se rend compte que les vers sont souvent mono plate-forme (ils ne peuvent pas être nocif sur une machine possédant un autre système d'exploitation).

La possibilité d'avoir un ver multi plate-forme semble mince, cependant un groupe d'amis se sont penchés sur le problème et sont arrivés à un résultat intéressant.

Ils ont commencé à définir les grandes lignes de ce projet et en sont arrivés à la conclusion que seuls sept points fondamentaux se devaient d'être disponible, pour que leur but soit atteint :

Aujourd'hui ils pourraient être en mesure de lancer un tel ver, car ils en ont réalisé une version mais ils ne le diffuseront jamais car l'étendue des possibilités de ce ver les a effrayés. Mais ce qui les a semble-t-il effrayés le plus serait qu'ils ne sont probablement pas les seuls à avoir eu cette idée ni à avoir une version fonctionnelle.


4.6 Point sur les vers

Le point fort des vers se trouve dans les erreurs logicielles, tant que des logiciels se trouvant à des points stratégiques (le plus souvent rattachés au réseau), d'un système contiendront des bogues, la possibilité qu'un ver puisse apparaître ne sera pas nulle.

Il faut noter que les vers sont moins fréquents que les virus ou les chevaux de Troie. Cela tient des mises à jour des différents logiciels contenant des failles. L'incident du ver d'Internet a servi d'exemple et a permis l'amélioration et la sécurisation des outils sensibles. Cela ne signifie pas pour autant que nous soyons à l'abri d'un autre ver.


[Copyright Notice]

Virus et anti-virus sur Linux
Tony Bassette tony.bassette@alcove.fr