Problème des terminaux sous Unix

Date :23 Juin 2005

Publication: Article

Il ne s'agit pas vraiment d'un problème nouveau (il est connu depuis une dizaine d'années), mais un article récent de "Digital Defense Inc" a remis au goût du jour les attaques de sessions utilisateurs au moyen des caractères d'échappement des émulateurs de terminaux. Il présente en particulier de nouvelles variantes de ces attaques.

Dans la mesure où ce type d'attaque représente toujours une menace, nous avons décidé d'y consacrer cet article du Bulletin.

Attaque par caractères d'échappement

Les terminaux alphanumériques traditionnels (par exemple "vt100") et les émulateurs de terminaux sous X11 (par exemple "xterm") disposent de fonctions "avancées" qui sont activables en leur envoyant une suite de caractères de commandes. Ces suites de caractères sont souvent appelées "caractères d'échappement" car elles débutent par le caractère <escape>. Elles peuvent servir :

  • à des fonctions simples comme le passage en inverse-video,

  • ou à des fonctions plus complexes comme la génération d'une copie d'écran dans un fichier.

L'article de "Digital Defense Inc." explique comment utiliser de façon malicieuse ces fonctions pour faire exécuter des commandes, à son insu, par l'utilisateur d'un émulateur de terminal vulnérable. Un des exemples présentés est le suivant :

  • Un internaute (l'attaquant) envoie à un serveur Web une URL contenant une séquence d'échappement.

  • Cette URL n'existant pas, elle est journalisée dans le fichier des erreurs par le serveur Web.

  • Si un administrateur visualise ensuite ce fichier des erreurs, son émulateur de terminal, s'il est vulnérable, va interpréter ces séquences d'échappement et exécuter une fonction choisie par l'internaute.

On voit que par ce moyen, l'internaute parvient à faire exécuter au sein de la session de travail de l'administrateur, des commandes qu'il aura choisies. Il s'agit donc typiquement d'une attaque de type "vol de session".

L'article de "Digital Defense Inc" présente plusieurs cas d'attaques et identifie les émulateurs de terminaux vulnérables à ces attaques par caractères d'échappement. Le tableau ci-dessous résume cette étude.

Emulateur

Screen dumping attack

Window title attack

Eterm
(Enlightment Term)

Vulnérable

Vulnérable

xterm

 

Vulnérable

dtterm

 

Vulnérable

uxterm

 

Vulnérable

rxvt

Vulnérable

Vulnérable

aterm

 

 

Putty

 

Partiellement vulnérable

Gnome-terminal

 

 

hanterm-xf

 

Vulnérable

Kconsole

 

 

SecureCRT

 

 

Nota :

  • Les discussions survenues suite à la publication de cet article ont mis en évidence que la version de Eterm testée ici n'était pas la dernière. La dernière version (0.9.2) n'est vulnérable à aucune des attaques décrites.

  • Une nouvelle version de "rxvt" a été publiée suite à l’étude de "Digital Defense" corrigeant les problèmes identifiés. Reportez-vous à la rubrique "Failles n’ayant pas fait l’objet d’avis".

Moyens de protection

Il n'existe pas vraiment de moyens de protection, hormis :

  • Ne pas utiliser un émulateur de terminal connu comme vulnérable,

  • Etre attentif, lors du développement d'émulateurs, à ce type d'attaque (limiter les fonctions disponibles, analyser leur sensibilité à ce type d'attaque, etc…),

  • Etre attentif, lors du développement d'applications (par exemple de serveurs Web, ou d'outils de type syslog), à refuser l'enregistrement dans les fichiers de journalisation de séquences d'échappement.

Pour plus d'information

Article de Digital Defense Inc. : http://www.digitaldefense.net/labs/papers/Termulation.txt