Vous avez payé cher un logiciel de découverte et de classification des données ou passé d’innombrables heures à développer une solution similaire en interne. Mais à quoi bon, si les résultats manquent de précision ? Aujourd’hui, je vous propose 10 astuces techniques relatives au flux de travail, à appliquer pour éliminer le plus possible de faux positifs et de faux négatifs :
- Utilisez des expressions régulières avancées
- Complétez vos RegEx avec des mots-clés et des phrases-clés
- Prenez en compte les variations et les synonymes des mots-clés et des phrases-clés
- Appliquez la validation algorithmique
- Instaurez des scores et des seuils de classification
- Ajustez les pondérations des différentes règles de classification
- Élaborez une logique pour vos règles de classification
- Analysez les « presque classifiés »
- Utilisez le contenu des fichiers classifiés à votre avantage
Utilisez des expressions régulières avancées
Toutes les solutions automatisées de découverte et de classification des données se basent sur des expressions régulières. Je n’ai pas suffisamment d’espace ici pour explorer en profondeur la théorie des RegEx ; si vous avez besoin de vous rafraîchir la mémoire dans ce domaine, rendez-vous sur ce billet (an anglais).
Ce que je veux dire, c’est qu’une seule RegEx ne peut pas tout faire. Même si plusieurs numéros de cartes bancaires concordent avec une expression régulière que vous a communiquée votre fournisseur ou que vous avez écrite vous-même, cela ne signifie pas que c’est une bonne RegEx. Je vais vous le prouver.
La RegEx \d{16} recherche une séquence de 16 chiffres, ce qui correspond à la plupart des numéros de carte bancaire. Mais ce n’est pas pour autant une bonne raison d’utiliser cette RegEx, qui néglige une foule de subtilités. D’une part, vous obtiendrez probablement des faux positifs, parce que toutes les séquences de seize chiffres ne sont pas des numéros de carte bancaire. Si vous recherchez des numéros de Mastercard, spécifiez que le numéro commence par 51-55 ou 2221-2720. D’autre part, vous manquerez également des numéros de carte bancaire valides qui comprennent des tirets ou des espaces entre chaque série de 4 chiffres. Vous pouvez éviter ces faux négatifs en incluant des espaces et des caractères spéciaux optionnels dans votre RegEx.
De manière plus générale, essayez toujours d’améliorer vos RegEx. Rendez-les plus précises, mais n’en faites pas trop, car un trop grand nombre de critères peut occulter des résultats pertinents. Tout est une question d’équilibre.
Complétez vos RegEx avec des mots-clés et des phrases-clés
Les mots-clés sont souvent utilisés pour classer les données, mais pas d’une façon qui me semble la plus appropriée. Le fait qu’un document mentionne « numéro de carte bancaire » ou « numéro de sécurité sociale » ne signifie pas qu’il contient vraiment des informations protégées. C’est pourtant à cela que la plupart des solutions de classification des données se limitent : si un document correspond à un mot-clé ou à une phrase-clé, il est classifié. Point final.
Mais ne serait-il pas logique que des mots-clés servent d’algorithme de validation pour les expressions régulières ? Dans un document, chaque mot-clé ou phrase-clé pertinent rend de plus en plus probable que le fichier contienne des données sensibles.
Comme je l’ai mentionné plus tôt, tous les numéros à 16 chiffres ne sont pas des numéros de carte bancaire. Mais, si la phrase-clé « carte bancaire » ou « numéro de carte » figure à proximité immédiate du numéro, n’est-il pas alors plus probable qu’il s’agisse bien d’un numéro de carte bancaire ? Je dirais que si.
Prenez en compte les variations et les synonymes des mots-clés et des phrases-clés
Le hic, en matière de concordance des mots-clés, c’est qu’il y a un million de façons d’écrire un mot-clé particulier. Les techniques automatisées telles que la recherche du radical peuvent vous rendre service avec les formes plurielles et singulières et d’autres inflexions des mots, pour vous éviter de toutes les taper manuellement : passeport/passeports, autorisé/autorisée/autoriser/autorisation et ainsi de suite.
Mais la situation se complique rapidement avec les phrases-clés. L’identification de concepts significatifs dans les phrases n’est pas une tâche simple, et très peu de solutions de classification des données sont capables de le faire. Le traitement des inflexions des mots qui composent la phrase n’est qu’un début. Certaines parties de la phrase peuvent être scindées en d’autres mots. Votre solution est-elle capable de reconnaître que « Passeports des citoyens britanniques » reflète le même concept que le mot-clé « Passeport britannique » ? Si ce n’est pas le cas, la seule façon de contourner le problème est de diviser les phrases-clés en mots-clés individuels. Mais rappelez-vous que cela augmente le nombre de faux positifs. Vous ne souhaitez probablement pas trouver un dictionnaire sur l’origine des « mots » lorsque vous cherchez des « mots de passe ».
Et puis il y a la question de la correspondance partielle ou confuse, qui est particulièrement pertinente si votre solution prend en charge la reconnaissance optique de caractères et peut classer les images. Avec des images de faible qualité, la ROC peut générer un grand nombre de symboles indéchiffrables là où se trouvaient des mots parfaitement sensés. À moins que votre solution de classification des données ne dispose de fonctionnalités intégrées adéquates, il n’y a pas grand-chose que vous puissiez faire en triturant les RegEx. Votre meilleure option est d’inclure autant de phrases-clés et de mots-clés que possible dans votre dictionnaire et d’espérer qu’au moins l’un d’eux sera reconnu, tel que vous l’avez écrit.
Voici quelques autres points que vous devez garder à l’esprit :
- Majuscules – Par défaut, les mots-clés de votre solution sont-ils sensibles à la casse ?
- Ordre des mots – Est-ce que « date expiration » sera reconnu comme une correspondance si vous utilisez la phrase-clé « expiration date » ?
- Symboles spéciaux – Est-ce que « numéro_de_compte » sera reconnu comme une correspondance si vous utilisez la phrase-clé « numéro de compte » ?
Si votre solution de classification des données n’est pas en mesure de prendre en compte toutes ces subtilités, c’est à vous de concevoir un dictionnaire de mots-clés et de phrases-clés qui réponde à vos besoins. Ce ne sera pas une partie de plaisir, mais si vous voulez améliorer la précision, il faut en passer par là.
Appliquez la validation algorithmique
Ça, c’est simple. Vous pouvez utiliser certains algorithmes pour valider divers numéros d’identification. Par exemple, le célèbre algorithme de Luhn permet de vérifier si les numéros de carte bancaire, les numéros IMEI ou les numéros d’assurance sociale du Canada sont réels. De nombreux outils de classification des données prennent en charge la validation algorithmique, ce qui est incontestablement utile.
Il n’y a qu’un hic : toutes les données sensibles ne peuvent pas être validées avec Luhn ou d’autres algorithmes, en partie parce qu’elles ne contiennent pas toutes des chiffres. C’est pourquoi je préfère utiliser des mots-clés pour vérifier mes RegEx. Cette méthode est simplement plus universelle et polyvalente.
Instaurez des scores et des seuils de classification
Ce conseil est d’une valeur inestimable. Pour atteindre une réelle précision, il ne suffit pas de diviser les données en « classifiées » et « non classifiées », il faut une échelle. Chaque règle qui concorde avec un document augmente le score de celui-ci ; et ce n’est qu’à partir d’un certain seuil que le fichier est classifié. Ce système permet de créer des règles de classification extrêmement précises qui surclassent les RegEx simples ou les concordances avec des mots-clés. Les trois conseils suivants expliquent cette méthode.
Ajustez les pondérations des différentes règles de classification
Une RegEx bien conçue pour un numéro de carte bancaire doit attribuer un score plus élevé à un document qu’une correspondance avec la simple phrase-clé « carte bancaire », non ? Cela nous amène à une autre méthode pour améliorer la précision de la classification des données : classez toutes les RegEx et les mots-clés en fonction de leur adéquation à une catégorie particulière et attribuez des scores en conséquence.
Remarquez que deux RegEx peuvent avoir des scores différents. Si vous cherchez des cartes Visa, vous savez qu’il existe des cartes récentes à 16 chiffres et des cartes plus anciennes à 13 chiffres. Une RegEx pour les cartes à 13 chiffres devrait avoir un score plus faible, parce qu’il est beaucoup plus probable qu’une séquence de 16 chiffres soit vraiment un numéro de carte VISA, par rapport à une séquence à 13 chiffres.
Élaborez une logique pour vos règles de classification
Voici un dernier conseil technique : lorsque vous élaborez ces règles de classification compliquées et ultra-précises, n’oubliez pas de les interconnecter.
Supposons par exemple que vous ayez créé une RegEx très précise pour numéros de carte VISA, et que vous ayez trouvé des dizaines de mots-clés pertinents pour elle (bravo !). Puisque chaque mot-clé apporte une certaine valeur au score de classification, un fichier donné peut être classifié simplement en raison du volume de mots-clés qu’il contient. Ce n’est évidemment pas idéal. Dans la plupart des cas, ce que vous recherchez est une RegEx plus un mot-clé. Créons donc un unique mot-clé « maître » – un ensemble de tous les mots-clés dont vous avez fait la liste –, et attribuons-lui un score qui, ajouté au score de la RegEx, va faire franchir le seuil au fichier. Ce mot-clé maître ne correspondra à un document que lorsqu’un nombre suffisant de mots-clés individuels correspondront à ce document.
Voici un autre exemple de la manière dont vous pouvez établir des relations logiques entre différentes règles de classification dans le but d’améliorer la précision. La plupart d’entre vous savent ce que signifient CVV et CVC : ce sont les 3 chiffres au dos des cartes bancaires. Mais saviez-vous que CVV n’est utilisé que par VISA et que CVC n’est utilisé que par MasterCard ? Moi, non. Et je parie que la plupart des gens utilisent ces termes de façon interchangeable. Donc, si quelqu’un inscrit par erreur un numéro de carte VISA avec CVC dans un document, le processus de classification des données peut le manquer. Il est donc logique d’associer les mots-clés VISA et MasterCard afin de réduire le risque de faux négatifs dus à une mauvaise saisie des données. Les mots-clés VISA attribueront des scores aux règles de classification de MasterCard et vice-versa. Évidemment, dans ce cas, il serait logique de réduire ces scores.
Analysez les « presque classifiés »
Abordons maintenant d’autres mesures liées aux processus et aux flux de travail, qui permettent d’améliorer la précision de la classification des données. Si vous avez réussi à intégrer des seuils de classification et des pondérations dans votre solution, vous vous êtes mis dans une posture très favorable pour améliorer la précision. Désormais, vos données ne sont plus divisées en deux catégories, « classifiées » et « non classifiées ». Au lieu de cela, vous pouvez analyser « à quel point » le document a été classifié.
Pourquoi faire une chose pareille ? Vous l’avez probablement déjà deviné, au vu du titre de cette section. L’analyse des « presque classifiés » – les fichiers qui se situent sous le seuil de classification de 10 % ou moins – peut s’avérer très utile. C’est un travail manuel, bien sûr, mais vous travaillez avec des données qui ont de fortes chances d’ être pertinentes, alors pourquoi pas ? En examinant ces documents, vous serez en mesure d’en repérer certains qui auraient dû être classés, puis de créer de nouveaux mots-clés à inclure dans vos règles de classification. Non seulement les nouveaux mots-clés feront franchir le seuil de classification aux « presque classifiés » (réduction des faux négatifs), mais ils amélioreront aussi souvent la précision (réduction des faux positifs). Par ailleurs, si vous confirmez que certains « presque classifiés » ne sont pas pertinents, vous pouvez déterminer comment ils ont obtenu leurs scores élevés et supprimer les mots-clés excessifs de vos règles de classification, ou même en faire des mots-clés négatifs, qui interdisent à tout fichier les contenant d’être classifiés par cette règle.
Utilisez le contenu des fichiers classifiés à votre avantage
Lorsque vous créez des règles de classification des données, vous imaginez quel contenu pourrait se trouver dans un fichier sensible et vous définissez des mots clés et des RegEx pour le repérer. Il est temps désormais d’être plus empirique. Supposons, par exemple, que vous recherchiez des documents contenant de la propriété intellectuelle. Les règles que vous avez créées fonctionnent dans une certaine mesure – vous avez trouvé des documents et constaté qu’ils contenaient de la propriété intellectuelle. Mais vous ne pouvez pas être sûr que ces règles ne génèrent pas de faux négatifs.
Pourquoi ne pas examiner le contenu des documents que vous avez trouvés et voir s’ils ont d’autres mots clés en commun ? Ensuite, vous pouvez utiliser ces mots-clés pour trouver davantage de documents contenant de la propriété intellectuelle. Cette méthode peut être difficile à mettre en œuvre, mais elle est très logique, si vous y réfléchissez bien. Essayez-la. De plus, en faisant cela régulièrement, vous tiendrez à jour des règles de classification précises qui vous permettront de retrouver votre propriété intellectuelle où et quand elle apparaîtra.
Répétez les étapes 1 à 9.
Avez-vous fait défiler jusqu’ici pour jeter un coup d’œil au dixième conseil mystère ? Si c’est le cas, retournez au début et lisez les neuf premiers !
Même si ce point peut sembler évident, c’est le plus important. La classification des données est un effort continu. Ces solutions ne fonctionnent d’emblée que très rarement de la façon voulue. Et même si je me rends bien compte que la plupart des organisations ne peuvent pas s’offrir le luxe d’affecter un spécialiste à la classification des données, cela ne signifie pas pour autant que la classification des données doive pour toujours s’effectuer à l’aide d’un ensemble immuable de règles et de paramètres. Il s’agit de vos données. Personne ne sait mieux que vous comment les classer. Ce processus doit être continu. Essayez de trouver le juste équilibre entre la précision et les efforts nécessaires pour la maintenir à un niveau élevé. À un certain niveau, une meilleure précision n’en vaut tout simplement pas la peine.
La nature répétitive de la classification des données ne se limite pas à l’amélioration de la précision. Au fur et à mesure que vos données et vos objectifs métier évoluent, votre stratégie de classification des données doit en faire autant. Demain, des données sensibles d’un nouveau type pourraient voir le jour, et vous devrez être en mesure de les identifier et de les protéger. Ou bien, une équipe de R&D aura besoin d’aide pour organiser ses documents afin d’améliorer l’efficacité, et vous devrez trouver avec eux les catégories et les règles de classification les plus pertinentes. Pour s’adapter à ces nouveaux défis professionnels, votre solution de classification des données doit non seulement être précise mais aussi flexible.