Multi-Level-Security: Mit DB2 einfacher als mit Oracle 10g

25.10.2006
Von Heinz Axel Pürner

Generelle Vorgehensweise

Die Sicherheitsanforderungen müssen durch Analyse der Anwendungen, der verarbeiteten Informationen und der Benutzeranforderungen bestimmt werden. Die Ergebnisse werden in einem Sicherheitskonzept festgehalten. Aus der Analyse der verarbeiteten Informationen ergibt sich die Klassifikation der Daten bezogen auf ihre Sensitivität. Für die Benutzer werden die Zugriffskriterien ermittelt und die Kennsätze festgelegt.

Die technische Implementierung erfolgt in den Schritten:

  1. Definition von Policy und deren Komponenten;

  2. Definition der Daten-Labels;

  3. Definition der Benutzer-Labels;

  4. Anwenden der Policy auf die Objekte (Tabellen);

  5. Erzeugen der konkreten Label-Werte in den Objekten.

In den folgenden Abschnitten werden die Implementierungen der Kennsatz-gesteuerten Sicherheit in DB2 UDB for LUW und Oracle näher betrachtet.

DB2 UDB V9.1 LBAC

Abfrage der Mitarbeitertabelle im DB2 Command Editor.
Abfrage der Mitarbeitertabelle im DB2 Command Editor.

Zu den neuen Funktionen in DB2 for LUW Version 9 zählt auch die Berechtigungssteuerung Label Based Access Control (LBAC). Dazu gehört unter anderem ein neues Berechtigungsprofil, der Security Administrator (SECAM). Nur der Security Administrator definiert die Sicherheitsrichtlinien (Security Policies), die Kennsätze (Labels) und vergibt oder widerruft Label-Berechtigungen. Dazu ist kein anderes Profil befugt, auch nicht der Systemadministrator (SYSADM). Er ordnet die Sicherheitsrichtlinien den Objekten (Tabellen) zu. Ein Objekt kann nur eine Sicherheitsrichtlinie besitzen.

Die Security Policies bestehen aus Komponenten, die jeweils eines der Kriterien abbilden, nach denen der Zugriff gesteuert wird. Solche Kriterien können Vertraulichkeitsstufen von Daten, Abteilungszugehörigkeit oder Niederlassungsort sein. Für die Komponenten stehen drei Strukturen zur Verfügung:

  • Set (Aufzählung);

  • Array (geordnete Aufzählung, einfache Hierarchie);

  • Tree (Baumstruktur, komplexe Hierarchie).

Eine Security Policy kann aus maximal 16 Komponenten bestehen.

Die Security Labels können Tabellenzeilen oder Tabellenspalten zugeordnet werden. Durch den Vergleich der Labels von Daten und Benutzern wird festgestellt, ob diese zum Zugriff berechtigt sind. Ist ein Benutzer nicht zum Zugriff berechtigt, behandelt DB2 die Daten in einem solchen Fall, als ob sie nicht existieren. Auch Funktionen wie COUNT() oder SUM() berücksichtigen nur die Daten, für deren Zugriff der Benutzer berechtigt ist. Greift allerdings ein Benutzer auf Spalten zu, für die er nicht berechtigt ist, erhält er eine Fehlermeldung.