Biuletyn Bezpieczeństwa PLOUG

Od 2006-08-04 do 2006-11-19

Wojciech Dworakowski wojtekd@securing.pl

Ostatni zestaw poprawek do produktów Oracle ukazał się 17 października 2006. Według analiz niezależnych ekspertów (m.in. Alexander Kornburst z firmy Red Database Security) poprawione zostało 101 podatności.

Szczególną czujność powinni zachować administratorzy serwerów aplikacji HTMLDB (Oracle Application Express). W HTMLDB wykryto w ostatnim okresie bardzo wiele podatności pozwalających na atak na użytkownika aplikacji metodą cross-site scripting albo atak na dane metodą SQL-injection. Część z tych podatności może zostać wykorzystana przez intruza nie posiadającego żadnych przywilejów w aplikacji, tak więc zalecane jest jak najszybsze wgranie poprawek. Warto podkreślić, że poprawki dotyczące Oracle Application Express nie są częścią obecnego CPU i aby je usunąć należy wgrać najnowszą wersję 2.2.1.

Podatności pozwalające na atak metodą SQL-injection

Produkty podatne na zagrożenie:

Oracle Database – wszystkie wersje od 8i.

Data publicznego ujawnienia:

18.10.2006

Opis:

W procedurach PL/SQL instalowanych wraz z bazą Oracle wykryto wiele 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 Oct 2006.

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ępne 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ć.

Dla jednej z podatności (w funkcji MDSYS.SDO_LR) opublikowano składnię pozwalającą na atak metodą SQL injection, tak więc podatność może zostać wykorzystana przez nawet niezaawansowanego intruza.

Skutki potencjalnego ataku: duże

Skutkiem udanego ataku jest możliwość wykonania kodu PL/SQL z przywilejami właściciela podatnej procedury (dla niektórych procedur jest to DBA).

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ą kilkunastu pakietów PL/SQL standardowo instalowanych z bazą Oracle, w większości dostępnych dla grupy PUBLIC. M.in.:

XDB.DBMS_XDBZ, DB.DBMS_XDBZ0
SYS.DBMS_CDC_IMPDP
SYS. DBMS_SQLTUNE_INTERNAL
MDSYS.SDO_LR
MDSYS.SDO_DROP_USER_BEFORE
MDSYS.SDO_GEOR_INT
MDSYS.SDO_TUNE
MDSYS.SDO_CS
MDSYS.MD2
SYS.DBMS_CDC_IPUBLISH
SYS.DBMS_CDC_ISUBSCRIBE
SYS.DBMS_CDC_IMPDP

Pełna lista podatnych procedur wraz z podaniem parametrów oraz wymaganych przywilejów dostępna jest pod adresem: http://www.red-database-security.com/advisory/oracle_cpu_oct_2006.html

Usunięcie podatności:

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

Podatności pozwalające na atak metodą buffer overflow

Produkty podatne na zagrożenie:

Oracle Database – wszystkie wersje od 8i.

Data publicznego ujawnienia:

18.10.2006

Opis:

Manipulacja parametrami przekazywanymi do podatnych procedur może doprowadzić do wykonania wrogiego kodu w systemie operacyjnym. Kod wykona się z uprawnieniami właściciela instalacji Oracle.

Status:

Podatności poprawiono w CPU Oct 2006.

Ryzyko: średnie

Podatność może być wykorzystana przez dowolnego użytkownika mającego możliwość wywoływania podatnych procedur z bazy danych (część z tych procedur jest dostępna dla grupy PUBLIC).

W Internecie są dostępne wskazówki dotyczące nazw funkcji, które są podatne w poszczególnych pakietach, w związku z czym odnalezienie i wykorzystanie omawianych podatności jest ułatwione.

Skutki potencjalnego ataku: duże

Skutkiem ataku jest wykonanie dowolnego kodu w systemie operacyjnym z uprawnieniami właściciela instalacji Oracle lub zawieszenie procesu serwera bazy danych.

Szczegóły techniczne:

Podatności istnieją między innymi w pakietach:

  • MDSYS.SDO_3GL
  • MDSYS.SDO_CS

Usunięcie podatności:

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

Możliwość uzyskania większych uprawnień przez manipulację widokami inline

Produkty podatne na zagrożenie:

Oracle Database – od wersji 9i.

Data publicznego ujawnienia:

2006.10.18

Opis:

Odpowiednio manipulując widokami inline można uzyskać prawa modyfikacji (insert, update, delete) danych, do których standardowo użytkownik ma tylko prawa odczytu.

Status:

Podatności poprawiono w CPU Oct 2006.

Ryzyko: bardzo duże

Podatność jest wariantem podatności dotyczącej zwykłych widoków (nie „inline”), odkrytej w kwietniu 2006 i poprawionej w CPU Jul 2006.

Podatność może zostać wykorzystana przez dowolnego użytkownika, który ma nadane bezpośrednio uprawnienia SELECT do atakowanej tabeli. Na Metalinku był dostępny przez kilka dni przykład pokazujący jak wykorzystać podobną podatność w zwykłych widokach.

