Wszystkie systemy z groźnym błędem. Przyczyną niezrozumienie słów Intela

Wszystkie systemy z groźnym błędem. Przyczyną niezrozumienie słów Intela10.05.2018 12:42

Jeśli czytając tę samą dokumentację techniczną producentasprzętu wszyscy programiści popełniają ten sam błąd, to ktojest winny? Historia luki, którą odkryto w praktycznie wszystkichsystemach operacyjnych pokazuje, jak nieporozumienia na styku międzysprzętem a oprogramowaniem pozwalają na bardzo trudne do wykrycia,a bardzo łatwe do użycia ataki na współczesne komputery. Linux,Windows, macOS, FreeBSD, hiperwizor Xen – to nie ma różnicy,wszystkie one uruchomione na procesorach zarówno Intela jak i AMDmogą zostać przejęte przez napastnika.

Amerykański CERT, przedstawiając tę lukę oznaczoną jakoCVE-2018-8897,wskazuje od razu na jej genezę: podręcznik System Programming Guidedla 32- i 64-bitowych architektur Intela. Jedno zdanie doprowadziłodo tego, że producenci oprogramowania źle zrozumieli to, jakprocesory Intela (i kompatybilne z nimi procesory AMD) obsługująjedno wywołanie.

Zainteresowanych zapoznaniem się z tym nieporozumieniem w całejrozciągłości technicznych szczegółów zapraszamy do artykułuPOP SS/MOV SS Vulnerability, autorstwa Nicka Petersona iNemanji Mulasmajica, odkrywców tego przeoczenia. Pozostałymprzedstawimy problem w pewnym uproszczeniu.

Na liście instrukcji x86 znajdziemy POPSS. Ładuje ona z wierzchu stosu uruchomionego programu wartośćużytą do wybrania segmentu stosu, do rejestru SS (selektor stosu),wskazującego na obecny segment stosu. Następnie zwiększa zaś ojeden wskaźnik stosu. Po co ta instrukcja? Cóż, to pokłosiesegmentacji pamięci w architekturze x86, dzięki której możliwebyło zaadresowanie więcej niż 64 KB RAM. W dzisiejszych systemachoperacyjnych to bez znaczenia, ale POP SS pozostało. Ważne jest to,że POP SS jest specjalnie obsługiwane przez procesor, tak że nawetwywołanie w trakcie jego wykonywania przerwania nie może pozostaćw niespójnym stanie.

Z tego co piszą Peterson i Mulasmajic wynika, że aplikacja możeustawić pułapkę (breakpoint) dla tej lokacji pamięci, z którejwartość selektora stosu zostanie wyciągnięta przez POP SS. Kiedyzaś aplikacja wywoła już POP SS, procesor dotykając tej częścipamięci wywoła specjalny wyjątek. Dla uproszczenia pomijamy tutajinstrukcję MOV SS, wystarczy wiedzieć, że ona także może zostaćwykorzystana do takiego ataku.

Teraz spójrzmy na instrukcję INT (ewentualnie SYSCALL, ale dlauproszczenia to też pominiemy). INT służy do wywołania dowolnegoprzerwania software’owego. Jeśli po POP SS umieścimy INT, mamysytuację w której wygenerowany jest wyjątek, a zarazem systemwywołuje przerwanie. Wywołanie przerwania na procesorach Intela iAMD zmusza je do wejścia w uchwyt przerwań kernela. Ale zaraz,właśnie w tym momencie uruchamia się pułapka, ponieważnajwyraźniej POP SS opóźnia jej wykonanie w czasie.

Czegoś takiego po prostu być nie może. Projektanci systemówoperacyjnych naczytali się podręczników Intela i wyszli zzałożenia, że uchwyt przerwań startuje w czystym stanie.Tymczasem już na samym początku ma sobie poradzić zniespodziewanym wyjątkiem z pułapki. Prowadzi to do nieoczekiwanejsytuacji, w której kernel gotowy jest przyjąć dane wskazane muprzez działające w trybie użytkownika oprogramowanie.

Z artykułu możemy się dowiedzieć, że na Intelu exploit polegana połączeniu instrukcji POP SS i INT, po których kontrolowaćwskaźnik GSBASE w uchwycie przerwań. Z kolei w AMD aplikacja możekontrolować zarówno GSBASE jak i wskaźnik stosu. W obu wypadkachnajczęściej doprowadzi to do kompletnej awarii kernela, aleodpowiednio precyzyjnie sterując zachowaniem procesora, możnawydobyć też informacje z pamięci chronionej, a nawet przejąćkontrolę nad kolejnością wykonywania rozkazów i w konsekwencjiuruchomić własny kod.

#Intel released the 67th edition of the Software Developer’s Manuals with interrupt related modifications https://t.co/qh7jNcQQFN pic.twitter.com/XZ6nkHrITV

— InstLatX64 (@InstLatX64) May 8, 2018Na czym dzisiaj stoimy? No cóż, branża naprawiła wszystko, cosię dało naprawić. Microsoft załatał tę podatność w swoichwtorkowychłatkach. Apple zrobiło to w łatce Security Update 2018-001z kwietnia. Swoją robotę odrobili też producenci kluczowychlinuksowych dystrybucji: Ubuntui RHEL-a.Naprawiono też kernel FreeBSDoraz hiperwizor Xen,łatki dla swoich urządzeń wydało też Synology.

Najważniejsze zaś, że Intel poprawił swoją dokumentację. 8maja opublikowanozaktualizowane Intel® 64 and IA-32 Architectures Software DeveloperManuals w wersji 067. Niebiescy zapewniają, że już właściwiewyjaśniono w nich wszystkie kwestie związane z przerwaniami.

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.