Projekt skitter-creek-bath-salts otvoril dôležitú diskusiu o bezpečnosti starších procesorov AMD. Výskum sa nezaoberá typickou chybou aplikácie ani bežnou chybou operačného systému. Jeho predmetom je podstatne nižšia vrstva platformy: pamäťový radič procesora a mapovanie fyzických adries na umiestnenie dát v pamäti DRAM.
Podľa popisu projektu sa problém týka testovaných procesorov AMD Family 16h. Výskumník demonštruje, že zmenou vybraných registrov pamäťového radiča možno zmeniť spôsob, akým procesor mapuje fyzické adresy do DRAM. To môže oslabiť predpoklad, že ochrana viazaná na fyzickú adresu vždy zodpovedá tomu istému miestu v pamäťových čipoch.
Pre bezpečnostné tímy je podstatné najmä to, že ide o pripomienku hraníc ochranných modelov. Ak bezpečnostný mechanizmus kontroluje adresu na jednej vrstve, no nižšia hardvérová vrstva dokáže zmeniť jej výsledné mapovanie, vzniká riziko rozdielu medzi tým, čo systém verí, a tým, kam prístup k pamäti v skutočnosti smeruje.
Čo výskum demonštruje
Softvér zvyčajne nepracuje priamo s fyzickým umiestnením dát v DRAM. Aplikácia používa virtuálne adresy, operačný systém a procesor zabezpečujú ich preklad na fyzické adresy a pamäťový radič vykoná ďalšie mapovanie na konkrétne banky, riadky a stĺpce pamäťových čipov.
Projekt opisuje situáciu, v ktorej je možné meniť konfiguráciu tejto poslednej vrstvy. Procesor tak môže pristupovať k určitej fyzickej adrese, zatiaľ čo zmenené mapovanie ju odvedie na iné miesto v DRAM. Autor projektu tento jav označuje výrazmi scrambling alebo spaghettifying pamäte.
Nejde len o zmenu poradia dát, ktorá by spôsobila pád systému. Bezpečnostný význam spočíva v možnosti, že alternatívne mapovanie poskytne cestu k údajom, ktoré sú z pohľadu štandardného adresného priestoru chránené alebo rezervované.
Prečo fyzická adresa nemusí byť poslednou hranicou
Viaceré ochranné mechanizmy platformy sú postavené na pravidle, že určitý rozsah fyzickej pamäte nie je dostupný bežnému operačnému systému alebo aplikáciám. Takéto pravidlo však predpokladá stabilný vzťah medzi fyzickou adresou a reálnym miestom v DRAM.
Ak môže privilegovaný útočník meniť konfiguráciu pamäťového radiča, môže sa tento predpoklad narušiť. Ochrana môže naďalej správne blokovať pôvodnú fyzickú adresu, no iná adresa môže po zmenenom mapovaní viesť k tým istým dátam.
To neznamená, že každá chránená oblasť je automaticky čitateľná alebo zapisovateľná. Výsledok závisí od konkrétnej platformy, firmvéru, konfigurácie pamäte, oprávnení potrebných na zmenu registrov aj od ďalších hardvérových kontrol. Princíp však ukazuje, že ochrana adresného priestoru musí byť posudzovaná spolu s celou cestou prístupu k pamäti.
Citlivé komponenty pod operačným systémom
Autor výskumu uvádza prácu s oblasťami súvisiacimi s mimoriadne citlivými časťami platformy, vrátane AMD Platform Security Processor (PSP), System Management Mode (SMM), CC6/C6 DRAM a pamäte súvisiacej s mikrokódom procesora.
AMD Platform Security Processor
PSP je samostatný bezpečnostný komponent platformy AMD. Podieľa sa na funkciách, ktoré súvisia napríklad s dôveryhodným štartom systému, kryptografickými operáciami a ďalšími bezpečnostnými procesmi. Jeho kompromitácia alebo neautorizovaný prístup k jeho dátam by preto mal výrazne vyšší dopad než bežná chyba používateľskej aplikácie.
System Management Mode
SMM je vysoko privilegovaný režim procesora využívaný firmvérom. Bežný operačný systém nad ním nemá plnú kontrolu. Preto sa ochrana pamäte a kódu spojených so SMM považuje za základ dôveryhodnosti celej platformy.
Ak výskum naznačuje možnosť ovplyvniť prístup k takýmto oblastiam, jeho význam nespočíva len v konkrétnej technike. Upozorňuje aj na riziká, ktoré môžu pretrvať pod úrovňou bezpečnostných nástrojov v operačnom systéme.
Nejde o vzdialený útok na každý počítač
Je dôležité vyhnúť sa zjednodušenému záveru, že každý starší počítač s procesorom AMD možno jednoducho napadnúť cez internet. Samotná demonštrácia nízkoúrovňového hardvérového správania nepopisuje univerzálny vzdialený útok.
Takéto scenáre typicky závisia od prístupu, ktorý útočník už získal, od privilegovaných oprávnení, konkrétneho modelu procesora, konfigurácie základnej dosky a verzie firmvéru. V praxi preto treba oddeliť dve otázky: či je určitý technický princíp možný a či existuje realistická útočná cesta v konkrétnom prostredí organizácie.
Zároveň platí, že potreba predchádzajúceho privilegovaného prístupu neznižuje význam problému na nulu. Hardvérový mechanizmus, ktorý môže oslabiť izoláciu pod operačným systémom, môže zvýšiť dopad už existujúcej kompromitácie a sťažiť dôveryhodné zotavenie platformy.
Prečo nemusí stačiť aktualizácia operačného systému
Pri bežnej zraniteľnosti sa organizácie spoliehajú na opravu aplikácie, aktualizáciu operačného systému alebo zmenu konfigurácie. Pri probléme v pamäťovom radiči však tieto opatrenia nemusia odstrániť samotnú príčinu.
Relevantné zmiernenie môže vyžadovať aktualizáciu firmvéru BIOS alebo UEFI, mikrokódu, zmenu prístupu k nízkoúrovňovým registrom, prípadne vyradenie dotknutého hardvéru. Dostupnosť a účinnosť týchto možností treba posudzovať pre konkrétnu platformu a podľa pokynov výrobcu zariadenia alebo procesora.
Praktický postup pre bezpečnostné tímy
Organizácie by mali k zisteniu pristupovať ako k riadeniu platformového rizika, nie ako k dôvodu na neadresnú paniku.
- Zmapujte staršie zariadenia. Udržiavajte inventár procesorov, základných dosiek a verzií BIOS alebo UEFI. Osobitne identifikujte systémy založené na starších platformách AMD, ktoré podporujú kritické služby.
- Overte podporu firmvéru. Skontrolujte, či výrobca zariadenia poskytuje aktuálny firmvér a bezpečnostné odporúčania pre daný model. Ak podpora skončila, zahrňte túto skutočnosť do hodnotenia životného cyklu aktíva.
- Obmedzte privilegovaný prístup. Chráňte administrátorské účty, obmedzte lokálny administrátorský prístup, uplatnite viacfaktorové overovanie tam, kde je možné, a sledujte neobvyklé zmeny systémovej konfigurácie.
- Posilnite dôveru pri štarte. Používajte podporované mechanizmy bezpečného štartu, chráňte nastavenia firmvéru heslom, obmedzte štart z externých médií a spravujte fyzický prístup k zariadeniam.
- Rozdeľte kritické pracovné záťaže. Systémy s vysokou citlivosťou neprevádzkujte bezdôvodne na nepodporovanom hardvéri. Plán obnovy hardvéru má byť súčasťou bezpečnostnej stratégie, nie len prevádzkového rozpočtu.
- Pripravte postup obnovy. Pri podozrení na kompromitáciu pod úrovňou operačného systému môže obyčajná preinštalácia systému poskytovať nedostatočnú istotu. Postup incident response by mal počítať s overením firmvéru, integritou konfigurácie a podľa rizika aj s výmenou zariadenia.
Širšia lekcia: bezpečnosť je vlastnosť celého reťazca
Projekt skitter-creek-bath-salts je dôležitý najmä preto, že ukazuje rozdiel medzi logickou ochranou v softvéri a fyzickou realitou hardvérovej platformy. Operačný systém môže mať správne nastavené oprávnenia, aplikácie môžu byť aktualizované a endpoint ochrana môže fungovať podľa očakávania. Ak je však narušená dôveryhodnosť nižšej vrstvy, tieto kontroly majú prirodzené limity.
Pre vedenie IT a bezpečnosti z toho vyplýva praktický záver: model rizika nemá končiť pri operačnom systéme. Firmware, procesor, pamäťový subsystém, fyzická ochrana zariadenia a schopnosť bezpečne obnoviť dôveru v stroj sú súčasťou jednej bezpečnostnej hranice.
Záver
Výskum zameraný na staršie procesory AMD nepoukazuje na jednoduchý masový útok, ale na závažný typ platformového rizika. Demonštruje, že ochrana založená na fyzických adresách môže mať slabé miesto, ak je možné meniť mapovanie v pamäťovom radiči.
Najrozumnejšou reakciou je presný inventár, kontrola firmvérovej podpory, dôsledné obmedzenie privilegovaného a fyzického prístupu a realistický plán modernizácie starších systémov. V prostrediach s vysokými nárokmi na dôveru treba hardvér posudzovať ako aktívnu súčasť bezpečnostnej architektúry, nie ako nemenný základ pod softvérom.