Luka Spectre dała dostęp do najbardziej chronionego trybu działania procesora

Strona główna Aktualności

O autorze

W ciągu ostatnich miesięcy mogliśmy się już kilkukrotnie przekonać, że na pierwotnej formie ataku Spectre zagrożenia związane z nadużyciem mechanizmów predykcyjnych w nowoczesnych procesorach się nie kończą. A kolejne badania pokazują, że to dopiero początek tego, co ze Spectre można zrobić. Co powiedziecie na przeniknięcie do System Management Mode, trybu do którego nie ma dostępu nawet kernel systemu operacyjnego?

Pracujący pod kierownictwem Jurija Bułygina (notabene byłego szefa zespołu badań bezpieczeństwa w Intelu) badacze z firmy Eclypsium wykorzystali kod źródłowy exploita dowodzącego możliwość ataku Spectre w wariancie pierwszym (bounds check bypass, CVE-2017-5753). Przerobili go tak, aby posłużył do obejścia zabezpieczenia SMRR (System Management Range Register) i uzyskać dostęp do danych przechowywanych w SMRAM (System Management RAM) – obszarze fizycznej pamięci, w której przechowywane są dane trybu SMM (System Management Mode), tzw. Ring -2.

Wprowadzony z procesorami Intel i386SL na początku lat 90 tryb SMM obecny jest w pecetach do kluczowych zadań firmware komputera. Działa całkowicie poza zasięgiem systemu operacyjnego czy hiperwizora, odpowiadając m.in. za zarządzanie energią (w tym np. sterowanie wentylatorami czy wyłączanie przegrzanego procesora), obsługę wydarzeń systemowych takich jak błędy pamięci, czy emulację myszki i klawiatury PS/2 na sprzęcie USB.

Użytkownik nie ma nawet pojęcia, że to się dzieje. Za każdym razem gdy jakaś instrukcja wykonywana jest w trybie SMM, procesor zawiesza działanie systemu operacyjnego i wykonuje ją sobie poza kolejnością z pełnym dostępem do firmware komputera, a także wszystkich innych umieszczonych na nim danych. Takie podejście nie byłoby złe, gdybyśmy mogli zaufać zabezpieczeniom SMM. Sęk w tym, że nie możemy – już podczas konferencji BlackHat 2008 pokazano pierwszy rootkit działający w pamięci SMM. Na publiczne ujawnienie kolejnej ciekawej luki w SMM przyszło czekać do 2015 roku: The Memory Sinkhole pozwalało przenieść złośliwy kod bezpośrednio z pamięci kernela do chronionej pamięci SMM za pomocą wadliwej łatki na kontrolerze przerwań x86.

Teraz zespół z Eclypsium pokazał inną drogę dostania się do wrażliwego trybu procesora. Dostęp do SMM chroniony jest przez sprzętowy mechanizm rejestru zasięgu (range register), który jak się okazuje, może zostać pokonany za pomocą Spectre. Obejście to pomysłowe wykorzystanie pomiaru czasu dostępu do różnych lokalizacji pamięci poprzez instrukcje wywoływane po wymuszeniu przejścia procesora do trybu SMM – wcześniej więc trzeba dysponować exploitem na poziomie systemu operacyjnego. Napastnik może jednak w ten sposób uzyskać dostęp do całego kodu SMM i zawartych w nim danych. Co najważniejsze – może w ten sposób poszukać innych luk, do wykorzystania w malware wymierzonemu bezpośrednio w ten tryb działania procesora.

Pocieszyć w tej sytuacji mogą jedynie słowa rzecznika Intela, który stwierdził, że łatki wydane do zneutralizowania obu wariantów Spectre powinny wystarczyć, aby zablokować łańcuch ataku odkryty przez Eclypsium. Mamy nadzieję, że cyberprzestępcy zainstalowali już u siebie te łatki i nie będą już mogli za bardzo badać tego, co dzieje się w SMM, do tej pory swoje bezpieczeństwo zapewniającemu przede wszystkim metodą security through obscurity. No cóż, takie uroki techniki lat 90. W tamtych czasach naprawdę bardzo mało się myślało o bezpieczeństwie.

© dobreprogramy