Je to stejné, jako se ptát, jestli dnes existuje software bez chyb. Neexistuje a chyby se bohužel vyskytují i v hardware. Bylo to tak vždycky, i procesor Z80 obsahoval nedokumentované instrukce a chyby a ten měl 8500 tranzistorů. Dnešní moderní procesory mají vyšší miliardy tranzistorů a jsou to stroje složitější o mnoho řádů. Samozřejmě se v nich chyby najdou. Bohužel.
A jakou mate definici pro "dostatecne testovani"? Jasne, ze vsechno jde vzdycky udelat lip - je to koneckoncu jen funkce penez. Ovsem nabizi se otazka, jestli jste take ochoten pak platit vyssi cenu za vysledny produkt a notabene cekat delsi cas na to, nez se ten produkt k vam dostane - protoze i to "lepsi" testovani nejaky cas zabere. Aneb lidi vetsinou chtej vsechno rychle a levne. Nebo ne? ;-)
Umím to definovat v rámci firmy a SW, který dělá a netvrdím, že jsem specialista na testování CPU - jen mi prostě nedá, abych se nezamyslel nad případnou potřebou. Jinak, co se týče "rychle a levně", uměl bych si představit rozdílnou definici "consumer level CPU" a "professional CPU", kde by záruky byly odlišné (s příplatkem, samozřejmě).
Ono procesor není jenom hardware, ale i software. V CPU je něco čemu se říká microcode.
Princip aktualizace je, že se vytvoří oprava, která se dostane do nové verze BIOSu základní desky.
V rámci zapnutí počítače s novým biosem se zkontroluje, jestli cpu má aktuální verzi microcodu a pokud ne, tak se aktualizuje (tady je chyba, že se nekontroluje podpis).
Teď máme CPU aktualizovaný, ideálně i s opravenou chybou, a pokud se někdo pokusí nahrát novou verzi microcodu, která není podepsaná, tak už to selže
Jasně, otázka jak moc to chceme rozlišovat. Dnes máme různé AI akcelerátory, dřív jsme měli matematický koprocesor (buď v CPU nebo bokem na základní desce).
Intel má svůj slavný ME (Management Engine), kde uvnitř cpu běží nezávislý OS (Minix).
Ale pro zjednodušení je často lepší tyhle detaily vynechat :)
No on i procesor bez té podepisovací chyby by nebyl bezchybný (někde v diskuzi corebootu jsem kdysi myslím četl, že některé pentium 2/3 mají s mikrokódem od výroby problém vůbec začít bootovat). Proto vůbec něco jako update mikrokódu existuje. Takže se prostě důvěřuje updatu v UEFI (koneckoců stejně se odtamtud načítá i kód pro trénování RAM).
Podle me jsou mozne dve varianty opravy
- BIOS ktery zakaze runtime microcode loading
- AGESA update, ktery opravi overovani microcode update v PSP
Architektura AMD procesoru je ponekud jinacsi nez Intelu.. resil jsem to nedavno pri ladeni bootu.. ze napr. na Intelu musi bezet prvne x86 jadro a pak to skrze nej ridi trenovani pameti.. zatimco u AMD se po zapnuti nahodi PSP, vytrenuje pamet a az pak se necha pustit jakykoliv x86 kod.
To PSP muze sahat a mluvit tedy do hodne veci.. a divil bych se kdyby podpisy uc updatu resili v hw, kdyz tam maj PSP jadro.
Moznost zakazat updaty nevim zda je pruchozi, na nektere platforme se uc update musi aplikovat pri kazde aktivaci vypnuteho jadra (prechod offline na online).
EDIT: dd/dt by se nemelo automagicky aplikovat, kdyz nejsou ani ve vyctu povolenych znacek dole v napovede!!
10. 2. 2025, 12:53 editováno autorem komentáře
Jaká je praktická zneužitelnost? Když už se někdo dostane do situace, že může nahrát upravený mikrokód, tak má buď:
- write přístup do /lib/firmware a /sys/devices/system/cpu
- write přístup do obrazu jádra/initramfs/nastavení zavaděče
- write přístup do distribučních balíčků s výše uvedeným
což je ve všech případech už stejně absolutní prohra a nějakej podpis mikrokódu to nezachrání, protože před i po jeho aplikaci na stroji může útočník udělat úplně všechno.
Z informace v článku:
"AMD opravilo mikrokód zatím u CPU EPYC"
Předpokládám že se bavíme o pronájmu virtuálních strojů.
Kde si navzájem nevěří majitel HW a pronajímatel virtuální stanice.
Vy by jste si pronajal HW, který generuje "náhodná" čísla?
Klaiscky jako většina chyb nebude mít vliv na stroje schované za IPv4 NATem.
V případě IPv6 za Firewallem.
10. 2. 2025, 15:25 editováno autorem komentáře
Ne tak úplně. Kvůli tomu existují featury jako SEV a celý hype kolem Confidential Computing. A když se podíváte na ten link o opravě pro Epyc, tak asi není úplně náhoda, že nadpis zní AMD SEV Confidential Computing Vulnerability
.