DBAtlas · Atlas für Datenbankbetrieb

Oracle Database Security Hardening (Prüfung, Netzwerk, TLS, Authentifizierung, Berechtigungen, Unified Auditing, TDE)

OracleStufe: FortgeschrittenDauer: 5 Min. (Prüfung) – 4 Std. (vollständiges Hardening)

Dies ist kein Installations-Guide: Er findet und schließt die Lücken einer laufenden Oracle-19c-/23ai-(26ai-)Datenbank (Single Instance, Oracle Restart oder RAC; CDB/PDB). Zuerst listet die schreibgeschützte Sicherheitsprüfung die Befunde nach Schweregrad auf und nennt für jeden Befund die passende Karte; danach schließt du die Bereiche einzeln oder alle der Reihe nach: Listener und TCP.VALIDNODE_CHECKING, Firewall, TCPS (Wallet) oder Native Network Encryption, 12C-Passwort-Verifier und Profile, Sperren der Standardkonten, Rollendesign und Entzug der UTL_*-Rechte von PUBLIC, Unified Auditing und AUDSYS-Bereinigung, TDE, verschlüsselte Backups, Betriebssystem und RU-Stand. TDE sowie RMAN-/Data-Pump-Verschlüsselung erfordern die Advanced Security-Lizenz; alles andere ist lizenzfrei. Am Ende läuft die Prüfung erneut.

Topologie: Single Instance / Oracle Restart / RAC (2–8 Nodes), CDB + PDB; Anwendungsserver (Client-Prüfung)

Szenarien

  • Sicherheitsprüfung: Welche Lücken habe ich? (schreibgeschützt) — Der erste Scan: Konten mit Standardpasswort und offene Konten, alte Passwort-Verifier, Profile, DBA-/ANY-Rechte, an PUBLIC vergebene UTL_-PL/SQL-Packages, Auditing, TDE, unverschlüsselte Sessions, Listener und Dateiberechtigungen; er ändert nichts.
  • Vollständiges Hardening (alle Bereiche der Reihe nach) — Neu installierte oder nie gehärtete Datenbank: Alle Bereiche werden in einer sicheren Reihenfolge umgesetzt; Listener und Datenbank werden ein- bis zweimal neu gestartet (Wartungsfenster erforderlich).
  • Netzwerk und Verbindungen: Wer darf sich von wo verbinden? (Listener, TCP.VALIDNODE_CHECKING, Firewall) — Der Listener ist für jede Adresse offen, Invited Nodes sind nicht definiert, 1521/5500 sind für alle erreichbar. Der Listener wird neu gestartet (bestehende Sessions sind nicht betroffen).
  • Verbindungen verschlüsseln (TCPS-Wallet oder Native Network Encryption) — Der Netzwerkverkehr ist unverschlüsselt; TLS (TCPS, Wallet, Zertifikat, SSL_SERVER_DN_MATCH auf dem Client) oder zertifikatlose Native Encryption (SQLNET.ENCRYPTION_SERVER=REQUIRED). Beide Wege sind lizenzfrei; der Listener wird neu gestartet, bestehende Sessions sind nicht betroffen.
  • Authentifizierung und Passwörter (12C-Verifier, Profile, Standardkonten) — 10G-/11G-Passwort-Verifier, kein Passwortprofil, Konten mit Standardpasswort oder Beispielkonten offen; persönliche DBA-Konten. Keine Ausfallzeit.
  • Least Privilege: Rollen, PUBLIC und das Anwendungskonto — DBA-/RESOURCE-/ANY-Rechte beim Anwendungskonto, UTL_FILE/UTL_TCP/UTL_HTTP an PUBLIC vergeben; Schema-Owner, Lese-/Schreibrollen und Berechtigungsbericht. Keine Ausfallzeit.
  • Auditing: Wer hat was getan? (Unified Auditing, AUDSYS-Bereinigung) — Der Auditor verlangt Nachweise über Anmeldungen, Konto- und Schemaänderungen; Unified Audit Policies, Bereinigung von AUDSYS nach Aufbewahrungsfrist und Weiterleitung der Einträge an Syslog bzw. einen zentralen Server. Unified Auditing ist lizenzfrei.
  • Daten auf der Platte verschlüsseln (TDE) — TDE gegen das Auslesen von Datafiles, Backups oder Plattenkopien: WALLET_ROOT, Keystore, Master Key, Tablespace-Verschlüsselung (online). Erfordert die Advanced-Security-Lizenz; ein Neustart für WALLET_ROOT.
  • Sicherheit der Backups (RMAN-Verschlüsselung, Automatisierung ohne Passwort, Berechtigungen) — RMAN-/Data-Pump-Backups sind unverschlüsselt, Skripte enthalten Klartextpasswörter, das Backup-Verzeichnis ist für alle lesbar; RMAN Encryption, ENCRYPTION_PWD_PROMPT, Wallet (SEPS) und Verzeichnisberechtigungen. RMAN- und Data-Pump-Verschlüsselung erfordern die Advanced-Security-Lizenz.
  • Betriebssystemseite (oracle-Konto, Dateiberechtigungen, Core Dumps, SELinux) — Das Konto oracle hat ein Passwort und kann sich anmelden, die Berechtigungen auf Passwortdatei / Network Admin / Wallet sind zu offen, SELinux ist deaktiviert. Das Core-Dump-Limit greift in einer neuen Session bzw. nach einem Neustart.
  • Patches und Version: Bin ich auf dem neuesten RU? — Installiertes RU, datapatch-Status und Support-Zeitplan; verweist zum Einspielen auf den RU-Patch-Guide. Schreibgeschützt.

