AMD má bezpečnostní díru v APU Kaveri, Richland, Trinity a Kabini. Našel ji Čech

14. 1. 2015

Sdílet

 Autor: Redakce

Před lety koloval vtip, že „firmware v sobě kombinuje nepružnost hardwaru a nestabilitu softwaru“. A skutečně, s programátorskými chybami ve firmwaru je o dost víc „legrace“ než s bugy v normálních aplikacích. Vypadá to, že takovou chybu na pomezí softwaru a hardwaru mělo AMD delší dobu ve svých APU Trinity, Richland, Kaveri a Kabini, a to poměrně závažnou. Bezpečnostní díra totiž útočníkům umožňovala ovládnout část procesoru. Díra se týkala bloku SMU (System Management Unit) v čipech, což je vlastně malý procesor (s architekturou LatticeMico32), starající se zejména o řízení spotřeby. Má ale vlastní firmware, který se do něj nahrává z BIOSu základní desky. Problém je v tom, že autentičnost této binárky není dostatečně chráněna, takže pomocí dalších slabých míst v implementaci lze nahrát podvržený firmware a získat na SMU exploit. Nejde přitom jen o teoretickou možnost, na 31. ročníku akce Chaos Communications Congress na sklonku minulého roku byly odhaleny konkrétní slabiny a způsob, jak upravený firmware nahrát a získat tím možnost spustit libovolný kód. V tuto chvíli už by ale měla být na světě oprava, jelikož objevitel vše nejprve nahlásil AMD.

Bezpečnostní díra v APU AMD (prezentace z Chaos Communications Congress)
Bezpečnostní díra v APU AMD (prezentace z Chaos Communications Congress)

Pro nás je zajímavé, že chybu objevil Čech, assemblerový programátor Rudolf Marek (jeho národnost si můžete snadno ověřit, pokud si v příslušné prezentaci nalistujete stránku 43). Firmware SMU, extrahovaný z BIOSů pro základní desky, začal analyzovat zhruba před rokem a příslušnou chybu v něm odhalil v dubnu 2014. Během několika následujících měsíců pak chybu AMD potvrdilo. Někdy kolem listopadu by již měla být oprava začleněna do aktuální verze softwaru AGESA, který mohou či by měli výrobci desek zahrnout do aktualizací BIOSů. Pro Kaveri, Richland a Trinity je oprava ve verzi AGESA 1.1.0.7, pro Kabini ve verzi 1.1.0.2.

Bezpečnostní díra v APU AMD (prezentace z Chaos Communications Congress)
Bezpečnostní díra v APU AMD (prezentace z Chaos Communications Congress)

AMD mělo v implementaci SMU více chyb. Jednak byl na konci 64KB firmwaru prostor, který zřejmě nebyl pokrytý kontrolním součtem a tedy otevřený k uložení neoriginálního kódu. Volání funkcí také zřejmě nekontrolovalo rozsah adres, což umožňovalo spuštění kódu, který si útočník někde připravil.

Pro zalátání potenciální bezpečnostní díry na konkrétních počítačích je ještě třeba, aby výrobci desek (případně notebooků) uvolnili novou verzi BIOSu pro všechny své modely. Díval jsem se například na web Gigabyte a u namátkou vybraných modelů (G1.Sniper A88X a lowenové GA-F2A55M-HD2) jsem zatím novou verzi nenašel. U Asusu v prosinci nějaké BIOSy vyšly, ovšem novou verzi AGESA nezmiňují. Doufejme každopádně, že k tomu výrobci přistoupí zodpovědně a teď po zveřejnění se situace zlepší.

AMD už chyby opravilo v kódu AGESA, nyní jej musí zařadit výrobci desek do nových BIOSů
AMD už chyby opravilo v kódu AGESA, nyní jej musí zařadit výrobci desek do nových BIOSů

bitcoin_skoleni

Pokud vás zajímají detaily zranitelnosti (a jednotky SMU), můžete celou přednášku z Chaos Communication Congress shlédnout na Youtube.

Zdroje: The Register, Heise online