Biuletyn Bezpieczeństwa PLOUG

Od 2007-02-02 do 2007-04-29

Wojciech Dworakowski, SecuRing wojtekd@securing.pl

W opisywanym okresie na forach dyskusyjnych i w niezależnych źródłach omawiane były podatności usuwane w ostatnim Oracle Critical Patch Update, z 17 kwietnia 2007. Bieżąca poprawka CPU łata 36 podatności, w tym 13 podatności w bazie danych i 7 w serwerze aplikacji.

Poniżej opisano najciekawsze i najbardziej groźne podatności poprawiane w ostatnim zbiorze CPU. Na szczególną uwagę zasługują ciekawe doniesienia na temat instalacji Oracle na platformie Windows. Okazuje się, że przed CPU Apr 2007 dowolny lokalny użytkownik mógł w łatwy sposób przejąć kontrolę nad procesem oracle.exe. Ponadto powinni się mieć na baczności wszyscy, którzy używają bazy Oracle na standardowej instalacji systemu Windows XP. Okazuje się, że do takiej bazy można stosunkowo łatwo dostać się z przywilejami DBA.

Możliwość nadużycia mechanizmu Simple File Sharing do przejęcia kontroli nad bazą na platformie Windows XP

Produkty podatne na zagrożenie: Wszystkie wersje bazy Oracle na platformie Windows XP, o ile w Windows jest włączony mechanizm „Simple File Sharing”.

Data publicznego ujawnienia: 16.11.2005 (David Litchfield – Next Generation Security Software).

Opis: Jeśli baza Oracle jest zainstalowana na Windows XP z włączonym mechanizmem Simple File Sharing, to intruz działający zdalnie może w łatwy sposób przejąć pełną kontrolę nad bazą.

Status: Podatność poprawiono w CPU Apr 2007.

Ryzyko: średnie
Windows XP nie jest typową platformą dla produkcyjnych instalacji Oracle, jednak instalacje na tej platformie bywają używane np. w celach developerskich, testowych lub dla małych lokalnych baz.

Skutki potencjalnego ataku: duże
Skutkiem udanego ataku jest osiągnięcie przez intruza uprawnień DBA.

Szczegóły techniczne: Simple File Sharing jest mechanizmem umożliwiającym proste udostępnianie plików, bez konieczności uwierzytelniania się w systemie. Użytkownik zdalny, który chce skorzystać z plików udostępnionych w ten sposób, jest traktowany przez system na prawach „gościa” – niezależnie od tego jaki login i hasło poda. Mechanizm ten jest włączony dla standardowych instalacji Windows XP. Jeśli na takim systemie jest zainstalowana baza Oracle, to intruz działający z zewnątrz może w łatwy sposób uwierzytelnić się w bazie jako DBA w wyniku nadużycia mechanizmu Simple File Sharing. Wystarczy, że odgadnie bądź pozna nazwę dowolnego użytkownika z grupy ORA_DBA i podłączy się do udostępnionych przez Simple File Sharing zasobów plikowych, podając nazwę użytkownika z tej grupy. Podczas próby połączenia z bazą, Oracle sprawdzi czy dany użytkownik jest w grupie ORA_DBA (tacy użytkownicy są uwierzytelniani przez system) i spyta system, czy ten użytkownik jest poprawnie uwierzytelniony. System odpowie twierdząco, ze względu na opisaną specyfikę mechanizmu Simple File Sharing. W ten sposób intruz uzyska dostęp do bazy danych z uprawnieniami DBA.

Usunięcie podatności: Podatność jest usuwana przez wgranie zestawu poprawek „Oracle Critical Patch Update April 2006”. Podatność nie ma znaczenia, o ile na serwerze nie jest używany mechanizm Simple File Sharing.

Możliwość przejęcia kontroli nad procesem Oracle na Windows

Produkty podatne na zagrożenie: Wszystkie wersje bazy Oracle na platformie Windows.

Data publicznego ujawnienia: 01.12.2006 (David Litchfield – Next Generation Security Software).

Opis: Proces oracle.exe w instalacjach na platformie Windows jest chroniony w sposób niewystarczający. W związku z tym dowolny użytkownik serwera może przejąć nad nim kontrolę.

Status: Podatność poprawiono w CPU Apr 2007.

Ryzyko: średnie
Podatność może zostać wykorzystana tylko przez intruza, który ma możliwość wykonania kodu na serwerze Windows, na którym działa atakowana baza Oracle.

Skutki potencjalnego ataku: duże
Skutkiem udanego ataku jest przejęcie kontroli nad procesem bazy Oracle.

