Skalierbare Datenklassifizierung für Sicherheit und Datenschutz

Skalierbare Datenklassifizierung für Sicherheit und Datenschutz

Die inhaltsbasierte Datenklassifizierung ist ein offenes Problem. Herkömmliche DLP-Systeme (Data Loss Prevention) lösen dieses Problem, indem sie die relevanten Daten per Fingerabdruck erfassen und die Endpunkte auf Fingerabdrücke überwachen. Angesichts der großen Anzahl sich ständig ändernder Datenressourcen bei Facebook ist dieser Ansatz nicht nur nicht skalierbar, sondern auch ineffektiv für die Bestimmung, wo sich die Daten befinden. Dieser Artikel konzentriert sich auf ein End-to-End-System, das darauf ausgelegt ist, sensible semantische Typen in Facebook in großem Maßstab zu erkennen und die Datenspeicherung und Zugriffskontrolle automatisch durchzusetzen.

Der hier beschriebene Ansatz ist unser erstes End-to-End-Datenschutzsystem, das versucht, dieses Problem zu lösen, indem es Datensignale, maschinelles Lernen und traditionelle Fingerabdrucktechniken integriert, um alle Daten auf Facebook abzubilden und zu klassifizieren. Das beschriebene System wird in einer Produktionsumgebung betrieben und erreicht einen durchschnittlichen F2-Score von 0,9+ über verschiedene Datenschutzklassen hinweg, während es große Mengen an Datenressourcen in Dutzenden von Repositories verarbeitet. Wir stellen eine Übersetzung des ArXiv-Papiers von Facebook zur skalierbaren Datenklassifizierung für Sicherheit und Datenschutz basierend auf maschinellem Lernen vor.

Einführung

Heutzutage sammeln und speichern Unternehmen große Datenmengen in unterschiedlichen Formaten und an unterschiedlichen Orten [1], dann werden die Daten an vielen Orten verbraucht, manchmal mehrfach kopiert oder zwischengespeichert, was dazu führt, dass wertvolle und sensible Geschäftsinformationen über viele Unternehmensdaten verstreut sind Shops. Wenn eine Organisation bestimmte gesetzliche oder behördliche Anforderungen erfüllen muss, beispielsweise die Einhaltung von Vorschriften in Zivilverfahren, ist es notwendig, Daten über den Speicherort der erforderlichen Daten zu sammeln. Wenn eine Datenschutzverordnung besagt, dass eine Organisation alle Sozialversicherungsnummern (SSNs) maskieren muss, wenn sie personenbezogene Daten an nicht autorisierte Unternehmen weitergibt, besteht der natürliche erste Schritt darin, alle SSNs in den Datenspeichern der Organisation zu durchsuchen. Unter solchen Umständen wird die Datenklassifizierung von entscheidender Bedeutung [1]. Das Klassifizierungssystem ermöglicht es Unternehmen, Datenschutz- und Sicherheitsrichtlinien automatisch durchzusetzen, z. B. die Aktivierung von Zugriffskontrollrichtlinien und die Datenaufbewahrung. Facebook stellt ein von uns bei Facebook entwickeltes System vor, das mehrere Datensignale, eine skalierbare Systemarchitektur und maschinelles Lernen nutzt, um sensible semantische Datentypen zu entdecken.

Unter Datenerkennung und -klassifizierung versteht man den Prozess, Daten zu finden und zu kennzeichnen, damit relevante Informationen bei Bedarf schnell und effizient abgerufen werden können. Der aktuelle Prozess ist eher manueller Natur und besteht darin, die relevanten Gesetze oder Vorschriften zu prüfen, zu bestimmen, welche Arten von Informationen als sensibel gelten sollten und welche unterschiedlichen Sensibilitätsstufen es gibt, und dann entsprechende Klassen und Klassifizierungsrichtlinien zu erstellen [1]. Data Loss Prevention (DLP) erstellt dann einen Fingerabdruck der Daten und verfolgt nachgelagerte Endpunkte, um die Fingerabdrücke zu erhalten. Bei einem ressourcenintensiven Lager mit Petabytes an Daten lässt sich dieser Ansatz einfach nicht skalieren.

Unser Ziel ist es, ein Datenklassifizierungssystem aufzubauen, das sich sowohl auf robuste als auch auf transiente Benutzerdaten skalieren lässt, ohne zusätzliche Einschränkungen hinsichtlich des Datentyps oder -formats. Das ist ein kühnes Ziel, das natürlich auch Herausforderungen mit sich bringt. Ein bestimmter Datensatz kann Tausende von Zeichen lang sein.

Skalierbare Datenklassifizierung für Sicherheit und Datenschutz
Abbildung 1. Online- und Offline-Prognoseflüsse

