Gewaltenteilung in der Datenbank: Oracle Database Vault

Werbung
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)HNENBESTMšGLICHE"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ÓHRUNGVON3OFORTMA”NAHMEN
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
.EUSTADT7EINSTRA”E
&ON
&AX
'ESCHÛFTSSTELLE"ODENSEE
(5.+,%2'MB(#O+'
,OHNERHOFSTRA”E
+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
Herunterladen