Biuletyn Bezpieczeństwa PLOUG

Od 2008-11-17 do 2009-02-17

Wojciech Dworakowski, SecuRing wojtekd@securing.pl

Ostatni zestaw poprawek od Oracle (CPU Jan 2009) przynosi 10 poprawek dla bazy danych i jedynie 4 dla serwera aplikacji. Od pewnego czasu można zauważyć trend polegający na coraz mniejszej ilości poprawek dla produktów „flagowych”, co może być symptomem tego, że baza i serwer aplikacji Oracle stały się bardziej dojrzałe pod względem bezpieczeństwa. Za to coraz więcej uwagi jest poświęcane produktom dodatkowym – takim jak Secure Backup czy TimesTen.

Szczególnej uwagi administratorów wymaga zwłaszcza Oracle Secure Backup. W ostatnim CPU załatano 10 podatności, z czego cztery ma wycenę wpływu na ryzyko (CVSS) 10.0 czyli maksymalną możliwą. Tak więc, jeśli ktoś używa tego rozwiązania, powinien jak najszybciej uaktualnić do najnowszej wersji.

Wiele podatności w Oracle Secure Backup

Podatne produkty:

Oracle Secure Backup.

Data publicznego ujawnienia:

2009.01.13-15 (Zhenhualiu i XiaopengZhang – Fortinet, Joxean Koret i inni).

Opis:

W interfejsie WWW Oracle Secure Backup znaleziono wiele poważnych podatności. Najgroźniejsze z nich umożliwiają wykonanie własnego kodu na serwerze bez konieczności posiadania jakichkolwiek przywilejów.

Status:

Podatność poprawiono w CPU Jan 2009.

Ryzyko:

duże.

Podatności mogą być wykorzystane przez nieuwierzytelnionego użytkownika, który ma jedynie dostęp do adresu URL, pod którym jest interfejs Oracle Secure Backup. Opublikowano dokładne instrukcje dotyczące wykorzystania podatności.

Skutki potencjalnego ataku:

duże

Najgroźniejsze z tej grupy podatności pozwalają na wykonanie własnego kodu lub komend systemu operacyjnego na serwerze. Na Windows komendy te wykonają się z przywilejami SYSTEM natomiast na Linuksie z ograniczonymi prawami.

Szczegóły techniczne:

Do zarządzania produktem Oracle Secure Backup służy aplikacja WWW stworzona w PHP. W aplikacji tej istnieje bardzo wiele podatności. Najgroźniejsza z nich pozwala na doklejenie własnych komend systemu operacyjnego w ścieżce php/common.php, która jest wywoływana z login.php podczas uwierzytelnienia (wykorzystanie nie wymaga podania prawidłowego loginu i hasła). Inne odkryte podatności dotyczą protokołu NDMP i dotyczą przepełnienia bufora (pozwala to na wykonanie wrogiego kodu na serwerze) oraz destabilizacji pracy serwera.

Usunięcie podatności:

Podatności są usuwane przez wgranie zestawu poprawek „Oracle Critical Patch Update Jan 2009”.

Możliwość odczytania dowolnego pliku za pomocą OC4J

Podatne produkty:

Oracle Application Server 10g + OC4J.

Data publicznego ujawnienia:

2009.01.19 (Eduardo Vela).

Uwaga: Szczegóły podatności pojawiły się na liście „full disclosure”. Osobiście nie udało mi się odtworzyć tego błędu (być może występuje on w specyficznych konfiguracjach). Na wszelki wypadek polecam wszystkim administratorom sprawdzienie na własnych serwerach, czy dodanie do URL ciągu znaków %c0%ae%c0%ae/WEB-INF/web.xml powoduje możliwość odczytania zawartości web.xml

Opis:

Według odkrywcy podatności – Oracle Application Server z OC4J pozwala na obejście ograniczeń w dostępie do plików na dysku serwera i w konsekwencji odczytanie wrażliwych informacji (np. pliku konfiguracyjnego web.xml).

Status:

nieznany.

Ryzyko: duże.

Podatność może być wykorzystana przez nieuwierzytelnionego użytkownika w większości instalacji OC4J. Opublikowano dokładne instrukcje dotyczące wykorzystania podatności, jednak nie jest jasne czy podatność istnieje dla każdej instalacji.

Skutki potencjalnego ataku:

duże

Skutkiem udanego ataku jest możliwość odczytania dowolnego pliku z katalogów chronionych. Np.: WEB-INF.

Szczegóły techniczne:

Ciąg znaków %c0%ae w ścieżce OC4J jest interpretowany jako ciąg unicode uC0AE co dekoduje się na znak kropki. Powtórzenie tej sekwencji daje możliwość umieszczenia w ścieżce URL ciągu znaków ../ i w rezultacie dostanie się do ścieżki WEB-INF.

Usunięcie podatności:

Według odkrywcy – podatność jest usuwana przez wgranie zestawu poprawek „Oracle Critical Patch Update Jan 2009”, jednak w opisie CPU trudno jest znaleźć pasującą podatność. Obejściem problemu może być wyfiltrowanie na systemie IPS lub mod_security ciągu znaków „%c0%ae%c0%ae”.

Możliwość osiągnięcia przywilejów MDSYS przez manipulację triggerem MDSYS.SDO_TOPO_DROP_FTBL

Podatne produkty:

