![]() |
Oracle Security in der Praxis |
Smoke Tests sind sehr häufig im eCommerce Bereich zu finden, da viele Updates am System wie Katalog-Wechsel stattfinden oder neue Releases/Funktionen/Design im System eingespielt werden. D.h. ein Smoke Test prüft wesentliche Funktionalität auf Korrektheit.
Mein Security Smoke Test testet nun die eingestellte Sicherheit einer Oracle Datenbank und zwar egal welche Version (getestet mit 11g und 12c).
Wie gesagt, habe ich den Security Smoke Test im letzten Jahr (2015) vorgestellt. Nun stelle ich diesen Test für die Oracle Cloud zur Verfügun. Hierzu musste ich einige Änderungen machen. In der Cloud ist der Test ohne Portscanning, SID Guessing und Bruteforce Attacke verfügbar. Das hat den Grund, da solche Tools nicht in fremden Umgebungen ausgeführt werden dürfen (siehe Hacker Paragraf StGB §202b und 202c sowie Bundesverfassungsgerichtshof Beschluß vom 18.5.2009 und natürlich die Vertragsgrundlage mit dem Cloud Provider).
Dafür stelle ich den Code in der Cloud für alle meine Kunden und Interessierten zur Verfügung. Das Deployment in die Cloud (oder auch on-premise) geht sehr einfach mit GIT clone bzw. per Knopfdruck (Hudson-Jobs) wird sogar eine komplette Umgebung (DB, Apex mit ODRS und Apex deployment) erstellt. Siehe hierzu Deployment in Cloud Umgebungen.
Diese hier gezeigte Version des Security Smoke Tests basiert auf Apex 5.0 mit responsive Layout.
Wie funktioniert nun der Security Smoke Test?
Im Grunde genommen, ist das Prinzip sehr einfach:- In der Oberfläche des Security Smoke Test wird das zu überprüfende System eingestellt.
Mit Hostname, Port Service Name und die Credentials für einen DBA. Passwörter werden doppelt verschlüsselt, (siehe weiter unten)
![]() |
System in der Oberfläche anlegen |
- Auf Basis der Informationen zum System können dynamisch Database Links für den Scan erzeugt werden. Diese werden nach dem Scan automatisch aus dem System entfernt. Die Erstellung ist im Scan eingebettet:
EXECUTE IMMEDIATE 'create database link dblink2remotedb connect to '||p_dba||' identified by "'||p_pw||'" using ' ||''''||l_ezconnect||'''';
- Mit Hilfe des DB Links werden alle notwendigen Informationen in das Repository des Security Smoke Tests aus der entfernten DB gelesen. Informationen zu den DB Parameters, PW Management, Role Management, Privilegien, User Management und Audit Einstellungen.
- Auf Basis der geladenen Daten wird über eine intelligente View Schicht ausgewertet. Jede Table mit Informationen aus der überprüften DB enthält zwei Views. Beispiel ist die Table DBPARAMETERS
- View DBPARAMETER_VW: Hier wird bewertet und farblich markiert
CREATE OR REPLACE FORCE VIEW "DBPARAMETER_VW" ("TEST_ID", "PARAMETER_NAME", "PARAMETER_VALUE", "ISDEFAULT", "ISDEPRECATED", "ISMODIFIED") AS
select test_id,
parameter_name,
CASE
WHEN upper(PARAMETER_NAME) = 'AUDIT_SYS_OPERATIONS'
AND upper(PARAMETER_VALUE) = 'FALSE' THEN
'<font color="red">'||parameter_value||'</font>'
ELSE parameter_value
END as parameter_value,
isdefault,
isdeprecated,
ismodified
from dbparameters; - View DBPARAMETER_EVAL_VW: hier werden die farblich markierten Parameter mit Punkte versehen: Orange = 5 Punkte, Rot = 20 Punkte
CREATE OR REPLACE FORCE VIEW "DBPARAMETER_EVAL_VW" ("TEST_ID", "PARAMETER_SCORE") AS
select test_id,
case
when instr(parameter_value, 'red')>0 THEN 20
when instr(parameter_value, 'orange')>0 THEN 5
else 0
end as parameter_score
from dbparameter_vw;
- Pro Test werden dann alle Punkte zusammengezählt und das ergibt den Score für einen Test.
Ich möchte nicht behaupten, dass die Überprüfung vollständig ist. D.h. es können zusätzliche Auswertungen eingebaut werden oder besser gesagt: für eine vollständige Prüfung sollten zusätzliche Überprüfungen eingebaut werden.
Installation der Apex Anwendung Security Smoke Test
Die Installation ist sehr einfach:Aufruf des Scripts 00_startInstall_Apex.sh auf dem Server mit dem Benutzer SYS oder einem DBA und die Apex Anwendung wird installiert.
Voraussetzung ist eine DB 11g oder 12c mit einer laufenden Apex 5.0 Umgebung.
Installation in der Cloud
Soll der Security Smoke Test in der Cloud zur Verfügung gestellt werden, dann hat man folgende Möglichkeiten:- git clone auf der DB VM in der Cloud (geht auch on-premise)
- Hudson Job Ausführung zur Erstellung einer kompletten Umgebung inklusive VM, DB, Apex, ORDS und natürlich die Apex Anwendung.
Der Vorteil in der Cloud ist die schnelle zur Verfügungstellung einer kompletten Umgebung. D.h. erstellt man einen DB as a Service in 11g oder 12c, ist bereits alles installiert, was der Security Smoke Test benötigt. Da die Services in der Cloud auch über eine REST API verfügen, kann der komplette Test inklusive der Umgebung (DB, ODRS, Apex) scriptgesteuert erstellt werden, sozusagen 1-Click oder wie Larry sagt: "Push the button".
Besonderheiten in der Cloud Umgebung
Für die Cloud-Umgebung gibt es einige Besonderheiten:- Der Security Smoke Test bekommt einen eigenen Tablespace. Die Anlage des TS in der Cloud erzeugt automatisch einen verschlüsselten TS mit TDE egal ob eine SE oder EE DB.
- Alle Passwörter des DBAs (gespeichert unter Systems) wird zusätzlich verschlüsselt.
- Apex und Oracle Data Rest Service sind bereits vorinstalliert.
- Wollen Sie die DBs in der Cloud überprüfen, dann müssen Sie die zu überprüfende VM in die Security List der Security Smoke Test VM hinzufügen. Nach dem Test können Sie die VM wieder entfernen. (macht man in der Compute Service Console-> View VM)
- Apex wird derzeit in der Version 5.0 in der Cloud zur Verfügung gestellt, d.h. der Patch 5.0.3 sollte manuell eingespielt werden.
Bedienung des Security Smoke Test
![]() |
Login |
![]() |
Homepage |
![]() |
Als erstes System erstellen |
![]() |
Security Smoke Test erstellen |
![]() |
Security Smoke Test ausführen |
![]() |
Scan wird durchgeführt |
![]() |
Auswertung direkt nach dem Scan |
![]() |
Detailansicht des Test Ergebnisses |
![]() |
Im System Trends erkennen |
Zusammenfassung
Dieses Beispiel zeigt, dass Security nicht kompliziert sein muss. Wissen kann digitalisiert werden. Die hier gezeigte Lösung sollte auf die Bedürfnisse seiner eigenen Security Policy angepasst werden.Falls Sie das Wissen noch nicht aufgebaut haben, dann wird es Zeit. Ein Anfang könnte mein Buch sein.
Keep on going to protect our data
Carsten
PS: Wer der den Code haben möchte, bitte direkte Email an mich.
Keine Kommentare:
Kommentar veröffentlichen