Daher müssen wir es effizient darstellen, indem wir einen gemeinsamen Satz von Funktionen verwenden, die später kombiniert und leicht verschoben werden können. Diese Funktionen sollten nicht nur eine genaue Klassifizierung ermöglichen, sondern auch Flexibilität und Erweiterbarkeit bieten, um in Zukunft problemlos neue Datentypen hinzufügen und entdecken zu können. Zweitens müssen Sie mit großen Offline-Tabellen umgehen. Langlebige Daten können in Tabellen gespeichert werden, die viele Petabyte groß sind. Dies kann zu langsameren Scangeschwindigkeiten führen. Drittens müssen wir eine strenge SLA-Klassifizierung für volatile Daten einhalten. Dies zwingt das System zu hoher Effizienz, Schnelligkeit und Genauigkeit. Schließlich müssen wir eine Datenklassifizierung mit geringer Latenz für flüchtige Daten bereitstellen, um eine Echtzeitklassifizierung durchzuführen, sowie für Internet-Anwendungsfälle.

Dieses Papier beschreibt, wie wir mit den oben genannten Herausforderungen umgegangen sind, und stellt ein schnelles und skalierbares Klassifizierungssystem vor, das Datenelemente aller Typen, Formate und Quellen auf der Grundlage eines gemeinsamen Satzes von Merkmalen klassifiziert. Wir haben die Systemarchitektur erweitert und ein benutzerdefiniertes Modell für maschinelles Lernen erstellt, um Offline- und Online-Daten schnell zu klassifizieren. Dieses Papier ist wie folgt gegliedert: Abschnitt 2 stellt den Gesamtentwurf des Systems vor. In Abschnitt 3 werden die Teile eines maschinellen Lernsystems erläutert. Die Abschnitte 4 und 5 beleuchten verwandte Arbeiten und skizzieren zukünftige Arbeitsrichtungen.

Architektur

Um den Herausforderungen persistenter und Facebook-basierter Online-Daten gerecht zu werden, verfügt das Klassifizierungssystem über zwei separate Streams, die wir im Detail besprechen werden.

Nachhaltige Daten

Zunächst muss das System die vielen Informationsressourcen von Facebook kennenlernen. Für jedes Repository werden einige grundlegende Informationen erfasst, z. B. das Rechenzentrum, das diese Daten enthält, das System, das diese Daten enthält, und die Assets, die sich im jeweiligen Datenrepository befinden. Dadurch wird ein Metadatenkatalog erstellt, der es dem System ermöglicht, Daten effizient abzurufen, ohne Clients und Ressourcen anderer Ingenieure zu überlasten.

Dieser Metadatenkatalog bietet eine verlässliche Quelle für alle gescannten Assets und ermöglicht Ihnen die Verfolgung des Status verschiedener Assets. Anhand dieser Informationen wird die Planungspriorität basierend auf den gesammelten Daten und internen Informationen des Systems festgelegt, z. B. dem Zeitpunkt, zu dem das Asset zuletzt erfolgreich gescannt wurde, und dem Zeitpunkt seiner Erstellung sowie den bisherigen Speicher- und CPU-Anforderungen für dieses Asset Es wurde schon einmal gescannt. Anschließend wird für jede Datenressource (sobald Ressourcen verfügbar werden) ein Job aufgerufen, um die Ressource tatsächlich zu scannen.

Bei jedem Job handelt es sich um eine kompilierte Binärdatei, die Bernoulli-Stichproben anhand der neuesten für jedes Asset verfügbaren Daten durchführt. Das Asset wird in einzelne Spalten aufgeteilt, wobei das Klassifizierungsergebnis jeder Spalte unabhängig verarbeitet wird. Darüber hinaus sucht das System nach gesättigten Daten in den Spalten. JSON, Arrays, codierte Strukturen, URLs, Base-64-serialisierte Daten und mehr werden alle gescannt. Dies kann die Ausführungszeit des Scans erheblich verlängern, da eine einzelne Tabelle Tausende verschachtelter Spalten in einem Blob enthalten kann json.

Für jede im Datenbestand ausgewählte Zeile extrahiert das Klassifizierungssystem die Float- und Textobjekte aus dem Inhalt und ordnet jedes Objekt wieder der Spalte zu, aus der es entnommen wurde. Die Ausgabe des Feature-Extraktionsschritts ist eine Karte aller Features für jede im Datenasset gefundene Spalte.

Wozu dienen die Zeichen?

Das Konzept der Attribute ist der Schlüssel. Anstelle von Float- und Textmerkmalen können wir rohe Zeichenfolgenbeispiele übergeben, die direkt aus jeder Datenressource extrahiert werden. Darüber hinaus können Modelle für maschinelles Lernen direkt auf jeder Stichprobe trainiert werden, anstatt Hunderte von Merkmalsberechnungen, die nur versuchen, die Stichprobe anzunähern. Dafür gibt es mehrere Gründe:

  1. Datenschutz geht vor: Am wichtigsten ist, dass das Konzept der Features es uns ermöglicht, nur die Muster im Speicher zu speichern, die wir abrufen. Dadurch wird sichergestellt, dass wir Proben für einen einzigen Zweck speichern und sie niemals aus eigener Kraft protokollieren. Dies ist besonders wichtig für flüchtige Daten, da der Dienst einen bestimmten Klassifizierungsstatus beibehalten muss, bevor er eine Vorhersage bereitstellen kann.
  2. Speicher: Einige Beispiele können Tausende von Zeichen lang sein. Das Speichern solcher Daten und deren Übertragung an Teile des Systems verbraucht unnötigerweise viele zusätzliche Bytes. Die beiden Faktoren können im Laufe der Zeit kombiniert werden, da viele Datenressourcen mit Tausenden von Spalten vorhanden sind.
  3. Feature-Aggregation: Features stellen die Ergebnisse jedes Scans durch eine Reihe von Features klar dar, sodass das System die Ergebnisse früherer Scans derselben Datenressource auf bequeme Weise kombinieren kann. Dies kann nützlich sein, um Scanergebnisse aus einer einzelnen Datenressource über mehrere Läufe hinweg zu aggregieren.

