Linux E X P R E S

Facebook

Procesory Intel trpí závažnou chybou, řešení na úrovni jádra snižuje výkon

Hrozba

V procesorech Intel byla nalezena závažná bezpečnostní chyba. Nelze ji opravit, řešení na úrovni jádra systému způsobuje snížení výkonu v jednotkách až desítkách procent. Procesorů AMD se problém zřejmě netýká.


První informace se začaly dostávat na veřejnost už v říjnu, kdy se ve zdrojových kódech linuxového jádra objevil patch zavádějící ochrannou techniku nazvanou KAISER u architektury ARM64. Že se problém týká i procesorů Intel a jaké dopady má použití KAISER (dnes se označuje jako kernel page-table isolation čili KPTI, česky izolace tabulky stránek jádra), se ale ukázalo až před pár dny.

Problém spočívá v tom, že při běhu v uživatelském prostoru, tedy v kódu běžného programu, zůstávají namapovány i stránky prostoru jádra. Správně by k nim nemělo být možné získat přístup, to ale právě neplatí kvůli chybě v procesoru, konkrétně u tzv. spekulativních referencí, které slouží k výkonové optimalizaci.

Chybu nelze opravit v mikrokódu procesoru, musí se tedy používat KAISER/KPTI, kdy se stránky jádra před vstupem do uživatelského prostoru odmapují a při vstupu do jádra opět namapují (zjednodušeně řečeno). Kvůli tomu se na práci s pamětí spotřebuje více času procesoru, což se negativně projevuje na výkonu, a to v jednotkách až desítkách procent. Záleží na tom, jak často se přepíná mezi uživatelským prostorem a jádrem.

Řešení bylo začleněno do připravovaného Linuxu 4.15 a backportováno do 4.14.11. V první fázi byly za nebezpečné považovány i procesory AMD, ale už došlo ke změně. Obdobně musela firma Microsoft upravit jádro systému Windows 10; řešit to bude muset například i Apple u systému macOS pro procesory Intel.

Aktualizace (3. 1. 2018): Project Zero firmy Google nalezl kromě této zranitelnosti (útok je v dalším nezávislém výzkumu označen jako Meltdown) i dvě další (také ty byly odhaleny i nezávislou výzkumnou skupinu a označeny jako Spectre). Zejména první dvě zranitelnosti se týkají i procesorů AMD (u té třetí, podrobněji popsané výše, se úspěšný útok nepodařilo provést).

Diskuze (2) Nahoru