Skutki potencjalnego ataku: duże

Intruz może modyfikować dowolne dane w bazie, do których ma jedynie przywilej SELECT.

Szczegóły techniczne:

Wykorzystanie podatności polega na utworzeniu odpowiedniego widoku inline do atakowanych danych i modyfikowaniu tych danych za pośrednictwem tego widoku. Podatność wynika prawdopodobnie z nieprawidłowego sprawdzania praw dostępu przez bazę Oracle podczas tworzenia widoków inline.

Usunięcie podatności:

Podatność można usunąć przez wgranie zestawu poprawek CPU Oct 2006.

Podatności pozwalające na atak metodą SQL-injection w aplikacjach zbudowanych przy użyciu HTMLDB

Produkty podatne na zagrożenie:

Oracle Application Express (dawniej HTMLDB) w wersji poniżej 2.2.

Data publicznego ujawnienia:

2006.11.18

Opis:

W jednej z procedur PL/SQL dostępnych za pośrednictwem przeglądarki, wykryto podatność pozwalającą na doklejenie własnego kodu SQL i wykonanie go w bazie zasilającej aplikację.

Status:

Oracle udostępniło poprawkę (uwaga: poprawka nie jest częścią CPU Oct 2006).

Ryzyko: bardzo duże

Podatność może zostać wykorzystana przez każdego intruza mającego dostęp do portu, na którym działa aplikacja uruchomiona na podatnej wersji HTMLDB.

Opublikowano przykład demonstrujący jak wykorzystać opisywaną podatność, w związku z czym może zostać ona wykorzystana nawet przez niezaawansowanego intruza.

Skutki potencjalnego ataku: duże

Skutkiem wykorzystania podatności jest wykonanie własnego kodu na serwerze bazodanowym obsługującym aplikację.

Szczegóły techniczne:

Podatny jest parametr p_lov w procedurze wwv_flow_utilities.gen_popup_list. Parametr ten zawiera kod SQL, który może zostać zamieniony na kod intruza. Co prawda Oracle zastosowało „zabezpieczenie” w postaci sumy kontrolnej MD5 przesyłanej w parametrze p_lov_checksum, ale oczywiście intruz może w to miejsce wstawić sumę kontrolną własnego kodu i w trywialny sposób obejść to zabezpieczenie.

Pełen opis podatności oraz przykład wykorzystania znajduje się na stronie odkrywcy podatności – Alexandra Kornbursta: http://www.red-database-security.com/advisory/oracle_apex_sql_injection_wwv_flow_utilities.html

Usunięcie podatności:

Podatność jest usunięta w wersji 2.2 Oracle Application Express. Poprawka ta nie jest częścią CPU Oct 2006.

Możliwość ataku metodą cross-site scripting na klientów aplikacji zbudowanych przy użyciu Oracle Application Express (HTMLDB)

Produkty podatne na zagrożenie:

Oracle Application Express (dawniej HTMLDB) w wersji poniżej 2.2.1.

Data publicznego ujawnienia:

2006.11.18

Status:

Oracle udostępniło poprawkę (uwaga: poprawka nie jest częścią CPU Oct 2006).

Ryzyko: średnie

Aby wykorzystać podatność intruz musi skłonić ofiarę do użycia specjalnie spreparowanego URL, zawierającego odnośnik do aplikacji. Ponadto w momencie użycia tego URL ofiara musi mieć otwartą sesję podatnej aplikacji.

Zostały opublikowane szczegóły techniczne, pozwalające na wykorzystanie podatności.

Skutki potencjalnego ataku: duże

Skutkiem ataku jest wykonanie wrogiego kodu JavaScript w przeglądarce ofiary, co może prowadzić do wykonania dowolnej operacji w aplikacji z uprawnieniami ofiary lub do przechwycenia sesji ofiary w aplikacji.

Szczegóły techniczne:

Podatność na atak cross-site scripting wiąże się z brakiem sprawdzania przez aplikację wartości parametrów przekazywanych z przeglądarki użytkownika. Podatność istnieje jeśli parametr pobierany od użytkownika, po przetworzeniu jest wyświetlany na stronie HTML wygenerowanej przez aplikację.

Atak polega na skonstruowaniu URL, który zawiera w podatnym parametrze zaszyty wrogi kod JavaScript. Gdy ofiara otworzy tak przygotowany URL, to wrogi kod JavaScript zostanie wykonany w przeglądarce ofiary w kontekście podatnej aplikacji.

W Oracle Application Express (dawniej HTMLDB) podatności tego typu istnieją w parametrach o nazwach: NOTIFCATION_MSG i WWV_FLOW_ITEM_HELP.

Usunięcie podatności:

Podatność jest usuwana przez wgranie wersji 2.2.1 Oracle Application Express. Poprawka ta nie jest częścią CPU Oct 2006.