14_27_214638_DOAG 21.07.2006 Security 8:27 Uhr Seite 24 Datenbank Gewaltenteilung in der Datenbank: Oracle Database Vault Autor: Heinz-Wilhelm Fabry, ORACLE Deutschland GmbH Dieser Beitrag beschreibt den Nutzen und die grundlegenden Features der neuen Datenbank-Option Oracle Database Vault. Er richtet sich an alle, die sich im Umfeld der Oracle-Datenbank mit Security-Themen beschäftigen. Bisher galt für jede Oracle-Datenbank: Benutzer mit der Rolle DBA und Benutzer, die sich aufgrund ihrer Betriebssystem-Privilegien als Benutzer SYS bei einer Datenbank anmelden können, haben unmittelbar auch lesenden und schreibenden Zugriff auf den gesamten Datenbestand dieser Datenbank. Sie können darüber hinaus beliebig Datenbank-Strukturen und Datenbank-System modifizieren. Oracle Database Vault, eine neue Option der Database 10g Enterprise Edition, schiebt dem nun einen Riegel vor. Jetzt können Aufgaben wie Verwalten von Benutzern, Einrichten und Ändern von Datenbank-Strukturen wie Tabellen und Tablespaces oder Backup & Recovery auf unterschiedliche Personen verteilt werden (separation of duties). Diese Personen müssen natürlich über die Privilegien verfügen, die sie für die Erfüllung ihrer jeweiligen Aufgaben benötigen, aber sie erhalten eben nicht mehr automatisch zusätzliche und weit reichende System-Privilegien (least privilege). Es gab immer Unternehmen, denen es aus Sicherheitsgründen ein Dorn im Auge war, dass die DatenbankAdministration nicht von der Daten- und/oder BenutzerAdministration getrennt werden konnte. SOX, Basel II und vergleichbare Gesetze und Verordnungen verpflichten Unternehmen jetzt zur nachweisbaren Funktionstrennung durch Aufgabenverteilung. Man kann heute also nicht mehr von "vereinzelten Unternehmen" sprechen, die nach Möglichkeiten der Aufgabenverteilung verlangen. Viel- 24 News Q3-2006 mehr muss man zur Kenntnis nehmen, dass der Markt eine standardisierte Lösung zur Funktionstrennung im Oracle-Umfeld verlangt – und er sie mit der neuen Option Database Vault erhält. Die Option benötigt mindestens eine Datenbank der Version 10.2.0.2 – das im Juni 2006 aktuellste Release. Die Option kann sowohl in einer bestehenden Datenbank als auch im Rahmen einer Neu-Installation der Datenbank eingerichtet werden. Die Objekte der Option werden in zwei eigens eingerichteten Tablespaces namens DVSYS und DVF abgelegt. Diese Tablespaces werden zugleich mit den Mitteln von Database Vault gesichert. Zur Konfiguration und Verwaltung stehen browserbasierte, grafische Werkzeuge zur Verfügung: Database Vault Configuration Assistant (dvca) und Database Vault Administrator (dva). Wie man an der Abbildung 1 erkennt, erinnert der dva sehr an den HTML-basierten Enterprise Manager – in den dieser auch integriert werden soll. Abbildung 1: Oracle Database Vault Administrator (dva) www.doag.org 14_27_214638_DOAG 21.07.2006 8:27 Uhr Seite 25 Datenbank Der dva greift auf eine Reihe von Packages zu, die auch direkt genutzt werden können. Deshalb steht die Funktionalität von Database Vault sowohl Anwendungen als auch auf der Kommandozeile zur Verfügung. Benutzer und Passwörter Das Einrichten von Benutzern und Passwörtern stellt eine hochsensible Komponente jeder Sicherheitsinfrastruktur dar. Im Vergleich zur bisherigen Praxis in der OracleDatenbank verändert Database Vault deshalb den Umgang mit Passwörtern und Benutzern erheblich. Bei der Installation der Option muss der Eigentümer von Database Vault angegeben werden. Dieser erhält die Rolle DV_OWNER. Soll das Einrichten von Benutzerkonten und die Zuweisung und Definition von Rollen zur Aufgabenverteilung als eigenständige Funktion eingerichtet werden, kann ein zweiter Benutzer angegeben werden, der dann die Rolle DV_ACCTMGR erhält. Verzichtet man auf diese eigenständige Funktion, erhält automatisch der Benutzer mit der Rolle DV_OWNER die Rolle DV_ACCTMGR. Zwei weitere funktionsspezifische Rollen werden eingerichtet: DV_ADMIN ermöglicht es, administrative Aufgaben an ausgewählte Personen zu delegieren. Damit kann man beispielsweise anwendungsspezifische DBAs ohne Leserechte einrichten. Personen mit der Rolle DV_SECANALYST können als Sicherheitsbeauftragte die nötigen Rechte für die Wahrnehmung ihrer speziellen +81./(5 * P E + & R . * Security Aufgaben eingeräumt werden. Beide Rollen kann ausschließlich der Benutzer mit der Rolle DV_OWNER vergeben. Schließlich gibt es eine Entsprechung der Rolle PUBLIC in der Rolle DV_PUBLIC. Die Benutzer, die diese Rolle erhalten, können Aktionen vornehmen und haben Zugriff auf Objekte, die innerhalb von Database Vault PUBLIC sind. Die Benutzerverwaltung der gesamten Datenbank (nicht nur die Verwaltung der Benutzer, die mit der Option Database Vault arbeiten) liegt nach der Installation von Database Vault ausschließlich in der Hand der Person mit der Rolle DV_ACCTMGR. Nur diese Person kann Benutzer mit CREATE USER einrichten oder mit ALTER USER ändern. Damit wird verhindert, dass beispielsweise Benutzer mit der Rolle DBA sich den Zugriff auf Daten in Database Vault "erschleichen", indem sie das Passwort eines Benutzers ändern. Die Änderung des eigenen Passwortes ist einem Anwender darüber hinaus nur noch nach Angabe des alten Passwortes nach folgendem Muster möglich: ALTER USER scott IDENTIFIED BY U1ser_n2ame REPLACE tiger Listing 1: Eigenes Passwort ändern %HVWVROXWLRQV %DVHGRQ2UDFOH $AS5NTERNEHMEN $IE(5.+,%2'MB(#O+'BETREUTERFOLGREICHMITTELSTÛNDISCHE5NTERNEHMENIM)43EKTOR 5NSER:IELISTES3IEDABEIZUUNTERSTÓTZENDAS-AXIMUMAUS)HREN)4)NVESTITIONEN HERAUSZUHOLEN7IRERARBEITENOPTIMIERTE,SUNGENDIEAUF)HRE"EDÓRFNISSEABGESTIMMTSIND !LLEUNSERE-ITARBEITERSINDu/RACLE#ERTIFIED0ROFESSIONALSh 3OMITBIETENWIR)HNENBESTMGLICHE"ERATUNGUND(ILFESTELLUNGINALLEN"ELANGENRUNDUMDIE)4 5NSER!NGEBOTENTHÛLTUNTERANDEREMFOLGENDE$IENSTLEISTUNGEN #ONSULTING $"2!3$ATABASE2EMOTE!DMINISTRATION3ERVICE /PTIMALE+ONFIGURATION)HRER/RACLE$ATENBANK &ÓLLGRADDER4ABLESPACES !NZAHLDERFREIEN%XTENTSJE$ATENBANKOBJEKT )NTEGRITÛTDER)NDIZES &RAGMENTIERUNGINNERHALBDER$ATENBANK !LERTLOG$ATEI 4RACE$ATEIEN $ATENBANK0ERFORMANCE $R/RACLE$ER$ATENBANK#HECK "ERICHTMIT6ORSCHLÛGENZUR$URCHFÓHRUNGVON3OFORTMANAHMEN 5NTERSUCHUNGUND/PTIMIERUNGDERPHYSIKALISCHENUNDLOGISCHEN3TRUKTUR)HRER$ATENBANK 5NTERSUCHUNGUND"EWERTUNGDER0ERFORMANCE)HRER$ATENBANKUND3ERVER(ARDWARE 5NTERSUCHUNGUND/PTIMIERUNGDER0ARAMETERDATEI)HRER$ATENBANK 5NTERSUCHUNGUND"EWERTUNGVON&EHLERNAN(ANDDER&EHLERPROTOKOLLDATEIEN %LEMENTARE3YNCHRONISATIONVON$ATENBANK"ETRIEBSARTUND"ACK5P-ODUS %RSTELLENVON3KRIPTENZUR!UTOMATISIERUNG)HRER$ATENBANK3TART3TOP"ACK5P%XPORT www.doag.org %HVWVROXWLRQV %DVHGRQ2UDFOH +81./(5 * P E + & R . * (AUPTSITZ (5.+,%2'MB(#O+' "ANNWALDALLEE +ARLSRUHE &ON &AX 'ESCHÛFTSTELLE0FALZ (5.+,%2'MB(#O+' )M"IRKIG .EUSTADT7EINSTRAE &ON &AX 'ESCHÛFTSSTELLE"ODENSEE (5.+,%2'MB(#O+' ,OHNERHOFSTRAE +ONSTANZ &ON &AX %-AIL)NFO HUNKLERDE )NTERNETWWW HUNKLERDE News Q3-2006 25 14_27_214638_DOAG 21.07.2006 Security 8:27 Uhr Seite 26 Datenbank Auch die Passwörter selbst sind in Database Vault standardmäßig stärker gesichert als bisher. Dies wird durch eine Funktion erreicht, die überprüft, ob neu angelegte Passwörter komplexeren Anforderungen hinsichtlich ihrer Länge, der Verwendung unterschiedlicher Zeichentypen usw. genügen (password verify function). Bisher konnte eine derartige Funktion schon eingesetzt werden – allerdings musste sie selbst programmiert und aktiviert werden. Nach der Installation der Database-Vault-Software ist ein Einloggen in der Datenbank mit dem Zusatz AS SYSDBA nicht mehr möglich. Lediglich der Zusatz AS SYSOPER ist nach wie vor erlaubt – und wird auch mindestens zum Starten der Datenbank benötigt. Da einige Werkzeuge und Features wie Data Pump, Recovery Manager oder Data Guard teilweise darauf angewiesen sind, mit AS SYSDBA arbeiten zu können, gibt es von Oracle empfohlene spezielle Vorgehensweisen, die ein CONNECT AS SYSDBA kontrolliert ermöglichen (siehe Oracle Database Vault Administration Guide). Weitere Komponenten Die beschriebenen Rollen sind nur die erste Komponente, die Database Vault zur "Gewaltenteilung" einsetzt. Weitere Komponenten sind Realms, Factors und Rules. Diese Komponenten und einige Einsatzmöglichkeiten werden nachfolgend kurz aufgezeigt. Auf die Möglichkeit, im Lieferumfang enthaltene und auch selbst angelegte Berichte zu erstellen, wird hier nicht eingegangen. Absolut zentraler Bestandteil beim Arbeiten mit Database Vault sind die so genannten Realms (Bereiche). Realms sind logische Konstrukte, denen Schema-Objekte und Rollen zugeordnet werden können und die durch diese Zuordnung vor dem Zugriff durch privilegierte Benutzer geschützt sind. Unter privilegierten Benutzern versteht man hier solche, die entweder in der Datenbank DBA-Privilegien (einschließlich des Benutzers SYS) oder so genannte ANY-Privilegien genießen (z.B. SELECT ANY TABLE). Das soll an einem kleinen Beispiel gezeigt werden. Es könnte zwar mit dem 26 News Q3-2006 Administrator dargestellt werden, aber um zusätzlich zu verdeutlichen, wie man auf der Kommandozeile mit Oracle Database Vault arbeitet, wird diese Variante benutzt. Nehmen wir an, es ist bereits ein Realm mit dem Namen VERTRAULICH angelegt und die Tabelle EMP soll diesem Realm zugeordnet werden. Folgender Aufruf ist notwendig: DVSYS.DBMS_MACADM.ADD_OBJECT_TO_REALM (realm_name => 'VERTRAULICH', object_owner => 'SCOTT', object_name => 'EMP', object_type => 'TABLE'); Listing 2: Tabelle einem Realm zuweisen Selbst die Benutzer SYS und SYSTEM können nun nicht mehr auf EMP zugreifen – weder lesend, noch schreibend und auch nicht strukturverändernd. Jeder derartige Versuch führt zu einer Fehlermeldung: % sqlplus system/MeinPasswort_156 SQL> CREATE TABLE mein_emp AS SELECT * FROM scott.emp; ERROR at line 4: ORA-00604: error at recursive SQL level 1 ORA-20401: Realm violation on create table MEIN_EMP ORA-06512: at 'DVSYS.AUTHORIZE_EVENT’, line 35 ORA-06512: at line 13 Listing 3: Versuch, einen Realm-Schutz zu umgehen Selbst Scott, Besitzer der Tabelle, und alle Benutzer, die nach einem GRANT direkt Zugriff auf EMP hatten, können die Tabelle nicht mehr bearbeiten, sondern müssen ausdrücklich Zugriff auf das Realm erhalten. www.doag.org 14_27_214638_DOAG 21.07.2006 8:27 Uhr Seite 27 Datenbank Database Vault legt im Rahmen der Installation standardmäßig einige Realms an. Zunächst sind das die Tablespaces DVSYS und DVF mit den Objekten des Database Vault. Des Weiteren werden sowohl das Oracle Data Dictionary also auch das Repository des Enterprise Manager als Realm eingerichtet. Der Zugriff auf Realms lässt sich unter anderem durch den Rückgriff auf die so genannten Factors steuern. Eine Reihe von Factors sind im Lieferumfang enthalten und vergleichbar mit den Ergebnissen, die auch die Funktion SYS_CONTEXT mit dem Namensbereich USERENV liefert, z.B. AUTHENTICATION_METHOD oder SESSION_USER. Mithilfe von Factors lässt sich z.B. festgelegen, ob beim Zugriff auf Objekte in einem Realm über das Intranet weiter reichende Aktionen durchgeführt werden können als beim Zugriff auf die gleichen Objekte über eine VPN-Verbindung. Das Arbeiten mit Factors bietet noch weiter gehende Möglichkeiten, denn die im Lieferumfang enthaltenen Factors können zum einen zu neuen Factors kombiniert werden, und zum anderen lassen sich auch eigene Factors definieren, denen Werte z.B. über Konstanten oder PL/SQLRoutinen zugewiesen werden. Schließlich erhält man über die Zuweisung von Labels der Option "Oracle Label Security and Factors" die Möglichkeit, die beiden Security-Optionen "Label Security" und "Database Vault" zu integrieren. Aus Performance-Gründen werden Factors im Cache des Arbeitsspeichers vorgehalten. Security Ein weiteres Feature, die so genannten Rules, und ihre besondere Ausprägung, die Command Rules, bieten eine flexible Erweiterung der Kontrollmöglichkeiten. Man kann Regeln definieren, die bei der Beurteilung, ob bestimmte Aktionen erlaubt sind, ausgewertet werden. Auf diese Weise ist etwa das Vier-Augen-Prinzip realisierbar oder allgemein das Binden von SQL-Befehlen an festgelegte Voraussetzungen. Außerdem lassen sich beispielsweise durch eine Regel, die auf jeden Fall immer den Wert FALSE liefert, Befehle unterbinden, die dem Eigentümer eines Objekts normalerweise nicht genommen werden können. Konkret heißt das, dass der Eigentümer einer Tabelle z.B. daran gehindert werden kann, diese Tabelle mit DROP zu löschen oder mit ALTER in ihrer Struktur zu ändern. Rules werden immer im Rahmen von so genannten Rule Sets verwaltet. Dadurch ist es z.B. leicht möglich, mehr als eine Regel für ein und dieselbe Aktion zu definieren. Verfügbarkeit Oracle Database Vault wird als Erstes auf dem Betriebssystem Linux verfügbar sein. Weitere Plattformen folgen. Kontakt: Heinz-Wilhelm Fabry [email protected] Willkommen in der Welt der IT-Solutions! www.doag.org News Q3-2006 27