AMD má také bezpečnostní chybu. Zranitelnost SMM bude potřebovat opravné BIOSy

Oldřich Kratochvíl

Chyba v kódu AGESA dovoluje na procesorech AMD z let 2015 až 2019 vložit neviditelný malware do SMM, bude třeba opravná aktualizace BIOSů.

Měli jsme tu tento týden bezpečnostní (i když asi nepříliš závažný) problém procesorů Intel nazvaný CrossTalk . V zájmu spravedlnosti byla ovšem zranitelnost odhalená také v procesorech AMD, respektive jeho APU s integrovanou grafikou.

AMD ve středu oznámilo nález chyby nazvané SMM Callout Privilege Escalation (CVE-2020-12890), která se nachází v kódu AGESA několika procesorů APU (s integrovanou grafikou). Podle AMD postihuje vydaných mezi lety 2016. To by asi mohlo znamenat 28nm Stoney Ridge, možná Bristol Ridge a APU Ryzeny 2000 a 3000, ale ne 7nm Ryzeny 4000 Renoir . Ty vyšly letos.

Bug (v UEFI) platformy AMD

Neupřesněná chyba v AGESA má útočníkovi umožnit spustit libovolný kód v tzv. režimu SMM (System Management Mode – viz Wikipedia ). To je docela problém, protože tento režim zpracovávání kódu by měl být dostupný pouze pro role jako je obsluha hardwaru (řízení spotřeby, emulace starších zařízení). Uživatelský kód ani operační systém nemají možnost kód v SMM spouštět ale ani k němu nijak přistupovat, SMM běží ve zcela odděleném nepřístupném adresním prostoru. Smyslem bylo, aby se na CPU dala „po povrchem“ provozovat obsluha různé funkce hardwaru transparentně pro operační systém běžící na PC.

Kód běžící v SMM je z pohledu uživatele zcela neviditelný a nevidí ho ani třeba antiviry, jde o úroveň vykonávání kódu ještě o stupeň nižší (Ring -2) než by byl třeba hypervizor (Ring -1) ve vztahu k hostovanému operačnímu systému. Kompromitování SMM a možnost spustit v něm vlastní kód je tedy velmi lákavý cíl pro hackery, protože jim dovoluje vytvořit neviditelný rootkit nebo spyware.

Jak přesně může útočník kód do SMM injektovat, AMD neuvádí, ale sděluje, že musí nejprve mít lokální přístup v operačnímu systému s adminsitrátorskými právy, případně fyzický přístup k počítači. Není asi možné útok provést vzdáleně nebo třeba jen z kontext webového prohlížeče/stránky.

Zranitelnost bude třeba opravit aktualizací BIOSu

Pravděpodobně asi nejde o hardwarovou chybu procesoru, ale o softwarovou chybu v modulu AGESA, což je kód sloužící jako jádro BIOSů (UEFI) pro procesory AMD. AMD už údajně výrobcům desek a počítačů dodalo aktualizace tohoto kódu AGESA s opravou díry pro většinu dotčených procesorů, přičemž zbylé mají být hotové do konce nynějšího měsíce.

Tuto opravu AGESA ale ještě budou muset výrobci zabalit do svých BIOSů a teprve jejich prostřednictvím bude možné počítače opravit. Bude to tedy vyžadovat naflashování nového BIOSu do desky. Používáte-li tedy nějaké APU z let 2016 až 2019, vyhlížejte u svého výrobce desky či notebooku update BIOSu s touto opravou (případně si o ní zkuste zažádat, pokud ji výrobce ne a ne vydat).

Jelikož inkriminovaný kód je jen částí UEFI a neměl by ovlivňovat přímo zpracovávání programů v jádrech CPU/GPU, neměly by kvůli této opravě vzniknout nějaké propady výkonu.