Jehly v kupce sena: jak lze odhalit nežádoucí UEFI komponenty z milionů vzorků

Další zpráva

Bezpečnost UEFI (Unified Extensible Firmware Interface) je posledních pár let velkým tématem, ale kvůli řadě omezení se v minulosti dařilo zachytit jen velmi málo malwaru, který na něj útočí. Poté, co se nám podařilo zachytit první UEFI rootkit známý jako LoJax, jsme začali budovat systém, který by byl schopný prostředí UEFI efektivně skenovat a varovat před možnými hrozbami. Na základě telemetrických dat z našeho skeneru jsme navrhli postup, jak spravovat spustitelné UEFI soubory, které bude využívat strojové učení k detekci jakýchkoli anomálií.

Časová osa začlenění strojového učení do produktů ESET

Časová osa začlenění strojového učení do produktů ESET

Co je to UEFI?

UEFI je specifické prostředí mezi operačním systémem a firmwarem zařízení. Definuje také standardizované služby nazývané „boot services“ a „runtime services“. Ty jsou základem API dostupné v UEFI. UEFI je nástupcem rozhraní BIOS (Basic Input/Output System) a řeší dřívější technické limity BIOS.

UEFI je uložený ve flash paměti SPI, jejíž čip je napájený na základové desce. Proto reinstalace operačního systému nebo nahrazení hard disku nijak neovlivní kód firmwaru. UEFI firmware je modulární – obvykle obsahuje desítky, ne-li stovky, různých spustitelných souborů/ovladačů.

 Jak jsou UEFI spustitelné soubory/ovladače uloženy v PC

Jak jsou UEFI spustitelné soubory/ovladače uloženy v PC

UEFI jako vektor útoku

Existuje řada způsobů, jak lze firmware modifikovat a kompromitovat tak, aby bylo narušeno zabezpečení dotčeného počítače.

První a nejčastější možností je modifikace firmware ze strany prodejce počítače tak, aby bylo možno vzdáleně provádět diagnostiku a spouštět služby, což při nesprávné implementaci může sloužit ke vzniku backdooru. Další možností je implementovat škodlivý kód ručně. Útočník ovšem musí mít fyzický přístup k zařízení. Třetí možnost je zaútočit vzdáleně pomocí malware, který dokáže firmware modifikovat. Tento způsob jsme zdokumentovali v případě LoJax.

Metody strojového učení, jak zkoumat prostředí UEFI

Objevení malware jako je LoJax, je vzácné. V prostředí UEFI jsou miliony spustitelných souborů a jen velmi malá část je škodlivá. Za poslední dva roky naši technici viděli 2,5 milionu takovýchto unikátních souborů (z celkových šesti miliard). Analyzovat je manuálně zkrátka není možné.

Podařilo se nám nadefinovat systém, který přiřazuje vzorkům skóre od 0 do 1, podle toho, jako jsou podobné již známým souborům. Soubory s nejnižším skóre podobnosti přezkoumá analytik.

Pro ověření správnosti bodovacího sytému, jsme takto otestovali známé škodlivé soubory, které jsme ale předtím nezařadili do datasetu, včetně vzorků LoJax. Systém je úspěšně detekoval například vzorek driveru LoJax jako soubor, který není podobný ničemu, co zná, a přiřadil mu skóre 0.

Test nám potvrdil, že pokud by se objevila další hrozba, systém by ji identifikoval a detekoval. Strojové učení snižuje práci analytikům až o 90 % v porovnáním s ruční analýzou každého vzorku. Každý nový vzorek si systém zařadí do datasetu, zaindexuje a při analýze dalších vzorků vezme v úvahu. Takto UEFI detektor nabízí monitoring prostředí v reálném čase.

Jak se loví nechtěné UEFI komponenty

Škodlivé komponenty UEFI lze rozdělit do dvou skupin – UEFI firmware backdoor a perzistentní moduly na úrovni OS.

UEFI firmware backdoor

Většina UEFI firmware umožňuje nastavení hesla, které chrání systém před neautorizovaným přístupem na začátku bootovacího procesu. UEFI firmware backdoor je mechanismus, který lze využít při ztrátě uživatelského hesla potřebného pro přístup do systému.  Backdoor má ale několik nevýhod.

Průnik do zařízení touto cestou může pomoci útočníkům zpřístupnit dotčené zařízení a umožnit jim obejít různé bezpečnostní mechanismy. Pro běžného uživatele je takový průnik naprosto nepozorovatelný a má pocit bezpečí.

Naše výzkumné oddělení odhalilo tento typ backdooru na minimálně šesti modelech notebooků ASUS. V květnu jsme tuto skutečnost společnosti ASUS ohlásili a 14. června vyšla aktualizace firmware s opravou.

Perzistentní moduly na úrovni OS

Zbývající skupinu tvoří perzistentní moduly na úrovni OS. Jedná se o komponenty firmware, které jsou zodpovědné za instalaci software na úrovni operačního systému. V případě těchto modulů existuje jeden hlavní bezpečnostní problém. S ohledem na to, jak komplikované je aktualizovat firmware, zůstává většina zranitelných komponent zranitelná po celou dobu své životnosti. Proto by se mělo perzistenci firmware předcházet, jak jen to je možné a měla by být omezená jen na nejnutnější případy (například řešení krádeže zařízení).

Další detaily o UEFI prostředí můžete najít v angličtině v publikaci „A machine-learning method to explore the UEFI landscape“.