Eine Einführung in das Oracle Database Security Assessment Tool
Durch fehlerhafte oder unzureichende Konfigurationen können Sicherheitsschwachstellen in einer Datenbank entstehen. Diese Sicherheitsschwachstellen begünstigen unberechtigte Zugriffe auf die Datenbank und ihre Daten. Die Anpassung gezielter Konfigurationen erhöht die Sicherheit der Datenbank. Für diese Problematik bietet Oracle seit 2016 das Oracle Database Security Assessment Tool (kurz: Oracle DBSAT) an.
Was ist Oracle DBSAT?
Oracle DBSAT ist ein Kommandozeilen-Tool zur Sicherheitsüberprüfung der Oracle-Datenbank. Es überprüft die Datenbank auf eine Vielzahl potenzieller Sicherheitsschwachstellen, welche durch gezielte Konfiguration vermieden und behoben werden können.
Hierzu werden durch Oracle DBSAT, 86 Checks verschiedener Kategorien durchgeführt. Diese Checks basieren sowohl auf Abfragen auf der Datenbankebene als auch auf Abfragen auf Betriebssystemebene. Die Checks beziehen sich auf folgende Kategorien:
- Grundlegende Informationen (z. B. Datenbankversion und Patches)
- User Accounts
- Privilegien und Rollen
- Autorisierungskontrolle (User)
- Zugriffskontrolle (Objekt)
- Auditing
- Verschlüsselung
- Datenbankkonfigurationen
- Netzwerkkonfigurationen
- Betriebssystem
Die Analyseergebnisse werden in einem Report dargestellt. Dabei werden die einzelnen Checks bewertet und in die Risikolevel Pass, Evaluate, Advisory, Low Risk, Medium Risk und High Risk eingeordnet. Die Bedeutungen der einzelnen Risikolevel können der nachfolgenden Tabelle entnommen werden.
Der folgende Ausschnitt aus einem Report zeigt einen Check mit dem Status „High Risk". Dieser Check merkt an, dass die Datenbank seit 806 Tagen nicht gepatcht wurde und dies unmittelbar geprüft werden muss.
Der nächste Ausschnitt zeigt das Gegenbeispiel mit einem Check im Status „Pass", bei dem kein Sicherheitsrisiko besteht. Bei diesem Check wurde geprüft, ob ein User die DBA-Rolle besitzt.
Darüber hinaus enthält der Report Handlungsempfehlungen. Diese beziehen sich sowohl auf die Behebung vorhandener Sicherheitsschwachstellen als auch auf die Vermeidung neuer Sicherheitsschwachstellen. Zudem kann das Tool durch den Anwender um eigene Checks erweitert werden.
Oracle DBSAT überprüft aber nicht nur die Sicherheit der Datenbank. Das Tool ist zudem in der Lage, sensible Daten in der Datenbank lokalisieren. So wird dem Anwender aufgezeigt, welche Daten besonderen Schutz benötigen. Die Daten werden in Kategorien unterteilt, welche durch den Anwender beliebig erweitert werden können. Auch für diese Ergebnisse wird ein Report angefertigt. In dem Report werden die Tabellen, Spalten und Schemata mit sensiblen Daten und ihrer zugehörigen Kategorie aufgeführt. Folgende Kategorien werden in dem Report aufgeführt:
- Identifikationsinformationen
- Biografische Informationen
- IT-Informationen
- Finanzinformationen
- Gesundheitsinformationen
- Jobinformationen
- Akademische Informationen
Wie ist Oracle DBSAT aufgebaut und wie funktioniert es?
Oracle DBSAT besteht aus drei Komponenten: dem Collector, dem Reporter und dem Discoverer.
Der Collector ist für die Sammlung der zu analysierenden Daten verantwortlich. Dafür werden von ihm Abfragen auf Datenbank- sowie Betriebssystemebene durchgeführt. Die gesammelten Daten werden dann in einer JSON-Datei gespeichert.
Der Reporter ist ein Python-Programm. Er analysiert die gesammelten Daten und fertigt auf Grundlage dessen den Report an. Dieser wird in HTML-, TXT-, Excel- und JSON-Format gespeichert.
Der Discoverer ist ein von Collector und Reporter unabhängiges Java-Programm. Durch ihn werden die sensiblen Daten lokalisiert. Zudem wird durch den Discoverer der Report in HTML- und CSV-Format angefertigt.
Wie wird Oracle DBSAT angewendet?
Zur Verwendung des Tools gibt es folgende Voraussetzungen:
- Python (Durchführung der Sicherheitsprüfungen)
- Java (Lokalisierung von sensiblen Daten)
Die zu analysierenden Daten können mit dem Befehl dbsat collect [-n] <database_connect_string> <output_file>
gesammelt werden.
./dbsat collect dbsat_user@pdb1 pdb1_output Database Security Assessment Tool version 2.0.2 (May 2018) Connecting to the target Oracle database... SQL*Plus: Release 12.2.0.1.0 Production Copyright (c) 1982, 2016, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production Setup complete. SQL queries complete. OS commands complete. Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production DBSAT Collector completed successfully. Calling /u01/app/oracle/product/12.2.0.1/db_1/bin/zip to encrypt pdb1_output.json... Enter password: Verify password: updating: pdb1_output.json (deflated 88%) zip completed successfully.
Danach werden die Daten mit dem Befehl dbsat report [-n] [-a] [-g] [-x <section>] <input_file>
analysiert und der Report angefertigt. Durch die verschiedenen Optionen können die Aufrufe und der Report spezifiziert werden.
- -n: Der Output wird nicht verschlüsselt
- -a: Der Report wird auch für Schema-Only Accounts angefertigt
- -g: Auch common grants in PDBs werden angezeigt
- -x: Ausgewählte Abschnitte werden aus dem Report ausgeschlossen
./dbsat report pdb1_output Database Security Assessment Tool version 2.0.2 (May 2018) Archive: pdb1_output.zip [pdb1_output.zip] pdb1_output.json password: inflating: pdb1_output.json DBSAT Reporter ran successfully. Calling /usr/bin/zip to encrypt the generated reports... Enter password: Verify password: zip warning: pdb1_output_report.zip not found or empty adding: pdb1_output_report.txt (deflated 78%) adding: pdb1_output_report.html (deflated 84%) adding: pdb1_output_report.xlsx (deflated 3%) adding: pdb1_output_report.json (deflated 82%) zip completed successfully.
Zur Lokalisierung der sensiblen Daten muss eine Konfigurationsdatei angepasst werden. Die Konfigurationsdatei muss mindestens die Informationen zur Datenbankverbindung enthalten. Daneben können die beiden folgenden Eigenschaften spezifiziert werden:
- Discovery-Einstellungen
- Einstellung der sensiblen Kategorien an Daten
Eine Beispieldatei befindet sich in dem Unterverzeichnis Discover/conf
Bei Bedarf kann zusätzlich ein pattern-file angelegt werden, indem die Kategorien der sensiblen Daten definiert und erweitert werden können. Dann kann der Discoverer über folgenden Befehl dbsat discover [-n] -c <config_file> <output_file>
ausgeführt werden.
export JAVA_HOME=/u01/jdk1.8.0_181 ./dbsat discover -c ./Discover/conf/dbsat.config pdb1_discovery Database Security Assessment Tool version 2.0.2 (May 2018) Enter username: dbsat_user Enter password: DBSAT Discover ran successfully. Calling /usr/bin/zip to encrypt the generated reports... Enter password: Verify password: zip warning: pdb1_discovery_report.zip not found or empty adding: pdb1_discovery_discover.html (deflated 73%) adding: pdb1_discovery_discover.csv (deflated 30%) Zip completed successfully.
Haben Sie sich bereits mit der Sicherheit Ihrer Datenbanken beschäftigt? Wenn nicht, müssen Sie jetzt handeln! Die ORDIX AG unterstützt Sie dabei gerne. Weitere Informationen und Kontaktmöglichkeiten finden Sie unter ordix.de.
Seminarempfehlung
Auch bei der Weiterbildung Ihrer Mitarbeiter unterstützen wir Sie gerne mit unseren Seminaren zu dem Oracle Security. Weitere Informationen finden Sie hier.
ORACLE SECURITY DB-ORA-33
Zum SeminarJunior Consultant bie ORDIX
Bei Updates im Blog, informieren wir per E-Mail.
Kommentare