10 kwietnia 2010

Krytyczna luka w środowisku wykonawczym Java

Krytyczny błąd obecny w środowisku wykonawczym Sun Java (Java Runtime Environment, JRE) pozwala na zdalne wykonanie dowolnego kodu. Odwiedzenie specjalnie spreparowanej witryny internetowej może spowodować za pośrednictwem praktycznie dowolnej przeglądarki internetowej uruchomienie złośliwego kodu w naszym systemie operacyjnym. Na atak podatne są wszystkie systemy z rodziny Windows. Prawdopodobnie problem ten dotyczy również systemów Linux.

Tavis Ormandy w sposób praktyczny potwierdził obecność krytycznego błędu w komponencie Java Web Start wchodzącym w skład środowiska wykonawczego Sun Java. Błąd można wykorzystać do zdalnego wykonania kodu (z uprawnieniami bieżącego użytkownika) we wszystkich wersjach systemów Windows. Prawdopodobnie podobny atak może zostać opracowany dla systemów z rodziny Linux.

Praktyczne wykonanie ataku jest niezwykle proste. Wystarczy tylko, że specjalnie spreparowana witryna przekaże odpowiednie polecenia do komponentów Java odpowiedzialnych za uruchamianie aplikacji. Atak jest skuteczny za pośrednictwem praktycznie dowolnej przeglądarki internetowej.

W systemach z rodziny Windows luka obecna jest w kontrolce ActiveX Java Deployment Toolkit (w przypadku Internet Explorera) oraz wtyczce NPAPI (w przypadku Firefoksa oraz innych przeglądarek korzystających z tej wtyczki). Java Deployment Toolkit zawiera metodę launch(), która pozwala na instalację oraz uruchamianie programów za pomocą adresu URL wskazującego na plik Java Networking Launching Protocol (.jnlp). Począwszy od Java 6 Update 10, komponent Java Deployment Toolkit jest domyślnie dostarczany w ramach instalacji Java Runtime Environment.

Problem polega zaś na tym, że w wyniku braku odpowiedniej kontroli, komponent Java Web Start akceptuje komendy zawarte w adresach URL i następnie przekazuje je do dalszego wykonania. Niestety, wyłączenie obsługi ActiveX lub wtyczki NPAPI nie rozwiązuje problemu. Przed udanym atakiem nie uchronią nas również mechanizmy takie jak Microsoft DEP (ang. Data Execution Prevention) lub ASLR (ang. Address Space Layout Randomization).

Luka obecna jest we wszystkich wersjach JRE począwszy od Java 6 update 10. Tavis Ormandy utworzył przykład PoC dowodzący praktycznej możliwości wykonania ataku. Samo tylko odwiedzenie wspomnianej strony pokazowej powoduje całkowicie automatyczne uruchomienie apletu calc.jar. W wyniku działania apletu, w systemie operacyjnym użytkownika następuje automatyczne uruchomienie aplikacji calc.exe. W podobny sposób możliwe jest lokalne uruchomienie dowolnego kodu (np. trojana pobranego przy pomocy odpowiedniej komendy za pomocą protokołu FTP). Ruben Santamarta opublikował natomiast kod PoC.

Obrona przed potencjalnym atakiem nie jest w chwili obecnej prosta. Producent (Oracle — po niedawnym przejęciu Sun Microsystems) został już powiadomiony o całej sprawie, nie zamierza jednak opublikować odpowiedniej poprawki w trybie przyspieszonym. Na chwilę obecną możliwe jest więc jedynie zastosowanie tymczasowych środków zaradczych (wyłączenie obsługi technologii Java w przeglądarce internetowej nie jest wystarczające), które niestety są zależne od stosowanej przeglądarki internetowej. Wielu znanych ekspertów zajmujących się bezpieczeństwem (takich jak Alexander Sotirov) zaleca natomiast całkowite porzucenie technologii Java.

[źródło1] [źródło2]

Komentarze (38)

Wczytywanie... Logowanie...
  • Zalogowany jako
