Režim správy systému
Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od
verze recenzované 27. května 2016; kontroly vyžadují
10 úprav .
System Management Mode (SMM ) - režim provádění na procesorech x86 / x86-64 , ve kterém je pozastaveno provádění jiného kódu (včetně operačních systémů a hypervizoru ) a je spuštěn speciální program uložený v paměti SM RAM v nejprivilegovanějším režimu.
Technologie SMM byla poprvé implementována v mikroprocesoru Intel 386 SL. Zpočátku SMM běžel pouze na speciálních procesorech (SL), ale byl představen v roce 1992 v 80486 a Intel Pentium . AMD implementovalo technologii v Enhanced Am486 ( 1994 ). Všechny novější procesory x86/x86-64 jej podporují.
Mezi možné aplikace SMM:
Operační systém běží v ochranném " Ring 0"; nicméně hypervizor (v systémech VT/AMD-v) je privilegovanější a režim provádění hypervizoru se běžně nazývá „Ring −1“. Podle toho se SMM, který má vyšší prioritu než hypervizor, podmíněně nazývá „Ring −2“ [5] [6] [7] . Kód spuštěný v režimu SMM má neomezený přístup do veškeré systémové paměti, včetně paměti jádra a paměti hypervizoru.
Aktivace SMM
SMM se aktivuje pomocí přerušení SMI ( přerušení správy systému ), ke kterému dochází:
- Na signál z čipsetu nebo periferií na základní desce. Je použit vyhrazený pin procesoru SMI# [8] .
- Software SMI odeslaný systémovým softwarem přes I/O port (často se používá číslo portu B2 [9] ) [10] .
- Zapište na I/O adresu, která má firmware nastavený tak, aby vyžadoval aktivaci SMM.
Na nejbližší hranici instrukce po přijetí signálu SMI# procesor uloží svůj stav do paměti a přejde do SMM. Instrukce RSM (0F AA [9] ) [8] se používá k ukončení SMM a obnovení stavu procesoru .
Problémy
- Podle architektury SMM nelze přerušení SMI zakázat operačním systémem.
- Na starších čipových sadách (před rokem 2006) nebyl bit D_LOCK nastaven tak, aby chránil paměť SMM (což umožňovalo vytvářet malware SMM) [5]
- Vzhledem k tomu, že obslužné rutiny SMM (SMI handler) jsou instalovány ze základního firmwaru BIOSu [5] , očekávaná nastavení důležitých periferií (například APIC ) v programech OS a SMM se nemusí shodovat
- Práce v režimu SMM pozastaví OS. Stav procesoru je uložen v SMRAM [8] a musí být vyprázdněny mezipaměti pro zpětný zápis. Z tohoto důvodu mohou být porušeny požadavky tvrdého reálného času. Operační systém Windows a jádro Linux nastavují „Časový limit SMI“ – časové období, během kterého musí jakýkoli program SMM vrátit řízení operačnímu systému.
- K určení vstupu procesoru do SMM může být vyžadován digitální logický analyzátor (další ladicí zařízení). Při práci v SMM je nastaven signál procesoru SMIACT# [8] .
- Načtení programových kódů SMM pro analýzu a ladění také vyžaduje logický analyzátor nebo reverzní inženýrství firmwaru BIOS , protože paměť TSEG, která ukládá programy SMM, není OS za běhu dostupná.
Viz také
Poznámky
- ↑ Loic Dufleot. "Bezpečnostní problémy související s režimem správy systému Pentium." Prezentováno na CanSecWest 2006, Vancouver, Kanada, 2006.
- ↑ Hackeři najdou nové místo pro skrytí rootkitů . Získáno 2. května 2011. Archivováno z originálu 8. června 2011. (neurčitý)
- ↑ Sherri Sparks a Shawn Embleton. Rootkity SMM: Nový druh malwaru nezávislého na OS. Prezentováno na Black Hat USA, Las Vegas, NV, USA, 2008.
- ↑ https://www.youtube.com/watch?v=X72LgcMpM9k&feature=player_detailpage#t=2070s Archivováno 25. června 2016 na Wayback Machine Google Tech Talks – Coreboot – 00:34:30
- ↑ 1 2 3 invisiblethingslab.com/resources/misc09/smm_cache_fun.pdf Rafal Wojtczuk, Joanna Rutkowska , "Útok na paměť SMM prostřednictvím otravy mezipaměti procesoru Intel®"
- ↑ Prsten −1 vs. Ring −2: Containerizing Malicious SMM Interrupt Handlers na AMD-V Archivováno 13. listopadu 2013 na Wayback Machine , 2010
- ↑ Hloubková analýza režimu správy systému x86 Archivováno 23. září 2013. , Georg Wassen: "Pokud lze monitory virtuálních strojů nazvat Ring −1, režim správy systému je Ring −2."
- ↑ 1 2 3 4 Režim správy systému Intel od Roberta R. Collinse
- ↑ 1 2 Hexadecimální kód
- ↑ cca. 5
Literatura
Odkazy