Vor dem Start

  • Im Profil des Benutzers oracle sind ORACLE_HOME=…, ORACLE_SID… (Instance-Name des jeweiligen Nodes)… und PATH gesetzt; sqlplus / as sysdba funktioniert ohne Passwort (Betriebssystem-Authentifizierung). Die Schritte laufen mit sudo -iu oracle in einer Login-Shell, das Profil wird also geladen.… Der Listener wird aus dem Grid Infrastructure Home (…) als … verwaltet.… Erscheinen Nicht-ASCII-Zeichen in der Ausgabe als ?, ergänze im Profil export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 (nur Anzeige; keine Auswirkung auf die Daten).
  • Auf dem Server sind zwei separate Sessions offen; in einer bleibt sqlplus / as sysdba geöffnet. Eine lokale / as sysdba-Verbindung (Bequeath) ist von Listener, sqlnet.ora-Netzwerkregeln und Profilen nicht betroffen: Sie ist bei einem Listener-, Invited-Nodes- oder Verschlüsselungsfehler immer der Rückweg. Teste nach jedem Schritt, der den Zugriff einschränkt, eine neue Verbindung in einer separaten Session (vom Anwendungsserver aus).
  • Wartungsfenster: Der Listener wird neu gestartet (neue Verbindungen werden einige Sekunden abgewiesen, bestehende Sessions sind nicht betroffen)…; die statischen Parameter WALLET_ROOT für TDE und UNIFIED_AUDIT_SYSTEMLOG für das Auditing erfordern einen Neustart der Datenbank….… Im RAC kann der Neustart der Datenbank Node für Node (rolling) erfolgen: srvctl stop instance -db … -node <node> / start.…
  • TDE, RMAN-Backup-Verschlüsselung und Data-Pump-Verschlüsselung erfordern die Lizenz Oracle Advanced Security (Enterprise Edition + Option; in Oracle Cloud / Exadata Cloud enthalten). Ohne Lizenz setze diese Schritte nicht um; verwende stattdessen Verschlüsselung auf Plattenebene (LUKS) oder Storage-Verschlüsselung. Native Network Encryption und TLS sind dagegen in allen Editionen lizenzfrei (seit 11gR2).
  • Die Liste der Anwendungen, die sich mit der Datenbank verbinden, die Adressen der Data-Guard-/OEM-/Backup-Server und die Client-Versionen. Der Prüfschritt zeigt die aktuellen Sessions.
  • Es gibt ein aktuelles RMAN-Backup mit getestetem Restore (RMAN-Backup-Strategie). Ein vor TDE erstelltes Backup lässt sich ohne Keystore öffnen; nach TDE lassen sich neue Backups ohne Keystore-Backup nicht öffnen.

