Závažná hardvérová zraniteľnosť starších procesorov AMD
Národné centrum kybernetickej bezpečnosti upozorňuje na nový výskum bezpečnostného výskumníka Christophera Domasa, ktorý demonštruje závažnú hardvérovú zraniteľnosť procesorov AMD Family 16h (približne 2013 – 2016). Zmenou jediného konfiguračného bitu radiča operačnej pamäte je možné obísť hardvérovú ochranu, ktorá bráni operačnému systému v prístupe k najcitlivejším oblastiam pamäte a k bezpečnostným komponentom fungujúcim pod jeho úrovňou.
Výskumník týmto spôsobom demonštroval čítanie a zápis do pamäte používanej napríklad Platform Security Processorom (PSP), System Management Mode (SMM) a oblastí používaných pri ukladaní stavu procesora a microcode patchov. Zraniteľnosť tak po získaní najvyšších oprávnení v operačnom systéme umožňuje pristupovať aj k oblastiam pamäte, ktoré majú zostať chránené aj pred samotným operačným systémom.
Zasiahnuté systémy
Exploit bol vyvinutý a otestovaný na starších procesoroch AMD Family 16h (CPUID family 22), teda predovšetkým na architektúrach Jaguar a Puma/Puma+, uvádzaných približne v období 2013 – 2016. AMD tieto procesory používal v notebookoch, desktopoch, low-power systémoch a vo viacerých generáciách Embedded G-Series. Embedded varianty boli určené napríklad pre tenkých klientov, NAS zariadenia, bankomaty, kiosky, automatizáciu, zdravotnícke a priemyselné zariadenia, preto môžu byť vo významnej miere prevádzkované aj dnes.
Medzi zasiahnuté procesory patria napríklad rady Kabini, Temash, Beema a Mullins, vrátane modelov ako AMD E1-2100, A4-5000, A6-5200, Athlon 5150/5350, Sempron 2650/3850, E1-6010, E2-6110, A4-6210 a A6-6310, ako aj niektoré AMD Embedded G-Series vrátane eKabini, Steppe Eagle a G-Series LX. Zoznam nie je úplný.
Medzi zasiahnuté systémy v súčasnosti nepatria moderné procesory AMD Ryzen a EPYC ani procesory Intel, ARM alebo RISC-V. Výskum ukazuje, že obdobné transformačné mechanizmy existujú aj v ďalších architektúrach, publikovaný exploit však demonštruje zraniteľnosť iba na AMD Family 16h.
Podmienky zneužitia
Útok vyžaduje možnosť meniť konfiguračné registre fyzického radiča pamäte. Publikovaná ukážka preto používa modul jadra a spúšťa sa s oprávneniami systémového administrátora. Neprivilegované aplikácie alebo kód spustený v sandboxe webového prehliadača tento prístup nemá.
Bežná chyba používateľa ako napríklad návšteva škodlivej webovej stránky preto sama osebe nestačí. Zraniteľnosť však môže byť posledným článkom viac-fázového útoku. Podobný reťazec môže začínať aj zraniteľnosťou sieťovej služby, dokumentového prehliadača alebo iného programu spracúvajúceho nedôveryhodné dáta.
Riziko vo virtualizovaných systémoch
Osobitnú pozornosť odporúčame virtualizačným serverom používajúcim KVM/QEMU s VFIO, Xen PCI passthrough alebo VMware ESXi DirectPath I/O.
Na Family 16h je kritická funkcia radiča pamäte typicky dostupná ako PCI zariadenie 00:18.2 (D18F2). Ak je toto fyzické zariadenie sprístupnené virtuálnemu stroju prostredníctvom PCI passthrough, môže guest získať možnosť meniť globálne mapovanie fyzickej pamäte. To môže umožniť obísť izoláciu hypervisora a pristupovať k pamäti hostiteľa alebo iných virtuálnych strojov.
Tento scenár je obzvlášť relevantný pre Linux VFIO: upstream vfio-pci povoľuje v neznámych oblastiach PCI configuration space priamy raw read/write prístup k fyzickému zariadeniu. Xen obdobne podporuje PCI passthrough vrátane permissive režimu.
Pri VMware ESXi nebolo zneužitie konkrétne cez D18F2 demonštrované, administrátori by však mali preveriť, že táto funkcia nie je dostupná cez DirectPath I/O.
Ako preveriť zariadenie
Na Linuxe:
lscpu | grep -E 'Vendor ID|CPU family|Model name'
Relevantný výsledok je:
Vendor ID: AuthenticAMD
CPU family: 22
Hodnota 22 je desiatkový zápis 0x16, teda AMD Family 16h.
Na virtualizačných hostoch skontrolujte zároveň:
lspci -nn -s 00:18.2
lspci -k -s 00:18.2
Family 16h Function 2 sa typicky identifikuje ako 1022:1532 alebo 1022:1582.
Odporúčania
Administrátorom a používateľom odporúčame:
-
identifikovať všetky systémy s AMD Family 16h, vrátane starších notebookov, desktopov, thin clientov, NAS, appliance, embedded a priemyselných zariadení;
-
bezpečnostne významné systémy s Family 16h bezodkladne migrovať na novší podporovaný hardvér;
-
minimalizovať možnosť získania oprávnení jadra dôsledným aktualizovaním operačných systémov, prehliadačov, aplikácií a firmware;
-
na virtualizačných hostoch nikdy neposkytovať
00:18.2ani ostatné citlivé northbridge/memory-controller funkcie virtuálnym strojom cez PCI passthrough; -
pri KVM/QEMU skontrolovať konfigurácie VFIO a libvirt, pri Xen zoznam
pci-assignablezariadení a konfiguráciupci/pci_permissive, pri VMware ESXi konfiguráciu DirectPath I/O; -
na Linux hostoch overiť, že
00:18.2nie je naviazané navfio-pci:
readlink -f /sys/bus/pci/devices/0000:00:18.2/driver
Zdroje
-
Christopher Domas – skitter-creek-bath-salts: Unlocking everything on the CPU with DRAM scrambling
« Späť na zoznam