Die Merkmale werden dann an einen Vorhersagedienst gesendet, wo wir mithilfe regelbasierter Klassifizierung und maschinellem Lernen die Datenbezeichnungen jeder Spalte vorhersagen. Der Dienst basiert sowohl auf Regelklassifikatoren als auch auf maschinellem Lernen und wählt aus jedem Vorhersageobjekt die beste Vorhersage aus.

Regelklassifikatoren sind manuelle Heuristiken. Sie verwenden Berechnungen und Koeffizienten, um ein Objekt auf einen Bereich von 0 bis 100 zu normalisieren. Sobald eine solche Anfangsbewertung für jeden Datentyp und Spaltennamen generiert wurde, der mit diesen Daten verknüpft ist, wird sie nicht in ein „Verbot“ einbezogen Listen" Der Regelklassifikator wählt die höchste normalisierte Punktzahl unter allen Datentypen aus.

Aufgrund der Komplexität der Klassifizierung führt die ausschließliche Verwendung manueller Heuristiken zu einer geringen Klassifizierungsgenauigkeit, insbesondere bei unstrukturierten Daten. Aus diesem Grund haben wir ein maschinelles Lernsystem entwickelt, das mit der Klassifizierung unstrukturierter Daten wie Benutzerinhalte und -adressen arbeitet. Durch maschinelles Lernen ist es möglich geworden, von manuellen Heuristiken Abstand zu nehmen und zusätzliche Datensignale (z. B. Spaltennamen, Datenherkunft) anzuwenden, wodurch die Erkennungsgenauigkeit deutlich verbessert wird. Wir werden später tief in unsere Architektur für maschinelles Lernen eintauchen.

Der Vorhersagedienst speichert die Ergebnisse für jede Spalte zusammen mit Metadaten zum Zeitpunkt und Status des Scans. Alle Verbraucher und nachgelagerten Prozesse, die auf diese Daten angewiesen sind, können sie aus dem täglich veröffentlichten Datensatz lesen. Dieser Satz fasst die Ergebnisse aller dieser Scan-Jobs oder Echtzeit-Datenkatalog-APIs zusammen. Veröffentlichte Prognosen bilden die Grundlage für die automatische Durchsetzung von Datenschutz- und Sicherheitsrichtlinien.

Nachdem der Prognosedienst schließlich alle Daten geschrieben und alle Prognosen gespeichert hat, kann unsere Datenkatalog-API alle Datentypprognosen für die Ressource in Echtzeit zurückgeben. Jeden Tag veröffentlicht das System einen Datensatz mit den neuesten Prognosen für jedes Asset.

Flüchtige Daten

Während der obige Prozess für persistente Assets konzipiert ist, wird auch nicht persistenter Datenverkehr als Teil der Daten einer Organisation betrachtet und kann wichtig sein. Aus diesem Grund stellt das System eine Online-API zur Generierung von Echtzeit-Klassifizierungsvorhersagen für intermittierenden Verkehr bereit. Echtzeit-Prognosesysteme werden häufig zur Klassifizierung von ausgehendem und eingehendem Datenverkehr in maschinellen Lernmodellen und Werbetreibendendaten verwendet.

Hier benötigt die API zwei Hauptargumente: den Gruppierungsschlüssel und die Rohdaten, die vorhergesagt werden sollen. Der Dienst führt den gleichen Objektabruf wie oben beschrieben durch und gruppiert die Objekte für denselben Schlüssel. Diese Funktionen werden auch im Persistenzcache für die Wiederherstellung nach Fehlern unterstützt. Für jeden Gruppierungsschlüssel stellt der Dienst sicher, dass er genügend Stichproben gesehen hat, bevor er den Vorhersagedienst aufruft, indem er dem oben beschriebenen Prozess folgt.

Optimierung

Um einige Speicher zu scannen, verwenden wir Bibliotheken und Techniken, um das Lesen aus Hot Storage zu optimieren [2] und sicherzustellen, dass es keine Störungen durch andere Benutzer gibt, die auf denselben Speicher zugreifen.