Phasen der Anleitung

  • Sicherheitsprüfung (schreibgeschützt) — Befunde innerhalb der Datenbank auflisten · Betriebssystem- und Net-Seite prüfen
  • Vor dem Start: Rückfallpunkt — Net-Dateien und Parameter sichern · Benutzer, Profile und Berechtigungen exportieren
  • Berechtigungen — 1. Diagnose — Berechtigungen der Anwendungskonten und an PUBLIC vergebene PL/SQL-Packages anzeigen
  • Berechtigungen — 2. Sicherheitsnetz — Objekte finden, die von den PUBLIC-Rechten abhängen
  • Berechtigungen — 3. Umsetzung — Schema-Owner, Rollen und Konten anlegen · Tabellenrechte an die Rollen vergeben · Überzählige Rechte des Anwendungskontos entziehen · UTL_*- und gefährliche PL/SQL-Package-Rechte PUBLIC entziehen · Berechtigungsbericht
  • Berechtigungen — 4. Verifizierung — Effektive Rechte des Anwendungskontos verifizieren · DDL-Versuch vom Anwendungsserver
  • Authentifizierung — 1. Diagnose — Kontostatus, Verifier und Profile anzeigen
  • Authentifizierung — 2. Sicherheitsnetz — Client-Versionen prüfen
  • Authentifizierung — 3. Umsetzung — Oracle-Konten mit Standardpasswort, Beispielkonten und ungenutzte Konten sperren · Passwortprofile anlegen · Profil DEFAULT im CDB Root härten · 12C-Passwort-Verifier erzwingen (sqlnet.ora) · Passwörter für die Anwendungskonten setzen · Persönliches DBA-Konto anlegen …
  • Authentifizierung — 4. Verifizierung — Konto- und Verifier-Status verifizieren · Anmeldung vom Anwendungsserver testen (neue Session)
  • Netzwerkverschlüsselung — 1. Diagnose — Verschlüsselungsstatus der Sessions anzeigen
  • Netzwerkverschlüsselung — 3. Umsetzung — Native Network Encryption erzwingen · Server-Wallet anlegen · Von der CA zurückgegebene Zertifikate ins Wallet aufnehmen · Wallet für den Listener-Eigentümer freigeben… und auf die anderen Nodes kopieren… · TLS-Einstellungen für den Listener schreiben · TLS-Einstellungen für das Datenbank-Home schreiben …
  • Netzwerkverschlüsselung — 4. Verifizierung — Verifizieren, dass eine neue Verbindung verschlüsselt ist
  • Netzwerkverschlüsselung — 5. Danach — Unverschlüsselten Port 1521 schließen und Zertifikat erneuern
  • Netzwerk — 1. Diagnose: Wer verbindet sich von wo? — Listener und Verbindungsquellen anzeigen
  • Netzwerk — 3. Umsetzung — Listener nur zugelassene Adressen annehmen lassen (Valid Node Checking) · Listener neu starten · Ports in der Firewall nur für zugelassene Netze öffnen
  • Netzwerk — 4. Verifizierung — Verbindung vom Anwendungsserver testen (neue Session)
  • Audit — 1. Diagnose — Audit-Modus, Policies und AUDSYS-Größe anzeigen
  • Audit — 3. Umsetzung — Audit Policies definieren und aktivieren · AUDSYS in einen eigenen Tablespace verlagern und Bereinigung einplanen · Vordefinierte Policies und Bereinigung im CDB Root aktivieren · Audit-Zusammenfassung ins Syslog schreiben (UNIFIED_AUDIT_SYSTEMLOG) · rsyslog: local3 an den zentralen Server weiterleiten · rsyslog und Datenbank neu starten
  • Audit — 4. Verifizierung — Eine Änderung vornehmen und den Eintrag prüfen
  • Betriebssystem — 1. Diagnose — oracle-Konto, Dateiberechtigungen, Core Dumps und SELinux
  • Betriebssystem — 3. Umsetzung — Passwort des Kontos oracle sperren · Berechtigungen von Passwortdatei und Net-Dateien korrigieren · Core Dumps für den Benutzer oracle deaktivieren · SELinux im Modus Enforcing halten
  • Betriebssystem — 4. Verifizierung — Änderungen verifizieren
  • TDE — 1. Diagnose — Keystore- und Tablespace-Verschlüsselungsstatus anzeigen
  • TDE — 2. Sicherheitsnetz — Backup und Platzprüfung vor TDE
  • TDE — 3. Umsetzung — WALLET_ROOT setzen · Datenbank für WALLET_ROOT neu starten · Keystore anlegen, öffnen und Master Key setzen · Keystore auf die anderen RAC-Nodes kopieren · Tablespace verschlüsseln · Keystore sichern
  • TDE — 4. Verifizierung — Keystore und verschlüsselten Tablespace verifizieren
  • Backup — 1. Diagnose — RMAN-Verschlüsselungseinstellung und Status der Backups anzeigen
  • Backup — 3. Umsetzung — RMAN-Backup-Verschlüsselung aktivieren · Verschlüsseltes Backup testen · Data-Pump-Exporte verschlüsseln · Passwortlose Verbindungen für Skripte (Secure External Password Store) · Berechtigungen von Backup- und Wallet-Verzeichnissen korrigieren
  • Patches und Version — 1. Diagnose — Installiertes RU und datapatch-Status anzeigen
Schritt-für-Schritt-Plan für Ihre Umgebung öffnen →