Vulnérabilités des environnements Citrix ?

Date : 25 Octobre 2007

En octobre 2007, le site "Gnucitizen.org" a publié une série de quatre articles à propos de la vulnérabilité des environnements "Citrix Presentation Server". Bien que les experts Citrix aient indiqué que les sites correctement configurés n'étaient pas en danger, il nous parait intéressant de faire un point sur ces vulnérabilités. De nombreux sites mal protégés pourraient en être victime.


Introduction à "Citrix Presentation Server"

"Citrix Presentation Server" (qui remplace depuis 2005 le produit "Citrix Metaframe") est un produit dont la fonctionnalité principale est la "virtualisation d'applications"; les applications de l'entreprise sont installées sur un serveur central Citrix et sont accédées depuis les postes utilisateurs comme s'il s'agissait d'applications locales. La force de "Citrix Presentation Server" est qu'il est capable de virtualiser n'importe quelle application Windows : au lieu d'installer l'application sur les postes utilisateurs, celle-ci peut être installée sur le serveur Citrix et être accédée au travers d'un logiciel client "léger" installé sur le poste utilisateur.

Basé sur le produit Microsoft "Windows Terminal Server", "Citrix Presentation Server" étend la "virtualisation" d'application de "Terminal Server" à des environnements hétérogènes (accès aux applications Windows virtualisées depuis Unix et Mac). Les communications entre le client et le serveur s’appuient sur un protocole de communication propriétaire appelé "ICA" ("Independent Computing Architecture").

Sur le poste client, l'accès aux applications virtualisées se fait au travers d'un logiciel qui s'intègre au navigateur web de l'utilisateur au moyen de contrôles ActiveX développés par Citrix. Pour chaque application, il est possible de créer sur le poste utilisateur un fichier de suffixe ".ica" qui contient les paramètres techniques permettant d'accéder à l'environnement Citrix qui héberge cette application.

