Elasticsearch est un moteur de recherche basé sur Java qui possède une interface HTTP et stocke ses données dans des documents JSON sans schéma. Malheureusement, une série de violations coûteuses et douloureuses des informations personnelles identifiables (PII) continuent de tourmenter les bases de données Elasticsearch en ligne :
Si toutes les PII ou autres informations sensibles de ces bases de données étaient masquées, les hacks réussis et les copies de développement pourraient ne pas être problématiques. L'objectif d'IRI DarkShield est de verrouiller ces informations en production ou en test à l'aide de fonctions d'anonymisation conformes à la loi sur la confidentialité.
L'assistant de recherche et de masque Elasticsearch dans l'IDE graphique IRI Workbench pour IRI DarkShield utilise les mêmes outils que les connecteurs MongoDB et Cassandra décrits dans cet article. Cet assistant peut être utilisé pour classer, localiser et anonymiser ou supprimer des PII et d'autres informations sensibles contenues dans les collections Elasticsearch, et pour produire des résultats de recherche et d'audit.
Configurer
Si vous ne disposez pas d'un cluster Elasticsearch auquel vous connecter, vous pouvez facilement créer un cluster local en téléchargeant Elasticsearch à partir d'ici et en suivant le guide d'instructions.
Pour ma démonstration de cet assistant, j'utilise un seul index appelé clients sur un cluster hébergé localement. Cet index stocke les informations de base sur les clients qui seraient normalement vues dans un compte et constitueraient une cible riche pour les malversations. Cela inclut :e-mail, nom et numéro de téléphone :
Rechercher
Comme pour les autres sources de données prises en charge par DarkShield, vous devez créer un .search fichier de spécification de travail pour définir vos critères de numérisation et de marché. Comme vous le feriez avec MongoDB ou Cassandra, sélectionnez le New NoSQL Search/Masking Job … depuis le menu DarkShield au-dessus de la barre d'outils IRI Workbench. Sélectionnez un dossier de projet et entrez un nom pour le travail.
Sur la page suivante, créez un URI source :
C'est ici que vous entrez les paramètres de votre cluster Elasticsearch. L'hôte et le port par défaut pour Elasticsearch sont localhost et 9200 si ces champs sont laissés vides.
Si le cluster auquel vous vous connectez a besoin d'un nom d'utilisateur et d'un mot de passe, saisissez-les dans la section d'authentification. Pour cet exemple, j'utilise host :localhost, port :9200 et le cluster :Elasticsearch.
Un nom d'utilisateur et un mot de passe peuvent également être ajoutés sur cette page. Pour la simplicité de cette démonstration, le cluster local n'a pas été configuré dans un souci de sécurité. Tout cluster réel doit avoir une connexion et des autorisations activées pour les cas d'utilisation réels.
Cliquez sur OK pour terminer et vous serez renvoyé à la page précédente. Tapez l'index que vous souhaitez rechercher. Dans cet exemple, j'utilise l'index nommé clients .
Ensuite, vous devrez définir un URI cible pour les résultats masqués. Gardez à l'esprit que seuls les résultats masqués Elasticsearch ne peuvent être envoyés qu'aux cibles Elasticsearch. Dans ce cas, j'utiliserai le même URI Customers créé auparavant mais avec un index différent. Cela créera un nouvel index avec les résultats masqués qui seront créés plus tard dans cette démonstration.
Ensuite, il vous sera demandé de créer un Search Matcher, qui est chargé d'associer une classe de données à une règle de données (masquage) correspondante. C'est une étape nécessaire car aucun masquage ne peut être appliqué sans elle.
Comme expliqué dans l'article sur la classification des données, les classes de données cataloguent et définissent de manière centralisée les critères globaux de recherche et de masquage des PII dans les sources structurées, semi-structurées ou non structurées pour FieldShield et DarkShield. IRI Workbench est livré avec plusieurs classes de données prédéfinies (par exemple, noms, adresses e-mail et IP, numéros de carte de crédit), disponibles dans Fenêtre > Préférences > IRI > Classes et groupes de données . Vous pouvez les modifier et ajouter les vôtres.
Cliquez sur Parcourir ou Créer sur la ligne Classe de données. Parcourir vous permettra de sélectionner vos propres classes de données ou l'une des nombreuses classes ou groupes prédéfinis, y compris l'adresse e-mail, le numéro de téléphone et les noms. Dans ce cas, le groupe de classes de données NAMES inclut une classe de données de prénoms.
Ici, j'ai sélectionné la classe de données EMAIL qui recherchera les e-mails dans mon index Elasticsearch :
Maintenant, une règle de masquage doit être appliquée à la classe de données qui a été choisie. Cliquez sur Créer pour créer une nouvelle règle de données, ou Parcourir pour utiliser ceux que vous avez peut-être déjà définis.
Pour les Emails, je choisis une fonction de rédaction :
Bien entendu, plusieurs classes de données peuvent être masquées simultanément. J'ai ajouté des classes et attribué une fonction de cryptage préservant le format aux numéros de téléphone, et un pseudonyme aléatoire (définir la recherche de fichiers) pour les noms des personnes :
Si des filtres de recherche sont nécessaires, ils peuvent être ajoutés sur la page précédente. Les filtres peuvent être utilisés pour trouver des résultats particuliers ou pour isoler des champs spécifiques dans CSV, XML, JSON ou RDB à masquer, ce qui évite d'avoir à analyser le contenu des lignes. Je n'en ai pas spécifié dans ce cas, cependant.
Cliquez sur Terminer lorsque vous avez terminé. Ceci termine l'assistant et crée un .search fichier contenant les détails de configuration de DarkShield pour l'exécution de la ou des tâches de recherche et/ou de masquage.
Remarque : Si vous utilisez le cluster hébergé localement par défaut comme celui de cet exemple, assurez-vous que le cluster est activé, car toute tâche de recherche ou de masquage échouera dans le cas contraire. Vous pouvez vérifier si le serveur est en cours d'exécution en ouvrant un navigateur Web et en tapant "http://localhost:9200/" dans la barre d'adresse.
Recherche et masquage
DarkShield prend en charge la recherche et le masquage en tant qu'opérations séparées ou simultanées. Dans ce cas, je veux d'abord chercher et voir ce que j'ai trouvé avant de le masquer. En effet, les tâches de masquage (plus importantes) peuvent prendre du temps, et je souhaiterais peut-être affiner mes méthodes de recherche et les revérifier.
Pour cela, faites un clic droit sur le .search fichier et exécutez le fichier en tant que travail de recherche. Cela créera un .darkdata avec les résultats de la recherche qui vient d'être effectuée. L'artefact apparaît ainsi dans Workbench :
Après avoir vérifié les résultats, vous pouvez exécuter le .darkdata fichier en tant que masquage travail pour corriger la collection avec la fonction de rédaction que j'ai spécifiée.
Les résultats précédemment recherchés seront masqués dans l'emplacement cible. Pour vérifier cela, vous pouvez effectuer une nouvelle recherche et voir que les données ont maintenant été "DarkShield'ed" comme spécifié ; c'est-à-dire, les e-mails expurgés, les prénoms pseudonymisés et les numéros de téléphone masqués avec un cryptage préservant le format :
Si vous avez besoin d'aide pour protéger vos collections Elasticsearch en masquant leurs données au repos via cette interface DarkShield dans IRI Workbench ou sa CLI, ou toute donnée semi-/non structurée en vol via l'API REST de DarkShield, veuillez envoyer un e-mail à [email protected].