| Oracle Sicherheit für Revisoren |
|
|
| Donnerstag, 13. November 2008 um 15:54 | ||
|
Angeregt durch ein Seminar für Revisoren stelle ich an dieser Stelle Skripten bereit als Checkliste für die Sicherheit einer ORACLE-Datenbank.
Fangen wir mit den einfachsten Überprüfungen an: ORACLE-Passwörter:Ein ORACLE-Passwort kann 30 Stellen lang sein. Alle Zeichen werden in Großbuchstaben umgewandelt, bevor der 8-Byte Hash DES Verschlüsselungsalgorithmus startet. Als Schlüssel wird der Benutzername verwendet! Die neue Version 11g wird als zusätzlichen Hash-Algorithmus AES anbieten. ORACLE nutzt für die Verschlüsselung die Konkatenation von Benutzername und Passwort. sys/temp1 and system/p1 haben deshalb den gleichen Hash-Key: (2E1168309B5B9B7A) Die Kennwörter finden sich an verschiedensten Stellen:
Brute Force Attacke / Dictionary AttackeAufgrund des simplen Schlüssels (Username) ist es möglich, eine Brute-Force-Attacke oder eine dictionary Attacke zu starten. Die verfügbaren Werkzeuge prüfen den Hashkey und können darüber auf das Passwort rückschliessen. Die effektivsten Werkzeuge (checkpwd und repscan) erreichen einen Durchsatz von 600.000 Passwörtern pro Sekunde!
Um zu prüfen, ob Ihre Passwörter Mindestanforderungen genügen, könnte man ORACLE Password Checker benutzen. Default Passwörter prüfenHier ist eine Liste aller Default-Accounts mit verschlüsselten Passwörtern. oracle_default_passwords.csv Um zu prüfen, ob das Data Dictionary korumpiert wurde, kann man folgenden Befehl benutzen. Es handelt sich hierbei um ein “Save Script”, das die Basis-Tabellen mit der Dictionary-View vergleicht. External UsersEin einfaches Eindringen ermöglichen sogenannte external user, wenn man den Usernamen und das Passwort des Betriebssystem-Accounts kennt. Der Schritt in die DB ist dann simpel: sqlplus / Um zu prüfen, welche externen User es gibt, reicht ein
Remote-Zugriff über Database LinksUm in eine Datenbank einzudringen, könnte auch ein Database Link in einer anderen DB genutzt werden. So wäre es möglich, von einer weniger geschützten DB in eine besser gesicherte einzudringen.
Backups schützenSichern Sie Ihre Backups vor Diebstahl. Selbst wenn ein Eindringling nur Teile der DB stiehlt, kann er diese u.U. verwerten (siehe unter undokumentierte Parameter in ORACLE ). Trigger zum Spionieren einsetzenWenn ein User das Recht CREATE ANY TRIGGER hat, kann er einen Trigger einsetzen, der Aktivitäten auf einer Tabelle protokolliert, für die er selbst keine Rechte hat. Über OLD- und NEW-Werte könnte er Spalteninhalte in Erfahrung bringen. Der ORACLE-User MDSYS hat zum Beispiel o.g. Recht und könnte Aktivitäten auf der Tabelle von z.B. APP_USER protokollieren, um Daten auszuspionieren.
Schützen Sie Ihre RedoLog-DateienIn den Redolog-Dateien stehen alle DML- und DDL-Statements, die in der DB angesetzt werden. DDL-Kommandos werden in DML-Anweisungen im Data Dictionary übersetzt (recursive SQL). Die Inhalte einer Redolog-Datei können mit dem LogMiner ausgelesen werden oder in ein Trace-File geschrieben werden mit Der Inhalt der RedoLog-Datei kann auch in einer anderen DB, als die, zu der es gehört, ausgewertet werden!
|
||

