
Classification des Données

Introduction
Dans le paysage numérique actuel, les données sont le nerf de la guerre pour les organisations. Des dossiers clients aux transactions financières, les entreprises se fient à de vastes quantités d’informations pour prendre des décisions éclairées et stimuler la croissance. Cependant, toutes les données ne se valent pas. Certaines données sont plus sensibles que d’autres et nécessitent une manipulation et une protection spéciales. C’est là qu’intervient la classification des données.
La classification des données est le processus de catégorisation des données en fonction de leur sensibilité, de leur criticité et de leur valeur pour l’organisation. En classifiant les données, les entreprises peuvent s’assurer que des mesures de sécurité appropriées sont en place pour protéger les informations sensibles contre l’accès non autorisé, les abus ou les violations. Dans cet article, nous explorerons les fondamentaux de la classification des données et nous nous plongerons dans des exemples de mise en œuvre à l’aide de Python et des expressions régulières.
Comprendre la Classification des Données
La classification des données consiste à organiser les données en catégories ou classes prédéfinies en fonction de leurs caractéristiques et de leur niveau de sensibilité. L’objectif principal de la classification des données est d’identifier et de prioriser les données qui nécessitent des contrôles de sécurité renforcés et une protection accrue.
Il existe deux principales approches pour la classification des données :
Classification par Schéma
Cette approche implique d’analyser les métadonnées de la base de données pour les noms de colonnes, les tables, les vues et les fonctions. Par exemple, si une colonne est nommée ‘nom_de_famille’, elle est classée comme donnée sensible.
Classification par Données
Dans cette approche, le contenu réel des données est analysé pour déterminer sa sensibilité et sa classification. Cette méthode nécessite un examen plus granulaire des données elles-mêmes, souvent à l’aide de techniques telles que la correspondance de motifs ou les expressions régulières pour identifier les informations sensibles.
Ces deux approches peuvent être combinées selon les besoins. De plus, DataSunrise les combine lorsque l’utilisateur crée des attributs pour le Type d’Information utilisé dans la fonctionnalité Découverte de Données Sensibles. Plus tard, nous verrons comment l’utilisation des expressions régulières entraîne un nombre significatif de vérifications pour chaque expression. Par conséquent, le contrôle centralisé de tous les mécanismes de classification des données est extrêmement important. Cette fonctionnalité est disponible par défaut dans DataSunrise ainsi que les autres fonctionnalités puissantes comme la découverte de données basée sur l’OCR.
Classer les Données avec Python et les Expressions Régulières
Un outil puissant pour classifier les données est les expressions régulières. Les expressions régulières, ou regex, sont une séquence de caractères qui définissent un modèle de recherche. Elles vous permettent de correspondre et d’extraire des motifs spécifiques dans les données textuelles.
Considérons un exemple où nous avons une table virtuelle de base de données contenant divers types d’informations, y compris des e-mails, des numéros de cartes de crédit, et des numéros de sécurité sociale (NSS). Notre objectif est de classifier ces données et d’identifier les informations sensibles.
import re # Données d'exemple data = [ ['John Doe', '[email protected]', '5555-5555-5555-4444', '123-45-6789'], ['Jane Smith', '[email protected]', '4111-1111-1111-1111', '987-65-4321'], ['Bob Johnson', '[email protected]', '1234-5678-9012-3456', '456-78-9012'] ] # Expressions régulières pour les données sensibles email_regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b' mastercard_regex = r'\b(?:5[1-5][0-9]{2}|222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}\b' ssn_regex = r'\b(?!000|666)[0-8][0-9]{2}-(?!00)[0-9]{2}-(?!0000)[0-9]{4}\b' # Classifier les données for row in data: for cell in row: if re.match(email_regex, cell): print(f"Email trouvé: {cell}") elif re.match(mastercard_regex, cell): print(f"Numéro de Mastercard trouvé: {cell}") elif re.match(ssn_regex, cell): print(f"NSS trouvé: {cell}")
Dans cet exemple, nous avons une liste de listes représentant une table de base de données. Chaque liste interne représente une ligne, et chaque élément de la ligne représente une valeur de colonne.
Nous définissons des expressions régulières pour identifier les e-mails, les numéros de carte Mastercard et les NSS. Ces expressions régulières capturent les motifs spécifiques associés à chaque type de donnée sensible.
Une chaîne de caractères brute r’…’ en Python traite les barres obliques (\) comme des caractères littéraux. Ceci est particulièrement utile dans les expressions régulières car les barres obliques sont couramment utilisées comme caractères d’échappement. En utilisant des chaînes de caractères brutes, vous n’avez pas besoin d’échapper deux fois les barres obliques (une fois pour Python et une fois pour le moteur d’expressions régulières).
À l’aide d’une boucle imbriquée, nous itérons sur chaque ligne et cellule des données. Pour chaque cellule, nous utilisons la fonction re.match() pour vérifier si la valeur de la cellule correspond à l’une des expressions régulières définies. Si une correspondance est trouvée, nous affichons le type de donnée sensible correspondant et la valeur associée.
Exécuter ce code donnera la sortie suivante :
Email trouvé: [email protected] Numéro de Mastercard trouvé: 5555-5555-5555-4444 NSS trouvé: 123-45-6789 Email trouvé: [email protected] Numéro de Mastercard trouvé: 4111-1111-1111-1111 NSS trouvé: 987-65-4321 Email trouvé: [email protected] NSS trouvé: 456-78-9012
Il est important de noter que la création d’expressions régulières complètes pour toutes les variations possibles des données sensibles peut être difficile. Différents formats de données, cas particuliers et motifs évolutifs peuvent rendre difficile la capture de chaque instance avec précision. C’est pourquoi il est recommandé d’utiliser des expressions régulières simples comme point de départ et de les affiner en continu en fonction des besoins spécifiques et des données rencontrées dans des scénarios réels.
Autres Modèles de Données Sensibles
Voici quelques expressions régulières supplémentaires pour classifier les données sensibles :
Numéro de Téléphone (format US, avec et sans +1) :
^\\(?([0-9]{3})\\)?[-.\\s]?([0-9]{3})[-.\\s]?([0-9]{4})$
ou
^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$
Ces expressions régulières correspondent aux numéros de téléphone dans divers formats. Comme vous pouvez le voir à partir du lien ci-dessus, il existe un grand nombre d’expressions régulières qui aident à classifier les numéros de téléphone dans différents formats et à travers différents pays. Cette complexité complique le processus de classification, car vous devez inclure toutes ces expressions régulières pour classifier avec précision toutes les données.
Adresse IP (IPv4) :
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$
Cette expression régulière correspond aux adresses IPv4, en veillant à ce que chaque octet soit dans la plage valide (0-255).
Numéro de Passeport (format US) :
^(?!^0+$)[a-zA-Z0-9]{3,20}$
Cette expression régulière correspond aux numéros de passeport américains.
Numéro de Compte Bancaire (format IBAN) :
^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$
Cette expression régulière correspond aux numéros de compte bancaire internationaux (IBAN) dans le format standard. Vous pouvez trouver une liste des différents formats (expressions régulières) dans Apache Validator.
Numéro de Carte de Crédit (American Express) :
^3[47][0-9]{13}$
Cette expression régulière correspond aux numéros de carte de crédit American Express, qui commencent par 34 ou 37 et comptent un total de 15 chiffres.
Numéro de Sécurité Sociale (NSS) avec tirets :
^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$
Cette expression régulière correspond aux NSS au format XXX-XX-XXXX, en excluant certains motifs invalides comme 000 dans le numéro de région ou 0000 dans le numéro de série.
Adresse Email :
^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$
Cette expression régulière correspond aux adresses email, autorisant une combinaison de caractères alphanumériques, de points, de tirets bas et de tirets dans la partie locale et le nom de domaine. C’est une variante courte. Vous pouvez facilement trouver les discussions sur stackoverflow suggérant des variantes plus avancées.
Rappelez-vous, ces expressions régulières sont des exemples et peuvent nécessiter d’être adaptées en fonction de vos exigences spécifiques et des formats de données que vous rencontrez. De plus, les expressions régulières seules ne suffisent pas pour une protection complète des données. Vous devez les utiliser en conjonction avec d’autres mesures de sécurité, telles que le chiffrement des données, les contrôles d’accès, et les pratiques de stockage sécurisé.
Lors de la manipulation des données sensibles, il est crucial de prendre en compte les exigences spécifiques et les réglementations applicables à votre domaine. Consultez toujours les cadres et directives pertinents en matière de sécurité et de conformité pour garantir une manipulation et une protection appropriées des informations sensibles.
Conclusion
La classification des données est un aspect crucial de la sécurité et de la conformité des données. En catégorisant les données en fonction de leur sensibilité et en appliquant des contrôles de sécurité appropriés, les organisations peuvent protéger les informations sensibles contre l’accès non autorisé et les violations.
Python et les expressions régulières fournissent des outils puissants pour classifier les données en fonction de leur contenu. En définissant des expressions régulières correspondant à des motifs spécifiques, nous pouvons identifier et signaler les données sensibles dans des ensembles de données structurés ou non structurés.
Cependant, il est important de reconnaître les défis associés à la création d’expressions régulières exhaustives pour toutes les variations possibles des données. Les expressions régulières doivent être utilisées en conjonction avec d’autres mesures de sécurité, telles que le chiffrement, les contrôles d’accès et la surveillance, pour garantir une protection robuste des données.
Chez DataSunrise, nous offrons des outils exceptionnels et flexibles pour la découverte de données sensibles, la sécurité, les règles d’audit, le masquage et la conformité. Nos solutions permettent aux organisations de protéger leurs données sensibles et de répondre efficacement aux exigences réglementaires. Nous vous encourageons à programmer une démo en ligne pour découvrir comment DataSunrise peut vous aider à classifier et protéger vos actifs de données critiques.