heise online

Wiadomości IT, artykuły i fora heise online

5 lutego 2010, 17:32

Luka w systemie bazodanowym Oracle 11gR2 daje każdemu przywileje systemowe

Podczas zakończonej niedawno konferencji Black Hat DC 2010 brytyjski ekspert od zabezpieczeń David Litchfield zademonstrował luki w najnowszym wydaniu systemu bazodanowego 11gR2 firmy Oracle. Zbyt szerokie uprawnienia dla procedur Javy pozwalają użytkownikom na podwyższanie ich własnych uprawnień – aż do przejęcia całkowitej kontroli nad bazą danych.

Dzieje się tak, ponieważ procedury w pakiecie DBMS_JVM_EXP_PERMS pozwalają każdemu użytkownikowi uruchamiać bazę danych. Sam pakiet ma za zadanie uprościć aktualizację instalacji. Przy użyciu procedury IMPORT_JVM_PERMS użytkownik jest w stanie zmienić swoje prawa w tabeli Java Policy w taki sposób, że JVM pozwoli mu na wykonywanie poleceń systemu operacyjnego, a także na odczytywanie i zapisywanie plików.

Jednak ta luka sama nie daje jeszcze nieuprzywilejowanemu użytkownikowi możliwości zwiększenia uprawnień: blokuje to własny system Oracle'a złożony z praw (privileges) i ról (roles). W połączeniu z innym błędem użytkownik może jednak w dowolny sposób zmieniać te przywileje. Służy do tego procedura DBMS_JAVA.SET_OUTPUT_TO_JAVA. Uruchamia ona nową wirtualną maszynę Javy na prawach użytkownika typu SYS i wykonuje przekazany jej wcześniej kod SQL również w jego imieniu. Lichtfield pokazał, w jaki sposób użytkownik pozbawiony uprawnień dzięki odpowiedniemu parametrowi w wywołaniu DBMS_JAVA.SET_OUTPUT_TO_JAVA zwiększa swoje przywileje do poziomu DBA-User ze wszystkimi prawami. Następnie dzięki już wcześniej dopasowanej tabeli Java Policy może on wykonywać polecenia systemu operacyjnego. Lichtfield zilustrował to przykładem z wykorzystaniem Windows 7, w którym najpierw założył nowe konto użytkownika, a następnie przyznał mu prawa administratora.

Poza tym Lichtfield zademonstrował także, jak można obejść tzw. Label Security w bazie danych, dla którego Oracle otrzymał certyfikację EAL4 według systemu Common Criteria. Ten mechanizm ma zapewnić, że użytkownik będzie widział jedynie te informacje, które są dla niego przeznaczone. Ekspert wykazał, że dzięki lukom w implementacji Javy da się załadować dowolne biblioteki dynamiczne. W ten sposób mają one dostęp także do takich danych, które metoda Label Security powinna ściśle odgraniczać i blokować.

Litchfield twierdzi, że powiadomił Oracle'a o lukach jeszcze w listopadzie ubiegłego roku, ale do tej pory nie przygotowano dla nich żadnego patcha. Jako podstawowy środek ochrony specjalista zaleca usunięcie zbyt szerokich praw w pakietach DMBS_JAVA, DBMS_JAVA_TEST i DBMS_JVM_EXP_PERMS.

Tymczasem wideo z wykładem wygłoszonym podczas konferencji zostało usunięte ze strony WWW.

(aru)

  • Podziel się
  • Wykop.pl
  • StumbleUpon
  • del.icio.us
  • OSnews.pl