Bei extrem großen Tabellen (50+ Petabyte) scannt und berechnet das System trotz aller Optimierungen und Speichereffizienz alles, bevor der Speicher ausgeht. Schließlich wird der Scan vollständig im Speicher berechnet und während des Scans nicht gespeichert. Wenn große Tabellen Tausende von Spalten mit unstrukturierten Datenklumpen enthalten, schlägt der Job möglicherweise aufgrund unzureichender Speicherressourcen fehl, wenn Vorhersagen für die gesamte Tabelle durchgeführt werden. Dies führt zu einer verringerten Deckung. Um dem entgegenzuwirken, haben wir das System so optimiert, dass die Scangeschwindigkeit als Proxy dafür dient, wie gut das System die aktuelle Arbeitslast bewältigt. Wir nutzen Geschwindigkeit als Vorhersagemechanismus, um Speicherprobleme zu erkennen und die Feature-Map vorausschauend zu berechnen. Gleichzeitig verbrauchen wir weniger Daten als üblich.

Datensignale

Ein Klassifizierungssystem ist nur so gut wie die Signale aus den Daten. Hier betrachten wir alle vom Klassifizierungssystem verwendeten Signale.

  • Inhaltsbasiert: Das erste und wichtigste Signal ist natürlich der Inhalt. Bei jedem Datenbestand, den wir scannen, wird eine Bernoulli-Stichprobe durchgeführt, und es werden Merkmale basierend auf dem Dateninhalt extrahiert. Viele Zeichen ergeben sich aus dem Inhalt. Es sind beliebig viele schwebende Objekte möglich, die Berechnungen darüber darstellen, wie oft ein bestimmter Beispieltyp gesehen wurde. Beispielsweise können wir Anzeichen dafür haben, wie viele E-Mails in einer Stichprobe gesehen wurden, oder wie viele Emojis in einer Stichprobe gesehen wurden. Diese Merkmalsberechnungen können über verschiedene Scans hinweg normalisiert und aggregiert werden.
  • Datenherkunft: Ein wichtiges Signal, das hilfreich sein kann, wenn sich der Inhalt gegenüber der übergeordneten Tabelle geändert hat. Ein häufiges Beispiel sind gehashte Daten. Wenn Daten in einer untergeordneten Tabelle gehasht werden, stammen sie häufig aus der übergeordneten Tabelle, wo sie im Klartext verbleiben. Herkunftsdaten helfen bei der Klassifizierung bestimmter Datentypen, wenn diese nicht klar gelesen werden oder aus einer Upstream-Tabelle konvertiert werden.
  • Anmerkungen: Ein weiteres hochwertiges Signal, das bei der Identifizierung unstrukturierter Daten hilft. Tatsächlich können Anmerkungen und Herkunftsdaten zusammenarbeiten, um Attribute über verschiedene Datenbestände hinweg zu verbreiten. Anmerkungen helfen dabei, die Quelle unstrukturierter Daten zu identifizieren, während Herkunftsdaten dabei helfen können, den Fluss dieser Daten im gesamten Repository zu verfolgen.
  • Bei der Dateninjektion handelt es sich um eine Technik, bei der spezielle, unleserliche Zeichen absichtlich in bekannte Quellen bekannter Datentypen eingefügt werden. Wenn wir dann Inhalte mit derselben unlesbaren Zeichenfolge scannen, können wir daraus schließen, dass der Inhalt von diesem bekannten Datentyp stammt. Dies ist ein weiteres qualitatives Datensignal, das Anmerkungen ähnelt. Abgesehen davon, dass die inhaltsbasierte Erkennung dabei hilft, die eingegebenen Daten zu entdecken.

Messen von Metriken

Ein wichtiger Bestandteil ist eine strenge Methodik zur Messung von Kennzahlen. Die Hauptmetriken für die Iteration zur Klassifizierungsverbesserung sind Präzision und Erinnerung an jedes Etikett, wobei der F2-Score am wichtigsten ist.

Um diese Metriken zu berechnen, ist eine unabhängige Methodik zur Kennzeichnung von Datenbeständen erforderlich, die unabhängig vom System selbst ist, aber für den direkten Vergleich mit diesem verwendet werden kann. Im Folgenden beschreiben wir, wie wir die Grundwahrheit von Facebook sammeln und diese zum Trainieren unseres Klassifizierungssystems verwenden.

Sammlung verlässlicher Daten

