"Így már érthetőnek tűnik; mikrokód frissítéssel leváltható az AES-CMAC, a jövőbeni mikrokód frissítések ellenőrzésére."
Elsőre igen. Aztán jobban belegondolva, mégiscsak az jön ki, hogy kaka van a palacsintában.
Ugyanis ehhez kétfázisú mikrokód update kell:
- elsőre egy régitípusú aláírással rendelkező mikrokódot kell betölteni, amiben az aláírásellenőrző logika le van cserélve az újfajtára
- másodikra lehet betölteni az újtípusú aláírással rendelkező mikrokód image-et
Ha igaz, amit az általad linkelt cikkben írnak, a processzorban a mikrokód tárolására két hely van:
- egy ROM (nyilván a gyári mikrokód image-el), hogy a processzor képes legyen valahogy elindulni, mikor áramot kap
- egy Patch RAM amibe runtime lehet betölteni új mikrokódot
És itt a bukó a történetben. Ha az a ROM tényleg ROM, és nincs valami alternatív OTP ROM hely, ahova utólag is lehet fixen beégetni a gyári verziótól eltérő mikrokódot, akkor a processzor minden bootolásnál a régi aláírásellenőrzővel fog indulni. Az UEFI-be csomagolt mikrokód image-et a régi módszerrel kell aláírni, mert máshogy nem töltődne be.
Vagyis innentől az AMD-nek kétféle mikrokód image-et kell karbantartania:
- az egyiket továbbra is a régi aláírással, az UEFI firmware-be
- a másikat (az új aláírással) az oprendszer vendoroknak
Lehet gondolkodni olyan megoldásban (szerintem valahogy így csinálják), hogy mostantól mindkétféle aláírás egyszerre rajta van az image-en, két külön fejlécmezőben, a régi betöltő ignore-álja az újat, az új betöltő ignore-álja a régit.
Viszont ez még mindig csak félmegoldás marad. Csak azellen véd, hogy az oprendszer ne tudja on-the-fly lecserélni a mikrokódot (tény, hogy ez a "nagyobbik" támadási felület). Viszont az UEFI rootkit/bootkit típusú támadó modell ellen továbbra sem tudnak semmit csinálni.
És ráadásként, ha az alaplap vendor nem szállít UEFI update-et az új mikrokóddal (márpedig eléggé úgy tűnik, hogy csak az EPYC-es alaplapok kapják, a desktop Ryzen-ek eléggé le vannak szarva), akkor csak az oprendszer-szintű mikrokód update marad. Ha az OS bekap egy legalább alapszinten perzisztens rootkit-et, a következő rebootnál szabad a pálya a mikrokód piszkálására is.