Ufają tylko Linuksowi: Google pozbywa się UEFI i Intel Management Engine

Ujawniona ostatnio przez badaczyz moskiewskiej firmy Positive Technologies luka w technologii IntelManagement Engine była dowodem na to, że paranoicy tym razem mająrację: niewidzialny dla systemu operacyjnego mechanizm zdalnegozarządzania stanowi ogromne zagrożenie dla bezpieczeństwa systemu,a wyprowadzone za jego pomocą ataki są niemożliwe dozneutralizowania. O powadze tego zagrożenia muszą świadczyćdziałania Google. Firma z Mountain View uznała, że nie ufa jużani Intel Management Engine, ani firmware w UEFI. Projekt NERF masłużyć wyeliminowaniu tych technologii ze wszystkich google’owychserwerów.

Ufają tylko Linuksowi: Google pozbywa się UEFI i Intel Management Engine

30.10.2017 | aktual.: 30.10.2017 14:05

NERF to akronim od Non-Extensible Reduced Firmware. Za tymoprogramowaniem stoją twórcy projektu Coreboot, otwartegozamiennika BIOS-u, którzy podczas Embedded European Linux Conferencew zeszłym tygodniu przedstawili zatrważający stan relacji pomiędzywspółczesnymi systemami operacyjnymi a intelową (i nie tylkointelową) platformą x86.

Zatrważający to nie jest przesadzone określenie. InstalującLinuksa na urządzeniu z procesorem x86 wcale nie przekazujemykontroli otwartemu oprogramowaniu. Pomiędzy Linuksem a sprzętemmamy jeszcze przynajmniej 2,5 całkowicie własnościowych,zamkniętych kerneli, zdaniem inżynierów Google’a łatwych doexploitowania i podatnych na trwałe ataki, zapisywane w używanejprzez nie pamięci flash.

Znany kod to tylko wierzchołek góry lodowej o nazwie „platforma x86”
Znany kod to tylko wierzchołek góry lodowej o nazwie „platforma x86”

Podział systemów operacyjnych na pierścienie jest dobrze znany:pierścień 3 to kod działający w przestrzeni użytkownika,pierścień 0 to kernel systemu (np. Linux), pierścień -1 tohiperwizory (np. Xen czy KVM). Poniżej jednak rozciąga się obszarkodu, do którego administratorzy nie mają dostępu, a często nawetnie mają o nim pojęcia. Niewidzialne dla pierścieni -1, 0 i 3kernele w pierścieniu -2 oraz 1 (System Management Mode) kontrolująwszystkie zasoby procesora, zaś kernele w pierścieniu -3 kontrolująte mechanizmy zdalnego zarządzania, mogące wszystko, nawet zmienićzawartość dysków, gdy komputer jest wyłączony. Dodajmy do tegowbudowany pełny stos sieciowy, a nawet serwer webowy – wymarzonycel ataków, którego nie można wyłączyć.

Widać to szczególnie w odniesieniu do System Management Mode(SMM – pierścień 1) i jego przerwań. Pierwotnie pomyślany dozarządzania zasilaniem, dziś daje pełen dostęp do 16-bitowegotrybu 8086, pełen dostęp do wszystkich przerwań i interfejsu ACPI,z 8 MB własnej pamięci, w której wiele się może zmieścić…inżynierowie Google mówią otwarcie: SMM służy temu, byproducenci zachowali kontrolę nad Tobą.

Nie lepiej wygląda sytuacja w odniesieniu do pierścienia -2,czyli oprogramowania UEFI. Wykorzystuje ono ekstremalnieskomplikowany kernel z milionami linii kodu,pozwala na utrzymanie aktywności aplikacji UEFI już po rozruchusystemu, a jego system zabezpieczeń jest najlepszy z możliwych –nic o nim nie wiadomo. Jedyny sposób na zabezpieczenie UEFI – tozniszczenie go.

Architektura UEFI – miliony linii kodu by to wszystko zaimplementować
Architektura UEFI – miliony linii kodu by to wszystko zaimplementować

Co można w tej sytuacji zrobić?Przejście na platformę AMD wcale nie rozwiązuje sprawy. TwórcyCoreboota mówią wręcz – nie wierzcie we wszystko, coprzeczytaliście o Ryzenie. Proponują w zamian NERF,nierozszerzalne, zredukowane firmware,ponieważ rozszerzalność jest ekstremalnie szkodliwa.

NERF przywraca właścicielomkontrolę nad komputerami z procesorami x86. Podstawowy cel –zneutralizować zagrożenie ze strony firmware. Do tej pory udałosię usunąć większą część zamkniętych komponentów procesurozruchowego. Pozostała właściwie tylko Intel Management Engine,ale już okaleczona, pozbawiona webserwera i stosu sieciowego, dziękiwykorzystaniu narzędzia ME_cleaner.

Z UEFI usunięto stos sieciowyoraz mechanizmy automatycznej aktualizacji, oddając całkowitąkontrolę nad tym procesem takiemu bardzo małemu Linuksowi, u-root.Faktycznie jest on bardzo mały, to tylko 5,9 MB. Okrojono go do kernela zpodstawowymi modułami i obrazu initramfs, na którym uruchamianejest oprogramowanie sterujące – wszystko oczywiście otwarte,napisane w języku Go. Wspomniane wcześniej SMM zniknęło,przekierowuje jedynie do funkcji Linuksa.

Zastąpienie własnościowychkomponentów NERF-em nie tylko zwiększyło znacznie bezpieczeństwosystemu, eliminując powierzchnię ataku i aktywność tajemniczychaplikacji UEFI i Management Engine. Przyspieszyło to też rozruch systemów (czas uruchamiania serwerów zbudowanych wg standardu OpenCompute zmalał 32-krotnie) oraz zwiększyło kompatybilność płyt głównych – nie trzeba już różnych obrazów firmware dla różnego sprzętu. Google może zaś mieć pewność, żestrony trzecie nie mają już żadnej furtki, zapewniającej dostępdo jego infrastruktury.

Programy

Zobacz więcej
Wybrane dla Ciebie
Komentarze (172)