První rootkit, který napadá UEFI v reálném provozu
Malware pojmenovaný Lojax našli bezpečnostní výzkumníci Esetu, přičemž u něj zároveň zjistili, že je používaný a šířený hackery skupiny nazývané Fancy Bear nebo také Sednit, pravděpodobně spojenými s Ruskými tajnými službami (stojí mimo jiné za zákeřnou nákazou routerů VPNFilter nebo útoky na americkou demokratickou stranu nebo antidopingové úřady WADA). Malware komunikuje s jejími servery a také byl nalezen v organizacích napadených jejími dalšími nákazami. Esetu se rootkit Lojax podařilo odchytit u jednoho ze zákazníků a informoval o něm už v září, nicméně teď k němu byly sděleny detaily. Celou prezentaci autorů této analýzy můžete vidět na tomto videu.
Lojax je modifikací legitimního nástroje Lojack, který slouží jako ochrana notebooků před krádeží. Ruská škodlivá verze je šířena pomocí phishingových emailů – jde tedy o útok, snažící se vzdáleně dostat až do BIOSu počítače, kde je pak persistentní a také hodně dobře schovaný. Při spuštění používá několik různých zranitelností. Kód útočného programu zneužívá zranitelný ovladač přímo v rámci UEFI a použije ho k tomu, aby zapsal škodlivý kód permanentně do BIOSu (UEFI). Jaderný ovladač, který malware zneužívá (je součástí jeho instalátoru), je řádně podepsaný a jeho instalaci proto i aktuální Windows dovolí.
UEFI má vlastní sadu ovladačů DXE, které používá k zprovoznění PC při spouštění. Lojax zneužívá zranitelnost v jednom z takových ovladačů, aby pronikl ochranou proti zápisu do paměti SPI Flash, v nichž je UEFI nahráno. UEFI zápis neautorizovaným programům normálně nedovoluje. Lojax zdá se využívá chybu typu race condition, existující v UEFI ovladači řadiče paměti SPI Flash od Intelu. Ten ji kvůli tomuto nechrání paměť před zápisem dostatečně. Útočník se pokouší opakovaně zapnout zápis do paměti flash, což mu ovladač normálně zamítne. Když se ale vícenásobnými požadavky vyvolá situace race condition, kód ovladače selže a nezabrání zápisu, jako by při tomto požadavku měl.
Poté, co v tomto Lojax uspěje, se nahraje do paměti Flash a v ní uloženého UEFI. Přesněji řečeno vyextrahuje UEFI, modifikuje ho, přidá se do něj a přepíše touto infikovanou verzi originál na desce. Od této chvíle je Lojax spouštěn nepozorovaně při každém startu počítače a je aktivní na pozadí s plným přístupem k hardwaru počítače. Může tedy teoreticky sloužit ke špionáži a krádežím dat, útočník by mohl nad počítačem ale asi také mít plnou kontrolu.
V praxi zneužívání probíhá tak, že malware automaticky instaluje své služby a soubory do nainstalovaného systému Windows při každém spouštění, a to stejným mechanismem, který jsme nedávno probírali u desek Asus, automaticky instalujících ovladače. O napadání Linuxu, MacOS nebo jiných „newindowsích“ operačních systémů se zatím neví. Esetu se bohužel podařilo potvrdit, že tento útok je reálně používán a jde zřejmě vůbec první potvrzený malware, který do UEFI instaluje rootkit reálně operující ve světě.
Útok umožnily zranitelnosti a špatná implementace UEFI
Pokud byste už jednou měli Lojax v počítači, nebylo by snadné se ho zbavit. Reinstalace operačního systému ani výměna úložiště ho totiž nezničí. Malware je možné odstranit jen úplným přepsáním UEFI v paměti SPI Flash na desce. Prevencí je stará známá zásada nikdy nespouštět spustitelné soubory či linky přišlé emailem a obecně podezřelé přílohy a už vůbec ne jim udělit práva ke změně počítači, když spustí dialog UAC.
https://mirrors.dotsrc.org/cdn.media.ccc.de/congress/2018/slides-h264-hd/35c3-9561-eng-deu-First_Sednit_UEFI_Rootkit_Unveiled_hd-slides.mp4
Kromě toho se v informacích o útoku uvádí, že by ho znemožnilo, pokud by UEFI mělo aktivovanou funkci Secure Boot včetně funkce Hardware Root of Trust, kdy procesor či čipset při zapnutí kryptograficky ověřuje již i samotný firmware (to jen prostý Secure Boot neumí, protože UEFI neověřuje). Současná verze Lojax také neumí pracovat s disky, zašifrovanými BitLockerem. Ovšem původní software Lojack je kompatibilní, takže toto je asi něco, co útočníci mohou překonat, pokud budou chtít.
Vedle toho bude třeba odstranit slabá místa v zabezpečení a konfiguraci UEFI, které nyní umožňují malwaru instalaci. Zranitelnost je totiž výsledkem programovacích chyb a špatného nastavení firmwarů, bez těchto slabin by nefungovala. Jak ale bohužel víme, situace s aktualizacemi BIOSů není dobrá. Výrobci jsou pomalí a nemají dnes příliš vůli a asi ani síly vydávat pravidelně nové verze pro všechny své produkty po dobu delší než dejme tomu dva roky. Počítač má ale typicky životnost mnohem delší, takže většinu svého života tráví s neaktualizovaným UEFI. Zde asi bude třeba vymoci nějaké změny, které by zajistily rychlé aktualizace po delší dobu. Dnes je situace s aktualizacemi BIOSů trochu jako s telefony Android, což je z bezpečnostního hlediska špatně.