Mellékleteink: HUP | Gamekapocs
Keres
>> Hibrid felhőtől a konténereken át, egészen a kvantumprogramozásig - 6 klassz téma a HWSW május 21-i nagy Microsoft Azure meetupján. <<

Újabb biztonsági hibák kísértik az Intelt

Asztalos Olivér, 2019. május 16. 15:31

Tovább gyarapodott az Intel processzorait exkluzívan érintő biztonsági hibák sora. Az MDS rövidítés alá besorolt problémákat BIOS frissítéseken át mikrokód, valamint az operációs rendszerek és a különféle egyéb szoftverek patchelésének együttesével lehet javítani, pár százalékos teljesítménycsökkenés árán. Az Apple szerint a tökéletes védelemhez a Hyper-Threadinget is ki kell kapcsolni, amely viszont akár 40 százalékkal is visszavetheti a számítási tempót. Az AMD, az ARM, illetve a többi tervezőcég termékeit nem érinti a probléma.

A négy újabb sebezhetőséget több egyetem, így például az amszterdami Vrije Universiteit, a grazi University of Technology, az University of Michigan, a Worcester Polytechnic Institute, illetve a KU Leuven kutatói szúrták ki. Ennek megfelelően több néven keringenek a hibák, a RIDL, Fallout, illetve ZombieLoad megnevezéseket azonban az érintett Intel végül az MDS (Microarchitectural Data Sampling) rövidítés alá sorakoztatta be. Ahogy a processzoros sebezhetőségi hullámot kiváltó Spectre/Meltdown esetében, úgy az MDS-nél is a modern (értsd: az elmúlt bő húsz évben készült) mikroarchitektúrák szerves részét képző spekulatív végrehajtás nyit utat a támadásra. Az Intel már szállítja a javításhoz szükséges mikrokód-frissítéseket, amiket az operációs rendszerekhez kiadott patchekkel társítva kivédhetőek az esetleges támadások.

mds

A processzorok esetében komoly kihívás jelent a végrehajtóegységek folyamatos etetése, a rendszermemória ugyanis a beépített gyorsítótárakhoz képest rendkívül lassú, az adatok bekérésétől számítva mintegy 100 órajelciklusra van szükség ahhoz, hogy azok be is érkezzenek, amely miatt a processzor az idő java részében üresjáratban lenne. Ahhoz, hogy ezt elkerüljék, a tervezők komplex prediktív algoritmusokat fejlesztettek, amelyek igyekeznek a potenciálisan szükséges adatokat a gyorsítótárba tölteni.

Azonban még ez sem eléggé hatékony ahhoz, hogy minden órajelciklusban elégséges munkát tudjon végezni a processzor, ezért a végrehajtók (jobb híján) előre is dolgoznak: míg várakozniuk kell, elindulnak egy feltételes elágazás egyik útján és elkezdik az utasítások végrehajtását. Ha az elágazásbecslő helyesen tippelte meg, hogy a programszál egy elágazás melyik ágán fut tovább, akkor az eredmények már készen is állnak, kiírhatóak a processzormag saját puffereiből a rendszermemóriába, ha pedig a tipp tévesnek bizonyult, akkor annak eredményét rendszer eldobja és megismétli a betöltést, immár a végrehajtáshoz szükséges helyes adatokkal. Utóbbi értelemszerűen lassabb működést eredményez, miközben a processzornak újra kell kalkulálnia a végrehajtás paramétereit, beleértve a különféle időzítéseket.

Az MDS épp ez utóbbira épít, a támadó ugyanis ki tudja mérni a lekérdezések között eltelt időt, amelyekből kikövetkeztethetőek a mag egyes puffereiben található adatok. A sebezhetőség nem a jellemzően nagyobb kapacitású, különféle gyorsítótárakra, hanem az apró pufferekre fókuszál. Ezekből több különféle található egy modern magban. Az egyik ilyen az LFB (Line Fill Buffer), melynek funkciója a rendkívül gyors L1D cache hatékony feltöltése. Ez gyakorlatilag hidat képez az első szintű adatcache és a memória között, elsőként a kis pufferbe kerülnek be ideiglenesen az adatok, majd végül innen a jellemzően 100 kilobájt alatti kapacitású L1D-be. Hasonló célt szolgál a store buffer, azonban ez fordítva is működhet, tehát akár memóriába való írást is segítheti, gyorsítva azt. A load portokban is bent "ragadhatnak" adatok, ezek funkciója ugyanis a memória és a regiszterek közötti kapcsolat hatékony áthidalása.

Az apró tárakban processzoros időszámítással kalkulálva viszonylag sokáig állhatnak különféle adatok. Az LFB-nek például addig nem törlődik a tartalma, amíg abba nem érkezik be egy újabb beolvasás eredménye, a store bufferben pedig vegyesen lehetnek különféle új és régi adatok a különböző store műveltek miatt. A load portokban szintén lehet úgynevezett állott adat, ezek ugyanis jellemzően szintén megtartják addig tartalmukat, amíg nem érkezik be friss adat. Az MDS-t kihasználó támadó ezekre a régi adatokra utazhat, amelyek megfelelő védelem nélkül bármelyik pufferből kinyerhetőek.

