Inhalt | 6 |
1 Vorbemerkung | 14 |
2 Einführung | 18 |
3 Grundlagen zur IT-Sicherheit bei Datenbanken | 22 |
3.1 Die vier Grundbedrohungen | 22 |
3.2 Bedrohungs- und Risikoanalyse | 24 |
3.3 Ausflug in den Gesetzesdschungel | 27 |
3.3.1 Gesetzliche Anforderung an das Vorhandensein eines Sicherheitskonzepts | 29 |
3.3.2 Haftung von IT-Mitarbeitern | 30 |
3.3.3 Bundesdatenschutzgesetz | 32 |
3.3.4 Gesetz zur Bekämpfung der Wirtschaftskriminalität | 34 |
3.4 Sicherheitszonen einer Oracle-Datenbank | 36 |
4 Lösungen für eine höhere DB-Sicherheit (Best Practices) | 38 |
4.1 Passwortmanagement | 39 |
4.1.1 Kurzer Ausflug: Kerberos und Enterprise User Security | 46 |
4.2 Feature-Umfang – neue und nicht mehr vorhandene Features | 51 |
4.3 Mindestsicherheit implementieren (Härtung) | 53 |
4.4 Rollenmanagement | 58 |
4.5 Sicheres Datenbank-Link-Konzept | 62 |
4.6 Schutz von Anwendungen | 65 |
4.7 Datenschutz implementieren | 72 |
4.8 Ressourcenmanagement | 76 |
4.9 Zwecktrennung in der Datenbank | 79 |
4.10 Protokollierung | 81 |
4.11 Prozesse zum Erhalt des guten Sicherheitszustands | 84 |
4.12 Health Checks | 86 |
4.13 Einführung in das Patching | 87 |
4.14 Neuerungen in der Oracle-Datenbank 12c | 91 |
4.14.1 Benutzer- und Passwortmanagement | 92 |
4.14.2 Rollenmanagement und Zugriffskontrolle | 93 |
4.14.3 Neues oder altes Audit-Konzept (Unified Auditing) | 100 |
4.14.4 SoD in Datenbank (SYSBACKUP, SYSDG, SYSKM, SYS) | 107 |
4.14.5 Privileganalyse („Least Privilege“-Konzept) | 109 |
4.14.6 Transparent Sensitive Data Protection (TSDP) | 113 |
4.14.7 Data Redaction | 115 |
4.14.8 Real Application Security | 117 |
4.14.9 Neuerung bestehender Security-Features | 118 |
4.14.10 Interessante Konzepte | 119 |
4.14.11 Nicht mehr unterstützte Features der 12c-Datenbank | 133 |
5 Sicherheit einer Oracle-Datenbank prüfen |
134 |
5.1 Datenbankkonfiguration | 136 |
5.1.1 Abfrage 1001: erste Datenbankinformationen | 137 |
5.1.2 Abfrage 1001.1: Datenbankinformationen zu 12c (Container) | 138 |
5.1.3 Abfrage 1002: Datenbankversion | 141 |
5.1.4 Abfrage 1003: genutzte Datenbankoptionen | 142 |
5.1.5 Abfrage 1003.1: benutzte Optionen und Funktionen der Datenbank | 144 |
5.1.6 Abfrage 1004-1005: Enterprise Manager Informationen | 147 |
5.1.7 Abfrage 1006: Advanced Security Option (ASO) im Einsatz | 149 |
5.1.8 Abfrage 1007: Security-Parameter in init.ora | 151 |
5.1.9 Abfrage 1007.1: Show Hidden init.ora-Parameter | 155 |
5.1.10 Abfrage 1008: UTL_FILE_DIR und DIRECTORIES | 157 |
5.1.11 Abfrage 1009: OPEN_LINK und Anzahl der Datenbank-Links | 159 |
5.1.12 Abfrage 1010: SQL-Tuning | 160 |
5.1.13 Abfrage 1011: Status der Controlfiles | 161 |
5.1.14 Abfrage 1012: Redo Logs | 161 |
5.1.15 Abfrage 1013: Archive Logs | 162 |
5.1.16 Abfrage 1014: Tablespace-Informationen | 163 |
5.1.17 Abfrage 1015: Tablespace-Extents | 164 |
5.1.18 Abfrage 1016: Tablespace-Contents | 165 |
5.1.19 Abfrage 1017-1020: Temporary-Tablespace-Information | 166 |
5.1.20 Abfrage 1021: Datendateiinformationen | 168 |
5.1.21 Abfrage 1022: Objekte im SYSTEM-Tablespace | 170 |
5.1.22 Abfrage 1023: mögliche Benutzer mit falschem Default-Tablespace | 171 |
5.1.23 Abfrage 1024: SYSAUX-Tablespace | 172 |
5.1.24 Abfrage 1025: öffentliche Abhängigkeiten in Objekten | 173 |
5.1.25 Abfrage 1026: Synonyme auf Objekte in entfernten Datenbanken | 175 |
5.1.26 Abfrage 1027: Kommentare aus der Historie | 176 |
5.1.27 Abfrage 1028: Oracle-Standard-Schemata | 177 |
5.1.28 Abfrage 1029: manuelle Prüfung auf Default-Passwörter | 179 |
5.1.29 Abfrage 1030: Prüfung auf Default-Passwörter mittels View | 192 |
5.1.30 Abfrage 1030.1: User- und Passwort-Hashes | 193 |
5.1.31 Abfrage 1031: Passwortdatei | 194 |
5.1.32 Abfrage 1032: Profile anzeigen | 196 |
5.1.33 Abfrage 1033: Einstellungen der sicherheitsrelevanten Profile | 197 |
5.1.34 Abfrage 1034: Passwort-Verify-Funktion | 198 |
5.1.35 Abfrage 1035: Datenbank-Links | 199 |
5.1.36 Abfrage 1036: mögliche Privilegien der entfernten DB-Benutzer aus den Datenbank-Links | 200 |
5.1.37 Abfrage 1037: Wallets | 202 |
5.1.38 Abfrage 1038: Wallet-Zugriffssteuerungsliste (ACL) | 203 |
5.1.39 Abfrage 1039: spezielle Trigger (Logon, Startup) | 204 |
5.1.40 Abfrage 1040: Information-Lifecycle-Management (12c) | 205 |
5.1.41 Abfrage 1041: Zugriffssteuerungslisten (ACL) für Network Packages (HOST) | 206 |
5.1.42 Abfrage 1042: Zugriffssteuerungslisten für Network Packages (XML) | 208 |
5.1.43 Abfrage 1043: vollständige Informationen zur XML-Datenbank | 208 |
5.1.44 Abfrage 1044: Zugriffssteuerung auf Dateien im Betriebssystem | 218 |
5.1.45 Abfrage 1045: APEX-Gateway-Konfiguration | 220 |
5.1.46 Abfrage 1046: SQL*Net-Konfiguration | 223 |
5.1.47 Abfrage 1047: installierte Komponenten | 228 |
5.1.48 Abfrage 1048: Patches | 230 |
5.2 Datenbanküberwachung (Auditing) | 231 |
5.2.1 Abfrage 2001: AUDIT-init.ora-Parameter | 232 |
5.2.2 Abfrage 2002: Welche Systemprivilegien werden protokolliert? | 234 |
5.2.3 Abfrage 2003: Welche Systemprivilegien werden nicht protokolliert? | 237 |
5.2.4 Abfrage 2004: protokollierte Systemprivilegien im System | 240 |
5.2.5 Abfrage 2005: Überwachung von Objektprivilegien | 242 |
5.2.6 Abfrage 2006: 100 Audit-Datensätze von „Heute“ | 243 |
5.2.7 Abfrage 2007: 100 FGA-Audit-Datensätze von „Heute“ | 245 |
5.2.8 Abfrage 2008: überwachte Systemprivilegien | 246 |
5.2.9 Abfrage 2009: komplette Audit-Policy überwachter Systemprivilegien | 248 |
5.2.10 Abfrage 2009.1: Unified Audit-Policies (12c) | 250 |
5.2.11 Abfrage 2010–2012: Audit-Fehlerprüfung gemäß Oracle-Empfehlung | 252 |
5.2.12 Abfrage 2013: Wer verfügt über Audit-Systemprivilegien? | 253 |
5.2.13 Abfrage 2014: Shared Database Logons | 255 |
5.2.14 Abfrage 2015: Detailinformationen zu den Shared Database Logons (nur Heute) | 257 |
5.2.15 Abfrage 2016: verwaiste Benutzer (letzte Anmeldung > 90 Tage) | 258 |
5.2.16 Abfrage 2017: Database Control Logins | 261 |
5.2.17 Abfrage 2018: fehlerhafte Logins = Bruteforce-Attacken | 262 |
5.2.18 Abfrage 2019: aktuelle Sessions | 264 |
5.2.19 Abfrage 2020: Prüfung auf alte EM-9i-Sessions | 266 |
5.2.20 Abfrage 2021: Übersicht der Datenbankbenutzer | 267 |
5.2.21 Abfrage 2022: Übersicht der Datenbankbenutzer per Status | 269 |
5.2.22 Abfrage 2023: Übersicht der Datenbankbenutzer per Profil | 270 |
5.2.23 Abfrage 2024: Datenbankbenutzer sortiert nach Sperrdatum | 271 |
5.2.24 Abfrage 2025: Datenbankbenutzer sortiert nach Ablaufdatum | 272 |
5.2.25 Abfrage 2026: alle Nicht-Oracle-Standarddatenbankbenutzer | 274 |
5.2.26 Abfrage 2027: Nutzer in der Passwortdatei | 276 |
5.2.27 Abfrage 2028: Übersicht der Benutzer und deren Profil | 277 |
5.2.28 Abfrage 2029: unsichtbare Benutzer | 279 |
5.2.29 Abfrage 2030: Rootkits | 280 |
5.2.30 Abfrage 2031: unsichtbare Rollen | 281 |
5.2.31 Abfrage 2032: aktivierte Funktionen und Optionen | 282 |
5.2.32 Abfrage 2033: alle nicht registrierten Schemata anzeigen | 283 |
5.2.33 Abfrage 2034: alle ausgeschalteten Trigger anzeigen | 285 |
5.2.34 Abfrage 2035: alle ausgeschalteten Constraints anzeigen | 286 |
5.2.35 Abfrage 2036: alle Benutzer, die Objekte verwalten | 288 |
5.2.36 Abfrage 2037: alle Benutzer, die keine Objekte verwalten (ohne Objekte) | 289 |
5.2.37 Abfrage 2038: Diagnoseinformationen | 290 |
5.2.38 Abfrage 2039: Unified Audit Application Context Attributes | 291 |
5.2.39 Abfrage 2040: Audit-Policies für Real Application Security | 292 |
5.2.40 Abfrage 2041: aktivierte Audit-Policies für Real Application Security | 293 |
5.2.41 Abfrage 2042: Audit-Einträge für Real Application Security | 294 |
5.3 Datenbankverfügbarkeit | 296 |
5.3.1 Abfrage 3001: init.ora-Parameter | 297 |
5.3.2 Abfrage 3002: Control-Dateien | 300 |
5.3.3 Abfrage 3003: Log-Dateien | 301 |
5.3.4 Abfrage 3004: fragmentierte Objekte | 302 |
5.3.5 Abfrage 3005: Objekte mit möglichen Extent-Problemen | 303 |
5.3.6 Abfrage 3006: ungültige Objekte | 305 |
5.3.7 Abfrage 3007: Fast Recovery Area | 306 |
5.3.8 Abfrage 3008: verwaltete Dateien in der Fast Recovery Area | 307 |
5.3.9 Abfrage 3009: Übersicht zu RECYLCEBIN | 308 |
5.3.10 Abfrage 3010: wiederhergestellte Objekte in der Datenbank | 309 |
5.3.11 Abfrage 3011: RMAN-Konfiguration | 309 |
5.3.12 Abfrage 3012: Übersicht des RMAN-Status der letzten 7 Tage | 310 |
5.3.13 Abfrage 3013: Übersicht verfügbarer Backups | 312 |
5.3.14 Abfrage 3014: korrupte Datenbackups | 313 |
5.3.15 Abfrage 3015: korrupte Datenblöcke | 314 |
5.3.16 Abfrage 3016: aktuelle Sessions mit hoher CPU-Belastung | 315 |
5.3.17 Abfrage 3017: aktuelle Sessions mit hohen Wartezeiten | 316 |
5.3.18 Abfrage 3018: aktuelle Sessions mit hohen Datenbankzeiten | 317 |
5.3.19 Abfrage 3019: ASM-Attribute | 319 |
5.3.20 Abfrage 3020: ASM-Dateien | 320 |
5.3.21 Abfrage 3021: Data Guard-Statusinformationen | 321 |
5.3.22 Abfrage 3022: Informationen zu Instance Caging und zum Ressourcen-Manager | 323 |
5.3.23 Abfrage 3023: Ressourcen-Manager-Informationen pro Container | 324 |
5.3.24 Abfrage 3024: zusätzliche Ressourcen-Manager-Informationen pro Container | 325 |
5.3.25 Abfrage 3025: Informationen zu Inkompatibilitäten | 327 |
5.3.26 Abfrage 3026: nicht genutzte Indizes | 328 |
5.3.27 Abfrage 3027: Liste der letzten Änderungen an den Objekten | 329 |
5.3.28 Abfrage 3028: zeitlich beschränkte Historie von Alerts | 330 |
5.3.29 Alert.log prüfen | 332 |
5.4 Datenbank-Zugriffskontrolle | 332 |
5.4.1 Abfrage 4001: Übersicht aller Benutzer (Schema) in der Datenbank | 334 |
5.4.2 Abfrage 4001.1: Übersicht aller COMMON- und LOCAL-Benutzer (Schema) in der Datenbank 12c | 337 |
5.4.3 Abfrage 4001.2: Zugriff auf Container | 339 |
5.4.4 Abfrage 4002: Übersicht aller Datenbankadministratoren | 341 |
5.4.5 Abfrage 4003: Übersicht aller SYSDBAs | 343 |
5.4.6 Abfrage 4004: Übersicht ROLES/USERS mit Audit-Privilegien | 345 |
5.4.7 Abfrage 4005: zusammenfassende Zählung der Berechtigungen auf das Data Dictionary | 346 |
5.4.8 Abfrage 4006: Übersicht der Rollen und Benutzer mit Zugriffsrechten auf SYS-Objekte | 348 |
5.4.9 Abfrage 4007: Übersicht der Rollen in der Datenbank | 350 |
5.4.10 Abfrage 4008: Übersicht der Nicht-Standardrollen | 352 |
5.4.11 Abfrage 4009: Übersicht zu Rollen mit erhöhtem Schutz | 355 |
5.4.12 Abfrage 4010: Übersicht zu Datenbank-Accounts, die Rollen anlegen | 356 |
5.4.13 Abfrage 4011: Übersicht der Datenbank-Accounts und deren Rollenberechtigungen | 358 |
5.4.14 Abfrage 4012: Übersicht zu Datenbank-Links und möglicher Berechtigungen in Remote-Datenbanken | 360 |
5.4.15 Abfrage 4013: Anzahl der SYSTEM-Privilegien verschiedener Benutzer | 362 |
5.4.16 Abfrage 4014: Rolle-an-Rolle-Hierarchie | 363 |
5.4.17 Abfrage 4015: Übersicht aller Systemprivilegien an Rollen und User | 365 |
5.4.18 Abfrage 4016: Übersicht aller Benutzer und Rollen mit ANY-Privilegien | 368 |
5.4.19 Abfrage 4017: Übersicht aller Benutzer und Rollen mit EDITION-Privilegien | 370 |
5.4.20 Abfrage 4018: Übersicht aller Benutzer und Rollen mit POWER-Privilegien | 371 |
5.4.21 Abfrage 4019: Übersicht aller Benutzer und Rollen mit Account-Management-Privilegien | 373 |
5.4.22 Abfrage 4020: Übersicht aller Benutzer und Rollen mit ALTER SESSION | 375 |
5.4.23 Abfrage 4021: Übersicht aller Benutzer und Rollen mit ALTER SYSTEM | 377 |
5.4.24 Abfrage 4022: Übersicht aller Benutzer und Rollen, die die RLS umgehen können | 378 |
5.4.25 Abfrage 4023: Übersicht aller Benutzer und Rollen mit UNLIMITED TABLESPACES | 379 |
5.4.26 Abfrage 4024: Detailübersicht aller Benutzer mit Tablespace-Quota | 381 |
5.4.27 Abfrage 4025: Übersicht aller Benutzer/Rollen mit Standardrollen (CONNECT, RESOURCE) | 382 |
5.4.28 Abfrage 4026: Übersicht aller Benutzer/Rollen mit EXP/IMP_FULL_DB | 385 |
5.4.29 Abfrage 4027: Übersicht aller Benutzer und Rollen, die gefährliche Rollen besitzen | 387 |
5.4.30 Abfrage 4028: Übersicht der Zugriffe auf Network-Packages | 389 |
5.4.31 Abfrage 4029: Übersicht der Abhängigkeiten auf Network-Packages | 391 |
5.4.32 Abfrage 4030: ACL-Übersicht auf Network-Packages | 393 |
5.4.33 Abfrage 4031: Übersicht der Berechtigungen auf XML-Datenbank-ACL | 395 |
5.4.34 Abfrage 4032: Übersicht aller Dateien der XML-DB-ACL | 396 |
5.4.35 Abfrage 4033: Übersicht aller EXECUTE-Berechtigungen auf Nicht-Standard-User | 400 |
5.4.36 Abfrage 4034: Übersicht aller Objektprivilegien in der Datenbank (ohne PUBLIC) | 401 |
5.4.37 Abfrage 4035: Übersicht aller Objektprivilegien in der Datenbank (Special Grants) | 403 |
5.4.38 Abfrage 4036: Übersicht aller PUBLIC-Objekt- und Systemprivilegien in der Datenbank | 405 |
5.4.39 Abfrage 4037: Übersicht der VPD-Policies | 407 |
5.4.40 Abfrage 4038: Übersicht aller Datenbank-CONTEXTs | 409 |
5.4.41 Abfrage 4039: Übersicht der Proxies | 410 |
5.4.42 Abfrage 4040: Übersicht der Java-Permission | 411 |
5.4.43 Abfrage 4041: Übersicht zu Directories und deren Zugriffsberechtigungen | 413 |
5.4.44 Abfrage 4042: an PL/SQL gegrantete Rollen | 415 |
5.4.45 Abfrage 4043: Credentials für externe Prozeduraufrufe | 416 |
5.4.46 Abfrage 4044: Liste nicht vorhandener Digest Verifiers (Upgrade XMLDB) | 417 |
5.4.47 Abfrage 4045: Übersicht zu Transparent Sensitive Data Protection (TSDP) | 419 |
5.4.48 Abfrage 4046: Data Redaction-Policies | 420 |
5.4.49 Abfrage 4047: Privileganalyse | 421 |
5.4.50 Abfrage 4048: Invoker-Rechte für Views und PL/SQL | 423 |
5.5 Zusätzliche Untersuchungen | 425 |
5.5.1 Abfrage 5001: Übersicht verschlüsselter Tablespaces | 425 |
5.5.2 Abfrage 5002: Übersicht verschlüsselter Spalten | 426 |
5.5.3 Abfrage 5003: Übersicht der Data Labels | 428 |
5.5.4 Abfrage 5004: Übersicht von Objekten mit speziellen Datentypen | 429 |
5.5.5 Abfrage 5005: Übersicht aller Libraries | 430 |
5.5.6 Abfrage 5006: gefilterte Übersicht aller Libraries | 433 |
5.5.7 Abfrage 5007: Übersicht aller Fehler (RMAN) | 434 |
5.5.8 Abfrage 5008: Übersicht aller eingespielten Patchsets | 436 |
5.5.9 Abfrage 5009: Übersicht aller eingespielten Patches | 437 |
5.5.10 Abfrage 5010: Übersicht der Database Vault-Sicherheitszonen | 437 |
5.5.11 Abfrage 5011: Übersicht der Scheduler-Jobs innerhalb der letzten 24 Stunden | 440 |
5.5.12 Abfrage 5012: Übersicht aller Scheduler-Programme | 441 |
5.5.13 Abfrage 5013: Übersicht aller Scheduler-Credentials | 442 |
5.5.14 Abfrage 5014: Java-Übersicht | 443 |
5.6 Prüfung auf mögliche bekannte Schwachstellen | 448 |
5.6.1 Abfrage 6001: Schwachstelle SCN-Headroom | 448 |
5.6.2 Abfrage 6002: CVE-2012-3132: Get SYSDBA Rights | 451 |
5.7 Datenbanksicherheitsprüfung durchführen | 454 |
5.7.1 Ausführung einer automatischen Sicherheitsprüfung unter Windows | 455 |
5.7.2 Ausführung einer automatischen Sicherheitsprüfung unter UNIX | 456 |
5.8 Vereinfachte Auswertung der Zugriffskontrolle durch SQL | 458 |
5.8.1 Oracle Software Appliance als Auswertungssystem nutzen | 458 |
5.8.2 Daten der untersuchten Datenbank laden | 459 |
5.8.3 Evaluierungsdashboard | 463 |
5.8.4 Manuelle Auswertungsmöglichkeiten | 465 |
5.9 Sicherheitszustand bewerten | 473 |
5.9.1 Einzelne Untersuchungen bewerten | 474 |
5.9.2 Bewertung nach CVSS | 479 |
5.9.3 Toolbasierte Datenbanksicherheitsprüfung | 480 |
6 Anhang: Fragenkatalog | 482 |
6.1 Businessbeitrag der IT-Abteilung | 483 |
6.2 Welche Konzepte existieren und sind implementiert? | 484 |
6.3 Welche Daten befinden sich in der zu untersuchenden Datenbank? | 486 |
6.4 Wie sehen die Architektur und das Deployment aus? | 487 |
6.5 Wie installieren Sie Datenbanken? | 488 |
6.6 Wer greift auf die Datenbank zu? | 489 |
6.7 Welches Patching-Konzept wird verfolgt? | 491 |
6.8 Wie wird die Datenbank bzw. das System überwacht? | 492 |
6.9 Ist die Integrität der Datenbank und des Systems sichergestellt? | 493 |
6.10 Wo steht der Datenbankserver? | 495 |
6.11 Kann die Integrität der Daten sichergestellt werden? | 495 |
6.12 Was tut der Betreiber für eine sichere Konfiguration? | 496 |
Index | 498 |