Opět bezpečnostní díra u procesorů Intel: chyba Lazy FP Restore (oživeno)

19. 6. 2018

Sdílet

 Autor: Redakce
Poznámka: článek z 16.6 byl aktualizován o nové informace, viz níže.

Kdo by to byl čekal, ale opět je tu bezpečnostní zranitelnost týkající se procesorů. Před nedávnem zpráva webu Heise.de uváděla, že pod NDA je řešena celá řada chyb více či méně podobných díře Spectre, která se provalila na začátku roku. Od té doby se z těchto nových chyb dostaly ven informace o „Spectre V4“ a nyní byla odhalena další. Chyba nazvaná „Lazy FP Restore“ by ale naštěstí měla být z těch méně závažných.

Chyba „Lazy FP Restore“ (CVE-2018-3665) se týká procesorů Intel a je trochu jako speciální varianta chyby Meltdown („V3a“), která umožňovala programům přečíst data z registrů patřících jiným procesům v situacích, kdy k tomu nemají oprávnění. Dnešní chyba má sice jiné příčiny, ale také dovoluje neautorizovaný přístup k registrům, v tomto případě k registrům jednotky FPU. Kromě registrů x87 se jedná i o registry xmm, ymm a zmm používané pro SIMD instrukce SSE, AVX a AVX-512.

Lazy FP Restore je původně zlepšovák, který má za cíl zlepšit výkon při přepínání procesů („context switch“). Při přepnutí procesu totiž je třeba, aby procesor uložil stav registrů uspávaného procesu a nahradil ho stavem příslušejícím novému procesu. Kvůli lepšímu výkonu ale existuje možnost toto ukládání a nahrávání neprovést okamžitě, ale „líně“. V takovém případě se operační systém touto operací nezdržuje okamžitě, ale provede se, až když kód k těmto registrům skutečně chce přistupovat a došlo by k nekonzistenci. Ovšem toto znamená, že fyzicky jsou v registrech data, která tam již nemají být, a spoléháme se na to, že procesor je spolehlivě uklidí, až bude třeba.

Z registrů lze ukrást citlivá data

Ovšem ukazuje se, že škodlivý program nebo útočník se k těmto datům v registrech FPU může dostat podobnými spekulativními útoky, které dovolují číst zakázaná data u chyb Spectre a Meltdown. V takovém případě procesor přístup nedetekuje a „neuklidí“ před ním. Tím pádem hrozí nebezpečí, že toto slabé míro bude zneužito k ukradení nějakých citlivých dat – útočník v registrech vlastně čte část stavu cizí aplikace. Protože SIMD registry slouží k uložení dat také pro kryptografické instrukce AES, vzniká zde riziko, že šikovný malware by s trochou štěstí mohl ukrást třeba šifrovací klíč.

Chyba Lazy FP Restore na webu Intelu. Závažnost je považována za střední Chyba Lazy FP Restore na webu Intelu. Závažnost je považována za střední

Podobně jako u Spectre a Meltdownu jde o lokální zranitelnost, útočník tedy musí mít možnost spustit na počítači či serveru svůj kód. Nevíme zatím, zda je možné útok realizovat v javascriptu, což by umožnilo jím napadat počítače z navštěvovaných webových stránek. V takovém případě by ho ale snad měly komplikovat opatření aplikovaná v prohlížečích už proti chybě Spectre. Při prohlížení webu by snad tato chyba tedy příliš riskantní být neměla. Zatím není známo, že by tuto díru nějaký malware nebo exploit zneužíval.

Aktuální operační systémy by zřejmě již měly být v suchu

Zranitelnost se týká procesorové architektury x86 a zřejmě všech procesorů Intel založených na „velkých jádrech“ od Coffee Lake minimálně po Sandy Bridge. A to jak běžných desktopových a těch pro notebooky, tak serverových Xeonů. O tom, že by měly tuto zranitelnost i procesory AMD, zatím oficiální informace nejsou, Red Hat ale ve svém popisu chyby uvádí, že se jich problém netýká. U čipů VIA chybí informace kompletně.

intel-coffee-lake-core-procesor-lga-1151-1600Dobrá zpráva ale je, že aktuální operační systémy by zřejmě už Lazy FP Restore neměly ve výchozím stavu používat a tedy by neměly být zranitelné. Windows 10, Windows Server 2016, Linux 4.9 a aktuální OpenBSD a DragonflyBSD mají být bezpečné. Pro starší jádra Linux jsou nyní backportovány opravy (zakazující nebo vypínající funkci Lazy FP Restore) a eventuálně by asi měly vyjít také opravy pro Windows 7 a Windows Server 2008, které jsou zdá se mezi postiženými systémy. Ve všech případech by mělo stačit vypnout líný způsob aktualizace stavu registrů a použít „eager“ režim, který stav registrů aktualizuje ihned.

ICTS24

Aktualizováno (19.6. 2018): Windows jsou dle MS zranitelná

Zdá se, že informace o tom, že aktuální Windows nejsou postižena, nebyla správná. V dokumentu k chybě přímo od Microsoftu se uvádí, že Windows zřejmě včetně verze 10 funkce Lazy FP Restore používají a nelze je uživatelsky vypnout. Tudíž by operační systém Windows měl v tuto chvíli být zranitelný a opravy ještě nejsou k dispozici. Také informace v dokumentu ještě nejsou úplné, zdá se, že je MS ještě neměl v okamžiku oznámení chyby připravené (ohledně důvodů viz níže). Další informace také můžete nalézt v článku od Cyberus Technology.

Vydání detailů chyby bylo narychlo

Chyba a oprava měla být původně publikována až 27. června, ale odhalení bylo nuceně posunuto, což je asi důvod, proč patche pro výše zmíněné starší OS nejsou ještě dostupné. Předčasné odhalení způsobili vývojáři OpenBSD, kteří nerespektovali embargo a opravu vypustili dříve, čímž chybu vyslepičili. Což nezní moc konstruktivně a zodpovědně, i když není úplně jasné, zda vlastně tito vývojáři informace pod embargem měli, nebo si podstatu zranitelnosti dovodili nějak nepřímo. Nicméně pokud by tuto chybu nezávisle objevili, asi by také bylo zodpovědnější ji nahlásit Intelu a koordinovat odhalení s ostatními. Objevitelé, kterým se nález připisuje (Julian Stecklina z německého Amazonu, Thomas Prescher z Cyberrus Technology, Zdeněk Sojka z Sysgo AG a Colin Percival), totiž embargo respektovali, aby v den odhalení bylo maximum uživatelů co nejdřív ochráněno. Sólo akce typu OpenBSD sice znamenají, že jeden projekt je opraven dřív, ale zvyšují riziko pro všechny ostatní...