Wir sammeln zuverlässige Daten aus jeder unten aufgeführten Quelle in einer eigenen Tabelle. Jede Tabelle ist für die Aggregation der neuesten beobachteten Werte aus dieser bestimmten Quelle verantwortlich. Jede Quelle verfügt über Datenqualitätsprüfungen, um sicherzustellen, dass die beobachteten Werte für jede Quelle von hoher Qualität sind und die neuesten Datentypbezeichnungen enthalten.

  • Konfigurationen der Protokollierungsplattform: Bestimmte Felder in Hive-Tabellen werden mit Daten eines bestimmten Typs gefüllt. Die Nutzung und Verbreitung dieser Daten dient als verlässliche Quelle der Wahrheit.
  • Manuelle Beschriftung: Entwickler, die das System warten, sowie externe Etikettierer werden für die Beschriftung von Spalten geschult. Dies funktioniert im Allgemeinen gut für alle Arten von Daten im Warehouse und kann für einige unstrukturierte Daten, wie z. B. Nachrichtendaten oder Benutzerinhalte, die primäre Quelle der Wahrheit sein.
  • Spalten aus übergeordneten Tabellen können so markiert oder mit Anmerkungen versehen werden, dass sie bestimmte Daten enthalten, und wir können diese Daten in den untergeordneten Tabellen verfolgen.
  • Ausführungs-Threads abrufen: Ausführungs-Threads in Facebook enthalten bestimmte Arten von Daten. Mit unserer Scanner-as-a-Service-Architektur können wir Streams mit bekannten Datentypen abtasten und durch das System senden. Das System verspricht, diese Daten nicht zu speichern.
  • Beispieltabellen: Große Hive-Tabellen, die bekanntermaßen den gesamten Datenkorpus enthalten, können auch als Trainingsdaten verwendet und als Dienst durch den Scanner geleitet werden. Dies eignet sich hervorragend für Tabellen mit allen Datentypen, sodass das zufällige Abtasten einer Spalte dem Abtasten des gesamten Satzes dieses Datentyps entspricht.
  • Synthetische Daten: Wir können sogar Bibliotheken verwenden, die Daten im laufenden Betrieb generieren. Dies funktioniert gut für einfache, öffentliche Datentypen wie eine Adresse oder GPS.
  • Datenverwalter: Datenschutzprogramme verwenden in der Regel Datenverwalter, um Daten manuell Richtlinien zuzuweisen. Dies dient als äußerst genaue Quelle der Wahrheit.

Wir kombinieren alle wichtigen Quellen der Wahrheit in einem Korpus mit all diesen Daten. Die größte Herausforderung bei der Validität besteht darin, sicherzustellen, dass sie für das Data Warehouse repräsentativ ist. Andernfalls kann es zu einem Übertraining der Klassifizierungs-Engines kommen. Um dem entgegenzuwirken, werden alle oben genannten Quellen genutzt, um beim Training von Modellen oder bei der Berechnung von Metriken für Ausgewogenheit zu sorgen. Darüber hinaus beproben menschliche Labeler gleichmäßig verschiedene Spalten im Repository und kennzeichnen die Daten entsprechend, sodass die Erhebung der Grundwahrheit unvoreingenommen bleibt.

Kontinuierliche Integration

Um eine schnelle Iteration und Verbesserung zu gewährleisten, ist es wichtig, die Systemleistung stets in Echtzeit zu messen. Wir können heute jede Klassifizierungsverbesserung anhand des Systems messen, sodass wir zukünftige Verbesserungen auf der Grundlage von Daten taktisch steuern können. Hier sehen wir uns an, wie das System die Rückkopplungsschleife schließt, die durch gültige Daten bereitgestellt wird.

Wenn das Planungssystem auf ein Asset trifft, das eine Bezeichnung von einer vertrauenswürdigen Quelle hat, planen wir zwei Aufgaben. Der erste nutzt unseren Produktionsscanner und damit unsere Produktionsmöglichkeiten. Die zweite Aufgabe verwendet den neuesten Build-Scanner mit den neuesten Funktionen. Jede Aufgabe schreibt ihre Ausgabe in eine eigene Tabelle und markiert Versionen zusammen mit den Klassifizierungsergebnissen.

So vergleichen wir die Klassifizierungsergebnisse des Release Candidate und des Produktionsmodells in Echtzeit.

Während die Datensätze RC- und PROD-Funktionen vergleichen, werden viele Variationen der ML-Klassifizierungs-Engine des Vorhersagedienstes protokolliert. Das zuletzt erstellte Modell für maschinelles Lernen, das aktuelle Modell in der Produktion und alle experimentellen Modelle. Mit dem gleichen Ansatz können wir verschiedene Versionen des Modells „aufschneiden“ (unabhängig von unseren Regelklassifikatoren) und Metriken in Echtzeit vergleichen. Dadurch lässt sich leicht feststellen, wann ein ML-Experiment für die Produktion bereit ist.

Jede Nacht werden die für diesen Tag berechneten RC-Funktionen an die ML-Trainingspipeline gesendet, wo das Modell auf die neuesten RC-Funktionen trainiert wird und seine Leistung anhand des Ground-Truth-Datensatzes bewertet.

Jeden Morgen schließt das Modell das Training ab und wird automatisch als experimentelles Modell veröffentlicht. Es wird automatisch in die Experimentierliste aufgenommen.

Einige Ergebnisse

Über 100 verschiedene Datentypen werden mit hoher Genauigkeit gekennzeichnet. Gut strukturierte Typen wie E-Mails und Telefonnummern werden mit einem f2-Score von mehr als 0,95 klassifiziert. Auch freie Datentypen wie benutzergenerierte Inhalte und Namen schneiden mit F2-Werten über 0,85 sehr gut ab.

Über alle Repositories hinweg wird täglich eine große Anzahl einzelner Spalten persistenter und volatiler Daten klassifiziert. Täglich werden mehr als 500 Terabyte in mehr als 10 Data Warehouses gescannt. Die meisten dieser Repositories haben eine Abdeckung von über 98 %.

