Ovladače jsou nedílnou součástí operačních systémů. Ty, které jsou zodpovědné za správu hardwarových komponent, mají jasně definovaný vývojový proces a podléhají bezpečnostním kontrolám. Experti na bezpečnost se však dlouhodobě potýkají se zranitelnostmi i těchto podrobně hlídaných a validovaných ovladačů, které jsou zneužívány různými aktéry a mohou v konečném důsledku umožnit proniknutí přímo do jádra operačního systému Windows.
Poslední zpráva specialistů ze společnosti ESET shrnuje několikaleté pozorování těchto zranitelností i informace, které pomohou v boji proti útočníkům.
Zavést ovladač přímo do jádra operačního systému je možné jen v případě, pokud obsahuje podpisový certifikát od společnosti Microsoft. Aby ovladač prošel validačním procesem a obdržel elektronický podpis, musí výrobce dodržet doporučené postupy při programování, disponovat certifikátem pro podpis kódu vystaveným důvěryhodnou certifikační autoritou a získat potřebnou úroveň vývojářského partnerství s Microsoftem.
Po splnění podmínek může výrobce nahrát ovladače do systému, který ověří jeho validitu, a pokud projde procesem, obdrží certifikát. Přivést ovladač k životu a dostat ho do produkce zkrátka není snadné. Z toho důvodu instalace nebo podvržení škodlivého ovladače již u útočníků není populární.
Existuje snadnější cesta
I přes validační proces se může stát, že vývojář do kódu zanese chybu. A tím se ovladač stává zranitelným. Podepsaný ovladač se během instalace aplikace zavádí do jádra systému a mnohdy k němu umožní plný přístup. A právě toho umí útočníci zneužít ve svůj prospěch. S minimálním úsilím mohou prostřednictvím této chyby ovládnout operační systém.
Zneužití zranitelností ovladačů můžeme nejčastěji pozorovat u autorů herních cheatů pro obcházení anti-cheat technologií. Existuje celá řada výrobců softwaru a hardwaru, kteří během instalace svých aplikací zavádí do jádra systému ovladače. To útočníkům dává poměrně velkou šanci, že některý z nich obsahuje chybu, kterou lze zneužít. V minulosti byly zaznamenány případy zneužití zranitelností přímo APT skupinami (Slingshot či InvisiMole) nebo komoditním malwarem.
Zranitelné procesory
Zranitelnosti se přitom nevyhýbají ani velkým a renomovaným výrobcům. U procesorů Intel Pentium 80586 byly v roce 1993 představeny Model-specific Registers (MSRs). MSRs lze považovat za „globální proměnné“ procesoru, které obsahují neškodné informace jako je teplota či napětí, ale i kritické pro fungování operačního systému. Tyto registry lze číst nebo do nich zapisovat.
Někteří výrobci aplikací přistupují k registrům přímo z user-mode, což jim umožňuje zobrazovat zmíněné informace o procesoru uživateli. Ne vždy ale autoři těchto aplikací omezí přístup ke kritickým MSRs. Útočníci umí této nepozornosti využít a ovládat systémové funkce přímo z user-mode.
Svého času se jednalo o mocný nástroj, jak ovládnout operační systém běžící na starších procesorech. Pro odstranění této zranitelnosti výrobci nakonec implementovali ochranné mechanismy, například Supervisor Mode ExecutionPrevention (SMEP).
SMEP, který byl představen v roce 2011 s příchodem procesorů založených na architektuře Ivy Bridge a ve výchozím stavu je aktivně využíván od Windows 8.0, znemožňuje spouštění kódu z jádra systému přímo v user-mode. Pokud se o to někdo pokusí, dojde k pádu do BSOD (modré smrti).
Jako další ochranný mechanismus byl zaveden Supervisor Mode Access Prevention (SMAP), který doplňuje SMEP, a ještě více omezuje přístup jádra do user-mode. SMAP je k dispozici pouze s novějším hardwarem v kombinaci alespoň s 64bit. Windows 10. Koncem roku 2017 pak zahýbaly IT světem objevené zranitelnosti Specter a Meltdown. Ty aplikacím přímo zpřístupňovaly systémovou paměť a týkaly se v podstatě všech moderních procesorů.
O bezpečnostní záplatu pro operační systém Windows se postaral sám Microsoft, mělo to ale za následek negativní dopad na výpočetní výkon, zejména u procesorů určených pro servery. U novějších procesorů výrobci tyto zranitelnosti odstranilizměnou architektury.
Ochrana existuje, ale…
Výrobci hardwaru a operačních systémů průběžně vyvíjí ochranné mechanismy a technologie, aby použití jejich produktů bylo bezpečné. Příkladem mohou být již zmíněné mechanismy SMEP a SMAP. Bohužel je vždy jen otázkou času, kdy se útočníkům podaří tyto technologie obejít. Některé ochranné technologie jsou navíc vyvinuty se zpožděním, až po zveřejnění zjištěných zranitelností.
Další možností je odvolat digitální certifikát ovladače. Ovladač podepsaný revokovaným certifikátem není důvěryhodný a operační systém je odmítne zavést. Toto řešení ale naráží u samotných výrobců. Certifikát je většinou sdílený napříč aplikacemi výrobce a jeho odvolání by způsobilo nefunkčnost dalších aplikací.
Schůdným řešením se jeví blokování zranitelných ovladačů přímo mechanismy operačního systému nebo pomocí antivirových řešení. Byť je tento způsob efektivní, nejedná se o proaktivní ochranu. Blokovat lze jen dříve objevené zranitelné ovladače. Přetrvává tak problém zero-day zranitelností u ovladačů, které mohou být zneužity během sofistikovaných APT útoků.
Závěrem
Zranitelné ovladače existují a pravděpodobně existovat budou i nadále. Dobrou zprávou je, že tato problematika není žádné ze zúčastněných stran lhostejná. Společnost Microsoft neustále zvyšuje zabezpečení svého operačního systému, výrobci bezpečnostních řešení přichází se stále pokročilejšími technologiemi pro detekci nebezpečného chování a výrobci ovladačů spolupracují na odstranění nahlášených zranitelností.