Zranitelnost architektury x86 dovoluje malwaru ovládnout PC na úrovni hardwaru

0

Hardwarové chyby jsou nepříjemné z toho důvodu, že se těžko opravují. Ještě horší je, když je takovýto problém bezpečnostního rázu. Bohužel to vypadá, že v procesorech architektury x86 byla nebo je po mnoho let taková vážná bezpečnostní díra, otevírající díru do těch nejprivilegovanějších oblastí. V případě jejího zneužití se útočník prakticky dostane „dovnitř“ hardwaru počítače včetně oblastí, ke kterým nemá uživatel ani operační systém nikdy přístup. Díky tomu se v nich může škodlivý rootkit ukrýt před detekcí nebo pokusy nakažený systém vyčistit, zatímco může ovlivňovat cokoliv, co uživatel dělá.

Chyba označená jako „Memory Sink Hole“ byla odhalena na konferenci Black Hat 2015 a týká se subsystému System Management Mode, což je režim architektury x86, který mají procesory pro PC od čipů 80486. Jde o speciální „podzemní“ úroveň běhu procesoru, ke které uživatel nemá přístup a cokoliv se v ní děje, je mimo dosah operačního systému. Na této izolované úrovni tak počítač například může provádět různé nízkoúrovňové operace jako emulaci některých zařízení (například USB klávesnic v legacy režimu), update firmwarů, správu spotřeby nebo jiných hardwarových záležitostí, včetně podpory pro různé bezpečnostní technologie, které takovou izolaci od uživatele potřebují.

 

Problém v 20 let starých funkcích

Kód běžící na úrovni SMM je z operačního systému nedosažitelný, takže pokud byste se do něj nabourali, máte nad systémem plnou kontrolu a přístup, můžete například manipulovat celou pamětí nebo probíhajícími operacemi. Z pohledu OS bude toto napadení neviditelné, neboť SMM je jak již bylo řečeno na nižší úrovni (operační systém běží v tzv. „ring 0“, SMM v „ring -2“, ještě hlouběji než například hypervizor při virtualizaci). Získání přístupu do režimu SMM je proto velmi vážný bezpečnostní problém a přesně tento cíl se exploitu, prezentovanému na Black Hat 2015, bohužel podařilo dokonat.

Zranitelnost Memory Sinkhole umožní ovládnout Ring -2, tedy samotný hardware
Zranitelnost Memory Sinkhole umožní ovládnout Ring -2, tedy samotný hardware

 

Zranitelnost SMM by měla pramenit v taktéž letité funkci LAPIC (Local Advanced Programmable Interupt Controller). Registry LAPIC jsou cachované v paměti RAM, adresa se ale od jisté generace procesorů (P6, zřejmě Pentium Pro) dá přemapovat a na postižených systémem je zřejmě možno se tímto přemapováním dostat do rozsahu SMRAM, což je paměť správně vyhrazená jen režimu SMM. Zatímco běžné operaci by byla infiltrace SMRAM odepřena, LAPIC takto omezeno není a přemapování do zakázané zóny projde.

Tím pádem lze do této oblasti vložit vlastní data a vhodnou manipulací (podvržením adresy mimo rozsah SMRAM, kde čeká škodlivý kód) pro sebe získat oprávnění příslušející SMM. Pomocí tohoto nedopatření je přístup do privilegované oblasti v ringu -2 dokonán, i když ke zneužití je poté třeba překonat další překážky (což se bohužel úspěšně podařilo, podrobnější popis si můžete prostudovat v referátu samotném a v prezentaci z konference).

Útoky, umožněné chybou Memory Sinkhole

Útoky, umožněné chybou Memory Sinkhole
Útoky, umožněné chybou Memory Sinkhole

 

Zranitelné jsou procesory před Sandy Bridge a Bay Trailem

Tuto díru mají údajně otevřenou procesory Intelu starší než je rok 2011 (pokud tedy máte Sandy Bridge a novější, jste zdá se z obliga, u Atomů by měl být bezpečný Silvermont a novější). Útok je hodně komplikovaný, ovšem ukázkový kód by měl fungovat s referenčním firmwarem od Intelu, který pravděpodobně přejímá většina výrobců desek, takže zranitelnost by měla být velmi široká. U procesorů AMD zatím ještě průzkum pokračuje, je možné, že některé mají podobnou zranitelnost taktéž.

Zranitelnost Memory Sinkhole v procesorech x86

 

Autor exploitu údajně s Intelem a dalšími subjekty pracuje a snad mají probíhat nějaké práce na opatchování procesorů generací Nehalem, Westmere a starších, umožní-li to daný hardware. Jelikož se ale jedná o produkty staršího data, je docela pravděpodobné, že dotyčné desky už od svých výrobců opravu BIOSu, která by útok (vedený přes firmware, ale umožněný slabým místem architektury) znemožňovala, nikdy nedostanou. Může se například stát, že budou opraveny některé určené pro sektor enterprise, ty ze spotřebitelské sféry už ale nikoliv.

 

Aplikace útoku jsou nepříjemné – lze jím zpřístupnit uzamčené části hardwaru nebo odstavit ověřování kryptografických podpisů, ale také jej uvést do neprovozuschopného stavu. Možností je i nainstalovat do firmwaru backdoor nebo rootkit, který nebude možné se standardním uživatelským přístupem odstranit, jelikož akce prováděné z SMM nevidíte a k jeho paměti SMRAM nesmíte.

Určitou útěchou je, že aby útočník mohl tento druh útoku provést, musí mít již zajištěn adminstrátorský přístup do operačního systému. Jinými slovy, již počítač musel ovládnout (nebo ho do něj uživatel musel vpustit například spuštěním trojského koně). Perfektně zabezpečnému stroji tedy infiltrace nehrozí, ovšem v praxi je ovládnutí operačního systému časté, takže tohoto útoku je třeba se obávat. V případě úspěchu se totiž napadení může stát perzistentní a počítači už prakticky nemůžete věřit. Pokud byste například přeflashovali základní desku, nemůžete snadno vědět, zda tento pokus rootkit nějak nezachytil a nepřežil (řešením by asi byla fyzická výměna EEPROM nebo přeprogramování offline). Nákaza je tedy hodně nepříjemná.

Nicméně vzhledem k velké sofistikovanosti se asi není třeba obávat příliš. PC běžných uživatelů jsou statisticky ohrožena hlavně triviálnějšími hrozbami a dopady takovéhoto „high-tech“ napadení u nich nejsou nějak světoborné proti konvenčním hrozbám. Postižená CPU budou také časem nahrazována, což opět riziko zmírní. I přesto jsou ale takovéto útoky velkým problémem, zejména pokud se časem vynoří další podobné.

Zdroj: The Tech Report