Zagrożone środowisko
- 20.04.2010
Luka w standardzie
Zawartość tekstu poniżej ostrzeżenia można kontro-lować, co może posłużyć do ataku socjotechnicznego.
Podczas testów, badaczom udało się przygotować zestaw dwóch plików PDF, z których jeden tworzył plik BAT, który dodaje użytkownika do domeny Active Directory, a drugi dokument uruchamiał już utworzony plik z poziomu interpretera cmd.exe. Skutkiem otwarcia tych dwóch dokumentów w przeglądarce Foxit Reader, uruchamianej z uprawnieniami administratora (dość częsty przypadek, gdy administrator przegląda dokumentację online podczas jakichś prac), było dodanie nowego użytkownika z uprawnieniami administratora domeny. Atak z użyciem takich skryptów jest bardzo prymitywny, ale w wielu przypadkach byłby skuteczny. Ochrona za pomocą DEP i ASLR nie osłania przed żadnym z nowych ataków, gdyż nie są przełamywane zabezpieczenia przed wykonaniem kodu w obrębie pamięci, zamiast nich wykonywane są typowe odwołania systemowe, służące do uruchomienia nowego procesu. W systemach Windows do pewnego stopnia będzie można im przeciwdziałać.
Ci sami badacze, którzy analizowali podatność czytnika PDF, pracowali nad sposobem zabezpieczenia tej aplikacji przed atakami polegającymi na uruchomieniu przez nią obcego kodu. Jednym ze sposobów, który uniemożliwi wykorzystanie takiej luki, jest zablokowanie wykonywania nowych procesów - technika ta jest stosowana w wielu środowiskach sandbox i w rozwiązaniach hostowego IPS. Poprzez dodanie specjalnej biblioteki DLL modyfikującej API Create Process (NtCreateProcess, NtCreateProcessEx, NTCreateUserProcess czy ZwCreateProcess) można poważnie utrudnić uruchomienie nowego procesu. Niestety przechwycenie tych odwołań to za mało, gdyż złośliwy kod może użyć "magicznych liczb" NT albo załadować je z ntdll.dll i użyć bezpośrednio metody KiFastSystemCall.
Dzięki zmianie odwołania systemowego, nawet podatna aplikacja, taka jak Adobe Reader czy Foxit Reader, nie będzie mogła uruchomić nowego procesu - nie pozwoli na to przejęte odwołanie. Wynikiem może być załamanie czytnika, ale złośliwy kod nie zostanie wykonany. Niepożądanym skutkiem ubocznym jest zablokowanie mechanizmów aktualizacji, zazwyczaj realizowanych w postaci osobnego programu i wywoływanych z głównej aplikacji.
Niestety, pisanie rozwiązań HIPS pracujących w przestrzeni użytkownika nie jest prostą sprawą, są to rozwiązania podatne na błędy, a ich skuteczność jest ograniczona. Takie rozwiązania najlepiej działają na poziomie jądra systemu.
Manipulacja ostrzeżeniami
Chociaż program Adobe Reader (9.3.1, Windows 7, Ubuntu Linux) wyświetla okno z ostrzeżeniem, zawartość tekstu w oknie można w pewnym stopniu kontrolować i posłużyć się nim do ataku socjotechnicznego. Należy pamiętać, że opcja bezpiecznego przeglądania dokumentów (enhanced secutity) w programie Adobe nie wyłącza komendy /Launch, zatem mimo włączenia tej opcji, czytnik jest podatny na atak. Pewne utrudnienie dla włamywaczy można wprowadzić wyłączając w opcjach Trust Manager obsługę załączników innych niż PDF, ale nie jest to domyślne ustawienie.