Sur le serveur Citrix, lorsqu'une nouvelle application est installée, l'administrateur définit si cette application est publique (accès autorisée pour tous) ou si elle nécessite une authentification préalable (typiquement au moyen d'un compte de domaine Windows).


Vulnérabilités de Citrix

Dans ses articles sur Citrix, "Gnucitizen" cherche à démontrer tout d'abord qu'il est facile de prendre le contrôle de serveurs Citrix mal protégés visibles depuis Internet. Cette démonstration se fait par étapes successives :

  • Identifier des serveurs Citrix visibles depuis Internet
  • Lancer illégalement une des applications exportées par un serveur Citrix
  • S'échapper de l'application lancée pour obtenir un accès utilisateur complet sur le serveur Citrix
  • Tenter d'accroitre ses privilèges sur le serveur Citrix compromis


Identifier des serveurs Citrix visibles depuis Internet

"Gnucitizen" montre qu'une simple recherche dans Google des fichiers ".ica" (par exemple avec une requête du type "http://www.google.com/search?q=ext:ica"), permet d'identifier plusieurs centaines de sites qui semblent disposer d'un serveur Citrix. A priori ces fichiers de configuration Citrix ont été rendus visibles sur Internet par erreur et permettent de récupérer les informations de configurations nécessaires pour tenter de se connecter à ces serveurs depuis Internet. Dans la liste des sites trouvés, il y a en particulier des sites sensibles comme des sites ".gov" et ".mil" (sites gouvernementaux et militaires des USA).

Lancer illégalement une des applications exportées par un serveur Citrix

"Gnucitizen" a développé en JavaScript, un script nommé "enum.js" qui s'appuie sur les contrôles ActiveX livrés avec le client CITRIX. Ce script interroge un serveur Citrix pour connaître la liste des applications exportées par ce serveur. Il est ensuite possible de tester manuellement chacune de ces applications pour savoir si certaines sont "publiques" (i.e. accessibles sans compte).

Si aucune application publique n'est trouvée, "Gnucitizen" propose aussi un script d’attaque par "brute force" (nommé "bforce.js") qui tente de se connecter à une application en utilisant des noms de comptes utilisateurs et des mots de passe triviaux.

S'échapper de l'application lancée

Une fois qu'une application a pu être lancée (soit parce qu'elle est publique, soit parce qu'un compte mal protégé a été découvert), plusieurs méthodes pour "sortir" de cette application existent et permettent d'exécuter n'importe quelle commande sur le serveur Citrix (avec les privilèges de l'utilisateur associé au lancement de cette application). Les méthodes suivantes sont en particulier détaillées :

  • Changement du paramètre "InitialProgram" (qui indique l'application à lancer sur le serveur Citrix) dans le fichier ".ica".
  • Utilisation de la fonction d'aide de certaines applications Windows (par exemple la calculette de Windows) pour lancer n'importe quelle commande.

Accroitre ses privilèges sur le serveur Citrix

La dernière étape dans cette intrusion Citrix consiste à essayer d'obtenir des privilèges élevés sur le serveur Citrix. "Gnucitizen" ne propose pas pour cela de méthode d'attaque particulière et suggère simplement de rechercher s'il existe des failles Windows connues sur ce serveur qui permettraient d'acquérir les privilèges "SYSTEM" (cas où les correctifs de sécurité n'ont pas été appliqués).

 
Analyse du scénario d'attaque présenté

La démonstration de "Gnucitizen" parait au premier abord assez inquiétante, car elle tend à faire penser qu'il est très facile d'attaquer un serveur Citrix depuis Internet. En fait, elle ne reflète pas correctement la réalité. Elle illustre uniquement le cas où un serveur Citrix a été rendu accessible depuis Internet sans précaution et sans respecter les règles de sécurité élémentaires.

Protection de l'accès au serveur Citrix

Citrix propose pour les accès Internet un produit de sécurisation (produit "Citrix Access Gateway") qui permet d'accéder de façon sure à un serveur Citrix depuis Internet ("Access Gateway" met en place un tunnel VPN-SSL chiffré). Il est indispensable que ce type de protection soit mis en œuvre et que l'accès direct à des serveurs Citrix sans protection soit interdit. En particulier le port TCP 1494 (port utilisé par défaut pour accéder à un serveur Citrix) ne doit pas être accessible depuis Internet.

Nota : Il existe encore beaucoup de documents techniques sur Internet qui proposent de rendre accessible un serveur Citrix sur Internet en ajoutant simplement un frontal web en amont du serveur Citrix (en utilisant de "vieilles" solutions Citrix, comme "Citrix Web Interface" -produit anciennement appelé "NFuse"-). Ces solutions ne sont pas sûres car elles exposent le serveur Citrix à des accès directs via le port TCP 1494.

Faiblesse des restrictions d'accès par application

La démonstration de "Gnucitizen" met par contre bien en évidence qu'il est difficile de restreindre l'accès des utilisateurs légitimes d'un serveur Citrix à quelques applications choisies. A partir du moment où un utilisateur a un accès légitime et à au moins une application virtualisée sur le serveur Citrix, il est probable qu'il pourra trouver un moyen de s'échapper de cette application pour lancer des commandes Windows arbitraires sur le serveur Citrix.

Nous n'avons pas fait de tests poussés sur cet aspect, mais cette faiblesse n'est pas forcement rédhibitoire. En particulier l'accès ainsi obtenu sur le serveur Citrix est un accès avec des privilèges "utilisateurs" et seul l'espace disque de l'utilisateur semble visible.

Les administrateurs Citrix doivent avoir conscience de cette limitation et, en termes de risques, ils doivent considérer que donner un accès à des applications virtualisées est équivalent à donner un accès "shell" (i.e. un accès complet à un espace de travail Windows sur le serveur Citrix) à l'utilisateur Citrix.

Un des corollaires de ce constat est que mettre en place des applications "publiques" sur un serveur Citrix (i.e. des applications accessibles sans compte par tous) est très dangereux et équivalent à créer un compte "invité" sur le serveur Citrix.

Enfin, le serveur Citrix doit être considéré comme une machine très sensible, qui doit être maintenue à jour strictement en termes de correctifs de sécurité. Si une faille Microsoft Windows n'est pas corrigée sur le serveur Citrix, alors n'importe quel utilisateur ayant un accès sur le serveur pourrait l'exploiter pour tenter de prendre le contrôle complet du serveur Citrix.

"Gnucitizen" a-t-il trouvé une nouvelle faille dans Citrix ?

En plus des éléments présentés ci-dessus, Gnucitizen" a également évoqué deux autres possibilités d'attaques (cf. les références [3] et [4] ci-dessous) :

  • Envoyer par e-mail un fichier ".ica" malicieux. Si l'utilisateur imprudent ouvre ce fichier, alors les commandes contenues dans ce fichier s'exécutent dans son environnement Citrix. Il s'agit ici d'une attaque par "ingénierie sociale" qui n'exploite pas de faille particulière de Citrix.
  • Créer une page web contenant un fichier ".ica" malicieux qui, s’il est ouvert par un utilisateur de Citrix, exécute des commandes malicieuses dans son environnement Citrix. Aucun détail technique n'est donné sur cette dernière faille et il n'est donc pas possible d'en évaluer la vraisemblance. Il pourrait s'agir d'une variante de la vulnérabilité CTX112589 (cf. CERT-IST/AV-2007.101) corrigée par Citrix en février 2007.


Seul le dernier problème pourrait donc s'avérer être une nouvelle vulnérabilité de Citrix. Il est suivi par le Cert-IST sous la référence "FA-2007.0238" dans sa section "Failles en cours d'investigation".


Conclusion

La série d'articles publiée par "Gnucitizen" à propos des environnements Citrix a adopté un ton provocateur se résumant en : "Regardez comme il est facile d'attaquer une infrastructure 'Citrix Presentation Server' !"

En fait la réalité n'est pas aussi inquiétante, et les installations correctement configurées sont à l'abri de ce type d'attaque. Par contre ces articles montrent bien que la sécurisation d'un environnement Citrix n'est pas implicite et qu'il est possible, par ignorance des dangers encourus, de mettre en place des installations non sécurisées. Si ces applications sont visibles depuis Internet alors elles sont à la merci d'attaques.

L'observation sur les gardes-barrières des tentatives d'accès sur le port TCP 1494  permettra d’évaluer si les tentatives d'attaques augmentent dans les mois à venir….


Pour plus d'informations

 

Précedent Précedent Suivant Suivant Imprimer Imprimer