DataSunrise sponsorise AWS re:Invent 2024 à Las Vegas, veuillez nous rendre visite au stand n°2158 de DataSunrise

Exemple de Classification des Données

Exemple de Classification des Données

Exemple de Classification des Données

Introduction

Dans le paysage numérique d’aujourd’hui, les données sont la force vitale des organisations. Des dossiers clients aux transactions financières, les entreprises s’appuient sur de vastes quantités d’informations pour prendre des décisions éclairées et favoriser la croissance. Cependant, toutes les données ne se valent pas. Certaines données sont plus sensibles que d’autres et nécessitent une gestion 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 classant 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 tout accès non autorisé, usage abusif ou violation. Dans cet article, nous explorerons les fondamentaux de la classification des données et nous plongerons dans des exemples de mise en œuvre en utilisant Python et les expressions régulières.

Comprendre la Classification des Données

La classification des données implique l’organisation des 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 nécessitant des contrôles de sécurité améliorés et une protection.

Il existe deux principales approches pour la classification des données :

Classification par Schéma

Cette approche consiste à analyser les métadonnées de la base de données pour les noms des colonnes, des tables, des vues et des 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 leur sensibilité et leur classification. Cette méthode nécessite un examen plus granulaire des données elles-mêmes, souvent en utilisant des techniques comme 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é de découverte de données sensibles. Plus tard, nous explorerons comment l’utilisation des expressions régulières aboutit à un nombre important 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 d’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 classer 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 des données textuelles.

Examinons un exemple où nous avons une table de base de données virtuelle contenant divers types d’informations, notamment des e-mails, des numéros de cartes de crédit et des numéros de sécurité sociale (SSN). Notre objectif est de classer ces données et d’identifier les informations sensibles.

import re

# Données 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'

# Classer les données
for row in data:
  for cell in row:
    if re.match(email_regex, cell):
    print(f"Email found: {cell}")
    elif re.match(mastercard_regex, cell):
    print(f"Mastercard number found: {cell}")
    elif re.match(ssn_regex, cell):
    print(f"SSN found: {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 cartes Mastercard et les SSN. Ces expressions régulières capturent les motifs spécifiques associés à chaque type de données sensibles.

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 les barres obliques deux fois (une pour Python et une pour le moteur d’expressions régulières).

En utilisant une boucle imbriquée, nous parcourons chaque ligne et cellule dans les 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 imprimons le type de données sensible correspondant et la valeur correspondante.

L’exécution de ce code donnera :

Email found: [email protected]
Mastercard number found: 5555-5555-5555-4444
SSN found: 123-45-6789
Email found: [email protected]
Mastercard number found: 4111-1111-1111-1111
SSN found: 987-65-4321
Email found: [email protected]
SSN found: 456-78-9012

Il est important de noter que créer des expressions régulières complètes pour toutes les variations possibles de données sensibles peut être complexe. Différents formats de données, cas particuliers et motifs évolutifs peuvent rendre difficile la capture précise de chaque instance. C’est pourquoi il est bon de commencer par des expressions régulières simples et de les affiner continuellement en fonction des exigences spécifiques et des données dans des scénarios réels.

Motifs de Données Sensibles supplémentaires

Voici quelques expressions régulières supplémentaires pour classer les données sensibles :

Numéro de Téléphone (Format US, avec +1 et sans) :

^\\(?([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 pour aider à classer les numéros de téléphone dans différents formats et à travers différents pays. Cette complexité complique le processus de classification, car il faut inclure toutes ces expressions régulières pour classifier précisément 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 s’assurant que chaque octet est 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 international (IBAN) dans le format standard. Vous pouvez trouver une liste de différents formats (expressions régulières) sur 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 au total 15 chiffres.

Numéro de Sécurité Sociale (SSN) avec traits d’union :

^(?!666|000|9\\d{2})\\d{3}-(?!00)\\d{2}-(?!0{4})\\d{4}$

Cette expression régulière correspond aux SSN au format XXX-XX-XXXX, excluant certains motifs invalides comme 000 dans le numéro de zone 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, permettant une combinaison de caractères alphanumériques, de points, de traits de soulignement et de traits d’union dans la partie locale et le nom de domaine. Il s’agit d’une variante courte. Vous pouvez facilement trouver les discussions sur stackoverflow proposant des variantes plus avancées.

N’oubliez pas que ces expressions régulières sont des exemples et peuvent nécessiter des adaptations 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 sont pas suffisantes 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é.

Lorsqu’on travaille avec des données sensibles, il est crucial de prendre en compte les exigences spécifiques et les règlements applicables à votre domaine. Consultez toujours les cadres de sécurité et de conformité pertinents pour garantir la manipulation et la 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 les contrôles de sécurité appropriés, les organisations peuvent protéger les informations sensibles contre les accès non autorisés et les violations.

Python et les expressions régulières fournissent des outils puissants pour classer les données en fonction de leur contenu. En définissant des expressions régulières qui correspondent à 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 complètes pour toutes les variations de données possibles. 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, la sécurité, les règles d’audit, le masquage et la conformité des données sensibles. Nos solutions permettent aux organisations de protéger efficacement leurs données sensibles et de répondre aux exigences réglementaires. Nous vous encourageons à planifier une démonstration en ligne pour explorer comment DataSunrise peut vous aider à classer et protéger vos actifs de données critiques.

Suivant

Localisation des Données

Localisation des Données

En savoir plus

Besoin de l'aide de notre équipe de support ?

Nos experts seront ravis de répondre à vos questions.

Informations générales :
[email protected]
Service clientèle et support technique :
support.datasunrise.com
Demandes de partenariat et d'alliance :
[email protected]