Biuletyn Bezpieczeństwa PLOUG

Od 2003-08-14 do 2003-11-23

Wojciech Dworakowski
wojtekd@securing.pl

W omawianym okresie wykryto kilka bardzo groźnych podatności.
Dwie pierwsze dotyczą bazy Oracle 9i i są to klasyczne podatności typu
buffer-overflow. Zagrożenie związane z nimi jest bardzo duże, gdyż dla obu
przypadków, w Internecie jest dostępny kod (exploit) pozwalający na
wykorzystanie tych podatności nawet przez niedoświadczonego intruza.

Bardzo groźne podatności wykryto również w Oracle 9i
Application Server Portal. Są to błędy pozwalające na wykonanie zapytań SQL
przez intruza działającego zdalnie, dzięki technice SQL-injection. Technikę
tą opisywałem w artykule „Ataki SQL-Injection czyli firewall i
bezpieczna baza danych, to nie wszystko” w 24 numerze PLOUGtek.

Oracle poinformował też o dość groźnym w skutkach błędzie
w standardowej instalacji Collaboration Suite.

Liczne błędy typu buffer-overflow w module XML Database

Produkty podatne na zagrożenie:

Oracle 9i R2 (do 9.2.0.3 włącznie)

Data publicznego ujawnienia: 31.07.2003

Opis:

W module XML Database odkryto liczne błędy typu buffer
overflow. Każdy z tych błędów pozwala na zdalne lub lokalne przejęcie
kontroli nad serwerem. Zagrożenie jest tym większe, że w Internecie jest dostępny
kod (exploit) wykorzystujący jeden z tych błędów. Za pomocą tego kodu nawet
niedoświadczony intruz może przejąć kontrolę nad serwerem.

Stopień zagrożenia: bardzo duży

Szczegóły techniczne:

Atak jest możliwy jeśli w XML Database jest włączony dostęp
przez HTTP (port 8080/tcp) lub FTP (port 2100/tcp). Atakujący musi mieć możliwość
wysyłania pakietów do tego portu.

Przepełnienie bufora jest możliwe w różnych zmiennych związanych
z XML Database. Np.:

  • Przez podanie bardzo długiego hasła bądź nazwy użytkownika
    przy dostępie przez HTTP
  • Przez podanie bardzo długiego hasła bądź nazwy użytkownika
    przy dostępie przez FTP
  • Przez podanie bardzo długiego argumentu do komendy
    FTP TEST
  • Przez podanie bardzo długiego argumentu do komendy
    FTP UNLOCK

