r   e   k   l   a   m   a
r   e   k   l   a   m   a

Bezzębne Intel Management Engine: ME_cleaner uwalnia komputer od mechanizmu zdalnej kontroli

Strona główna AktualnościOPROGRAMOWANIE

Od wprowadzenia na rynek ponad 10 lat temu I/O Controller Huba 7, silnik Intel Management Engine (ME), wbudowany w płyty główne dla procesorów zgodnych z technologiami Intel vPro, budzi niepokój obrońców prywatności. Wykorzystując koprocesor z bezpośrednim dostępem do interfejsu sieciowego, pozwala on na sprzętowe zarządzanie komputerem, aktualizację firmware, śledzenie ruchu sieciowego, czytanie plików na dysku, podglądanie zawartości ekranu – a wszystko to poza systemem operacyjnym, sterowane niewolnym, niekontrolowanym przez użytkownika binarnym blobem Intela. Nie wszystko jednak stracone: na GitHubie zadebiutował pożyteczny projekt, dzięki któremu będzie można zneutralizować Intel ME.

W starszych wersjach Management Engine, sprzed 2009 roku, można było mechanizm ten wyłączyć, ustawiając kilka bitów w pamięci flash kontrolera ICH. Następnie firmware sterujące ME mogło zostać całkowicie wymazane – i coś takiego na starszych systemach robią wolne zamienniki, takie jak libreboot. W kolejnych wersjach wprowadzono jednak mechanizm odpowiedzialny za inicjalizację sprzętu i zarządzanie energią. Wyszukuje on podpisanego manifestu firmware ME, a jeśli go nie znajdzie, to wyłącza komputer po 30 minutach.

Zrobić z tym cokolwiek wydawało się praktycznie niemożliwe – weryfikacja podpisu sprawiała, że jedyną siłą we wszechświecie, która mogłaby zmienić firmware ME był Intel. Ostatnim gwożdziem do trumny był wprowadzony w 2013 roku wraz z procesorami Haswell mechanizm Intel Boot Guard. Pozwalał on producentom na wygenerowanie pary kryptograficznych kluczy, z których klucz publiczny był wgrywany na CPU. Procesor sprawdzał następnie, czy firmware rozruchowe jest podpisane kluczem producenta, i jeśli nie było, to odmawiał dalszej pracy. Właściwie jedynym sposobem na uniknięcie Boot Guarda było samodzielne zmontowanie sobie peceta.

r   e   k   l   a   m   a

Na pomoc ze strony Intela w tej sprawie nie było co liczyć. Chipzilla przedstawiała przecież swój mechanizm zdalnego zarządzania jako zaletę, a nie ogromne zagrożenie, czemu miałaby je neutralizować? Otwarcie kodu firmware ME nie wchodziło w grę, pełno tu było własnościowych technologii firm trzecich, licencjonowanych jedynie przez Intela. Miliardy użytkowników platform Intela były skazane na mogącego dowolnie szpiegować ich binarnego bloba. Na tym tle starania Rosji i Chin mające na celu stworzenie własnej platformy sprzętowej stają się całkiem zrozumiałe.

Zespół hakerów z grupy h4denedzer0 w zeszłym roku zaprezentował jednak coś, co było światełkiem w tunelu – metodę neutralizacji Management Engine na platformach Sandy Bridge i Ivy. Wykorzystując modularną architekturę ME, poszukiwano sposobów zablokowania ładowania modułów bez alarmowania intelowego wyłącznika. Przełom nastąpił we wrześniu, kiedy to Todkryto, że skasowanie pierwszej 4-kilobajtowej strony firmware ME nie wyłączyło jego Thinkpada x230, bez problemu mógł na nim uruchomić Linuksa, hiperwizor Xen i na nim Qubes OS-a. Potem udało się ustalić, że można usunąć wszystkie partycje firmware ME za wyjątkiem tej, która zawiera kernel czasu rzeczywistego – i Thinkpad pozostawał funkcjonalny.

W listopadzie włoscy badacze odkryli zaś, że platforma Sandy Bridge jest w stanie przyjąć tak spreparowane firmware Intel ME zawierające tylko kernel, nawet bez poprawnej tabeli partycji. Finalnym owocem tego odkrycia jest napisany w Pythonie skrypt ME_Cleaner. Potrafi on dosłownie „wyrwać zęby” intelowej Management Engine, praktycznie uniemożliwiając jej interakcje z systemem. Co najważniejsze, w swojej obecnej postaci działa nie tylko z opensource’owym firmware, takim jak Libreboot/Coreboot, ale można go zastosować też na fabrycznych firmware z urządzeniami, które nie mają Boot Guarda.

ME_Cleaner został z powodzeniem przetestowany na wielu różnych płytach głównych dla platform od starego Nehalema po nowe Skylake. Z tabelki obrazująca jego skuteczność można sądzić, że już na platformie Sandy Bridge można całkowicie usunąć wszystkie partycje oraz wszystkie skompresowane moduły, pozostawiając jedynie niezbędny do niewyłączenia komputera kernel Intel Management Engine.

Wszystkie niezbędnej informacje na ten temat, jak i sam skrypt, znajdziecie na stronie projektu na GitHubie. Skrypt działa automatycznie, skanując tablicę partycji firmware, usuwając zbędne wpisy, flagi, moduły i poprawiając sumę kontrolną. Po jego użyciu należy komputer fizycznie wyłączyć – i włączyć, z nadzieją, że wszystko pójdzie dobrze. Autor newsa zaryzykował i zneutralizował dziś Management Engine 9.0 na swoim komputerze (platforma Haswell). Poszło wszystko dobrze, linuksowy kernel załadował się bez żadnych błędów – niniejsze słowa pisane są już z uwolnionej od binarnego bloba Intela maszyny. Pamiętajcie jednak, że wszystkie takie operacje na swoich komputerach robicie na własną odpowiedzialność.

© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.