Sokat lassít az Intel CPU-kban talált hiba javítása

A sebezhetőség miatt át kell alakítani az operációs rendszereket, ez 5-30%-kal is ronthat az eddigi tempón.

Nem jól indul az év az Intel számára, ugyanis láthatóan idő előtt kiderült egy hardveres hiba, amely a jelenlegi adatok szerint érinti a vállalat összes modernebb processzorát. Nemrég ugyanis Linus Torvalds beolvasztotta a kernelfájljába a kernel laptábla izolációját, amely segít a felhasználói és a kernelmemória jobb elszigetelésében.

Ez elvileg a jobb biztonságot szolgálná, de végül kiderült, hogy valójában azért van rá szükség, mert az Intel processzoraiban egy olyan tervezési hibára lettek figyelmesek, amelyet nem lehetett szimplán mikrokódfrissítéssel megoldani, így magasabb szinten, vagyis lényegében az operációs rendszeren belül kellett javítani a problémát. Itt alapvetően arról van szó, hogy a Linux (és más modernebb operációs rendszerek) korábban úgy dolgoztak, hogy a felhasználói szintű kódok, vagyis az alkalmazások futtatásakor a teljes kernelmemória leképezésre került a laptáblákba, miközben persze védve volt. Ennek az az előnye, hogy ha az adott alkalmazás például egy rendszerhívást intéz a kernel felé, akkor az gyorsan elérhető, tehát az esetleges kontextusváltásból eredő többletterhelések nagy hatékonysággal iktathatók ki.

Hirdetés

A fenti modell kialakításában sokat segített az ASLR (address space layout randomization) technika, amit még az előző évtizedben fejlesztettek ki, és ez megnehezítette a kernel oldali sebezhetőségek kihasználását. Az Intel processzoraiban azonban egy olyan hardveres hiba van, ami lehetővé tesz bizonyos külső támadásokat, amelyek magát az implementációt érintő hardveres problémákat kihasználva hozzáférhetnek a memóriában tárolt adatokhoz, ezen belül is a kernelmemóriához.

Lényegében a fentiek miatt készült el a kernel laptábla izolációja, ami gyakorlatilag teljesen elszeparálja a felhasználói és a kernelszintű laptáblákat, aminek a hátránya a megnövekedő többletterhelés. Persze az újabb Intel processzorokkal a TLB, vagyis a translation lookaside buffer kiürítése elkerülhető a PCID-t (process context identifiers) használva, de az egyéb többletterhelések már nem, így azoknál az alkalmazásoknál, amelyek viszonylag sok rendszerhívást vagy megszakítást igényelnek, a teljesítmény akár 30%-kal is eshet. Az ebből a szempontból finomabb munkafolyamatok során nagyjából 5%-os tempóvesztéssel lehet számolni.

A Windows is megkapja a javítást hamarosan, legalábbis az alábbi Twitter bejegyzés erről árulkodik. Minden bizonnyal hasonló megoldásról lesz szó, mint a Linux esetében, és a teljesítményveszteség is nagyjából megegyező lehet.

Az AMD processzorai technikai értelemben nem érintettek, ugyanis Tom Lendacky az alábbi levélben arra hívta fel a figyelmet, hogy a kernel laptábla izolációját csak Intel processzorok mellett érdemes használni, mivel az AMD architektúrái nem engedélyezik az olyan memóriareferenciákat, amelyek magasabb szinten privilegizált adathoz férnének hozzá alacsonyabb szintű privilegizált módban való futtatás során. Emiatt a kernel laptábla izolációjának az AMD processzorain nincs pozitív hatása, csupán a teljesítményt csökkentené le.

Az összeesküvés elméleteket szövögetők körében felmerült, hogy az Intel valószínűleg megpróbálja majd elérni, hogy az operációs rendszereket fejlesztő partnerei a javítást általánosan alkalmazzák, így hiába nem érinti az AMD processzorokat, úgy jöhetnek ki a legjobban az eseményekből, ha konkurens megoldások is megkapják a javítással járó 5-30%-os sebességbüntetést. Többek között a legújabb frissítésben minden x86/AMD64-es processzor egységesen van kezelve, függetlenül attól, hogy hibás-e a hardver vagy sem, azaz mindegyik lassul. Az AMD nyilván azt fogja szorgalmazni, hogy a saját processzoraikra egyáltalán ne élesítsék ezt, mert számukra értéktelen fejlesztésről van szó, miközben – a frissítés jellege miatt – rengeteg teljesítményt vesztenek vele.

Addig is, amíg az AMD által igényelt változtatás beolvasztásra nem kerül, a kernel laptábla izoláció letiltásának egyik legegyszerűbb módja a Linux kernel "-nopti" paraméterrel való indítása a bootoláskor. Ezzel a felhasználó szabadon megválaszthatja, hogy él-e felhasználói és a kernelszintű laptáblák elszeparálásával vagy nem. AMD processzor esetén lényegében érdemes nopti módban bootolni, míg Intel processzorral kifejezetten nem ajánlott, noha technikailag ez is kivitelezhető. Nyilván nopti módban a teljesítménydeficittel nem kell számolni, de az inteles gépeknél figyelni kell arra, hogy ilyenkor a hardveres hiba kihasználható, így támadhatóvá válik a rendszer.

A probléma leginkább az adatközpontokat érinti, ugyanis a sebezhetőséget kihasználva egyszerűen hozzáférhetővé válnak a felhasználók által használt memóriaterületek. Nem véletlen, hogy az Amazon Web Services már levélben jelezte az előfizetőinek, hogy pénteken rendszerfrissítés miatti leállásra kell számítani, míg a Microsoft Azure esetében ez egy hét múlva történik majd meg.

Az Intel egyelőre nem adott ki tájékoztatót az ügyben, ahogy dokumentáció sem készült még a problémáról, mely egyben azt is jelzi, hogy a javítás rendkívül gyorsan és csendben születhetett meg. Valószínűleg később lesz majd egy bővebb felvilágosítás, várhatóan akkor, amikor a Windows operációs rendszer is megkapja a frissítést.

  • Kapcsolódó cégek:
  • Intel

Azóta történt

Előzmények

Hirdetés