Biuletyn Bezpieczeństwa PLOUG

Oracle Critical Patch Update – październik 2009

Janusz Jarząbkowski, Björn Bröhl

Dzięki uprzejmości firm Red DataBase Security i OPITZ CONSULTING GmbH przedstawiamy Państwu zestawienie usuniętych błędów oraz szczegółową analizę poprawek znajdujących się w październikowym Oracle Critical Patch Update (CPU).

Usunięte błędy

Poniżej przedstawiamy opis i ocenę błędów, rozwiązanych w październikowym CPU:

CVE-2009-1992 Core RDBMS (Dotyczy wersji: 9.2.0.8, 10.1.0.5, 10.2.0.4)

W środowisku Windows błąd ten został oceniony na 10 w skali CVSS. W Linux natomiast wartość ta wynosi 7.6 punktu. Nie jest potrzebna autentykacja, aby wykorzystać tę lukę, można ją również wykorzystać przez zdalny dostęp. Ponieważ w środowisku Linux baza danych działa jako użytkownik Oracle, jej wpływ jest znacznie mniejszy niż w środowisku Windows.

CVE-2009-1979 Network Authentication (Dotyczy wersji: 10.1.0.5, 10.2.0.4)

Ten błąd odnosi się do komponentu sieciowego odpowiedzialnego za autentykację. Napastnik może wykonać dowolny kod zarówno zdalnie jak i bez dodatkowej autentykacji. Stąd też w środowisku Windows wpływ tego błędu na bezpieczeństwo ocenia się na 10, natomiast pod Uniksem odpowiednio na 7.5. Dodatkowo na stronie http://blogs.conus.info/node/28 opublikowano przykładowy kod źródłowy, zaleca się więc pilną implementację aktualnego patcha. Błąd ten jest spowodowany niewystarczającym zabezpieczeniem parametru AUTH_SESSKEY.

CVE-2009-1985 Network Authentication (Dotyczy wersji: 9.2.0.8, 9.2.0.8DV, 10.1.0.5, 10.2.0.4)

Dla tego błędu nie zostały jak dotąd opublikowane żadne dodatkowe informacje. Jego ocena w środowisku Windows wynosząca 10, wykazuje podobieństwo do wcześniej opisanych błędów.

CVE-2009-1007 Data Mining (Dotyczy wersji: 10.2.0.4 Typ: SQL-Injection)

Ten, oceniony na 6.5 błąd typu SQL-Injection, odnosi się do komponentu Data Mining. Lukę tę można wykorzystać przez jednorazowe uwierzytelnienie. Dodatkowo użytkownik ten musi posiadać prawo EXECUTE do pakietu SYS.DMP_SYS.

CVE-2009-1994 Oracle Spatial (Dotyczy wersji: 10.1.0.5 Typ: SQL-Injection)

Ten, oceniony na 6.5 błąd typu SQL-Injection, odnosi się do komponentu Oracle Spatial. Lukę tę można wykorzystać jedynie przez jednorazowe uwierzytelnianie. Dodatkowo użytkownik musi posiadać prawo EXECUTE do pakietu MDSYS.PRVT_CMT_CB.

CVE-2009-2001 PL/SQL (Dotyczy wersji: 10.2.0.4, 11.1.0.7 Typ: SQL-Injection)

Dla tego błędu nie zostały jak dotąd przedstawione żadne dodatkowe informacje. Lukę oceniono na 6.5, co może wskazywać na problem z SQL-Injection. Nie wiadomo jeszcze, które komponenty są nim dotknięte. Na podstawie wersji bazy danych, których problem dotyczy można założyć, że jest to funkcjonalność CORE, która została w tych wersjach dodana. Niezbędny jest tu przywilej CREATE PROCEDURE.

CVE-2009-1993 Application Express (Dotyczy wersji: Apex 3.0.1)

Błąd ten związany jest z Oracle Application Express (APEX). Może on być wykorzystany przez uwierzytelnionych użytkowników do dostępu i modyfikacji określonych danych. Niezbędny jest w tym przypadku przywilej EXECUTE na obiekcie FLOWS_030000.WWV_EXECUTE_IMMEDIATE. Ponieważ poprzednie wersje Oracle nie są już wspierane, konieczna jest migracja do najbardziej aktualnej wersji APEX.

