CVE-2020-11997 : découverte d’une vulnérabilité sur Apache Guacamole

Découverte de la CVE-2020-11997

La « crise COVID-19 » a transformé l’environnement numérique de tout collaborateur et est de fait exploitée par des cyberattaquants. Depuis le début de la crise sanitaire, le service informatique des organisations a dû trouver (en urgence la plupart du temps) des solutions dans un temps très court pour permettre aux collaborateurs de continuer à travailler depuis chez eux.

La théorie veut que la sécurité fasse partie du processus de mise en place de nouveaux outils de manière à éviter la compromission d’un poste de travail ou de données professionnelles. L’urgence créée par la crise sanitaire fait que les entreprises ont dû, soit consolider les systèmes existants, soit aller vers de nouvelles solutions, et ce avec un budget plus ou moins réduit.

Parmi les solutions mises en place se trouve Guacamole qui est une solution open source maintenue par la fondation Apache. Guacamole permet de prendre la main à distance d’un serveur ou d’un ordinateur, et ce au travers d’un navigateur web (HTML5). Ce système présente plusieurs avantages parmi lesquels :

  • La compatibilité étendue (avec tout système possédant un navigateur moderne),
  • La simplicité d’utilisation (pas besoin d’installer quoi que ce soit en plus pour utiliser la solution),
  • La gratuité du produit (mais peu ou pas de support),
  • La possibilité d’utiliser des flux de type RDP, VNC ou encore SSH.

Dans son fonctionnement, Guacamole possède plusieurs couches applicatives telles qu’illustrées ci-après :

schéma couches applicatives guacamole

Le serveur Apache Tomcat permet de gérer la partie web où les clients vont pouvoir se connecter et accéder aux différents services de prise en main à distance. La partie Guacd correspond au « deamon », il se charge des connexions distantes établies avec les différents protocoles supportés (RDP, VNC ou encore SSH).

Les droits présents dans Guacamole sont granulaires. Ils donnent accès en lecture et/ou en écriture à des ressources bien définies. Par exemple, un utilisateur aura le droit de lecture sur un profil de connexion RDP de manière à pouvoir utiliser un service de façon distante. Par contre, il n’aura pas les droits pour modifier le profil.

Découverte de la vulnérabilité

Lors d’un audit de sécurité effectué par Synetis, afin de vérifier les potentielles fuites de données, les endpoints utilisateurs ont été testés de manière à s’assurer qu’aucun d’entre eux ne permettait d’accéder à des informations auxquelles le profil en cours n’aurait pas dû accéder.

Dans cette démarche, il est apparu logique d‘éprouver également les URLs concernant l’administration. Après une rapide recherche sur Internet, plusieurs endpoints propres à l’administration de Guacamole ont pu être identifiés. Ces interfaces se sont correctement affichées en dépit du niveau de droit du profil courant « utilisateur », toutefois, aucune donnée n’était affichée dans les champs.

Ecran administration de Guacamole

Cependant les appels à l’API étaient bien effectués côté client. Cela a permis à l’auditeur de Synetis de découvrir des chemins utilisés par cette dernière afin d’effectuer des tests de sécurité.

Parmi les différentes requêtes API, l’une d’entre elles répondait avec un code 200, signifiant donc que la requête est valide et est autorisée par le serveur. En l’inspectant, l’auditeur s’est alors aperçu qu’il s’agissait d’un endpoint permettant la lecture de l’historique d’accès à un profil de connexion.

Ecran Console API

De fait, un utilisateur avec un profil « standard » de Guacamole peut avoir accès à l’adresse IP de l’administrateur, son heure de connexion ou encore son login. Autant d’informations qui ne devraient pas être divulguées et qui pourraient être utilisées dans le cadre d’attaques ciblées.

Rapport initial à la liste de sécurité Apache le 25/06/2020
Confirmation du problème et affectation d’un numéro de CVE 26/06/2020
Demande de vérification 2/11/2020
Correction confirmée 05/11/2020
Publication de la release 1.3.0 comprenant la correction 18/01/2021

Conclusion

Aujourd’hui plus que jamais avec la généralisation du télétravail, il est important d’être vigilant. Dans l’exemple exposé plus haut, l’IP utilisée pour se connecter au compte principal de Guacamole, était l’IP publique personnelle d’un collaborateur de la DSI. Il a donc été possible de le géolocaliser.

Cette fuite de données, notamment en Europe, constitue une entorse au RGPD. En effet, une adresse IP est considérée par la CNIL comme une donnée personnelle (https://www.cnil.fr/fr/cnil-direct/question/une-donnee-caractere-personnel-cest-quoi). Le problème a donc été remonté à Guacamole et une CVE a été créé afin d’informer les différents utilisateurs du produit.

  • Post published:1 février 2021
  • Post author:

WilliamLB

Consultant Cybersécurité Audit