[Copyright Notice]

Virus et anti-virus sur Linux - Chapitre 3
Les chevaux de Troie


3.1 Définition

Un cheval de Troie est un programme qui fait autre chose en plus de sa fonction déclarée. Il se cache le plus souvent dans un jeu ou un utilitaire, servant à infecter discrètement un système et à le pirater (à la manière du cheval de la mythologie grecque).

Contrairement au virus, le cheval de Troie ne peut pas se reproduire, il sert uniquement pour une attaque ciblée.


3.2 Méthodes d'infection

Il existe plusieurs façons d'être infecté par un cheval de Troie. Le cheval de Troie est le plus souvent rattaché à un autre programme ce qui est très différent du mode de propagation d'un virus.

Les programmes graticiel (« freeware », différents des logiciels libres) sont souvent les programmes idéaux pour cacher des chevaux de Troie, car on ne possède pas le code source de ces programmes et le fait qu'ils soient gratuit fait que leur distribution est incontrôlé.

Certains serveurs FTP ne sont pas surveillés, les personnes responsables de ces sites ne font pas attention aux fichiers qui y sont déposés. Il est tout à fait possible d'y déposer un programme contenant un cheval de Troie, programme qui sera rapatrié par la suite par une tierce personne.


3.3 Les effets

Les effets d'un cheval de Troie sont divers, mais il n'existe cependant pas de terminologie particulière pour désigner les chevaux de Troie comme pour les virus.

Le cheval de Troie va chercher à exploiter les failles de sécurité logicielles (différentes des failles de sécurité du noyau) pour pouvoir accéder à un niveau de droit supérieur, la notion de droits introduite dans les virus reste vraie.

Un cheval de Troie va essayer, par le biais de différentes techniques, de trouver ces failles de sécurité et d'en mettre en place d'autres pour permettre à une personne mal intentionnée de venir se connecter et récupérer des documents ou des mots de passe sur la machine piratée.


3.4 Importance du cheval de Troie sous GNU/Linux

Comme pour les virus il est important de dégager l'aspect technique du système de l'aspect humain. On retrouve ici la notion de droits à laquelle se heurtent les virus, à ceci près que le problème se positionne à une couche plus haute que pour les virus. Un virus cherchera à exploiter les failles de la couche noyau alors qu'un cheval de Troie tentera de créer une faille dans le système.

Certains chevaux de Troie, une fois installés, préviendront, par courrier électronique ou un autre moyen de communication, que leur installation est effective et renvoient un certain nombre d'informations concernant la machine ainsi que la ou les failles qui ont été mises en place.

La disponibilité du code source permet très facilement de vérifier le fonctionnement d'un logiciel, c'est une des raisons pour lesquelles les chevaux de Troie sont peu présents parmi les logiciels libres.

Les utilisateurs de logiciels libres évitent d'installer des logiciels dont ils ne peuvent vérifier le fonctionnement.


3.5 Exemple de cheval de Troie


3.5.1 Back Orifice 2000


3.5.1.1 Description

Le cheval de Troie le plus connu se nomme « BackOrifice2000 ». Il se présente sous la forme d'un outil d'aide à l'administration de machines équipées des systèmes Windows 95, 98 et NT. Il propose un ensemble de commandes utiles pour un administrateur, mais aussi ouvre des ports sur lesquels il est possible de se connecter à distance et de prendre le contrôle de la machine.


3.5.1.2 Fonctionnement et but

Il est composé d'une partie serveur qui sera installée sur la machine à administrer, et une partie cliente qui permet de prendre le contrôle à distance de la machine, il agit tout simplement comme le ferait un serveur de terminaux.

L'intention du groupe à l'origine de ce programme n'est pas de nuire aux utilisateurs, mais de forcer la société Microsoft à corriger toutes les erreurs dans son système d'exploitation qui permettent à cet outil et à d'autres chevaux de Troie d'exister.


3.5.1.3 Protections

Un serveur GNU/Linux possédant des outils de connections à distance tel que telnet ou rlogin, sans aucune protections d'aucune sorte entraîne les mêmes failles. La seule différence vient du fait qu'il faille connaître un nom d'utilisateur et mot de passe sur la machine distante.

Ces protocoles n'étant pas sécurisés ils sont souvent à proscrire sur une machine, il est préférable d'utiliser ssh (secure shell) à la place. Cet outil crypte toutes les informations qui vont circuler entre les deux machines.


3.5.2 Le cheval de Troie de SATAN


3.5.2.1 Description

SATAN (Security Administrator's Tool for Analyzing Networks, Outil d'Administration de Sécurité pour Analyse des Réseaux) est un outil d'audit de sécurité. Il scanne les ports d'une machine pour déterminer les risques d'intrusions de celle ci ou du réseau à laquelle elle appartient.

Il analysera les failles, expliquera les conséquences de celles ci et proposera des correctifs à ces dernières.


3.5.2.2 Fonctionnement et but

SATAN n'est pas un cheval de Troie. En 1996, Joel Katz signale pourtant par le biais d'un message dans les « newsgroups » qu'une version binaire de ce programme contiendrait un cheval de Troie. Il explique qu'une personne a eu un accès physique à sa machine et a rajouté ce cheval de Troie dans sa version binaire de SATAN pour linux.

Cela ne concernerait que les personnes qui aurait récupéré cette version à partir du site ftp.epinet.com (mais d'autres sites ftp peuvent aussi être concernés).

L'auteur du cheval de Troie a profité d'une absence de Joel Katz du laboratoire pour avoir un accès physique à la machine et trouvé le mot de passe dans les enregistrements de la machine. Joel Katz explique qu'il a eu des soucis avec une connexion PPP (Point-to-Point Protocol) et aurait demandé au programme d'enregistrer toutes les étapes de la connexion ce qui incluait aussi son mot de passe. Il s'est avéré qu'il utilisait le même mot de passe pour plusieurs services. Cette personne n'avait pas vraiment l'intention de se servir de ce cheval de Troie, elle voulait juste marquer le coup.


3.5.2.3 Protections

Le cheval cherchait à créer un compte utilisateur du nom de « suser » (s'il existait déjà le cheval ne pouvait être effectif), donnant ainsi un accès à la machine par une personne non autorisée. Il suffisait de regarder la présence de cet utilisateur dans le fichier /etc/passwd sur sa machine pour savoir si on était infecté. Si tel était le cas remplacer le champs correspondant au mot de passe de l'utilisateur suser par le caractère '*' suffisait à le rendre inactif. Dans le cas ou cet utilisateur n'existerait pas, le créer avec un numéro d'utilisateur de 9955 et le champ mot de passe positionné à '*'. Seul le fichier binaire était concerné par ce problème, les sources contenant le cheval n'ont pas été distribuées.


3.6 Point sur les chevaux de Troie

L'exemple du cheval de Troie de SATAN nous montre clairement les erreurs qui peuvent être commises aussi bien au niveau de l'administration de la machine (mot de passe identique pour plusieurs services) qu'au niveau de l'utilisation (récupération de logiciels binaires sur un site miroir).

Toutefois, tous les sites miroirs de logiciels ne fourmillent pas de logiciel contenant des chevaux de Troie loin de là, mais dans le cas de l'utilisation de tels sites, une sécurité consiste à récupérer avant tout les sources du logiciel à installer.

Autrement les sites des distributions fournissent assez souvent les paquets du programme concerné dans un laps de temps relativement court. Attendre cette version est le meilleur choix.


[Copyright Notice]

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