r   e   k   l   a   m   a
r   e   k   l   a   m   a

Ochrona przed rootkitami w Windows 10 zneutralizowana technologią Intela

Strona główna AktualnościBEZPIECZEŃSTWO

Kernel Patch Protection, znana także jako PatchGuard, to technologia wprowadzona w 64-bitowych wersjach Windowsa, która uniemożliwia wprowadzenie łatek do jądra systemu przez np. sterowniki napisane przez strony trzecie. Było to relatywnie łatwe w 32-bitowych Windowsach i wykorzystywane zarówno przez malware, jak i programy zabezpieczające. 64-bitowy system, w razie wykrycia modyfikacji, zwraca błąd CRITICAL_STRUCTURE_CORRUPTION, wyświetlając Niebieski Ekran Śmierci i wyłączając system. Pomysł dobry, nie ma dobrego uzasadnienia tego, by sterowniki urządzeń, które w Windowsie działają z takimi samymi prawami jak kernel, mogły modyfikować centralny element systemu. Niestety okazało się, że możliwe jest ominięcie tego zabezpieczenia – podatne są na ten atak wszystkie komputery z procesorami Intel Broadwell i Skylake.

Badacze z firmy CyberArk chwalą się odkryciem nowej metody wpinania dowolnego kodu w jądro systemu Windows 10, co pozwala na zaatakowanych komputerach zainstalować własne rootkity, by w ten sposób uzyskać stan trwałej infekcji, nieusuwalnej i niewykrywalnej przez oprogramowanie antywirusowe. Nadano jej nazwę „GhostHook” – i niestety nie ma sposobu, by się przed nią uchronić. Microsoft może tylko bezsilnie rozłożyć tu ręce, problem dotyczy bowiem architektury nowych mikroprocesorów Intela.

W procesorach Intel Broadwell wprowadzono mechanizm rozszerzający architekturę o nazwie Intel Processor Trace (Intel PT). To sprzętowy tracer gromadzący dane o wykonywaniu kodu i przechowujący je w pakietach danych, które można następnie zbadać w programowym dekoderze.

r   e   k   l   a   m   a

Pakiety te zawierają wszystkie informacje o czasie i przepływie programu, jak również jego wpływie na tryby pracy sprzętu. Przechowywane są w wewnętrznym buforze, a następnie przesyłane do pamięci zewnętrznej, skąd można je załadować do debuggera. Pomysł znalazł zastosowanie w monitorowaniu i diagnostyce oprogramowania, wykrywaniu błędów metodą fuzzingu oraz analizie szkodników – jedynie bezpieczne kontenery Software Guard Extensions (SGX) są dla takiego sprzętowego tracera Intel PT niewidzialne.

Intel PT: miecz obusieczny

Technologię tę można jednak też wykorzystać w złych celach, nadużywając mechanizmu informowania o przepełnieniu bufora, aby przejąć kontrolę nad wykonywaniem wątka. Kasif Dekel na firmowym blogu CyberArk opisuje krok po kroku proces ataku:

Przypisuje się pakietom PT ekstremalnie mały bufor, tak by procesorowi szybko skończyło się miejsce i skoczył do uchwytu przerwania monitorującego wydajność (PMI) – to fragment kodu kontrolowanego przez napastnika, poprzez który dokonane zostanie wpięcie w jądro.

Następnie uruchamia się Intel PT, by śledził określony obszar kodu kernela – interesującą napastnika funkcję. Gdy bufor tracera się przepełni, procesor przerywa jego działanie i wywołuje wspomniany uchwyt PMI w kontekście uruchomionego wątku. W tym momencie możliwa staje się zmiana kontekstu wykonania kodu, w praktyce równoważna z umieszczeniem swojej łatki w kernelu. Implementacja ataku przeprowadzonego przez CyberArk otworzyła drogę do sytuacji hazardu (race condition) – i wpięcia swojego kodu do kernela z poziomu aplikacji działającej w trybie użytkownika.

Zabezpieczenie? Kiedyś może będzie

Microsoft otrzymał oczywiście wcześniej pełen raport o tym odkryciu, ale co może zrobić? Próbuje jedynie zachować dobrą minę do złej gry. W oficjalnej odpowiedzi zespół bezpieczeństwa z Redmond napisał, że nie uznaje tego za zagrożenie, które trzeba byłoby łatać w przyszłych uaktualnieniach systemu. Problem może jednak zostać rozwiązany… w przyszłych wersjach Windowsa.

CyberArk komentuje sprawę następująco: Microsoft wydaje się nie rozumieć, że PatchGuard jest komponentem kernela, którego nie powinno się obchodzić, ponieważ PatchGuard blokuje rootkity przed np. wpinaniem się w SSDT (System Service Descriptor Table, tabela wskaźników funkcji zajmujących się obsługą podstawowych wywołań systemowych – przyp. red.), nie przed wykonywaniem kodu w trybie kernela.

W praktyce Windows 10 będzie wciąż podatne na rootkity wprowadzane przez szkodniki, które zdołały obejść antywirusy – każda infekcja może zamienić się w nieusuwalne zagrożenie. Warto wspomnieć, że nie jest to pierwszy raz, gdy stworzony przez Intela mechanizm zarządzający został wykorzystany do złośliwych celów.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.