CVE-2009-1018 Workspace Manager (Dotyczy wersji: 10.2.0.4)

Kolejne zagrożenie dotyczy komponentu Workspace Manager, a konkretnie SYS.LTRIC (WMSYS.LTRIC). Prawo wykonania do tego obiektu, jak i ważne dane dostępowe do bazy są tu niezbędne. Komponent Workspace Manager wymaga oddzielnej instalacji, konieczna jest weryfikacja aktualnie wykorzystywanej wersji. Poniżej zapytanie pokazujące aktualną wersję:

SELECT DBMS_WM.getversion FROM DUAL;

Po wgraniu patcha niezbędna jest ponowna weryfikacja wersji, celem potwierdzenia pomyślnej aktualizacji. DBMS_WM.getversion powinien wskazać wersję 10.2.0.4 zamiast 10.2.0.1.

CVE-2009-1964 Workspace Manager (Dotyczy wersji: 10.2.0.4)

Błąd ten również dotyczy komponentu Workspace Manager. W celu użycia tego bliżej nieopisanego błędu konieczny jest przywilej CREATE SESSION.

CVE-2009-1965 Net Foundation Layer (Dotyczy wersji: 9.2.0.8, 10.1.0.5)

Ten problem odnosi się do komponentu Net Foundation Layer i powiązany jest z uwierzytelnieniem typu NT (lokalne logowanie). Błąd ten może być wykorzystany jedynie w sieci lokalnej i nie wymaga wówczas dodatkowej autoryzacji.

CVE-2009-1997 Authentication (Dotyczy wersji: 10.2.0.3, 11.1.0.7)

Ten błąd, oceniony na 5.0, również dotyczy procesu uwierzytelnienia. Dla tego błędu nie zostały jak dotąd przedstawione żadne dodatkowe informacje. Bazując na jego ocenie można założyć, że jest to błąd typu DoS (Denial of Service).

CVE-2009-2000 Authentication (Dotyczy wersji: 11.1.0.7)

Ten błąd oceniono na 5.0 i dotyczy on również uwierzytelnienia. Dla tego błędu nie zostały jak dotąd przedstawione żadne dodatkowe informacje. Bazując na jego ocenie można założyć, że jest to błąd typu DoS (Denial of Service).

CVE-2009-1995 Advanced Queuing (Dotyczy wersji: 10.2.0.4, 11.1.0.7)

Dla tego błędu nie zostały jak dotąd przedstawione żadne dodatkowe informacje. Dotyczy on komponentu Advanced Queuing. Dotknięty jest nim pakiet SYS.DBMS_AQ_INV w wersjach 10.2.0.4 i 11.1.0.7. Potencjalny włamywacz musi mieć dostęp do bazy danych i posiadać prawo wykonania tego pakietu.

CVE-2009-1991 Oracle Text (Dotyczy wersji: 9.2.0.8, 9.2.0.8DV, 10.1.0.5, 10.2.0.4)

Błąd CVE-2009-1991 typu SQL-Injecion dotyczy komponentu Oracle TEXT. Pakiet CTXSYS.DRVXTABC obejmuje procedurę CREATE_TABLES. Jako parametry wejścia można podać IDX_OWNER, IDX_NAME oraz IDXID, przy czym parametry IDX_OWNER i IDX_NAME nie są właściwie kontrolowane, dlatego też SQL-Injection jest możliwy.

Przykład:

exec ctxsys.drvxtabc.create_tables('SH"."SH2KERR" (X NUMBER)--','yyyyyyyyy',2);

Wymagane jest tu prawo EXECUTE, które standardowo nie jest przydzielone do grupy PUBLIC.

CVE-2009-1971 Data Pump (Dotyczy wersji: 10.1.0.5, 10.2.0.3, 11.1.0.7)

To luka w komponencie DATA PUMP w wersjach 10.1.0.5, 10.2.0.3 i 11.1.0.7. Użytkownik z prawem wykonalności do pakietu KUPF$FILE_INT może zdalnie spowodować odmowę usługi (DoS). Dodatkowo konieczny jest przywilej CREATE SESSION i ważne dane dostępowe.

CVE-2009-1972 Auditing (Dotyczy wersji: 9.2.0.8, 9.2.0.8DV, 10.1.0.5, 10.2.0.4, 11.1.0.7)

