Ochrona przed rootkitami w Windows 10 zneutralizowana technologią Intela
Kernel Patch Protection, znana także jako PatchGuard, totechnologia wprowadzona w 64-bitowych wersjach Windowsa, którauniemożliwia wprowadzenie łatek do jądra systemu przez np.sterowniki napisane przez strony trzecie. Było to relatywnie łatwew 32-bitowych Windowsach i wykorzystywane zarówno przez malware, jaki programy zabezpieczające. 64-bitowy system, w razie wykryciamodyfikacji, 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 sterownikiurządzeń, które w Windowsie działają z takimi samymi prawami jakkernel, mogły modyfikować centralny element systemu. Niestetyokazało się, że możliwe jest ominięcie tego zabezpieczenia –podatne są na ten atak wszystkie komputery z procesorami IntelBroadwell i Skylake.
25.06.2017 | aktual.: 25.06.2017 15:11
Badacze z firmy CyberArk chwalą się odkryciem nowej metodywpinania dowolnego kodu w jądro systemu Windows 10, co pozwala nazaatakowanych komputerach zainstalować własne rootkity, by w tensposób uzyskać stan trwałej infekcji, nieusuwalnej iniewykrywalnej 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ącyarchitekturę o nazwie Intel Processor Trace (Intel PT). To sprzętowytracer gromadzący dane o wykonywaniu kodu i przechowujący je wpakietach danych, które można następnie zbadać w programowymdekoderze.
Pakiety te zawierają wszystkie informacje o czasie i przepływieprogramu, jak również jego wpływie na tryby pracy sprzętu.Przechowywane są w wewnętrznym buforze, a następnie przesyłane dopamięci zewnętrznej, skąd można je załadować do debuggera.Pomysł znalazł zastosowanie w monitorowaniu i diagnostyceoprogramowania, wykrywaniu błędów metodą fuzzingu oraz analizieszkodników – jedynie bezpieczne kontenery Software GuardExtensions (SGX) są dla takiego sprzętowego tracera Intel PTniewidzialne.
Intel PT: miecz obusieczny
Technologię tę można jednak też wykorzystać w złych celach,nadużywając mechanizmu informowania o przepełnieniu bufora, abyprzejąć kontrolę nad wykonywaniem wątka. Kasif Dekel na firmowymbloguCyberArk opisuje krok po kroku proces ataku:
Przypisuje się pakietom PT ekstremalnie mały bufor, tak byprocesorowi szybko skończyło się miejsce i skoczył do uchwytuprzerwania monitorującego wydajność (PMI) – to fragment kodukontrolowanego przez napastnika, poprzez który dokonane zostaniewpięcie w jądro.
Następnie uruchamia się Intel PT, by śledził określony obszarkodu kernela – interesującą napastnika funkcję. Gdy bufortracera się przepełni, procesor przerywa jego działanie i wywołujewspomniany uchwyt PMI w kontekście uruchomionego wątku. W tymmomencie możliwa staje się zmiana kontekstu wykonania kodu, wpraktyce 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 dokernela 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 tymodkryciu, ale co może zrobić? Próbuje jedynie zachować dobrąminę do złej gry. W oficjalnej odpowiedzi zespół bezpieczeństwaz Redmond napisał, że nie uznaje tego za zagrożenie, które trzebabyłoby łatać w przyszłych uaktualnieniach systemu. Problem możejednak 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 niepowinno się obchodzić, ponieważ PatchGuard blokuje rootkity przednp. wpinaniem się w SSDT (System Service Descriptor Table, tabelawskaźników funkcji zajmujących się obsługą podstawowych wywołańsystemowych – przyp. red.), nie przed wykonywaniem kodu w trybiekernela.
W praktyce Windows 10 będzie wciąż podatne na rootkitywprowadzane przez szkodniki, które zdołały obejść antywirusy –każda infekcja może zamienić się w nieusuwalne zagrożenie. Wartowspomnieć, że nie jest to pierwszy raz, gdy stworzony przez Intelamechanizmzarządzający został wykorzystany do złośliwych celów.