Biuletyn Bezpieczeństwa PLOUG

Od 2007-04-29 do 2007-07-29

Wojciech Dworakowski, SecuRing wojtekd@securing.pl

W bieżącym okresie ukazał się zestaw poprawek Oracle Critical Patch Update – July 2007. Zestaw ten według informacji producenta usuwa 45 podatności, w tym 19 dotyczących bazy danych i 4 dotyczące serwera aplikacji. Poniżej opisujemy te z podatności, na temat których udało się znaleźć więcej informacji niż te, które przekazuje Oracle w swoim oficjalnym biuletynie.

Warto dokładniej przyjrzeć się pierwszej omawianej poniżej podatności (DB17 w CPU). Podatność polega na możliwości modyfikowania danych przez specjalnie skonstruowane widoki. Brzmi znajomo? Zgadza się – rok temu w CPU Jul 2006 załatano bardzo podobny błąd (pamiętne niezamierzone opublikowanie exploita na Metalinku) a następnie Alexander Kornburst z firmy Red Database Security wskazał analogiczną podatność w widokach inline (załatane w CPU Oct 2006). Okazuje się, że ten sam badacz już w październiku 2006 poinformował Oracle o trzecim sposobie na obejście uprawnień via widoki lecz z nieznanych powodów poprawka ujrzała światło dzienne dopiero teraz. Na domiar złego, w Internecie jest dostępny przykład (exploit) pokazujący jak wykorzystać tę podatność.

Możliwość uzyskania uprawnień UPDATE, DELETE, INSERT w wyniku manipulacji widokami

Produkty podatne na zagrożenie:

Oracle Database – wszystkie wersje.

Data publicznego ujawnienia:

2007.07.18 (Alexander Kornburst – Red Database Security GmbH).

Opis:

Odpowiednio manipulując widokami można zmieniać (insert, update, delete) dane w tabelach, do których użytkownik nie ma takich uprawnień.

Status:

Podatności poprawiono w CPU Jul 2007.

Ryzyko: bardzo duże

Podatność może zostać wykorzystana przez dowolnego użytkownika, który ma nadane bezpośrednio uprawnienia SELECT do atakowanej tabeli. Pomimo tego, że autor odkrycia nie opublikował szczegółów pozwalających wykorzystać podatność, to w Internecie na stronach zajmujących się publikacją exploitów są powszechnie dostępne przykłady wykorzystujące tę lukę.

Skutki potencjalnego ataku: duże

Intruz może modyfikować dowolne dane w bazie. Nie opublikowano szczegółów, ale przez analogię do poprzednio wykrywanych problemów z widokami należy przypuszczać, że do wykorzystania podatności jest niezbędny przywilej SELECT na atakowanej tabeli.

Szczegóły techniczne:

Wykorzystanie podatności polega na utworzeniu odpowiedniego widoku 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.

Bardzo podobne podatności były już wykrywane wcześniej i poprawione w CPU Jul 2006 i CPU Oct 2006.

Usunięcie podatności:

Podatność można usunąć przez wgranie zestawu poprawek CPU Jul 2007.

Podatność pozwalająca na atak metodą SQL-injection w pakiecie DBMS_PRVTAQIS

Produkty podatne na zagrożenie:

Oracle Database – 9i do 10gR1.

Data publicznego ujawnienia:

2007.07.17 (Alexander Kornburst – Red-Database-Security GmbH).

Opis:

W pakiecie DBMS_PRVTAQIS wykryto podatność pozwalającą na atak metodą SQL-injection i w rezultacie na uzyskanie większych przywilejów w bazie.

Status:

Podatność poprawiono w CPU Jul 2007.

Ryzyko: duże

Żeby wykorzystać opisywane podatności intruz musi mieć konto w bazie danych i prawa do wykonywania podatnej procedury. Nie upubliczniono szczegółowego przepisu na wykorzystanie podatności, jednak należy zakładać że średnio zaawansowany intruz jest w stanie odnaleźć podatne parametry i je wykorzystać.

Skutki potencjalnego ataku: duże

Skutkiem udanego ataku jest możliwość wykonania kodu PL/SQL z przywilejami właściciela podatnej procedury (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ść dotyczy pakietu DBMS_PRVTAQIS.

Usunięcie podatności:

Podatność jest usuwana przez wgranie zestawu poprawek Oracle CPU Jul 2007.

Podatność pozwalająca na atak metodą SQL-injection w funkcji zmiany hasła w Application Express

Produkty podatne na zagrożenie:

Oracle APEX do 3.0.0 włącznie.

Data publicznego ujawnienia:

2007.07.17 (Alexander Kornburst – Red-Database-Security GmbH).

Opis:

Kod procedury zmieniającej hasło użytkownika Application Express pozwala na atak metodą SQL-injection i w rezultacie na uzyskanie większych przywilejów w bazie.

Status:

Podatność poprawiono w wersji 3.0.1 APEX.

Ryzyko: duże

Nie podano dokładnego exploita, jednak jest dostępna szczegółowa analiza problemu, która powinna wystarczyć średnio zaawansowanemu intruzowi do wykorzystania podatności.

Skutki potencjalnego ataku: duże

Skutkiem udanego ataku jest możliwość wykonania dowolnego kodu PL/SQL z przywilejami właściciela podatnej procedury.

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. Wykryta podatność dotyczy procedury wwv_flow_security.check_db_password, która odpowiada za zmianę hasła przez użytkownika Oracle APEX (dawniej HTML DB).

Usunięcie podatności:

29.06.2007 Oracle opublikowało wersję 3.0.1 Application Express, która usuwa opisywany problem.

Możliwość ataku metodą cross-site scripting na klientów E-Business Suite

Produkty podatne na zagrożenie:

Oracle E-Business Suite rel. 11.

Data publicznego ujawnienia:

2007.07.17 (Guy Karlebach – Imperva ADC).

Status:

Podatność poprawiono w CPU Jul 2007.

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ł opublikowany przykład pozwalający na wykorzystanie podatności nawet przez początkującego intruza.

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 wykona tak przygotowany URL, to wrogi kod JavaScript zostanie wykonany w przeglądarce ofiary w kontekście podatnej aplikacji.

W Oracle E-Business Suite podatność tego typu istnieje module pomocy on-line.

Usunięcie podatności:

Podatność jest usuwana przez wgranie zestawu poprawek Oracle CPU Jul 2007. Można ją również wyeliminować przez usunięcie z E-Business Suite pomocy on-line.

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

Produkty podatne na zagrożenie:

Oracle Database – 9i do 10gR2.

Data publicznego ujawnienia:

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

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 Jul 2007.

Ryzyko: duże

Podatności mogą być wykorzystane 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 następujących procedurach:

  • DBMS_DRS.GET_PROPERTY;
  • MDSYS.MD.

Usunięcie podatności:

Podatności są usuwane przez wgranie zestawu poprawek Oracle CPU Jul 2007.