Najniżej oceniany błąd według klasyfikacji CVSS odnosi się do audytu bazy danych. Dotknięte są nim wszystkie wersje Oracle włączając 11.1.0.7. Pomimo niskiej oceny, błąd powinien być oceniany jako krytyczny, ponieważ niesie ze sobą wysokie ryzyko potencjalnego zagrożenia, przede wszystkim w przedsiębiorstwach zobowiązanych regulacjami prawnymi. Umożliwia on manipulację danych audytowanych obiektów, bez możliwości ich wychwycenia. Odnosi się on również do Oracle Vault, ponieważ wpisy z audytu nie są najpierw tworzone i przez to nie są dostępne w Audit Vault. Ta luka została zgłoszona przez Alexandra Kornbursta. Następujący kod pokazuje jak można ją wykorzystać, o ile polecenie to (tu: grant dba to public) zostanie wykonane jako użytkownik SYS (userid=0):

DECLARE
   myint INTEGER;
BEGIN
   myint := sys.DBMS_SYS_SQL.open_cursor ();
   sys.DBMS_SYS_SQL.parse_as_user (myint,'grant dba to public',DBMS_SQL.native,0);
   sys.DBMS_SYS_SQL.close_cursor (myint);
END;

Użytkownik musi mieć prawo EXECUTE do pakietów DBMS_SYS_SQL i DBMS_SQL oraz ważne dane dostępowe.

Podsumowanie 11.1.0.7

Wersja ta wykazuje sporo słabych punktów. Prawie wszystkie zawarte w CPU zagrożenia związane z SQL-Injection odnoszą się również do tej wersji. Dodatkowo możliwy jest atak typu DoS. W wersji tej możliwe jest również obejście mechanizmu audytu, co oceniane jest jako krytyczne. Dla tej wersji zalecana jest instalacja CPU.

Podsumowanie 10.2.0.4

W zależności od zainstalowanych komponentów, sześć z szesnastu zagrożeń dotyczy tej wersji bazy danych. W szczególności bazy danych w środowisku Windows są podatne na trzy bardzo krytyczne błędy, dla których już opublikowano kod źródłowy. Poza tym i w tej wersji można zarówno wykorzystać wspomniane techniki SQL-Injection, jak i ominąć audyt systemowy. Wersja ta nie jest podatna na atak typu Dos. Zaleca się instalację aktualnego CPU.

Podsumowanie 10.2.0.3

Wersji tej dotyczą dwa zagrożenia. W wyniku błędu w procesie autentykacji możliwy jest atak typu DoS. Drugi problem dotyczy luki w pakiecie Data Pump. Dla tej wersji zalecana jest instalacja CPU.

Podsumowanie 10.1.0.5

Sześć poprawek z październikowego CPU dotyczy tej wersji bazy danych. Jeden z błędów umożliwia wykonywanie poleceń systemu operacyjnego bez dodatkowej autentykacji. Błędy w komponentach Spatial i Oracle Text mogą być w efekcie wykorzystane do eskalacji uprawnień. Dodatkowo mogą być również wykorzystane luki w mechanizmie autentykacji. Dla tej wersji zalecana jest instalacja CPU.

Podsumowanie 9.2.0.8DV / 9.2.0.8

Ta wersja dotknięta jest dwoma krytycznymi błędami, dzięki wykorzystaniu których można bez dodatkowej autentykacji wykonywać zdalne polecenia systemu operacyjnego. Poza tym komponent Oracle Text zawiera luki. Również i w tej wersji można obejść mechanizm audytu. Mając na uwadze dwa krytyczne błędy, które dotyczą środowiska Windows, instalacja CPU jest wysoce zalecana.

Wyniki testów CPU na różnych systemach

Ponieważ instalacja każdego z Critical Patch Updates (CPU) na różnych systemach wymaga wiele trudu, wykonaliśmy to zadanie dla Państwa. W ramach nowego CPU-Info instalujemy CPU na różnych systemach i na różnych wersjach bazy danych Oracle. Do tej pory są to konfiguracje wymienione w tabeli 1.

Tabela 1. Przetestowane systemy i wersje baz danych.

