Włamanie przez przegrzanie

Spece z francuskiego odpowiednika NSA odkryli, że komputer z Pentium można zmusić do wykonania dowolnego kodu, jeśli sprowokuje się sytuację awaryjną, która normalnie powinna wystąpić tylko przy przegrzaniu procesora.

Procesory Pentium posiadają awaryjny podprogram, który aktywuje się w sytuacjach grożących uszkodzeniem procesora lub płyty głównej. Jedną z takich sytuacji jest przegrzanie procesora. Procesor wychodzi wtedy z trybu chronionego, w którym normalnie pracuje system operacyjny, i przechodzi do trybu rzeczywistego, uruchamiając specjalny podprogram SMM (System Management Mode). Procedury dla SMM są zapisane w pamięci SMRAM (System Management RAM).

Jeśli intruzowi uda się wprowadzić swój kod do SMRAM, to może on przejąć kontrolę nad całym systemem operacyjnym a nie - jak by się mogło wydawać - tylko nad procedurą SMM. Program uruchomiony w trybie rzeczywistym ma bowiem dostęp do całej pamięci operacyjnej, w tym także tych części, które zawierają struktury danych chwilowo zawieszonego systemu operacyjnego.

Wprowadzenie swojego kodu do SMRAM jest możliwe dzięki temu, że SMRAM jest zwykle mapowany na pamięć zarezerwowaną przez BIOS dla karty graficznej. Czy teraz trzeba przegrzać system? Niekoniecznie - wystarczy wysłać odpowiedni sygnał do układu odpowiadającego za SMM, by ten pomyślał że doszło do sytuacji awaryjnej.

Autor odkrycia, Loic Duflot, pracownik francuskiej agencji bezpieczeństwa DSSI, zademonstrował taki atak na przykładzie systemu OpenBSD. Do wprowadzenia swojego kodu do SMRAM wykorzystał uprawnienia X Window System, czyli graficznego interfejsu dla systemów uniksowych. Dowolny sterownik graficzny musi mieć dostęp do pamięci - tutaj wykorzystano funkcję ustawiania tzw. apertury. Sprowokowanie SMM jest kwestią jednego rozkazu. W praktycznej demonstracji Duflot w ten prosty sposób obniżył systemowy poziom bezpieczeństwa OpenBSD (security.level) z wysokiego na niski, co jest poważnym naruszeniem bezpieczeństwa.

W przypadku OpenBSD i innych systemów uniksowych Duflot zaleca wyłączenie użytkownikom możliwości ustawiania apertury ale przyznaje, że jest to tylko obejście problemu. SMM może także zablokować system operacyjny lub BIOS, lecz wymaga to odpowiednich zmian w jednym i drugim.

Więcej informacji: prezentacja z konferencji CanSecWest/core06 Loïc Duflot "Security Issues related to Pentium System Management Mode"