Czy ten dzień na pewno jest odpowiedni na opublikowanie tego artykułu?
6 odpowiedzi · aktywny 778 tygodni temu
Co ma sobota do błędu w Javie?
Oczywiście informacją dnia dla wszystkich Polaków (i nie tylko) jest z pewnością katastrofa w której zginął m.in. prezydent Polski Lech Kaczyński. Nie widzę jednak powodu, by osoby zainteresowane bezpieczeństwem nie miały się tego dnia dowiedzieć również o niezwykle ważnej luce w Javie.
Myślę, że taki dzień nie jest odpowiedni na zjedzenie obiadu. Kolacji też nie jedz. Najlepiej zamknij się w szafie i wyjdź dopiero jutro (o ile jutro dzie” będzie odpowiedniejszy).
@xyz Szkoda, że niektórzy najwyraźniej nie potrafią zrozumieć co dla kraju oznacza śmierć prezydenta i całego wyższego dowództwa Wojska Polskiego.
myślę Tomku ze to nie jest odpowiedni dzień na takie komentarze jak Twoje
Drogi xyz zupełnie niepotrzebnie jesteś cyniczny. Uważam, że to bardzo dobrze, że dowiedzieliśmy się o luce bezpieczeństwa w javie. Ale przecież nie tak trudno zrozumieć kogoś, kto osobiście przeżywa tragedię, która się wydarzyła. Nie powinno być specjalnie trudne powstrzymanie się od złośliwego komentarza. Tylko tyle.
1 odpowiedź · aktywny mniej niż minuta temu
Skoro ktoś tak osobiście przeżywa tragedię, która się wydarzyła i przeszkadza mu każdy artykuł na inny temat to może nie powinien po prostu wchodzić na tą stronę, albo powstrzymać się od używania Internetu na kilka dni?
Co pół roku władza mnie zmusza do płakania po jakieś tragedii. Nie chcę, mam swoje problemy, a państwo na każdym kroku utrudniają mi życie podpie**alając pół wypłaty. Nie godzę się, żeby jeszcze narzucano mi, co mam odczuwać.

PS. Szkoda, że na pokładzie nie było Kurskiego i Giertycha.
1 odpowiedź · aktywny 778 tygodni temu
ja bym dodal Macierewicza
Po kliknięciu link z testcase nie dzieje się nic, przynajmniej pod Ubuntu + Firefox / Chrome.

A na emocje proponuję:http://humour.200ok.com.au/img/bigcupofshutthefuc... (chodzi mi szczególnie czerwony napis na dole - dotyczy jednej jak i drugiej strony "sporu o dzień")
Z podanego tekstu źródłowego: "I believe non-Windows installations are unaffected". Skąd więc teza, że problem dotyczy też innych systemów?
2 odpowiedzi · aktywny 778 tygodni temu
Z drugiego źródła:
"Although Linux contains vulnerable code, I was unable to exploit it in the same manner. It likely can be exploited by using the proper sequence of command-line arguments, but the sudden release didn't allow me to research into this issue.I was focused on Windows at the moment of the disclosure."

Czyli prawdopodobnie podobną technikę dla Linuksa można opracować, ale jak to zwykle bywa, badacze zajęli się najpierw Windowsami :).
Dzięki. Patrzyłem pod odnośniki zawarte w tekście, nie zauważyłem linków pod tekstem.
wg. podanych informacji, pilot otrzymal z wiezy kontrolnej polecenie ladowanai na innych lotniskach. 15 min przed kolowaniem samolotu prezydenckiego, rosyjski samolot nie uzyskal zgody na ladowanie w Smolensku.
Nie zapominajmy ze na pokladzie byli dowodcy wojsk (powietrrznych, ladowych i morskich) Jezeli pilot podjal sie ladowania w tych warunkach to prawdopodobnie wylacznie na rozkach zwierzchnika, ktory byl na pokladzie samolotu....
Ludzie to nie jest miejsce na spieranie sie o katastrofe lotnicza, tylko portal z newsami nt security :P
durni jestescie....co chwile ktos ginie, a takie luki nie odkrywa sie codziennie...
Panowie to jest portal o bezpieczeństwie a nie wp onet czy jakie inne gówno, po za tym mamy przestać oddychać bo była katastrofa.
Poziom waszych wypowiedzi i oceny powagi sytuacji jest powalajacy. Trudno uwierzyc, że ludzie wyksztalceni i majacy tworzyc przyszlosc narodu udaja pseudo-dowcipnych bedac cynicznymi nawet w takich chwilach. Co musi sie stac by ciemny naród Polski zrozumial pewne rzeczy i spojrzał dalej niż tylko na dzien wypłaty. Polacy zawsze sie budzili jak bylo juz za pozno - swoja glupota, która i tutaj prezentujecie poswiadczacie ze jeszcze dlugo Polska bedzie nekana przez "wypadki" i "przypadki" pograżona w swoim chocholim tańcu wielkich inteligentow internetu, których posty mialem "przyjemnosc" wlasnie przeczytac.
Faktycznie, bardzo poważny błąd bezpieczeństwa.

Sprawdzałem u siebie i mój firewall radzi sobie z tym problemem. Po otwarciu przykładowej strony podanej w artykule javaws.exe chce dostępu do internetu (dokładnie do 127.0.0.1:4189) i mój firewall pyta się, czy ten dostęp przydzielić - jeśli nie zezwalam skrypt na stronie nie ma szans się załadować i kalkulator mi nie wyskakuje.
Niestety, jeśli zezwolę kalkulator pojawia się "nie wiadomo skąd".

