Startseite > Business Intelligence, Tipps und Tricks, Trivadis > Datenanonymisierung von Datenbanken

Datenanonymisierung von Datenbanken

Bei vielen Unternehmen z.B. im Finanz- und dem Versicherungssektor, aber auch dem Gesundheitswesen, müssen die Daten anonymisiert werden, bevor sie vom Produktivsytem in die Entwicklungsumgebung kopiert werden dürfen. Auf der Webseite des ICO (britische Datenschutzbehörde) steht ein Leitfaden Anonymisation code of practice zur Verfügung. Dieser Leitfaden wurde im November 2012 herausgegeben. Der Leitfaden gibt einen guten Überblick in die Problematik, wenn persönliche Daten anonymisiert werden sollen. Im Appendix auf Seite 51 werden die wichtigsten Techniken zur Datenanonymisierung kurz beschrieben:

  • Partielles Entfernen von Daten
  • Daten unter Quarantäne stellen
  • Pseudonymisierung
  • Aggregation
  • Abgeleitete Daten und Vergröberung

Zum Thema Datenanonoymisierung gibt es auch einige Bücher. Das Buch The Complete Book of Data Anonymization: From Planning to Implementation beschreibt den gesamten Prozess von der Planung bis zur Implementierung.

Doch wie geht man konkret vor, wenn man mit einer solchen Aufgabe betraut wird?

Vorbereitung

Zuerst muss man die Grundlagen schaffen, eine solche Aufgabe durchzuführen. Es ist sicher eine gute Idee, sich mit der Materie zu beschäftigen, indem man ein Buch dazu liest oder sich im Web einige Blogs anschaut. Vielleicht hat das Unternehmen, für welches man die Anonymisierung durchführen muss, einen Leitfaden oder es gibt Referenzprojekte, wo man sich informieren kann.

Analyse (Was)

Bevor man loslegen kann, müssen die Daten analysiert werden. Am Besten macht man das mit einem Business-Analysten zusammen. Beispielsweise könnte man Kategorien definieren, in die man jedes Attribut von jeder Tabelle dann einteilen kann. Herauskommen sollte also eine Liste von Tabellen und deren Attributen und die Zuordnung zu einer Kategorie.

Design (Wie)

Wenn klar ist, was genau zu anonymisieren ist, kann man festlegen wie man anonymisieren möchte:

  • Soll der Prozess wiederholbar sein?
  • Soll ein ETL-Tool wie z.B. Informatica oder SSIS (SQL Server Integration Services) verwendet werden? Oder soll ausschliesslich mit Datenbank-Skripten gearbeitet werden?
  • Soll die Anzahl der Daten vor dem Anonymisierungsprozess reduziert werden? Kann das in einer Art und Weise geschehen, dass nach der Reduktion der Daten trotzdem alle möglichen Datenkonstrukte- und konstellationen noch vorhanden sind?
  • Sollen die anonymisierten Daten nachher noch lesbar sein? Z.B. Könnte man den Namen „Meier“ in „Müller“ anonymisieren, denkbar wäre aber auch ein Random-String in der Art „äAc!0Ww9#q“.
  • Gibt es Anforderungen bzgl. der Performance? Wie lange darf der Prozess dauern? Ist es möglich die Anonymisierung nicht Record-based sondern Set-based durchzuführen?

Regeln

Bei einem kleinen Datenanonymisierungs-Projekt, das ich begleiten durfte, haben wir folgende Regeln aufgestellt. Die Regeln können jeweils selbst definiert werden und können bei jedem Projekt anders aussehen. Wichtig ist, die Regeln mit den Business-Analysten und den Entwicklern gemeinsam zu besprechen und festzuhalten.

  1. Wenn ein String anonymisiert wird, der ausschliesslich Ziffern enthält, dann sollte er nach dem Anonymisieren ebenfalls nur Ziffern enthalten. Das gleiche gilt für einen String der nur Buchstaben enthält, dieser sollte nach dem Anonymisieren nur Buchstaben enthalten.
  2. Es sollten keine Zeichen von einem anderen Zeichensatz (als der in der Datenbank verwendete) angewendet werden.
  3. Wenn der Inhalt eines Attributes einer Tabelle in mehreren Datensätzen (Rows) vorkommt, sollte dieser immer gleich anonymisiert werden. D.h. der Ziel-Inhalt sollte dann der gleiche sein. Das gleiche gilt auch, wenn Attribute in mehreren Tabellen vorkommen.
  4. Interne technische Schlüssel müssen nicht verschlüsselt werden. Wenn diese Schlüssel aber an andere Systeme weitergegeben werden oder in Korrespondenz erscheinen, müssen sie ebenfalls anonymisiert werden.
  5. Zusammenhängende Attribute müssen auch zusammenhängend verschlüsselt werden. Enthält die Tabelle Attribute, die als Teil eines anderen Attributes vorkommen, muss die Anonymisierung so sein, dass danach diese Zugehörigkeit immer noch gegeben ist.
  6. Namen und Orte sollten nach der Verschlüsselung lesbar sein. Das heisst nicht, dass es tatsächlich Namen sein müssen. Denkbar wäre z.B. für Nachnamen auch etwas in der Form wie „Nachname_01“, „Nachname_02“, etc.
  7. Die Länge der Inhalte sollte nicht verändert werden (insbesondere wenn es sich um Business-Keys handelt)

Testen & Bugfixing

Wenn der Datenanonymisierungsprozess implementiert ist, muss er getestet werden. Hierzu wird eine Kopie der produktiven Datenbank gemacht, anschliessend wird ggf. die Datenmenge reduziert. Wenn die Datenbank dann parat ist, wird der Datenanonymisierungs-Prozess gestartet. Es werden zwei Aspekte getestet:

  • der Prozess selbst: Performance, Fehlerbehandlung, Stabilität etc.
  • die anonymisierten Daten

Beim Testen werden alle gefundenen Fehler (Defects oder Bugs) protokolliert. Sobald alle Defects behoben (gefixt) sind, kann dann der Test wiederholt werden. Danach erfolgt in der Regel eine Abnahme und Freigabe des Tests vom Business.

  1. Es gibt noch keine Kommentare.
  1. No trackbacks yet.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: