Rosjanie zneutralizowali Intel Management Engine: pomógł sekretny bit NSA
Odkrycie w maju tego roku w zabezpieczeniach Intel Management Engine(IME) luki, która pozwalałana zdalne przejęcie kontroli nad milionami pecetów korzystającychz tej technologii zarządzania ponownie wywołało zainteresowaniekwestią tkwiącego w czipsetach Intela komputera-w-komputerze, nadktórym użytkownik nie ma żadnej kontroli. Wygląda na to, że nietylko zwykli użytkownicy mieli wątpliwości co do IME, ale teżamerykańskie władze federalne. Najwyraźniej to na ich życzenieIntel zmuszony został do wbudowania w IME tajnego wyłącznika,neutralizującego tę technologię.
Badacze z moskiewskiej firmy Positive Technologies odkryli wfirmware Intela nieudokumentowane ustawienie, które pozwalacałkowicie wyłączyć Intel Management Engine w jego najnowszejwersji 11 (czipsety procesorów Skylake i Kaby Lake). Spełnia towięc w pełni postulat, jaki postawiła Electronic FrontierFoundation, wzywającIntela do udostępnienia sposobu na wyłączenie tego kontroleranaszych komputerów, który może stać się ogromnym zagrożeniemdla bezpieczeństwa, nawet przy założeniu dobrej woli producenta.
ME_cleaner tylko na starsze platformy?
Istniało oczywiście już wcześniej rozwiązanie opracowaneprzez społeczność – ME_cleaner,kasujący wszystkie moduły Management Engine poza rdzeniemniezbędnym do rozruchu. Z wyrwanymi w ten sposób „zębami”,Management Engine pozostaje niegroźnym procesem, niezdolnym dointerakcji z systemem. Co najważniejsze, takie rozwiązanie niealarmuje software’owego wyłącznika komputera, który wyszukujepodpisanego manifestu firmware ME, a jeśli go nie znajdzie, towyłącza komputer po 30 minutach.
Sęk w tym, że w wielu sytuacjach zastosowanie ME_cleanera mogłodoprowadzić do przekształcenia płyty głównej w przycisk dopapieru. Electronic Frontier Foundation przyznawało więc, żerealne rozwiązanie problemu kontrolera naszych komputerów,zawierającego podobno nawet takie atrakcje jak moduł DRM dla wideo,wymaga współpracy Intela.
To czego Intel nie chciał zrobić dla swoich użytkowników,zrobił dla amerykańskiej władzy. Rosyjscy badacze DmitrijSkliarow, Mark Ermołow i Maksym Gorjaczij zaprezentowalisposób na całkowite wyłączenie Intel ME 11. Czemu niepoprzednich wersji? Wiąże się to ze zmianą architektury IME:technologią tą steruje już nie stary mikrokontroler ARC naniszowym systemie operacyjnym ThreadX, lecz The Minute IA, będącynieco przerobionym procesorem 80486, na którym działa przerobionysystem MINIX. Ta nowa platforma jest po prostu znacznie łatwiejszado ogarnięcia przez badaczy znających się na architekturze x86.
Nie tylko bardziej przyjazna dla badaczy platforma ułatwiłapracę badaczy. Obecnie Intel oferuje producentom płyt głównychspecjalistyczne oprogramowanie do modyfikowania niektórychparametrów pracy Management Engine i bezpośredniego programowaniapamięci flash. Jak się można spodziewać, programy te wyciekłyszybko do Internetu. I to właśnie analiza pozwoliła ujawnićstrukturę firmware ME i jego połączenia z czipem PlatformController Hub (PCH). Z niej też odczytano liczne bitykonfiguracyjne dla zintegrowanych z PCH podsystemów. Jeden z nichnazywa się „reserve_hap” i towarzyszy mu ciekawy komentarz: HighAssurance Platform (HAP) enable.
Wystarczyło skorzystać z Google, by odkryć, że High AssurancePlatform to pilotowany przez amerykańską Narodową AgencjęBezpieczeństwa (NSA) program budowy zaufanej platformy systemowej.Kto mógłby się oprzeć włączeniu HAP? Na pewno nie rosyjscybadacze – wystarczy przecież programator SPI.
Krajobraz po zmianie
Zmiana bitu przyniosła zmianę trybu pracy Management Engine.Narzędzie MEInfo zwróciło m.in. informację: ModeOfOperation: AltDisable Mode. Od tej pory kontroler Intela przestał odpowiadać najakiekolwiek polecenia czy żądania od systemu operacyjnegokomputera. Ale co właściwie działo się w samym Management Engine?Cierpliwa analiza firmware pokazała, że pod koniec procesurozruchowego, sprawdzany jest stan HAP – i jeśli jest on włączony,przerywana jest praca modułu BringUP (BUP), zajmującego sięinicjalizacją całego środowiska sprzętowego platformy.
Z ustaleń badaczy wynika, że aby na dobre zneutralizowaćManagement Engine, należy kolejno ustawić bit HAP, następnieusunąć lub uszkodzić wszystkie moduły poza tymi używanymipodczas rozruchu przez BUP – tj. RBE, KERNEL, SYSLIB i dBUP.Następnie należy naprawić sumę kontrolną nagłówka – i towszystko.
W efekcie uzyskujemy całkowicie zneutralizowane Management Enginedla architektur Skylake i Kaby Lake, które się nie zawiesza: HAPwyłącza ME na wystarczająco wczesnym etapie. Tak samo ME nie jestw stanie wyjść z tego stanu, nie znaleziono w pozostawionychmodułach żadnego kodu, który by na to pozwalał.
Bardzo ciekawie na tym tle wygląda odpowiedź udzielona Rosjanomprzez Intela w sprawie High Assurance Platform:
[quote]W odpowiedzi na żądania klientów o specjalnych wymaganiachczasami sprawdzamy modyfikacje lub wyłączenia pewnychfunkcjonalności. W tym wypadku modyfikacje zostały wprowadzone nażądanie producentów sprzętu, dla wsparcia rządowego programuHigh Assurance Platform. Te modyfikacje przeszły ograniczony cyklwalidacji i nie są oficjalnie wspieraną konfiguracją.
[/quote]Cóż, wygląda na to, że władze USA uznały, że ManagementEngine jest zagrożeniem dla bezpieczeństwa danych – przynajmniejna rządowych desktopach. Wersje serwerowe oraz mobilne ManagementEngine nie obsługują takiego wyłącznika.
Z całą analizą ekspertów z Positive Technologies możeciezapoznać się na ichblogu.