Intel MINIX IME
26

Najpopularniejszy system operacyjny na świecie, o którym nic nie wiesz

Windows czy Mac OS X? A może Linux? Który z tych najbardziej znanych systemów operacyjnych dla komputerów klasy PC jest najpopularniejszy? Okazuje się, że z dużym prawdopodobieństwem to żaden z powyższych. Jest pewien system, który dostajemy z każdym nowym procesorem Intela i proceder ten trwa od dobrych kilku lat.

Czym jest MINIX?

Od czasów gdy procesory Intela przestały być jednordzeniowe, w układzie musiała pojawić się jednostka, która zarządza wszystkimi podzespołami procesora. Jak się okazuje ten mały SoC zarządzany przez Intel ME (management engine) bazuje na projekcie MINIX. Czym jest MINIX? To uniksowy system operacyjny zaprojektowany tak aby zajmować jak najmniej pamięci. Jego twórcą jest Andrew Tanenbaum, który chciał udowodnić, że nadal można stworzyć funkcjonalny komputer wykorzystujący dosłownie kilobajty pamięci.

Projekt ten tak spodobał się inżynierom Intela, że jak sam Tanenbaum wspomina w swoim liście otwartym do Briana Krzanich’a nie tylko wypytywali oni o jego działanie, ale nawet sugerowali wprowadzenie pewnych usprawnień. Miało to miejsce kilka lat temu, a mniej więcej od dwóch lat temat ucichł. Aż do teraz, gdy okazało się, że przynajmniej od CPU o kodowej nazwie Broadwell (architektura Core 5. generacji), to MINIX odpowiedzialny jest za współpracę podzespołów procesora na najniższym poziomie. Sam Intel Management Engine stosowany jest od 2009 roku i chipsetów Q57/H57/H55/P55, nie wiadomo jednak na czym wtedy bazowało oprogramowanie procesorów.

Intel Management Engine - Minix

I pewnie nie byłoby w tym nic złego, gdyby nie pewne wątpliwości jakie budzi ten fakt. MINIX został stworzony w oparciu o licencję Berkeley, oznacza to, że każdy może sobie wykorzystać jego kod, zmodyfikować i używać bez żadnych opłat. Istotny jest tu jednak fakt, że w odróżnieniu od licencji GPL, podmiot który wykorzysta kod, nie musi publikować wprowadzonych przez siebie zmian i usprawnień. Może zachować zmodyfikowany program tylko dla siebie. Tak też postąpił Intel i Pan Tanenbaum nie ma o to pretensji i nie domaga się finansowego zadośćuczynienia. Zwraca jednak uwagę na to, że wykorzystanie MINIXa wiąże się z pewnymi zagrożeniami.

System w systemie, ale o znacznie większych uprawnieniach

Nie zagłębiając się w szczegóły, system operacyjny operuje w ramach różnych uprawnień. Nazywa się je pierścieniami i typowo jest ich 4, od 0 do 3, gdzie poziom 0 oznacza pełny dostęp. Taki dostęp do wszystkich komponentów komputera ma np. jądro systemu (kernel). Z takimi uprawnieniami można sformatować dysk, zaktualizować BIOS czy określać taktowanie procesora. Dla odmiany aplikacje takie jak przeglądarka internetowa, na której czytacie ten artykuł ma uprawnienia poziomu 3, czyli znacznie mniejsze.

I tu wkracza MINIX, który ma uprawnienia poziomu -3. Tak, 3 stopnie poniżej teoretycznie najniższego (o najwyższych uprawnieniach) poziomu 0. MINIX, który działa bezpośrednio w procesorze, nadzoruje jego prace i posiada swój własny rdzeń x86, który nie jest widoczny przez system „wyższego rzędu”. Przy tym może zrobić praktycznie wszystko. Zarządza dosłownie każdym elementem komputera, począwszy od połączeń sieciowych, przez system plików, sterowniki czy modułami bezpieczeństwa (TPM). Bez naszej wiedzy może kazać wykonać CPU dowolną instrukcję i zająć dowolną ilość pamięci RAM. Co więcej działa nawet w trybie uśpienia głównego systemu, więc teoretycznie nieaktywny komputer może nam niejako „w tle” wykasować zawartość dysku.

A skoro to system, którego kod w dużej mierze jest publicznie dostępny, to tylko kwestią czasu jest jak ktoś postanowi ten fakt wykorzystać. Owszem, Intel zapewne sporo zmienił w kodzie MINIXa, zanim zaczął go wykorzystywać, ale nie możemy mieć pewności czy załatał wszystkie dziury. Ba można postawić pytanie, czy czasami nie ma tam wbudowanej „tylnej furtki”, która pozwoliłaby na włamanie do każdego komputera np. na zlecenie którejkolwiek z trzyliterowych amerykańskich agencji. Tym bardziej, że można się do niego dostać za pośrednictwem sieci.

Mam CPU Intela, co robić, jak żyć?

Możecie napisać w komentarzach, że to lekka paranoja, ale z wielu źródeł (tutaj i tutaj) wynika, że nawet Google szuka obecnie sposobu aby pozbyć się Intel Management Engine ze swoich serwerów. Bo problem nie dotyczy tylko układów dla komputerów osobistych, ale wszystkich wielordzeniowych procesorów Intela, które wyprodukowane zostały przez ostatnie 3 lata, a może i więcej. Oznacza to setki milionów zagrożonych komputerów.

W sieci zaczynają pojawiać się poradniki jak pozbyć się IME, ale nie jest to proste zadanie, bo oprogramowanie zbyt mocno ingeruje w sam procesor. Zainteresowanych zachęcam do lektury kilku artykułów tutaj, tutaj i tutaj. Rozwiązaniem nie jest również przejście na procesory AMD, bo tam też za zarządzanie poszczególnymi rdzeniami odpowiada jakiś system. W tej chwili nie wiemy jaki, ale jeśli sytuacja z IME nabierze powagi, to pewnie niedługo zaczną padać takie pytania.

Nie dalej jak kilka dni temu pisaliśmy o jednym z ataków, jaki można wykonać przez dziurę w IME, ale to może być dopiero początek. Zagrożenie jest poważne i wszystko wskazuje na to, że temat jest rozwojowy. Sam jestem bardzo ciekawy jak na te doniesienia zareaguje Intel, który nabrał wody w usta.