Im Laufe der Zeit ist die Klassifizierung sehr effizient geworden, da Klassifizierungsaufträge in einem dauerhaften Offline-Stream vom Scannen eines Assets bis zur Berechnung von Vorhersagen für jede Spalte durchschnittlich 35 Sekunden dauern.

Skalierbare Datenklassifizierung für Sicherheit und Datenschutz
Reis. 2. Diagramm, das den kontinuierlichen Integrationsfluss beschreibt, um zu verstehen, wie RC-Objekte generiert und an das Modell gesendet werden.

Skalierbare Datenklassifizierung für Sicherheit und Datenschutz
Abbildung 3. Übersichtsdiagramm einer Komponente für maschinelles Lernen.

Systemkomponente für maschinelles Lernen

Im vorherigen Abschnitt haben wir uns eingehend mit der gesamten Systemarchitektur befasst und dabei Skalierung, Optimierung sowie Offline- und Online-Datenflüsse hervorgehoben. In diesem Abschnitt werfen wir einen Blick auf den Prognosedienst und beschreiben das maschinelle Lernsystem, das den Prognosedienst unterstützt.

Bei über 100 Datentypen und einigen unstrukturierten Inhalten wie Nachrichtendaten und Benutzerinhalten führt die Verwendung rein manueller Heuristiken zu einer subparametrischen Klassifizierungsgenauigkeit, insbesondere für unstrukturierte Daten. Aus diesem Grund haben wir auch ein maschinelles Lernsystem entwickelt, um mit der Komplexität unstrukturierter Daten umzugehen. Der Einsatz von maschinellem Lernen ermöglicht es Ihnen, sich von manuellen Heuristiken zu lösen und mit Funktionen und zusätzlichen Datensignalen (z. B. Spaltennamen, Datenursprung) zu arbeiten, um die Genauigkeit zu verbessern.

Das implementierte Modell untersucht Vektordarstellungen [3] über dichte und spärliche Objekte getrennt. Diese werden dann zu einem Vektor kombiniert, der eine Reihe von Batch-Normalisierungs- [4] und Nichtlinearitätsschritten durchläuft, um das Endergebnis zu erzielen. Das Endergebnis ist eine Gleitkommazahl zwischen [0-1] für jede Beschriftung, die die Wahrscheinlichkeit angibt, dass das Beispiel zu diesem Vertraulichkeitstyp gehört. Durch die Verwendung von PyTorch für das Modell konnten wir schneller vorankommen, sodass Entwickler außerhalb des Teams schnell Änderungen vornehmen und testen konnten.

Beim Entwurf der Architektur war es aufgrund ihrer inhärenten Unterschiede wichtig, dünn besiedelte (z. B. Text) und dichte (z. B. numerische) Objekte getrennt zu modellieren. Für die endgültige Architektur war es außerdem wichtig, einen Parameter-Sweep durchzuführen, um den optimalen Wert für Lernrate, Batch-Größe und andere Hyperparameter zu finden. Auch die Wahl des Optimierers war ein wichtiger Hyperparameter. Wir haben festgestellt, dass es sich um einen beliebten Optimierer handelt Marcusführt oft zu einer Überanpassung, während ein Modell mit SGD stabiler. Es gab zusätzliche Nuancen, die wir direkt in das Modell einbeziehen mussten. Zum Beispiel statische Regeln, die sicherstellen, dass das Modell eine deterministische Vorhersage trifft, wenn ein Merkmal einen bestimmten Wert hat. Diese statischen Regeln werden von unseren Kunden definiert. Wir haben festgestellt, dass die direkte Einbindung in das Modell zu einer eigenständigeren und robusteren Architektur führte, im Gegensatz zur Implementierung eines Nachbearbeitungsschritts zur Behandlung dieser speziellen Randfälle. Beachten Sie außerdem, dass diese Regeln während des Trainings deaktiviert sind, um den Trainingsprozess für den Gradientenabstieg nicht zu beeinträchtigen.

Probleme

Eine der Herausforderungen bestand darin, qualitativ hochwertige und zuverlässige Daten zu sammeln. Das Modell benötigt Vertrauen für jede Klasse, damit es Assoziationen zwischen Objekten und Beschriftungen lernen kann. Im vorherigen Abschnitt haben wir Datenerfassungsmethoden sowohl für die Systemmessung als auch für das Modelltraining besprochen. Die Analyse ergab, dass Datenklassen wie Kreditkarten- und Bankkontonummern in unserem Lager nicht sehr verbreitet sind. Dies macht es schwierig, große Mengen zuverlässiger Daten zum Trainieren von Modellen zu sammeln. Um dieses Problem anzugehen, haben wir Prozesse zum Erhalten synthetischer Ground-Truth-Daten für diese Klassen entwickelt. Wir generieren solche Daten für sensible Typen, einschließlich SSN, Kreditkartennummern и IBAN-Zahlen, für die das Modell zuvor keine Vorhersagen treffen konnte. Dieser Ansatz ermöglicht die Verarbeitung sensibler Datentypen ohne die Datenschutzrisiken, die mit dem Verbergen der eigentlichen sensiblen Daten verbunden sind.

