Beispiele zur Datenklassifizierung

Einführung
In der heutigen digitalen Landschaft ist Daten das Lebenselixier von Organisationen. Von Kundenakten bis hin zu finanziellen Transaktionen verlassen sich Unternehmen auf riesige Informationsmengen, um fundierte Entscheidungen zu treffen und Wachstum zu fördern. Allerdings sind nicht alle Daten gleich. Manche Daten sind sensibler als andere und benötigen einen speziellen Umgang und Schutz. Hier kommt die Datenklassifizierung ins Spiel.
Die Datenklassifizierung ist ein Prozess, bei dem Daten basierend auf ihrer Sensitivität, Kritikalität und ihrem Wert für die Organisation kategorisiert werden. Durch die Klassifizierung von Daten können Unternehmen sicherstellen, dass angemessene Sicherheitsmaßnahmen vorhanden sind, um sensible Informationen vor unbefugtem Zugriff, Missbrauch oder Sicherheitsverletzungen zu schützen. In diesem Artikel werden wir die Grundlagen der Datenklassifizierung erläutern und Beispiele dafür vorstellen, wie sie mit Python und regulären Ausdrücken implementiert werden kann.
Die Datenklassifizierung verstehen
Die Datenklassifizierung umfasst die Organisation von Daten in vordefinierte Kategorien oder Klassen, die auf ihren Eigenschaften und ihrem Sensitivitätsgrad basieren. Das Hauptziel der Datenklassifizierung besteht darin, Daten zu identifizieren und in den Vordergrund zu rücken, die einen höheren Sicherheitskontrollbedarf haben und speziellen Schutz erfordern.
Es gibt zwei Hauptansätze zur Datenklassifizierung:
Klassifizierung nach Schema
Dieser Ansatz umfasst die Analyse von Datenbank-Metadaten hinsichtlich der Namen von Spalten, Tabellen, Ansichten und Funktionen. Beispielsweise wird eine Spalte mit dem Namen “last_name” als sensible Daten klassifiziert.
Klassifizierung nach Daten
Bei diesem Ansatz wird der tatsächliche Inhalt der Daten analysiert, um deren Sensitivität und Klassifikation zu bestimmen. Diese Methode erfordert eine detailliertere Untersuchung der Daten selbst, häufig unter Einsatz von Techniken wie Musterabgleich oder regulären Ausdrücken, um sensible Informationen zu identifizieren.
Diese beiden Ansätze können beliebig miteinander kombiniert werden. Zusätzlich kombiniert DataSunrise sie, wenn der Benutzer Attribute für den Informationstyp im Feature zur sensiblen Datenerkennung erstellt. Später werden wir sehen, wie die Verwendung von regulären Ausdrücken zu einer erheblichen Anzahl von Prüfungen für jeden Ausdruck führt. Daher ist eine zentrale Steuerung aller Mechanismen zur Datenklassifizierung von äußerster Wichtigkeit. Diese Funktionalität ist in DataSunrise ebenso standardmäßig verfügbar wie weitere leistungsstarke Funktionen, wie zum Beispiel die OCR-basierte Datenerkennung.
Daten klassifizieren mit Python und regulären Ausdrücken
Ein leistungsstarkes Werkzeug zur Klassifizierung von Daten sind reguläre Ausdrücke. Reguläre Ausdrücke, oder Regex, sind eine Abfolge von Zeichen, die ein Suchmuster definieren. Sie ermöglichen es, spezifische Muster innerhalb von Textdaten zu finden und zu extrahieren.
Betrachten wir ein Beispiel, in dem wir eine virtuelle Datenbanktabelle haben, die verschiedene Arten von Informationen enthält, darunter E-Mails, Kreditkartennummern und Sozialversicherungsnummern (SSNs). Unser Ziel ist es, diese Daten zu klassifizieren und die sensiblen Informationen zu identifizieren.
import re # Beispieldaten 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'] ] # Reguläre Ausdrücke für sensible Daten 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' # Daten klassifizieren for row in data: for cell in row: if re.match(email_regex, cell): print(f"Email gefunden: {cell}") elif re.match(mastercard_regex, cell): print(f"Mastercard-Nummer gefunden: {cell}") elif re.match(ssn_regex, cell): print(f"SSN gefunden: {cell}")
In diesem Beispiel haben wir eine Liste von Listen, die eine Datenbanktabelle repräsentieren. Jede innere Liste steht für eine Zeile, und jedes Element in der Zeile repräsentiert einen Spaltenwert.
Wir definieren reguläre Ausdrücke zur Identifizierung von E-Mails, Mastercard-Nummern und SSNs. Diese regulären Ausdrücke erfassen die spezifischen Muster, die jeweils mit den sensiblen Daten assoziiert sind.
Ein rohes String-Literal (r’…’) in Python behandelt Rückwärtsschrägstriche (\) als literale Zeichen. Dies ist besonders nützlich bei regulären Ausdrücken, da Rückwärtsschrägstriche häufig als Escape-Zeichen verwendet werden. Mit rohen String-Literalen müssen Rückwärtsschrägstriche nicht doppelt escaped werden (einmal für Python und einmal für die Regex-Engine).
Mithilfe einer verschachtelten Schleife iterieren wir über jede Zeile und jede Zelle in den Daten. Für jede Zelle verwenden wir die Funktion re.match(), um zu überprüfen, ob der Zellenwert mit einem der definierten regulären Ausdrücke übereinstimmt. Wird eine Übereinstimmung gefunden, wird der jeweilige Typ sensibler Daten zusammen mit dem gefundenen Wert ausgegeben.
Die Ausführung dieses Codes führt zu folgender Ausgabe:
Email gefunden: [email protected] Mastercard-Nummer gefunden: 5555-5555-5555-4444 SSN gefunden: 123-45-6789 Email gefunden: [email protected] Mastercard-Nummer gefunden: 4111-1111-1111-1111 SSN gefunden: 987-65-4321 Email gefunden: [email protected] SSN gefunden: 456-78-9012
Es ist wichtig zu beachten, dass es eine Herausforderung sein kann, umfassende reguläre Ausdrücke für alle möglichen Variationen sensibler Daten zu erstellen. Unterschiedliche Datenformate, Sonderfälle und sich ändernde Muster können das exakte Erfassen jeder Instanz erschweren. Daher ist es ratsam, mit einfachen regulären Ausdrücken zu beginnen und diese kontinuierlich an die spezifischen Anforderungen und die in realen Szenarien auftretenden Daten anzupassen.
Weitere Muster sensibler Daten
Hier sind noch ein paar weitere reguläre Ausdrücke zur Klassifizierung sensibler Daten:
Telefonnummer (US-Format, mit +1 und ohne):
^\(?([0-9]{3})\)?[-.\s]?([0-9]{3})[-.\s]?([0-9]{4})$oder
^(\([0-9]{3}\) |[0-9]{3}-)[0-9]{3}-[0-9]{4}$Diese regulären Ausdrücke erfassen Telefonnummern in verschiedenen Formaten. Wie Sie dem obigen Link entnehmen können, gibt es eine Vielzahl von regulären Ausdrücken, die dabei helfen, Telefonnummern in verschiedenen Formaten und Ländern zu klassifizieren. Diese Komplexität erschwert den Klassifizierungsprozess, da all diese regulären Ausdrücke einbezogen werden müssen, um alle Daten genau zu klassifizieren.
IP-Adresse (IPv4):
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)(\.(?!$)|$)){4}$Dieser reguläre Ausdruck erfasst IPv4-Adressen und stellt sicher, dass jedes Oktett im gültigen Bereich (0-255) liegt.
Reisepassnummer (US-Format):
^(?!^0+$)[a-zA-Z0-9]{3,20}$Dieser reguläre Ausdruck erfasst US-Reisepassnummern.
Bankkontonummer (IBAN-Format):
^[A-Z]{2}[0-9]{2}[A-Z0-9]{1,30}$Dieser reguläre Ausdruck erfasst internationale Bankkontonummern (IBAN) im Standardformat. Eine Liste der verschiedenen Formate (reguläre Ausdrücke) finden Sie im Apache Validator.
Kreditkartennummer (American Express):
^3[47][0-9]{13}$Dieser reguläre Ausdruck erfasst American Express Kreditkartennummern, die entweder mit 34 oder 37 beginnen und insgesamt 15 Ziffern umfassen.
Sozialversicherungsnummer (SSN) mit Bindestrichen:
^(?!666|000|9\d{2})\d{3}-(?!00)\d{2}-(?!0{4})\d{4}$Dieser reguläre Ausdruck erfasst SSNs im Format XXX-XX-XXXX und schließt dabei bestimmte ungültige Muster wie 000 im Bereichscode oder 0000 in der Seriennummer aus.
E-Mail-Adresse:
^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$Dieser reguläre Ausdruck erfasst E-Mail-Adressen und erlaubt dabei eine Kombination aus alphanumerischen Zeichen, Punkten, Unterstrichen und Bindestrichen im lokalen Teil sowie im Domainnamen. Dies ist eine kurze Variante. Auf Stackoverflow finden Sie Diskussionen, die fortgeschrittene Varianten vorschlagen.
Denken Sie daran, dass diese regulären Ausdrücke lediglich Beispiele sind und möglicherweise an Ihre spezifischen Anforderungen sowie an die Datenformate, denen Sie begegnen, angepasst werden müssen. Darüber hinaus allein reichen reguläre Ausdrücke nicht für einen umfassenden Datenschutz. Sie sollten in Kombination mit weiteren Sicherheitsmaßnahmen, wie Datenverschlüsselung, Zugriffskontrollen und sicheren Speicherpraktiken, verwendet werden.
Beim Umgang mit sensiblen Daten ist es von entscheidender Bedeutung, die spezifischen Anforderungen und Vorschriften Ihres Fachbereichs zu berücksichtigen. Konsultieren Sie stets die relevanten Sicherheits- und Compliance-Rahmenwerke und Richtlinien, um eine angemessene Handhabung und den Schutz sensibler Informationen sicherzustellen.
Erweiterte Klassifizierung und Umgang mit Fehlalarmen
In realen Umgebungen genügt es nicht, sich ausschließlich auf statische reguläre Ausdrücke zu verlassen. Sensible Daten können in unerwarteten Formaten auftreten oder in Freitexten, PDFs oder Bildern verschleiert sein. Deshalb ist eine mehrschichtige Klassifizierungsstrategie entscheidend.
Über Regex hinaus: Kombination von Klassifizierungsmethoden
- Metadatenbasierte Erkennung — Analysieren Sie Tabellen- und Spaltennamen (z. B.
ssn,email_address). - Inhaltsbasierte Erkennung — Verwenden Sie Regex-Muster, um Werte innerhalb der Daten abzugleichen.
- OCR-basierte Analyse — Erkennen Sie Text in gescannten Dokumenten und Bildern.
- Proxy-basierte Analyse — Erfassen Sie sensible Felder in Echtzeit-SQL-Abfragen.
DataSunrise kombiniert diese Klassifizierungsebenen in einer einheitlichen Erkennungs-Engine. Sie definieren Informationstypen einmal und verwenden sie wieder in Audit-, Maskierungs- und Sicherheitsrichtlinien.
Zentralisierte Regex-Verwaltung in DataSunrise
Alle Klassifizierungsausdrücke können zentral über den integrierten Informationstyp-Editor verwaltet werden. Beispielsweise kann ein Regex zur Erfassung von Kreditkartennummern unter dem Typ CreditCard gespeichert und in Audit- und Maskierungsregeln referenziert werden:
Pattern: ^4[0-9]{12}(?:[0-9]{3})?$
Label: VISA
Used in: Audit Rules, Dynamic Masking, Discovery Reports
Dieser Ansatz vermeidet Duplizierung, reduziert Fehler und gewährleistet eine konsistente Erkennung in allen DataSunrise-Modulen.
Reduzieren Sie Fehlalarme mit Validierungskontext
DataSunrise kann erkannte Werte anhand des Kontexts (Spaltenname, Länge, Zeichenverteilung) validieren und unterstützt Ausschlussregeln, um Fehlalarme zu reduzieren. Beispielsweise könnte eine Zahl wie 123-45-6789 zwar dem SSN-Format entsprechen, wird jedoch ignoriert, wenn die Spalte invoice_id lautet.
Regulatorische Klassifizierungstags
Sie können klassifizierte Felder auch mit Compliance-Bereichen wie folgt kennzeichnen:
Diese Tags ermöglichen regelbasierte Zugriffskontrollen und Berichterstattung im Einklang mit regulatorischen Rahmenwerken.
Möchten Sie die zentralisierte Klassifizierung und Maskierung in Aktion sehen? Fordern Sie eine Demo an und lassen Sie sich von unserem Team durch praxisnahe Szenarien führen, die auf Ihre Datenlandschaft zugeschnitten sind.
Fazit
Die Datenklassifizierung ist ein zentraler Aspekt der Datensicherheit und Compliance. Durch die Kategorisierung von Daten basierend auf ihrer Sensitivität und die Anwendung entsprechender Sicherheitskontrollen können Organisationen sensible Informationen vor unbefugtem Zugriff und Sicherheitsverletzungen schützen.
Python und reguläre Ausdrücke bieten leistungsstarke Werkzeuge, um Daten anhand ihres Inhalts zu klassifizieren. Indem reguläre Ausdrücke definiert werden, die spezifische Muster abgleichen, können sensible Daten in strukturierten oder unstrukturierten Datensätzen identifiziert und markiert werden.
Es ist jedoch wichtig, die Herausforderungen zu erkennen, die mit der Erstellung umfassender regulärer Ausdrücke für alle möglichen Datenvarianten verbunden sind. Reguläre Ausdrücke sollten in Kombination mit weiteren Sicherheitsmaßnahmen wie Verschlüsselung, Zugriffskontrollen und Monitoring eingesetzt werden, um einen robusten Datenschutz zu gewährleisten.
Bei DataSunrise bieten wir außergewöhnliche und flexible Werkzeuge für die Entdeckung sensibler Daten, Sicherheit, Audit-Regeln, Maskierung und Compliance. Unsere Lösungen befähigen Organisationen, ihre sensiblen Daten zu schützen und regulatorische Anforderungen effektiv zu erfüllen. Wir laden Sie ein, eine Online-Demo zu vereinbaren, um zu erfahren, wie DataSunrise Ihnen dabei helfen kann, Ihre kritischen Datenbestände zu klassifizieren und zu schützen.
