Łatka Microsoftu na lukę w procesorze pozwoliła na łatwy atak na Windows 7
W styczniu Microsoft wydał łatkę KB4056892, uodparniającąjego systemy operacyjne na atak Meltdown, czyli możliwośćodczytania chronionej pamięci kernela przez zwykłą aplikację.Wiązało się to jednak z ogromnymi zmianami w architekturzepamięci, całkowitym odseparowaniem od siebie pamięci kernela iprzestrzeni użytkownika (ASLR/VA Isolation). Działając w pospiechufirma z Redmond zdołała powstrzymać zagrożenie ze stronyMeltdown, ale jednocześnie wprowadziła do Windowsa 7 zagrożeniedaleko gorsze. Po jej zainstalowaniu możliwe stało się odczytaniei zapisywanie przez dowolny proces całej zawartości fizycznejpamięci.
28.03.2018 12:11
Odkrycie szwedzkiego badacza Ulfa Friska jest o tyle interesujące,że błąd popełniony przez programistów Microsoftu jest wręczpodręcznikowy – i możemy tylko się dziwić, że nikt (?) tegonie zauważył wcześniej. Do wyexploitowania nie potrzeba żadnychwyrafinowanych operacji na API Windowsa czy nadużywania wywołańsystemowych, wystarczą standardowe operacje odczytu i zapisu.
Możliwe stało się to przez błędne ustawienie uprawnieńdostępu we wpisie PML4, który stanowi podstawę czteropoziomowejhierarchii stron pamięci, wykorzystywaną przez jednostkęzarządzania pamięcią procesora do translacji adresów pamięciwirtualnej na adresy fizyczne. W Windowsie 7 wpis ten ma stałąpozycję, znajdziemy go w pamięci normalnie dostępnej tylko dlakernela.
Łatka KB4056892 zmieniła uprawnienia dostępu w tym miejscu znadzorcy (supervisor) na użytkownika (user). Oznacza to, że PML4zostało odwzorowane na każdy proces, także ten działający wtrybie użytkownika, pozwalając mu na dowolny dostęp do stronpamięci – a co za tym idzie, pełen dostęp do fizycznej pamięcikomputera (chyba że chroniona byłaby akurat przez wykorzystywany wwirtualizacji mechanizm Extended Page Tables).
W nowszych wersjach Windowsa problem ten nie występuje, ponieważlokalizacja PML4 jest tam losowa. Użytkownicy Windowsa 7, którzynie mają jeszcze marcowych łatek bezpieczeństwa w systemie, mogąjednak przekonać się sami co warte są zabezpieczenia ich systemu,uruchamiając narzędzie PCILeech,zgodnie z tym poradnikiem.Wystarczy wydać polecenie pcileech.exe -device totalmeltdown, bynowy atak, wbudowany już w tego toolkita zrzucił pamięć.
Ulf Frisk pokazujeteż na łamach swojego bloga jak korzystając z wirtualnego systemuplików Dokany zamontować procesy jako pliki i foldery w systemieplików pamięci, a następnie przeprowadzać na nich modyfikacje.
Jak się zabezpieczyć?
Na atak podatni są użytkownicy Windowsa 7, którzy zainstalowaliłatki Microsoftu wydane w styczniu 2018 roku, a nie instalowalijeszcze łatek z marca 2018 roku. Ostatnie wydanie poprawek dostępnepoprzez Windows Update likwiduje tę koszmarną wpadkę. Innewspierane wersje Windowsa są na wspomniany atak całkowicie odporne.