System Linux x86-64 Solaris 64 Bit (SPARC) AIX 5L Windows AMD 64Windows 2003 R2 SP2 64 Bit
Wersja 11.1.0.7 11.1.0.7 11.1.0.7 11.1.0.7
10.2.0.4 10.2.0.4 10.2.0.4 10.2.0.4
9.2.0.8

Instalacje są testowane przez Grid Control zarówno manualnie jak i automatycznie. Jako podstawę do instalacji aktualnego CPU wykorzystujemy zawsze wcześniejsze instalacje CPU (dla aktualnego CPU-Info wykorzystaliśmy CPU z czerwca 2009).

W tabelach 2a i 2b przedstawiamy, który Patch został zainstalowany na jakiej bazie danych oraz jakie wystąpiły problemy w czasie instalacji.

Tabela 2a. Wyniki instalacji testowych.

System Linux x86-64 Linux x86-64 Linux x86-64 Solaris 64 Bit (SPARC) Solaris 64 Bit (SPARC)
Wersja RDBMS 11.1.0.7 10.2.0.4 9.2.0.8 10.2.0.4 11.1.0.7
Numer Patcha 8836375 8836308 8836758 8836308 8836375
Wynik instalacji manualnej
Komentarz do instalacji manualnej Występuje Bug 8712550: Należy wykonać polecenie: opatch rollback – id 8306492,830649 Instalacja wykonana bez błędów Brak wsparcia dla wersji 9.2.0.8 Instalacja wykonana bez błędów Występuje Bug 8712550: Należy wykonać polecenie: opatch rollback – id 8306492,830649
Wynik instalacji automatycznej
Komentarz do instalacji automatycznej Występuje Bug 8712550: Należy wykonać polecenie: opatch rollback -id 8306492,830649 Instalacja wykonana bez błędów Brak wsparcia dla wersji 9.2.0.8 StagePatch – zakończony błędem. SR został otwarty. StagePatch – zakończony błędem. SR został otwarty.

Tabela 2b. Wyniki instalacji testowych.

Platforma AIX 5L AIX 5L Windows AMD 64Windows 2003 R2 SP2 64 Bit Windows AMD 64Windows 2003 R2 SP2 64 Bit
Wersja RDBMS 10.2.0.4 11.1.0.7 10.2.0.4 11.1.0.7
Numer Patcha 8836308 8836375 8880861 8928977
Wynik instalacji manualnej
Komentarz do instalacji manualnej Instalacja wykonana bez błędów na podstawie poprzedniej CPUJun2009 Występuje Bug 8712550: Należy wykonać polecenie: opatch rollback – id 8306492,830649 Instalacja wykonana bez błędów Instalacja wykonana bez błędów
Wynik instalacji automatycznej
Komentarz do instalacji automatycznej Występuje Bug 8712550: Należy wykonać polecenie: opatch rollback – id 8306492,830649 Występuje Bug 8712550: Należy wykonać polecenie: opatch rollback – id 8306492,830649 StagePatch – zakończony błędem. SR został otwarty. StagePatch – zakończony błędem. SR został otwarty.

Legenda:

– Wykonano pomyślnie, żadne błędy nie wystąpiły.
– Wykonano pomyślnie lecz dodatkowe kroki musiały zostać wykonane.
– Błąd. Dany krok nie został wykonany.

Informacje dodatkowe

OPITZ CONSULTING oraz firma Red Database Security przeprowadzają testy w oparciu o instalacje standardowe. Sprawdzenia te przeprowadzone są z wielką starannością przez wykwalifikowanych ekspertów. Nie mogąc jednak wykluczyć dodatkowych czynników wpływających na różnice pomiędzy środowiskiem klienta a środowiskiem testowym, OPITZ CONSULTING oraz firma Red Database Security nie ponoszą żadnej odpowiedzialności za szkody powstałe w skutek zainstalowania lub nie zainstalowania poprawek zawartych w Critical Patch Update.

Kontakt w sprawie pytań i komentarzyJanusz Jarząbkowski OPITZ CONSULTING Kraków Sp. z o.o. ul. Bratysławska 1A, 31-201 Kraków, Tel. +49 1735171005 e-mail: Janusz.jarzabkowski@opitz-consulting.pl

Björn Bröhl OPITZ CONSULTING GmbH Kirchstr. 6, 51647 Gummersbach, Tel.: 02261/6001-0 e-mail: bjoern.broehl@opitz-consulting.com