Neben den Grundwahrheitsproblemen gibt es offene architektonische Probleme, an denen wir arbeiten, wie zum Beispiel Isolation ändern и früher Stopp. Die Isolierung von Änderungen ist wichtig, um sicherzustellen, dass bei unterschiedlichen Änderungen an verschiedenen Teilen des Netzwerks die Auswirkungen auf bestimmte Klassen beschränkt sind und keine weitreichenden Auswirkungen auf die gesamte Prognoseleistung haben. Die Verbesserung der Kriterien für den frühen Abbruch ist ebenfalls von entscheidender Bedeutung, damit wir den Trainingsprozess für alle Klassen an einem stabilen Punkt beenden können, anstatt an einem Punkt, an dem einige Klassen übertrainieren und andere nicht.

Wichtigkeit der Funktion

Wenn eine neue Funktion in ein Modell eingeführt wird, möchten wir wissen, welche Auswirkungen sie insgesamt auf das Modell hat. Wir möchten außerdem sicherstellen, dass die Vorhersagen für Menschen interpretierbar sind, damit wir genau verstehen können, welche Funktionen für jeden Datentyp verwendet werden. Zu diesem Zweck haben wir entwickelt und eingeführt nach Klasse Bedeutung von Funktionen für das PyTorch-Modell. Beachten Sie, dass sich dies von der allgemeinen Feature-Wichtigkeit unterscheidet, die normalerweise unterstützt wird, da sie uns nicht sagt, welche Features für eine bestimmte Klasse wichtig sind. Wir messen die Wichtigkeit eines Objekts, indem wir die Zunahme des Vorhersagefehlers nach der Neuanordnung des Objekts berechnen. Ein Merkmal ist „wichtig“, wenn der Austausch von Werten den Fehler des Modells erhöht, da sich das Modell in diesem Fall für seine Vorhersage auf das Merkmal verlassen hat. Ein Merkmal ist „unwichtig“, wenn das Mischen seiner Werte den Modellfehler unverändert lässt, da das Modell ihn in diesem Fall ignoriert hat [5].

Die Bedeutung der Funktion für jede Klasse ermöglicht es uns, das Modell interpretierbar zu machen, sodass wir sehen können, was das Modell bei der Vorhersage einer Bezeichnung berücksichtigt. Zum Beispiel, wenn wir analysieren ADDR, dann garantieren wir, dass das mit der Adresse verbundene Zeichen, wie z AddressLinesCount, steht in der Feature-Wichtigkeitstabelle für jede Klasse ganz oben, sodass unsere menschliche Intuition gut mit dem übereinstimmt, was das Modell gelernt hat.

Auswertung

Es ist wichtig, eine einzige Erfolgsmetrik zu definieren. Wir haben uns entschieden F2 - Ausgewogenheit zwischen Rückruf und Genauigkeit (Rückruf-Bias ist etwas größer). Für einen Datenschutzanwendungsfall ist der Rückruf wichtiger als die Genauigkeit, da es für das Team von entscheidender Bedeutung ist, keine sensiblen Daten zu verpassen (und gleichzeitig eine angemessene Genauigkeit sicherzustellen). Die tatsächliche F2-Leistungsbewertung unseres Modells würde den Rahmen dieses Dokuments sprengen. Bei sorgfältiger Abstimmung können wir jedoch hohe (0,9+) F2-Werte für die wichtigsten sensiblen Klassen erzielen.

Verwandte Arbeiten

Es gibt viele Algorithmen zur automatischen Klassifizierung unstrukturierter Dokumente unter Verwendung verschiedener Methoden wie Mustervergleich, Dokumentähnlichkeitssuche und verschiedener Methoden des maschinellen Lernens (Bayesian, Entscheidungsbäume, k-nächste Nachbarn und viele andere) [6]. Jedes davon kann als Teil einer Klassifizierung verwendet werden. Das Problem ist jedoch die Skalierbarkeit. Der Klassifizierungsansatz in diesem Artikel ist auf Flexibilität und Leistung ausgerichtet. Dadurch können wir in Zukunft neue Klassen unterstützen und die Latenz niedrig halten.

Auch am Daten-Fingerprinting wird viel gearbeitet. Beispielsweise beschrieben die Autoren in [7] eine Lösung, die sich auf das Problem der Erfassung sensibler Datenlecks konzentriert. Die zugrunde liegende Annahme ist, dass die Daten per Fingerabdruck erfasst werden können, um sie mit einer Reihe bekannter sensibler Daten abzugleichen. Die Autoren in [8] beschreiben ein ähnliches Problem des Verlusts der Privatsphäre, ihre Lösung basiert jedoch auf einer bestimmten Android-Architektur und wird nur dann klassifiziert, wenn Benutzeraktionen zur Weitergabe persönlicher Informationen führen oder wenn die zugrunde liegende Anwendung Benutzerdaten preisgibt. Hier stellt sich die Situation etwas anders dar, da Benutzerdaten auch stark unstrukturiert sein können. Daher benötigen wir eine komplexere Technik als den Fingerabdruck.