Kemény dió

Ahogy a Spectre sebezhetőségeknél, úgy a sikeres támadásra most is viszonylag kicsi az esély, a rosszindulatú fél ugyanis nehezen tudja befolyásolni, hogy milyen adat legyen az említett pufferekben, sokkal valószínűbb, hogy biztonsági szempontból irreleváns adatok akadnak horogra. A támadónak ezért sokáig, kitartóan kell próbálkoznia, amely értelemszerűen rontja az esélyeket. Ezzel szemben a problémát súlyosbítja, hogy a Meltdownhoz hasonlóan egy csupán "user" jogosultságú kód ki tud olvasni a kernel memóriájából információkat (vagy vendég operációs rendszer a hypervisoréból), egy nem biztonságos process pedig akár a biztonságosnak titulált SGX enklávéból is adatokat szivárogtathat ki.

intelsgxill

A sikeres adatlopás kockázatát a Hyper-Threading (köznéven SMT) is növelheti. Ez a technológia lehetővé teszi, hogy egyetlen fizikai processzormagon felváltva két programszál is futhasson. Ehhez néhány erőforrást megkettőztek a tervezők, így mindkét szál számára úgy tűnik, hogy a teljes processzormag kapacitásával rendelkezik. A technológia előnye, hogy képes a végrehajtó egységek kihasználtsági fokát közelebb vinni az ideálishoz, így ha az egyik szál éppen várakozik valamire, akkor az egységek dolgozhatnak a másik szálhoz tartozó utasításokon. Amennyiben a támadó hozzáfér a magban futó szál valamelyikéhez, úgy akár a másik szál által használt adatokat is megszerezheti, köszönhetően a különféle közös erőforrásoknak, például gyorsítótáraknak.

Az amszterdami Vrije Universiteit kutatói mindezekkel együtt csak úgy tudták igazolni a sebezhetőség működését, hogy a jelszavakat tartalmazó adatot a Linux passwd parancsának kvázi folyamatos futtatásával a processzor valamely pufferében tartották. Az Intel szerint ennek fényében a biztonsági kockázat alacsony vagy legfeljebb közepes. A chipgyártónak ugyanakkor nyilvánvalóan nem jött jól az újabb, kizárólag az általa gyártott x86-os processzorokra vonatkozó biztonsági hiba. Ezt támasztja alá, hogy a holland NRC.nl cikke szerint a vállalat először 40 000, majd később további 80 000 dollárt ajánlott fel az egyetemi kutatóknak, hogy azok minősítsék le a hiba súlyosságát, illetve várjanak további 6 hónapot annak nyilvánosságra hozásával, amit az érintettek végül visszautasítottak. A felajánlás egyébként alapvetően még nem lenne meglepő, az Intel ugyanis a tavaly januári Spectre/Meltdown botrány után megnyitotta bugvadász programját, amelyben akár 250 000 dollár is ütheti a becsületes, biztonsági hibát megfelelő formában bejelentő markát.

Mire elég a javítás?

Úgy fest, az Intelnek sikerült időre elkészítenie az MDS foltozását célzó mikrokód-frissítéseket, amelyek egészen a 2011-ben bemutatott Sandy Bridge-ig nyúlnak vissza. E mellé szoftveres patchek is érkeznek, melyekkel az operációs rendszer és a hypervisor képes lehet azonnal üríteni a processzor különféle puffereiben található adatokat, így biztosítva az esetleges illetéktelen hozzáféréseket. Az Intel állítása szerint egyébként a Foreshadow (vagy egyes helyeken Spectre 5) hibára már immunis a legújabb kiadású Coffee Lake, a Whiskey Lake, valamint a szerverekbe szánt Cascade Lake, azok ugyanis hardveres javítással rendelkeznek az MDS-hez hasonló támadásokkal szemben. A többi terméknél változó lehet a javítás hatása, amely belső mérések szerint átlagosan 3-8 százalékkal vetheti vissza a teljesítményt.

Ebből a szempontból érdekes kérdést vet fel a ZombieLoad becenéven publikált egyik MDS sebezhetőség, amelynek tökéletes kivédése Daniel Gruss, a grazi egyetem kutatója szerint egyelőre kizárólag a Hyper-Threading lekapcsolásával lehetséges. Az Intel szerint erre nincs szükség, ugyanakkor a vállalat egyik nagyobb vásárlópartnerének számító Apple szerint van. A cupertinói cég erről már egy hivatalos ajánlást is kiadott, mely szerint a teljes biztonság érdekében ki kell kapcsolni a technológiát, amely a belső tesztek szerint sokszálas végrehajtásnál akár 40 százalékkal is visszavetheti a rendszer teljesítményét. Ez meglehetősen nagy ellentmondást jelent a két cég kommunikációja között, amelyek viszonya egyre borúsabbnak tűnik. Az Apple legutóbb az Intelt, pontosabban annak szállítási problémáit okolta a Macekből származó bevételeinek csökkenése miatt.

6 klassz téma, 6 jó előadó a HWSW május 21-i nagy Microsoft Azure meetupján.