Ein mandantenfähiger Flask-Dienst, der Microsoft 365-Änderungsereignisse abonniert, neue E-Mails, Teams-Chats sowie OneDrive- und SharePoint-Inhalte auf personenbezogene Daten prüft und diese blockiert, unter Quarantäne stellt oder meldet, bevor sie sich verbreiten. Dasselbe Prüfprotokoll, das die Blockierung auslöst, stellt dem Dateneigentümer auch einen Ein-Klick-Rücksetzlink bereit.
Jede Änderung überwachen, in Millisekunden klassifizieren, handeln bevor die Seite neu geladen wird.
Der DLP-Dienst ist zwischen Microsoft 365 und dem Klassifizierungs-Stack der Data & More-Plattform eingebettet. Er abonniert Graph-Änderungsbenachrichtigungen für die betreuten Mandanten, dedupliziert diese, ruft die betroffenen Inhalte ab, führt sie durch einen schnellen Regex-Vorfilter sowie die Profiler der Plattform und ordnet das Ergebnis einer mandantenspezifischen Richtlinie zu, die anschließend direkt im Quellsystem durchgesetzt wird. Jede Aktion wird in einem Elasticsearch-Prüfindex erfasst, und jede Blockierung wird mit einem Rücksetzlink versehen, den der Dateneigentümer direkt aus der E-Mail heraus verwenden kann.
Graph-Abonnements werden durch einen Hintergrund-Scheduler aufrechterhalten, der Token erneuert, Abweichungen ausgleicht und Bulk-Quellkonfigurationen erneut anwendet, sobald sich die Auswahl des Mandanten ändert.
Jedes Element durchläuft einen mandantenspezifisch abgestimmten Regex-Vorfilter (mit ReDoS-geschützten Timeouts). Nur Elemente, die den Vorfilter passieren, werden zur umfassenderen PII-Bewertung an den java_profiler weitergeleitet.
Die Richtlinie ordnet einem (Quelle, Ergebnis)-Paar eine von fünf Aktionen zu, die alle innerhalb von Microsoft 365 ausgeführt werden: Nachricht löschen, in Quarantäne verschieben, eine Datei schwärzen oder lediglich eine Benachrichtigungs-E-Mail bzw. eine Teams-Karte senden.
Eine Änderung in Microsoft 365 führt zu genau einer Benachrichtigung, einem Klassifizierungs-Roundtrip, einer Richtlinienentscheidung und einem Prüfeintrag. Die nachfolgende Pipeline zeigt den Weg, den jede Teams-Nachricht, jeder OneDrive-Upload und jede SharePoint-Bearbeitung durchläuft.
Jede Quelle verfügt über ein eigenes Graph-Abonnement, ein eigenes Ressourcenpfadformat, einen eigenen Inhaltsabruf und ein eigenes Verständnis davon, was Blockierung bedeutet. Der Prozessor leitet anhand des geparsten Ressourcenpfads weiter und verteilt die Verarbeitung an den passenden Abruf-Handler sowie die zuständige Durchsetzungslogik.
graph-management bevor Token ablaufen.reauthorizationRequired (erneuern), missed (protokollieren; Administrator kann erneut anwenden) und subscriptionRemoved (protokollieren).Exchange ist über eine EXO-Transportregel eingebunden, die verdächtige E-Mails unter Quarantäne stellt, bevor der Benutzer sie zu sehen bekommt. Der DLP-Dienst ruft die Nachricht anschließend aus der Quarantäne ab, klassifiziert sie und gibt sie entweder frei oder blockiert sie. Exchange-Benachrichtigungen außerhalb der Quarantäne werden sofort verworfen – sie sind ein Zeichen für veraltete Konfigurationen oder Fehlkonfigurationen.
Die Klassifizierung erfolgt in zwei Stufen, damit die kostengünstige Stufe den Großteil herausfiltert und die aufwändige Stufe nur das verarbeitet, was die erste Stufe passiert hat.
Eine mandantenspezifische Liste von Regex-Mustern, die beim ersten Einsatz kompiliert und bei jeder Änderung der Musterliste neu kompiliert wird. Jeder Abgleich wird mit einem ReDoS-geschützten Timeout von 1 Sekunde ausgeführt (über das Drittanbieter-Modul regex), sodass ein einzelnes problematisches Muster den Worker nicht blockieren kann.
Wenn der Vorfilter nicht greift, wird der Text an den Endpunkt /dlp/classify des java_profiler weitergeleitet. Der Client kapselt den Aufruf in einen Circuit Breaker (5 Fehlschläge, 60 s Rücksetzzeit) und einen Tenacity-Wiederholungsmechanismus (3 Versuche, exponentielles Backoff bei Verbindungs- und Timeout-Fehlern). Bei vollständigem Ausfall wird offen gefehlt und der Inhalt als „kein PII" eingestuft, anstatt unproblematische Inhalte zu blockieren.
/dlp/classify des java_profiler, der für binäre Block-/Freigabe-Entscheidungen optimiert ist.Das Paar (Quelle, Urteil) wird durch die mandantenspezifische Richtlinie, die indlp_configgespeichert ist, einer von fünf Aktionen zugeordnet. „Allow" lässt das System stumm; die anderen vier enden jeweils mit einem Audit-Eintrag.
Entweder wurde keine PII erkannt, oder die Datei befindet sich auf der Ausschlussliste des Mandanten für OneDrive / SharePoint. Es wird nichts geschrieben und nichts gesendet.
Der Inhalt verbleibt an seinem Ort. Der Absender (oder der Dateiinhaber) erhält eine E-Mail oder eine Teams-Karte mit dem Hinweis, dass der Inhalt die Richtlinie ausgelöst hat. Geeignet für Kategorien mit geringem Schweregrad.
Die Durchsetzungsschicht ergreift Maßnahmen an der Quelle: Teams-Nachricht wird hinter einer Karte verborgen, OneDrive- / SharePoint-Datei wird gesperrt, Exchange-E-Mail wird aus der Quarantäne entfernt. Der Audit-Eintrag enthält ein Rücksetz-Token, sodass die Aktion rückgängig gemacht werden kann.
Die Datei bleibt unverändert, und der Inhaber erhält eine E-Mail mit drei Optionen: jetzt durchsetzen, abbrechen (mit optionalem temporären oder dauerhaften Ausschluss) oder nichts unternehmen. Nach Ablauf des Kulanzzeitraums nimmt der Scheduler den Eintrag auf und setzt die Maßnahme automatisch durch.
Eingehende E-Mails, die von der Transportregel abgefangen wurden, befinden sich in der Quarantäne. Der DLP-Dienst klassifiziert sie und wählt zwischen Freigabe (zustellen), Behalten (blockieren) und Benachrichtigen (wird geprüft). Ein separater Scan-und-Freigabe-Benachrichtigungspfad hält den Absender informiert.
Jede Aktion der Block-Klasse bettet eine signierte Rücksetz-URL in die Benachrichtigung ein. Der Empfänger klickt darauf, und derrevert_serviceliestreversal_dataaus dem Audit-Eintrag, um die Aktion rückgängig zu machen und einen entsprechenden Rücksetz-Audit-Eintrag zu schreiben.
Eingrace_blockist die sanfte Option für OneDrive und SharePoint: An der Quelle geschieht nichts, bis der Inhaber eine Entscheidung trifft oder der Kulanzzeitraum abläuft.
Benachrichtigungen werden an die Identität adressiert, die für die jeweilige Quelle relevant ist (Absender in Teams, Dateiinhaber in OneDrive, Website-Inhaber in SharePoint). Der Transportweg wird pro Mandant festgelegt.
Bei Teams-Benachrichtigungen postet der Bot eine proaktive Antwort im ursprünglichen Thread (oder eine Direktnachricht, wenn die Kanal-Antwort fehlschlägt). Die Karte zeigt die Aktion, einen Begründungsausschnitt, einen Deep-Link zur Nachricht sowie die Rücksetz-URL an.
Der E-Mail-Transportweg wird pro Mandant gewählt:graph-managementsendet über das eigene Postfach des Mandanten, sofern Graph-Mail-Einstellungen konfiguriert sind, andernfalls sendetdm-notifyvon der Plattform aus. Vorlagen sind aktionsspezifisch mit mandantenspezifischen Überschreibungen für Kopfzeile / Inhalt / Fußzeile.
Die nachstehenden Mockups zeigen drei reale Benachrichtigungen, die der Dienst versendet: eine Teams Adaptive Card, eine E-Mail der Klasse „block" und eine E-Mail der Klasse „alert". Sie sind in Ausstellungskarten des Field Manual eingebettet, tragen jedoch ihre eigene Produktfarbidentität, sodass der Leser sieht, was seine Nutzer tatsächlich sehen.
Ihr Inhalt wurde markiert, da er möglicherweise sensible Daten enthält. Bitte prüfen Sie diesen vor dem Teilen.
Analyse: Diese Daten enthalten personenbezogene Daten gemäß der DSGVO. Die Zeichenfolge „mit cpr er 010101…" stellt wahrscheinlich eine dänische CPR-Nummer (Central Person Register) dar – einen eindeutigen Identifikator für eine natürliche Person – und fällt damit unter die Definition personenbezogener Daten.
Dies ist eine informative Warnung. Es wurden keine Maßnahmen an Ihrem Inhalt vorgenommen.
Ihr Inhalt wurde durch die Datenschutzrichtlinie Ihrer Organisation gesperrt. Die ursprüngliche E-Mail finden Sie in der DLP-Quarantäne.
| Ergriffene Maßnahme | block |
| Quelle | exchange |
| Betreff | David Junge shared "Red hat" with you |
| Speicherort | Markierten Inhalt anzeigen |
Wenn Sie der Meinung sind, dass es sich um einen Fehler handelt, wenden Sie sich bitte an Ihren IT-Administrator.
Ihr Inhalt wurde markiert, da er möglicherweise sensible Daten enthält. Bitte prüfen Sie diesen vor dem Teilen.
Analyse: Diese Daten enthalten personenbezogene Daten gemäß der DSGVO. Sie umfassen Namen („Peter"), nationale Identifikationsmerkmale („NIN", „DNI", „número de identidad") sowie Identifikationsnummern natürlicher Personen, einschließlich Angaben zu Ausweisdokumenten von Familienangehörigen, was das Vorhandensein personenbezogener Daten eindeutig belegt.
Dies ist eine informative Warnung. Es wurden keine Maßnahmen an Ihrem Inhalt vorgenommen.
Vier Daemon-Threads starten beim App-Start und werden nie beendet. Sie halten den Dienst fehlerfrei, ohne dass ein Cron-Job oder ein externer Orchestrator erforderlich ist.
Prüft java_profiler und den KI-Profiler. Protokolliert Verfügbarkeits- und Ausfallübergänge und stellt Abhilfemaßnahmen bereit.
Alle 15 Minuten. Markiert Mandanten, deren Graph-Abonnements zu lange inaktiv waren.
Stündlich. Wendet Massenabonnements für die Modi ALL und GROUPS erneut an, sodass neue Nutzer und Gruppenänderungen automatisch erfasst werden.
Durchsucht den Audit-Index nach grace_block Einträgen, deren Zeitfenster abgelaufen ist, und veranlasst die zurückgestellte Durchsetzung.
Von einer Graph-Benachrichtigung bis zur Freigabe einer Exchange-Quarantäne durchläuft jede Microsoft 365-Änderung eine klar definierte Schleife – mandantenspezifisch und in weniger Zeit, als der Benutzer benötigt, um den Tab zu wechseln. Jede Aktion wird protokolliert, jede Sperrung ist rückgängig zu machen, und jeder Klassifikator ist so konzipiert, dass er im Fehlerfall offen bleibt – damit das System Inhalte niemals aus dem falschen Grund zurückhält.