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.
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.
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.
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.