Oracle Database – 10g R1 i R2.

Data publicznego ujawnienia:

2009.01.13 (David Litchfield – NGSSoftware).

Opis:

Jeden z triggerów wchodzących w skład Oracle Spatial jest podatny na atak metodą SQL-injection. Skutkiem ataku jest możliwość wykonania dowolnego kodu PL/SQL z przywilejami MDSYS.

Status:

Podatność poprawiono w CPU Jan 2009.

Ryzyko:

duże.

Podatność może być wykorzystana dla każdej bazy z zainstalowanym modułem Spatial. Jedyny wymagany przywilej to CREATE SESSION. Opublikowano dokładne instrukcje dotyczące wykorzystania podatności.

Skutki potencjalnego ataku:

duże

Skutkiem udanego ataku jest możliwość wykonania kodu PL/SQL z przywilejami MDSYS.

Szczegóły techniczne:

Podczas usuwania tabeli przez dowolnego użytkownika jest wykonywany trigger MDSYS.SDO_TOPO_DROP_FTBL. Nazwa usuwanej tabeli jest w tym triggerze wklejana bez żadnej walidacji w dynamiczny blok PL/SQL. Tak więc możliwe jest doklejenie własnego kodu PL/SQL do nazwy usuwanej tabeli. Uwaga: Nie wymaga to przywileju DROP TABLE, ponieważ trigger jest uruchamiany przed sprawdzeniem przywilejów.

Usunięcie podatności:

Podatności są usuwane przez wgranie zestawu poprawek „Oracle Critical Patch Update Jan 2009”. Jeśli moduł Spatial nie jest używany, to należy go odinstalować.

Możliwość ataku metodą SQL-injection na Oracle Enterprise Manager

Podatne produkty:

Oracle Enterprise Manager 10.2.0.4 i wcześniejsze wersje.

Data publicznego ujawnienia:

2009.01.29 (Esteban Martínez Fayó – Application Security Inc.).

Status:

Podatność poprawiono w CPU Jan 2009.

Ryzyko:

małe.

Podatność może zostać wykorzystana jedynie przez użytkowników Oracle Enterprise Manager z przywilejami „VIEW” (lub większymi). Nie opublikowano dokładnych instrukcji, ale ilość dostępnych szczegółów jest na tyle duża, że średnio doświadczony intruz nie powinien mieć problemu z wykorzystaniem podatności.

Skutki potencjalnego ataku:

duże

Skutkiem ataku jest wykonanie dowolnego kodu PL/SQL w bazie repozytorium Enterprise Manager-a z prawami użytkownika SYSMAN (użytkownik ten ma rolę DBA).

Szczegóły techniczne:

Atak SQL injection polega na manipulacji parametrem przyjmowanym przez procedurę w ten sposób, żeby dokleić do niego własny kod PL/SQL. Jeśli aplikacja nie waliduje wprowadzanych danych i nie stosuje zabezpieczeń takich jak bind variables, to doklejony kod wykona się w bazie danych z takimi przywilejami, jakie ma aplikacja w bazie. Tego typu podatność istnieje w konsoli webowej Oracle Enterprise Manager w ścieżce /em/console/reports/admin. Użytkownik, który ma dostęp do tego URL (wymaga to roli „VIEW” w EM) może dokleić własny kod PL/SQL do parametru TARGET. Kod ten wykona się w bazie danych zasilającej aplikację (czyli w repozytorium EM) z prawami SYSMAN.

Usunięcie podatności:

Podatność jest usuwana przez wgranie zestawu poprawek Oracle CPU Jan 2009.

Podatność pozwalająca na atak metodą buffer overflow w pakiecie SYS.OLAPIMPL_T

Podatne produkty:

Oracle Database – wszystkie wersje począwszy od 9iR2.

Data publicznego ujawnienia:

2009.01.29 (Esteban Martínez Fayó – Application Security Inc.).

Opis:

W wyniku manipulacji parametrami przekazywanymi do podatnych procedur, dowolny użytkownik może doprowadzić do awarii procesu bazy Oracle lub wykonać wrogi kod w systemie operacyjnym serwera.

Status:

Podatność poprawiono w CPU Jan 2009.

Ryzyko:

średnie.

Podatności mogą być wykorzystane przez dowolnego użytkownika mającego możliwość wywoływania podatnych procedur z bazy danych. W tym wypadku intruz musi mieć możliwość wywoływania pakietu SYS.OLAPIMPL_T (takie przywileje ma grupa PUBLIC).

Skutki potencjalnego ataku:

duże

Skutkiem ataku jest wykonanie dowolnego kodu w systemie operacyjnym z uprawnieniami właściciela instalacji Oracle (użytkownik „oracle” na unixach i użytkownik „SYSTEM” na Windows) lub zawieszenie procesu serwera bazy danych.

Szczegóły techniczne:

Podatna jest procedura ODCITABLESTART z pakietu SYS.OLAPIMPL_T. Prawo do wykonywania tej procedury ma standardowo grupa PUBLIC, więc w instalacji standardowej dowolny użytkownik może wykorzystać opisywaną podatność.

Usunięcie podatności:

Podatność jest usuwana przez wgranie zestawu poprawek „Oracle Critical Patch Update January 2009”. Obejściem problemu jest usunięcie użytkownikom przywilejów pozwalających na uruchamianie podatnej procedury.