Na konferencji Black Hat Briefings 2003, David Litchfield
przedstawił referat, w którym omawiał różnice w atakowaniu i pisaniu
exploitów na platformy Linux i Windows („Variations in Exploit methods
between Linux and Windows”, http://www.blackhat.com/presentations/bh-usa-03/bh-us-03-litchfield-paper.pdf).
Przykładowym atakowanym programem był właśnie moduł XML Database. Częścią
artykułu towarzyszącego prezentacji są przykłady exploitów na platformy
RedHat Linux i Windows, wykorzystujące ostatnie z wymienionych powyżej zagrożeń.
Opublikowany exploit uruchamia shell (sh lub cmd.exe) z uprawnieniami użytkownika
systemowego, będącego właścicielem instalacji Oracle (użytkownik „oracle”
na unixach lub LOCAL_SYSTEM na Windows).

Usunięcie zagrożenia:

Jedyną możliwością usunięcia błędu w pełni jest nałożenie
poprawki nr 3058991. Uwaga: aby nałożyć tę poprawkę, baza musi być wcześniej
uaktualniona do patchset-u 9.2.0.3.

Błąd został poprawiony w wersji Oracle9i R2 Patchset 3
(9.2.0.4).

Tymczasowym obejściem problemu może być wyłączenie
serwisów HTTP i FTP w XML Database. W pliku INIT.ORA w linii „dispatchers”
należy usunąć wpis: (SERVICE=<sid>
XDB)

Błędy typu buffer-overflow w programach „oracle” i „oracleO”

Produkty podatne na zagrożenie:

Oracle 9i R1 i R2 (wszystkie wersje) – na platformach
unixowych

Data publicznego ujawnienia: 18.10.2003

Opis:

Binaria „oracle” i „oracleO” na
platformach unixowych są podatne na ataki typu buffer overflow. W wyniku
wykorzystania tych błędów, lokalny użytkownik systemu operacyjnego może
przejąć kontrolę nad instalacją Oracle. W Internecie jest dostępny kod (exploit)
wykorzystujący tę podatność. Za pomocą tego kodu nawet niedoświadczony
intruz może przejąć kontrolę nad instalacją Oracle.

Błąd ten jest szczególnie groźny dla instalacji, dla tych
których w systemie operacyjnym (na którym jest zainstalowana baza Oracle)
istnieje wielu użytkowników (również systemowych).

Stopień zagrożenia:

  • bardzo duży (dla systemów pełniących różne funkcje)
  • duży (dla systemów dedykowanych)

Szczegóły techniczne:

Atak polega na bezpośrednim uruchomieniu programów $ORACLE_HOME/bin/oracle
lub $ORACLE_HOME/bin/oracleO i podaniu bardzo długiego, odpowiednio
sformatowanego parametru. W rezultacie dzięki tej podatności można wykonać
wrogi kod. Ponieważ programy te mają ustawioną flagę SUID a właścicielem
tych plików jest użytkownik „oracle”, to wrogi kod wykona się z
przywilejami tego użytkownika, niezależnie od tego, jakie były początkowe
przywileje intruza.

W internecie udostępniony jest exploit wykorzystujący tę
podatność na platformie RedHat 9. Exploit ten może być stosunkowo łatwo
przystosowany do atakowania innych platform.

Usunięcie zagrożenia:

Wgranie poprawki dostępnej na Metalinku: http://metalink.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=256927.1

Tymczasowym obejściem problemu może być usunięcie praw do
wykonywania wymienionych programów przez dowolnego użytkownika:

chmod o-x $ORACLE_HOME/bin/oracle $ORACLE_HOME/bin/oracleO

Uwaga: Nie będzie możliwe bezpośrednie lokalne połączenie
z bazą przez protokół BEQ (gdy klient i serwer to ta sama maszyna) i w innych
specyficznych przypadkach. Szczegóły – w Oracle Security Alert #59.

Nieuprawniony dostęp do informacji w Oracle Files (część Oracle
Collaboration Suite)

Produkty podatne na zagrożenie:

Oracle Collaboration Suite R1 – Oracle Files (wersje
wcześniejsze niż 9.0.3.3.6)

Data publicznego ujawnienia: 28.10.2003

Opis:

Użytkownik, który posiada konto z dostępem do modułu
Oracle Files, może dostać się do zawartości, do której nie powinien mieć
uprawnień. Błąd polega na niewłaściwej obsłudze zleceń przez Oracle
WebCache. Komponent Oracle Files jest standardowo włączony w Oracle
Collaboration Suite. Nie opublikowano szczegółów ataku.

Stopień zagrożenia: średni

Szczegóły techniczne:

Oracle Files jest komponentem dostępnym za pośrednictwem
HTTP (podobnie jak całość Collaboration Suite). W standardowej instalacji
wszystkie zlecenia przechodzą przez Oracle WebCache. Błąd polega na tym, że
WebCache standardowo przetrzymuje kopie plików typu js, html, pdf, bmp, png,
jpg, a konfiguracja WebCache w Oracle Files nie zmienia tych standardowych
ustawień. W rezultacie użytkownik posiadający konto z dostępem do Oracle
Files może dostać się do informacji, do których nie powinien mieć dostępu.

Usunięcie zagrożenia:

Uaktualnienie Oracle Files do wersji 9.0.3.3.6 (uwaga –
jest to uaktualnienie usuwające przy okazji wiele różnych błędów nie związanych
z bezpieczeństwem).
Tymczasowym obejściem problemu może być wyłączenie
WebCache dla Oracle Files.

Podatności typu SQL-injection w Oracle 9i Application Server Portal

Produkty podatne na zagrożenie:

Oracle 9i Application Server Portal R1 i R2
Oracle E-Business Suite 11i
Uwaga: podatny moduł prawdopodobnie wchodzi również w skład
Oracle Database (Oracle HTTP Server z mod_plsql).

Data publicznego ujawnienia: 05.11.2003

Opis:

Wiele procedur PL/SQL udostępnianych standardowo przez
Oracle Application Server Portal jest podatnych na ataki metodą SQL-injection.
Podatności te mogą umożliwić wykonywanie nieuprawnionych zapytań SQL przez
dowolnego intruza działającego z Internetu, a także wykonywanie zapytań, które
będą konsumować zasoby serwerów.

Stopień zagrożenia: bardzo duży

Szczegóły techniczne:

Atak SQL-injection polega na doklejeniu parametrów do
zapytania konstruowanego przez interfejs udostępniający dane. Dokładniej ta
klasa ataków została opisana w artykule „Ataki SQL-Injection czyli
firewall i bezpieczna baza danych, to nie wszystko” w 24 numerze PLOUGtek.
Okazało się że liczne tego typu podatności istnieją w standardowej
instalacji Oracle Application Server Portal.

Procedura PL/SQL może być wykonywana z uprawnieniami użytkownika
wywołującego lub z uprawnieniami użytkownika definiującego procedurę.
Doklejone przez intruza zapytanie wywoła się z takimi samymi prawami jak
atakowana procedura. W niektórych wypadkach mogą to być uprawnienia użytkowników
SYS lub SYSTEM (dla procedur zdefiniowanych przez tych użytkowników). W
rezultacie nieuprzywilejowany intruz działający z Internetu może uzyskać
dostęp do dowolnych danych w bazie.

Niektóre pakiety, w których znaleziono opisywane podatności
to:

  • Portal DB Provider Forms,
  • Portal DB Provider Hierarchy,
  • Portal DB Provider XML Components,
  • List of Values.

Usunięcie zagrożenia:

Wgranie poprawek:

  • Oracle 9iAS 9.0.2.x – 2853895
  • Oracle 9iAS 1.0.2.2 – 3068980
  • Oracle E-Business Suite 11i – 3237913