Szczegóły techniczne: Proces oracle.exe na platformie Windows nie jest w żaden sposób chroniony przed dostępem z poziomu systemu. W Windows jest dostępny zawansowany mechanizm kontroli dostępu do zasobów (w tym procesów). Jednakże proces oracle.exe będący elementarną częścią bazy, w deskryptorze odpowiedzialnym za kontrolę dostępu ma wartość NULL, co w praktyce oznacza że każdy użytkownik ma pełne prawa do tego procesu (Everyone: Full Controll). Skutkiem tego intruz, który ma możliwość wykonania kodu z dowolnymi przywilejami na serwerze Windows, może ingerować w proces oracle.exe.

Usunięcie podatności: Podatność jest usuwana przez wgranie zestawu poprawek „Oracle Critical Patch Update April 2006”.

Możliwość zdalnego wyłączenia Oracle Listener przez Discoverer Servlet

Produkty podatne na zagrożenie: Instalacje Oracle AS z dostępnym dla użytkowników Discoverer Servlet.

Data publicznego ujawnienia: 17.04.2007 (Alexander Kornburst – Red-Database-Security GmbH).

Uwaga: według informacji A. Kornbursta, Oracle było powiadomione o tym błędzie już w październiku 2003!

Opis: Każdy użytkownik, który ma dostęp przez WWW do modułu Oracle Discoverer może zdalnie wyłączyć Oracle Listener w bazie danych zasilającej system.

Status: Podatność poprawiono w CPU Apr 2007.

Ryzyko: średnie
Atak będzie nieskuteczny o ile Listener będzie zabezpieczony hasłem. W standardowych instalacjach bazy Oracle Listener nie jest zabezpieczony hasłem, jednak należy to do podstawowych praktyk administracyjnych.

Skutki potencjalnego ataku: duże
Skutkiem udanego ataku jest wyłączenie Oracle Listener, a co za tym idzie uniemożliwienie komunikacji z bazą.

Szczegóły techniczne: Moduł Oracle Discoverer Servlet zawiera pole pozwalające wprowadzić alias TNS. W polu tym możliwe jest doklejenie komendy TNS „STOP”. Skutkuje to wyłączeniem Oracle Listenera, o ile nie jest on zabezpieczony.

Usunięcie podatności: Podatność jest usuwana przez wgranie zestawu poprawek „Oracle Critical Patch Update April 2006”. Podatność nie ma znaczenia, o ile współpracujący Oracle Listener jest chroniony hasłem.

Kilka podatności pozwalające na atak metodą SQL-injection

Produkty podatne na zagrożenie: Oracle Database – wszystkie wspierane wersje.

Data publicznego ujawnienia: 17.04.2007 (Alexander Kornburst – Red-Database-Security GmbH i Paul Wright – Next Generation Security Software).

Opis: W procedurach PL/SQL instalowanych wraz z bazą Oracle wykryto kilka podatności pozwalających na atak metodą SQL-injection i w rezultacie na uzyskanie większych przywilejów w bazie.

Status: Podatności poprawiono w CPU Apr 2007.

Ryzyko: duże
Żeby wykorzystać opisywane podatności, intruz musi mieć konto w bazie danych i prawa do wykonywania podatnej procedury. Wiele z tych procedur jest dostępnych dla grupy PUBLIC. Opublikowano nazwy podatnych procedur oraz nazwy parametrów podatnych na manipulację. W związku z powyższym, pomimo tego że nie upubliczniono szczegółowego przepisu na wykorzystanie podatności, to należy zakładać że średnio zaawansowany intruz jest w stanie je wykorzystać.

Skutki potencjalnego ataku: duże
Skutkiem udanego ataku jest możliwość wykonania kodu PL/SQL z przywilejami właściciela podatnej procedury (dla wszystkich podatnych procedur jest to SYS).

Szczegóły techniczne: Atak SQL injection polega na manipulacji parametrem przyjmowanym przez procedurę. Skutkiem jest wykonanie kodu PL/SQL z uprawnieniami właściciela podatnej procedury (z reguły DBA) i w rezultacie osiągnięcie wyższych przywilejów w bazie. Wykryte podatności dotyczą kilku pakietów PL/SQL standardowo instalowanych z bazą Oracle. Podatne pakiety to: DBMS_AQADM_SYS DBMS_UPGRADE_INTERNAL DBMS_APPLY_USER_AGENT DBMS_CDC_PUBLISH

Usunięcie podatności: Podatności są usuwane przez wgranie zestawu poprawek „Oracle Critical Patch Update April 2007”.