Um den Datenmangel bei einigen Arten sensibler Daten zu bewältigen, haben wir schließlich synthetische Daten eingeführt. Es gibt eine große Menge an Literatur zur Datenerweiterung. Beispielsweise untersuchten die Autoren in [9] die Rolle der Rauschinjektion während des Trainings und beobachteten positive Ergebnisse beim überwachten Lernen. Unser Ansatz zum Datenschutz ist anders, da die Einführung verrauschter Daten kontraproduktiv sein kann und wir uns stattdessen auf hochwertige synthetische Daten konzentrieren.

Abschluss

In diesem Artikel haben wir ein System vorgestellt, das Daten klassifizieren kann. Dadurch können wir Systeme zur Durchsetzung von Datenschutz- und Sicherheitsrichtlinien erstellen. Wir haben gezeigt, dass skalierbare Infrastruktur, kontinuierliche Integration, maschinelles Lernen und hochwertige Datensicherung eine Schlüsselrolle für den Erfolg vieler unserer Datenschutzinitiativen spielen.

Es gibt viele Richtungen für die zukünftige Arbeit. Dies kann die Bereitstellung von Unterstützung für nicht schematisierte Daten (Dateien), die Klassifizierung nicht nur des Datentyps, sondern auch der Sensitivitätsstufe und die Verwendung selbstüberwachten Lernens während des Trainings durch Generierung genauer synthetischer Beispiele umfassen. Dies wiederum wird dem Modell helfen, die Verluste so weit wie möglich zu reduzieren. Zukünftige Arbeiten könnten sich auch auf den Untersuchungsablauf konzentrieren, bei dem wir über die Erkennung hinausgehen und eine Ursachenanalyse verschiedener Datenschutzverletzungen durchführen. Dies ist in Fällen wie der Sensitivitätsanalyse hilfreich (d. h. ob die Datenschutzsensibilität eines Datentyps hoch (z. B. Benutzer-IP) oder niedrig (z. B. Facebook-interne IP) ist).

Bibliographie

  1. David Ben-David, Tamar Domany und Abigail Tarem. Klassifizierung von Unternehmensdaten mithilfe semantischer Webtechnologien. In Peter F.Ï Patel-Schneider, Yue Pan, Pascal Hitzler, Peter Mika, Lei Zhang, Jeff Z. Pan, Ian Horrocks und Birte Glimm, Herausgeber, Das semantische Web – ISWC 2010, Seiten 66–81, Berlin, Heidelberg, 2010. Springer Berlin Heidelberg.
  2. Subramanian Muralidhar, Wyatt Lloyd, Sabyasachi Roy, Cory Hill, Ernest Lin, Weiwen Liu, Satadru Pan, Shiva Shankar, Viswanath Sivakumar, Linpeng Tang und Sanjeev Kumar. f4: Facebooks warmes BLOB-Speichersystem. In 11. USENIX-Symposium zum Design und zur Implementierung von Betriebssystemen (OSDI 14), Seiten 383–398, Broomfield, CO, Oktober 2014. USENIX Association.
  3. Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg S. Corrado und Jeff Dean. Verteilte Darstellungen von Wörtern und Phrasen und deren Zusammensetzung. In C. J. C. Burges, L. Bottou, M. Welling, Z. Ghahramani und K. Q. Weinberger, Herausgeber, Fortschritte bei neuronalen Informationsverarbeitungssystemen 26, Seiten 3111–3119. Curran Associates, Inc., 2013.
  4. Sergey Ioffe und Christian Szegedy. Batch-Normalisierung: Beschleunigung des Deep-Network-Trainings durch Reduzierung der internen Kovariatenverschiebung. In Francis Bach und David Blei, Herausgeber, Vorträge der 32. Internationalen Konferenz zum maschinellen Lernen, Band 37 von Verfahren der maschinellen Lernforschung, Seiten 448–456, Lille, Frankreich, 07.–09. Juli 2015. PMLR.
  5. Leo Breiman. Zufällige Wälder. Mach. Lernen., 45(1):5–32, Oktober 2001.
  6. Thair Nu Phyu. Überblick über Klassifizierungstechniken im Data Mining.
  7. X. Shu, D. Yao und E. Bertino. Datenschutzwahrende Erkennung der Gefährdung sensibler Daten. IEEE-Transaktionen zu Informationsforensik und Sicherheit, 10(5):1092–1103, 2015.
  8. Zhemin Yang, Min Yang, Yuan Zhang, Guofei Gu, Peng Ning und Xiaoyang Wang. Appintent: Analyse sensibler Datenübertragung in Android zur Erkennung von Datenschutzlecks. Seiten 1043–1054, 11 2013.
  9. Qizhe Xie, Zihang Dai, Eduard H. Hovy, Minh-Thang Luong und Quoc V. Le. Unbeaufsichtigte Datenerweiterung.

Skalierbare Datenklassifizierung für Sicherheit und Datenschutz
Erfahren Sie Einzelheiten darüber, wie Sie von Grund auf einen begehrten Beruf erlernen oder in Bezug auf Fähigkeiten und Gehalt aufsteigen können, indem Sie an den Online-Kursen von SkillFactory teilnehmen:

Weitere Kurse

Source: habr.com

Kommentar hinzufügen