Az Intel nagyott hibázott, mindenki nagy bajban van
Egy hónapok óta ismert és elhallgatott hardver biztonsági hibára derült fény rögtön újévkor.
Az Intel – a jelenlegi legnagyobb, 75% körüli piaci részesedésű desktop és laptop processzorgyártó – hatalmasat hibázott. Az elmúlt évtized összes processzorában van egy beépített biztonsági hiba.
Hogy kicsit közelebb kerüljünk a bug megértéséhez, érdemes az operációs rendszerek irányából közelíteni. Az operációs rendszer lelke a kernel, azaz rendszermag. Az időosztásos multitaszk operációs rendszerek óta a kernel feladata az erőforrások (memória, processzor idő, stb.) ütemezett szétosztása a látszólag “párhuzamosan” futó processzek között prioritás és más szempontok szerint. A többmagos, többszálas processzorok óta pedig a magokon, szálakon ugyanez. A szálakat úgy lehet elképzelni, mint virtuális processzor magokat, azaz az operációs rendszer számára egy négymagos processzor hardver szinten képes lehet 8 futtató szálat is biztosítani. Mellékszál (grin), nem általános és nem feltétel a többszálás működés, például a szerverekbe szánt Xeon processzorok között van jópár olyan, amelyek nem multithread működésűek, azaz ugyanannyi szálat mutatnak mint amennyi fizikai processzor mag van.
Ahhoz, hogy a kernel biztonságosan tudjon működni, dedikált memóriaterületet kell allokálnia, amihez a felhasználói folyamatok egyáltalán nem férhetnek hozzá. Ezt a processzorgyártók hardver szinten támogatják, védett memóriát biztosítanak a kernel számára. Elméletben.
Kiderült, hogy az Intel processzorok nem ezt teszik. A hiba ráadásul olyan súlyos, hogy akár egy böngészőből futtatott Javascript képes a kernel folyamatok memóriájához hozzáférni. Elgondolhatjátok, hogy ez mivel jár: leegyszerűsítve például jelszavak, bankkártya adatok titkosítatlanul hozzáférhetők.
A Microsoft már novemberben jelezte a belső csatornáin, hogy nagy szar van, a Linux is azonnal ráment a kernel szoftveres védelmére. De azt azért sejhetjünk, hogy mindez mivel jár… akkora overhead lesz minden futó folyamaton, hogy beszarás.
Érdemes belegondolni, hogy a hardver-szoftver sebességek hogyan viszonyulnak egymáshoz. Nagyságrendi (akár három nagyságrend) eltérés van a regiszterek, a RAM és a háttértár írása-olvasása között. Mondjuk egy A regisztert 10-100 000 000-szor gyorsabban ír-olvas a processzor, mint ahogy az operációs rendszer szoftveresen kezel egy HDD memória swap-et.
A KPTI (Kernel Page Table Isolation) operációs rendszer szintű szoftveres kezelésénél nyilván megpróbálnak mindent lehetőleg gyorsítani és cache-elni, de a DDR RAM-ok sebessége sem közelíti meg a processzorok regisztereinek sebességét, még csak a belső L1/L2 cache is kiröhögi.
A lassulás becsült átlagos mértéke legalább 5-30% lehet, attól függően, hogy processzor vagy I/O intenzív az adott feladat.
A Phoronix meg is mérte a patch előtt(lila)-után(zöld), a diagramok magukért beszélnek, brutál a teljesítmény visszaesés.
Szintetikus tesztek:

Compile Bench:

A The Register is hasonló eredményre jutott before-after egyszerű adatbázis lekérdezés műveletekkel.

A jó hír, hogy a második legnagyobb piaci részesedésű processzorgyártó, az AMD nem érintett a memory leak hibában.
A rossz hír, hogy a kiadott patch ezt nem tudja és nem tesz különbséget a processzorok között, az AMD-t is ugyanúgy belassítja. Az AMD azt javasolta a Linuxos szerver közösségnek, hogy eszük ágában ne legyen felrakni a patchet.
Itt tartunk most, hatalmas a kussolás, a hiba további részleteiről a patch-ek megjelenéséig és elterjedéséig nem adtak ki további információkat. De ne legyenek kétségeink, a 0day exploitok piaca vevő az ilyen hibák első feltörőire, itt millió dolláros a tét, a sötét oldal mellett a különböző kormányok is sorban állnak érte.
Minden desktop és szerver operációs rendszer érintett, az összes Windows, az összes Linux és a MacOS is.
Minden konteózás nélkül az megint egy másik kérdés, hogy amikor egy ilyen hardware backdoor sebezhetőség létezése kiderül, akkor az csak sima tervezési hiba, szabotázs vagy pedig titkos kormányzati együttműködés része? Mindre volt már példa.
Via:
https://hothardware.com/news/intel-cpu-bug-kernel-memory-isolation-linux-windows-macos
https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/


