Újabb biztonsági hibák kísértik az Intelt
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.
A Gitlab mint DevSecOps platform (x) Gyere el Radovan Baćović (Gitlab, Data Engineer) előadására a november 7-i DevOps Natives meetupon.
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.
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.