Co do pierwszego komentarza. Ten tekst nie ma formy rozrywkowej czy nie jest felietonem traktującym humorystycznie o sprawie. Jest o błędzie krytycznym, która może spowodować, że WSZYSTKIE informacje zawarte na twoim kompie zostaną skradzione, zostanie zainstalowany jakiś keylogger, który dodatkowo przechwyci wszystkie twoje hasła i już można się cieszyć pustką na koncie etc. Co gorsza - niczego nie zauważysz.
Nie widzę więc powodu, dlaczego nie miałaby być zamieszczana - zdecydowanie POWINNA. Wiem, że jest żałoba - jednakże zabezpieczenie moich danych i majątku jest, w moim odczuciu, także bardzo ważne.
"Niestety, wyłączenie obsługi ActiveX lub wtyczki NPAPI nie rozwiązuje problemu."
Próbowałem klika razy. Mam FF 3.5.9 i kilka wersji JRE: 1.6.0: 10, 13, 17:
- wyłączenie wszystkich wtyczek pomaga, wbrew powyższemu cytatowi,
- włączenie 10 nie powoduje uruchomienia kalkulatora,
- włączenie 13 i 17 powoduje uruchomienie kalkulatora.
Włączałem i wyłączałem "w biegu", bez restartu przeglądarki.

Może dla kogoś te informacje okażą się przydatne...
1 odpowiedź · aktywny 778 tygodni temu
Poprawka: uruchomienie kalkulatora występuje tylko na wersji 1.6.0_13.
Po prostu nie wyłączyłem tej wersji wtyczki, stąd pomyłka. Czyżby w wersji 17 błąd został naprawiony?
Dziwne też, że kalkulator nie działa na wersji 10, skoro podobno działa począwszy od tej wersji...
A może jest coś nie tak ze stroną PoC?
Ostatnio miałem dziwne włamanie na Ubuntu. Kilkadziesiąt plików zostalo utraconych na partycji NTFS(partycja była zamontowana). Systemu nie moglem zamknąć-demon Opery na to nie pozwolił-musialem wyciągnąć wtyczkę z gniazdka. Świadczy to o luce w systemie wykożystywanej przez specjalistów od "komputer forenzis" na rzecz "Wielkiego Brata". Sytuacja o tyle była ciekawa, iż z Opery nie kożystam do przeglądania stron internetowym o dużym ryzyku.
Panowie przestańcie się obrzucać niech ta śmierć tylu ofiar nie pójdzie na marne wyciągnijcie wnioski. Łączmy się w bólu z rodzinami a nie skaczmy sobie do gardeł. Krwi potrzebujecie kolejnej, Rzym już dawno w historii zapisany. Życie się toczy i jego nie zatrzymamy ale czy my coś wyciągniemy z kolejnej tragicznej śmierci. Jesteśmy razem Polakami to nas łaczy a nie dzieli. I jak słyszę w telewizji wywiad z młoda osobą "To nie był mój prezydent" to chyba mamy 2 państwa polskie i polskie. Nie mówmy o upodobaniach partyjnych tylko o ludizach. Strona Rosyjska pomimo ukrywania pokazała gest jakiego nikt nie pamięta, a film Katyń w godiznach największej oglądalności. Pamiętajmy jesteśmy ludzmi, Polakami.... Jesteśmy razem
2 odpowiedzi · aktywny 778 tygodni temu
daruj sobie te sentymentalno patriotyczne wypowiedzi .... od tego sa ksiegi kondolencyjne ....wchodzac na ta strone oczekuje informacji tematycznej stosownej do temetu tego portalu, a nie kolejne zale i szlochanie typu ''laczny sie w zalu'' .....
Jasiu, tobie juz podziekujemy
Odpaliłem z ciekawości ten skrypt pod Firefox'em 3.6.3 pod Win 7. Pokazała się informacja o braku wtyczki i całość zakończyła się błędem. Może nie jest to tak krytyczne?
Bardzo przydatna informacja o luce.Popieram przedmówców to jest portal z branźy security a nie miejsce na gorzkie żale.
U mnie avast antivirus nie zezwolił na uruchomienie przykładu.
U mnie NOD32 nie pozwolił się stronce załadować
Może porozmawiajmy o bezpieczeństwie... w samolotach :P
1 odpowiedź · aktywny 777 tygodni temu
Tutaj rozmawiamy głównie o bezpieczeństwie IT ;)
na

niebezpiecznik.pl

wyczytałem, że oracle wypuścił już łatkę do tego buga.
a jednak NIEDZIAŁA! Zainstalowałem tą łatkę, mam teraz wersje 6.20 javy i niestety nadal odpala mi się kalkulator - sory za wprowadzenie błąd.
1 odpowiedź · aktywny 777 tygodni temu
Teoretycznie Java 6 Update 20 powinna rzeczywiście zamykać tę lukęhttp://krebsonsecurity.com/2010/04/java-patch-tar...
Dodam także że mój kolega z pracy również "załatał" javę wersją 6.20 - i u niego niestety również to nie pomogło. Odpala się kalkulator... :(

Komuś ta łatka pomogła?
1 odpowiedź · aktywny 777 tygodni temu
Wg moich testów najnowsza wersja Javy skutecznie zamyka lukę.

Wyślij nowy komentarz

Comments by