Zagrożone środowisko

Testowana przez badaczy wersja programu Foxit Reader uruchamiała załącznik bez pytania. Inaczej zachowuje się PDF-XChange Viewer (2.0 Build 44), sygnalizując próbę uruchomienia kodu, niemniej do udanego ataku wymagana jest pewna modyfikacja pliku.

Czy systemy UNIX są zagrożone?

Jest to jeden z niewielu przypadków, w których ten sam mechanizm i plik może być wykorzystany do ataku na więcej niż jedną platformę systemową. Pojedynczy plik udostępniony jako przykład wykorzystania podatności w systemach Windows otwierał kalkulator calc.exe, w systemie Ubuntu Linux uruchomił proces /usr/bin/xcalc, w systemie MacOS X z kolei Calculator.app: (/Applications/Calculator.app/Contents/MacOS/Calculator). We wszystkich trzech przypadkach wykorzystano oprogramowanie czytnika PDF firmy Adobe.

Chociaż jest to jedynie demonstracja możliwości, wyraźnie widać, że użycie opcji /Launch w pliku PDF może umożliwić realizację multiplatformowego infektora. Mechanizm infekcji systemów typu UNIX polegałby na pobraniu odpowiedniego kodu z zewnętrznego serwera, ustawieniu bitu wykonywalności (polecenie chmod +x) i przekazaniu sterowania do pobranego kodu. Uzyskane w ten sposób uprawnienia użytkownika umożliwiają przechwycenie informacji wpisywanych i składowanych na koncie lokalnego użytkownika. Skuteczną ochronę przed atakiem związanym z pobraniem obcego kodu daje oddzielenie partycji /home oraz /tmp i zamontowanie ich z opcją noexec, nosuid, nodev (jest to jedna z opcji hardeningu systemu typu UNIX).

Nie jest to jednak koniec możliwości ataku. Aby uzyskać uprawnienia superużytkownika, można wykorzystać polecenie kontrolowanej przez użytkownika elewacji uprawnień (na przykład gksu), chociaż wymaga to pewnych działań socjotechnicznych. Jedynym minusem jest brak możliwości przekazania parametru do wydawanej komendy.

W ten sam sposób można pozyskać uprawnienia uid 0 na komputerach MacOS X.

Prostota i odporność

Obecnie jednym z niewielu czytników PDF dla środowiska Windows, który nie umożliwia ataku polegającego na uruchomieniu obcego kodu przez wykorzystanie opcji Launch, jest Sumatra PDF. Aplikacja ta ignoruje wszelkie żądania uruchomienia kodu, jej jedynym zadaniem jest wyświetlenie treści dokumentu. Nie znaczy to jednak, że sama migracja do Sumatry zapewni bezpieczeństwo - należy zapewnić aktualizację tego produktu na wszystkich komputerach. Sumatra nie posiada opcji aktualizacji klasy enterprise, ponadto nie zawsze ta aplikacja nadaje się do użycia w firmie.

W chwili pisania tego tekstu, Foxit Reader (wersja 3.2.0.0303), najpopularniejszy alternatywny czytnik PDF dla Windows, umożliwiał uruchomienie bez ostrzeżenia dowolnie wybranego programu z lokalnego systemu plików z wybranym parametrem. Po odpowiednim przygotowaniu, można w ten sposób uruchomić praktycznie dowolny kod. Podobną podatność w tym czytniku wykryto w ubiegłym roku (CVE-2009-0836), ale dotyczyła ona uruchamiania programów w lokalnym systemie plików za pomocą opcji Open.

Inne programy przed próbą uruchomienia poleceń wyświetlają komunikat (PDF-Xchange Viewer), który jednak w pewnym stopniu można kontrolować (Adobe Reader). Najbezpieczniejsze są te aplikcje, które całkowicie ignorują aktywną zawartość (Sumatra PDF, Evince dla Windows, a także xpdf z pakietu Cygwin). Niszowe Nuance PDF Viewer oraz Nitro PDF wyświetlają błąd, ale prawdopodobnie także są podatne na atak.

W systemach typu UNIX podatny jest jedynie Adobe Reader. Inne aplikacje obsługujące plik PDF, takie jak evince, okular, xpdf czy preview w komputerach MacOS X ignorują te opcje.


TOP 200