facebook LinkedIN LinkedIN - follow
Exkluzivní partner sekce
Tematické sekce
 
Branžové sekce
Přihlášení SystemNEWSPřehledy
 
Tematické seriály

Jak uřídit IT projekt a nezbláznit se

Užitečné tipy a nástroje pro řešení problémů řízení inovací a vývoje produktů...

články >>

 

Industry 4.0

Průmysl 4.0

Jaký vliv bude mít čtvrtá průmyslová revoluce na výrobu a výrobní firmy?

články >>

 
Nové!

RPA - automatizace procesů

Softwaroví roboti automatizují obchodní procesy.

články >>

 
Nové!

IoT – internet věcí

Internet věcí a jeho uplatnění napříč obory.

články >>

 
Nové!

VR – virtuální realita

Praktické využití virtuální reality ve službách i podnikových aplikacích.

články >>

 
Nové!

Bankovní identita (BankID)

K službám eGovernmentu přímo z internetového bankovnictví.

články >>

 

Příručka úspěšného IT manažera

Dnes je řada IT manažerů opomíjena. Úspěšní bývají brouci Pytlíci a Ferdové...

články >>

 
 
Partneři webu
IT SYSTEMS 4/2022 , IT Security

Zranitelné ovladače jako nechtěná brána do jádra Windows

Vítězslav Šnorich


Je mnoho cest, jak mohou útoč­níci získat kontrolu nad operač­ním systémem Windows. Jednou z nich může být třeba ovladač grafické karty. Právě zcela legi­timní a na první pohled bezpečné ovladače umí útočníci zneužít k napáchání rozsáhlejších škod.


Ovladače jsou nedílnou součástí operačních systémů. Umožňují fungování klíčových hardwarových komponent, přídavných periferií nebo specializovaných programů. 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. Ovladače může pro své fungování využívat i program. Zpravidla se jedná o specializovaný software na ladění aplikací, sledování prostředků operačního systému nebo operací na souborovém systému.

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. To na výrobce klade určité nároky. 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.

Obr. 1: Microsoft portál pro digitální podepsání ovladače
Obr. 1: Microsoft portál pro digitální podepsání ovladače

Přivést svůj ovladač k životu a dostat ho do produkce není snadné. Nehledě na to, že u moderních operačních systémů nelze do jádra zavést nepodepsaný ovladač, s výjimkou ladícího režimu, kdy je vypnuto ověřování podpisů. 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. Tím se ovladač může stát 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ří je pro chod svých aplikací zavádí do jádra systému. 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 nebo komoditním malwarem.

Tato problematika není v oblasti bezpečnosti novinkou. Situace okolo zranitelností legitimních ovladačů je známa několik let, avšak stále se i v současnosti jedná o velkým problém.

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 Execution Prevention (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 odstranili změnou architektury.

Přines si svůj vlastní zranitelný ovladač

Pokud chtějí útočníci proniknout do jádra 64bit. operačního systému Windows, potřebují k tomu podepsaný ovladač důvěryhodného výrobce, který obsahuje zranitelnost, jíž lze využít. Technika známá jako Bring Your Own Vulnerable Driver (BYOVD) byla použita například při útocích APT skupin Slingshot či InvisiMole.

Slingshot lze označit za kyberšpionážní platformu, která byla pravděpodobně aktivní v letech 2012 až 2018. Aktéři implementovali škodlivý modul nazvaný Cahnadr jako kernel-mode ovladač. Na starších operačních systémech, které při instalaci ovladačů nekontrolovaly digitální podpis, bylo možné bez větších obtíží tento nástroj načíst přímo z uživatelského prostředí.

Moderní systémy digitální podpis ovladačů kontrolují a skupina musela přijít s novým řešením. Útočníci tak zneužili ovladače výrobců legitimních aplikací, které obsahovaly chyby v implementaci MSR. Konkrétně se jednalo o ovladače Speedfan.sys (CVE-2007-5633), Sandra.sys (CVE-2010-1592) a ElbyCDIO.sys (CVE-2009-0824). Skupina cílila primárně na předchůdce operačního systému Windows 8.

I když jsou tyto zranitelnosti poměrně staré, stále existuje možnost, že mohou být zneužity. Certifikáty, jimiž jsou ovladače podepsané, nebyly dodnes zamítnuty a operační systém je stále umožňuje zavést do jádra.

V roce 2018 odhalil tým výzkumníků z ESETu APT skupinu, kterou pojmenoval InvisiMole. Podobně, jako skupina Slingshot, zneužila InvisiMole nesprávnou implementaci MSR v ovladači Speedfan.sys (CVE-2007-5633) pro načtení vlastního škodlivého ovladače. Skupina se tímto útokem zaměřovala primárně na starší 32bit. operační systémy.

V průběhu vyšetřování byla objevena i novější varianta nástroje, který cílil na 64bit. Windows 10. Skupina se musela vypořádat s ochrannými mechanismy SMEP a SMAP, nicméně ve výsledku byla zastavena mechanismem KVA Shadowing. Ten byl vyvinut primárně na ochranu proti zranitelnosti Meltdown.

Technika BYOVD byla zaznamenána i u „masového“ malwaru. Ransomware RobbinHood například dokázal zneužít zranitelnosti ovladače základní desky GIGABYTE GDRV.sys (CVE-2018-19320). Prostřednictvím této zranitelnosti deaktivoval ověřování podpisů u ovladačů a následně do systému nahrál vlastní škodlivý ovladač.

V roce 2018 objevili detekční inženýři ESETu vůbec první malware schopný zneužít UEFI modul. Jednalo se o LoJax. Malware dokázal deaktivovat ochranu jádra a dovolil spouštění nepodepsaného kódu přímo v jádru operačního systému. V rámci dalšího výzkumu se proto zaměřili na identifikaci nových zranitelných ovladačů. Využili k tomu systém Threat Intelligence. Ten nakonfigurovali tak, aby pátral po specifických funkcionalitách a indikátorech, které mohou být potenciálně zneužity. Za zmínku stojí třeba ovladač analytického nástroje společnosti AMD AMDPowerProfiler.sys s objevenou zranitelností CVE-2021-26334. Chyby při implementaci převážně MSR funkcí pak byly nalezeny i u dalších výrobců. Všichni oslovení výrobci proaktivně spolupracovali a neprodleně vydali opravené verze ovladačů a zranitelnosti odstranili.

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í. Jediné, co ještě chybí, je jednotný a ucelený způsob řešení těchto problémů, včetně důkladnější a rychlejší reakce na vzniklou situaci.

Odkazy a zdroje:
https://docs.microsoft.com/en-us/windows-hardware/drivers/dashboard/create-a-new-hardware-submission
https://www.cpu-world.com/CPUs/Core_i7/Intel-Core%20i7%20i7-7700.html

Vítězslav Šnorich Vítězslav Šnorich
Autor článku působí ve společnosti ESET na pozici Pre-Sales Engineer. Dále prezentuje na odborných konferencích a pomáhá edukovat veřejnost v oblasti kyber­bez­peč­nos­ti. V minulosti působil ve společnostech Flowmon a SODAT Technologies.
Chcete získat časopis IT Systems s tímto a mnoha dalšími články z oblasti informačních systémů a řízení podnikové informatiky? Objednejte si předplatné nebo konkrétní vydání časopisu IT Systems z našeho archivu.