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

25.10.2006
Von Heinz Axel Pürner
Die steigenden Anforderungen an Datensicherheit haben zu neuen Lösungen bei den Datenbankherstellern geführt. So hat IBM aktuell in DB2 9.1 ein "Label Based Access Control" eingeführt. Hier ein Vergleich, was DB2 und Oracle 10g in dieser Hinsicht leisten.

Strengere gesetzliche Regelungen und weitergehende, geschäftlich begründete Benutzeranforderungen an den Schutz von Informationen führen dazu, dass Daten über die bisherigen Absätze hinaus geschützt und ihre Nutzung nachgewiesen werden müssen. Dieses führt zu mehrstufigen Sicherheitsverfahren (Multi-Level-Security), die die Klassifikation von Objekten (Daten) und Subjekten (Benutzern) basierend auf einem System von hierarchischen Sicherheitsstufen und nicht hierarchischen Sicherheitskategorien erlauben. Dabei sollen unautorisierte Benutzer am Zugriff gehindert und an der Herabstufung der Sicherheitsklassifikation von Daten gehindert werden.

Der klassische Ansatz im Standard-SQL kennt nur die Vergabe von Berechtigungen auf Objektebene, nicht aber auf der Ebene von Zeilen oder Spalten und auch nicht in Abhängigkeit von den Dateninhalten. Zwar kann man mit Hilfe von Datensichten Zeilen und Spalten ausblenden, bei Zeilen auch in Abhängigkeit von Datenwerten, aber diesen Möglichkeiten sind starre Grenzen gesetzt. Außerdem steigt mit wachsenden Anforderungen an die Zugriffssteuerung die Komplexität der Objektstrukturen erheblich an.

Ein weit verbreiteter Ansatz zur Implementierung der Sicherheitskonzepte ist die Realisierung dieser Anforderungen im Anwendungs-Code: Hier können beliebige Anforderungen flexibel, aber mit entsprechendem Aufwand individuell umgesetzt werden. Wird aber die Anwendung umgangen oder wird über andere Werkzeuge auf die Daten zugegriffen, so sind die implementierten Berechtigungssteuerungen nicht wirksam. Beliebt ist es in diesem Zusammenhang auch, vom Anwendungs-Server mit internen Benutzer-IDs auf die Datenbank zuzugreifen. Diese Benutzer-IDs verfügen dann über den vollen Berechtigungsumfang für den Zugriff auf die Daten, unabhängig davon, welche Berechtigungen der reale Benutzer am Bildschirm eigentlich hätte. Werden diese Benutzer-IDs gehackt (missbräuchlich oder fahrlässig bekannt), so ist die Datenbank offen wie ein Scheunentor!

Der Lösungsansatz

Ein Weg, ein mehrstufiges Sicherheitssystem zu realisieren, ist die Nutzung von Kennsätzen (Labels). Die Kennsätze oder Labels beinhalten die Klassifikation der Daten entsprechend ihrer Sensitivität (Object Labels) oder die Berechtigungen des Benutzers (Subject Labels). Über diese Labels werden lesende und schreibende Zugriffe auf der Ebene von Zeilen und Spalten der Tabellen einer Datenbank gesteuert. Dazu werden die Labels der Daten und der Benutzer miteinander verglichen.

Ein Sicherheitsadministrator erstellt Sicherheitsrichtlinien (Policies) und definiert die Kennsätze für Objekte und Benutzer. Die führenden Hersteller von Datenbank-Management-Systemen Oracle und IBM bieten heute Kennsatz-gesteuerte Sicherheitslösungen als Bestandteil ihrer Datenbankprodukte an. Die Lösungen sind ohne eigenen Programmieraufwand durch den Anwender nutzbar.

Die Vorteile dieser Sicherheitsverfahren sind:

  • Zentrale Implementierung in der Datenbank statt in Anwendungsprogrammen oder in Fremdsoftware;

  • sie sind nicht zu umgehen;

  • es besteht kein Codieraufwand.