Moteur de recherche et d’analyse Elasticsearch : 4 bonnes pratiques pour renforcer la sécurité des données

02 septembre 2020

La technologie d’indexation et de recherche Elasticsearch est couramment utilisée dans les entreprises lorsque de gros volumes de données sont traités. La CNIL rappelle quelques recommandations élémentaires de sécurité pour les organismes utilisant cette technologie.

Dans le cadre de ses contrôles et de l’analyse des notifications de violation de données qu’elle reçoit, la CNIL a constaté que les serveurs utilisant la technologie d’indexation et de recherche de données Elasticsearch sont de plus en plus souvent la cible d’attaquants.

Cette solution est souvent associée à des outils de visualisation pour l’exploitation des journaux d’évènements issus d’applications (site web, serveur web, application mobile) ou de l’infrastructure technique (pare-feu, répartiteur de charge, serveur proxy).

À cette occasion, le serveur Elasticsearch peut ainsi traiter des données personnelles, dont la sécurité doit être garantie (adresse IP, identifiant, adresse de courrier électronique, journaux d’activité des utilisateurs d’un site web, coordonnées GPS des utilisateurs ou encore informations de la base de données clients).

Les travaux de la CNIL montrent que certaines attaques menées contre cette technologie ont réussi du fait qu’un certain nombre de bonnes pratiques, parfois élémentaires, n’étaient pas systématiquement appliquées.

  1. Instaurer une authentification préalable à l’accès aux données

Elasticsearch - Authentification

Certains organismes ont fait le choix d’utiliser l’offre gratuite d’Elasticsearch qui, dans ses premières versions, n’intégrait pas de module permettant l’authentification des utilisateurs.

La bonne pratique

Depuis les versions 6.8.0 et 7.1.0 du logiciel, publiées en mai 2019, le module permettant l’authentification est inclus dans l’offre gratuite. Il est donc recommandé de :

  • procéder à la mise à jour afin de passer à une version garantissant un plus haut niveau de sécurité des données ;
  • activer l’authentification des utilisateurs par mot de passe en suivant la recommandation de la CNIL tant pour l’accès aux API d’Elasticsearch que pour l’accès à des outils de visualisation.

Il est à noter que certaines fonctionnalités de sécurité avancées, notamment l’authentification unique basée sur LDAP (Lightweight Directory Access Protocol), ne sont accessibles qu’aux utilisateurs disposant d’une licence payante.

  1. Mettre en place des règles de pare-feu et de filtrage des connexions

    Elasticsearch - Pare-feu

    Afin de faciliter l’accès à un outil de visualisation, certains organismes choisissent de configurer le serveur de manière à rediriger les requêtes depuis le port 80 ou 443 vers le port par défaut de l’outil de visualisation (par exemple le port 5601 pour l’outil de visualisation Kibana). Cette configuration facilite l’accès des utilisateurs à l’outil de visualisation. Il leur suffit alors de saisir l’URL « nomdusite.com  » pour accéder à l’outil au lieu de «  nomdusite.com:5601  ».

La CNIL a constaté à plusieurs reprises que l’authentification des utilisateurs est uniquement imposée pour les requêtes sur les ports 80 ou 443. Ainsi, il suffira parfois à un attaquant de saisir l’URL « nomdusite.com:5601 » dans un navigateur web pour contourner le mécanisme d’authentification.

La bonne pratique

Mettre en œuvre des règles de pare-feu empêchant toute connexion entrante vers des ports qui ne devraient pas être accessibles et mettre en œuvre la limitation des connexions aux serveurs par filtrage d’adresses IP. Par exemple, dans le cas d’une application s’appuyant sur l’API Elasticsearch,  les connexions à l’API doivent être limitées aux seules requêtes issues du serveur hébergeant l’application.

Associée à l’authentification préalable à l’accès aux données, ces mesures participent à la défense en profondeur du serveur.

  1. Chiffrer les communications

Elasticsearch - Connexion TSL
 

Dans les premières versions d’Elasticsearch, le module permettant d’activer le chiffrement TLS des communications était payant : il est ainsi fréquent que le chiffrement des communications ne soit pas mis en œuvre dans les installations de la version gratuite du logiciel, si le système n’a pas été mis à jour. Dans ce cas, les données, noms et mots de passe des utilisateurs peuvent être exposés aux attaques par interception.

La bonne pratique

Depuis les versions 6.8.0 et 7.1.0, publiées en mai 2019, le module permettant le chiffrement des communications est inclus dans l’offre gratuite. La mise à jour du logiciel vers une version garantissant un plus haut niveau de sécurité des données recommandée, ainsi que la mise en œuvre du chiffrement TLS dans sa version la plus à jour pour l’ensemble des communications.

  1. Désactiver ou restreindre l’exécution de scripts

Elasticsearch - Scripts
 

Elasticsearch dispose par défaut d’un module permettant d’exécuter des scripts sur le serveur afin d’améliorer la performance des requêtes. L’exécution de code arbitraire sur le serveur constitue un risque en matière de sécurité des données. En effet, un attaquant pourrait rendre indisponible le serveur en exécutant un script consommant énormément de ressources ou bien en prendre le contrôle en exploitant une faille de sécurité et ainsi altérer ou extraire les données.

La bonne pratique

Désactiver le module permettant d’exécuter des scripts s’il n’est pas utilisé.

Si l’utilisation du module est nécessaire, ne pas permettre l’accès direct au serveur Elasticsearch par les utilisateurs, mais mettre en œuvre un serveur frontal permettant de limiter les requêtes renseignées par les utilisateurs.

Ne pas oublier les bonnes pratiques élémentaires

Les serveurs Elasticsearch doivent également bénéficier des bonnes pratiques élémentaires de sécurité des systèmes d’information : mises à jour régulières des applications, limitation de l’utilisation des comptes à privilèges, mise en œuvre de règles de pare-feu… De même, lorsque la configuration d’entreprise le permet et qu’il n’y en a pas la nécessité, il convient de ne pas exposer le serveur sur internet.

Par ailleurs, il est recommandé d’adapter les mesures de sécurité à l’usage qui est fait d’Elasticsearch. Par exemple :

  • lorsque le serveur est utilisé pour la centralisation de journaux d’événements, il convient de ne pas mettre en œuvre d’authentification LDAP afin de conserver l’intégrité des journaux en cas de compromission du domaine ;
  • lorsqu’une application accède aux données du serveur Elasticsearch à travers l’API, il convient d’appliquer des mesures de sécurité à l’application afin de limiter le risque de vulnérabilité (authentification obligatoire, règles de pare-feu, chiffrement des flux de données …). À ce titre, le guide RGPD du développeur indique les points d’attention à prendre en compte dans le déploiement d’applications respectueuses de la vie privée des utilisateurs.

Enfin, il est recommandé d’activer les journaux d’événements de sécurité afin de tracer les tentatives de connexion infructueuses et ainsi repérer les tentatives d’intrusion.

Comment renforcer la sécurité de votre système d’information ?

Le guide de la sécurité des données personnelles de la CNIL contient les bonnes pratiques pour mieux sécuriser les systèmes d’information. Ce guide synthétique a été rédigé à l’attention des organismes et des décideurs qui veulent savoir quelles pratiques ils doivent prioritairement mettre en œuvre pour protéger leurs sites, leurs serveurs, etc. Une liste de tâches est à disponible à la fin de ce document.

Télécharger le guide de la sécurité des données personnelles

Les bonnes pratiques techniques et juridiques peuvent être consultées au sein du catalogue de mesures destinées à respecter les exigences légales et à traiter les risques, notamment pour mener des analyses d’impact relatives à la protection des données.