Tavaly rengeteg biztonsági résre derült fény, de a legnagyobb port talán az év elején publikált Meltdown és Spectre bugok kavarták, amelyek azóta is bőven adnak munkát a fejlesztőknek – főleg utóbbi. Úgy tűnik, 2019 is mozgalmas lesz, már ami a biztonsági réseket illeti, nemrégiben fény derült egy SPOILER névre keresztelt sebezhetőségre, ami a spekulatív végrehajtást támadja, ám nem ugyanazt a módszert használja, mint a Spectre, így a Spectre ellen készített patchek és frissítések sem védenek ellene.
A SPOILER, amit a Worcester Polytechnik és a Lübecki Egyetem kutatói fedeztek fel – név szerint Saad Islam, Ahmad Moghimi, Ida Bruhns, Moritz Krebbel, Berk Gulmezoglu, Thomas Eisenbarth és Berk Sunar – már az Intel memória-alrendszerének működésében található hiányosságokat támadja, egészen pontosan a címspekuláció gyengeségeit.
A modern processzorok esetében a rendszermemóriát célzó írási és olvasási feladatok menedzselését egy Memory Order Buffer segíti, ami nyomon követhetővé teszi a műveleteket. A buffer akkor, amikor a CPU regiszterből a rendszermemóriába másol adatokat, tároló műveleteket hajt végre (store), természetesen olyan sorrendben, ahogy az a végrehajtható kódban le van fektetve; míg akkor, ha a rendszermemóriából a processzor regisztereibe adat továbbítására kerül sor, töltést (load) végez, méghozzá spekulatív módon, soron kívül is behívva adatokat. Ezzel a módszerrel a processzor előre dolgozhat, hogy olyan adatok is elérhetőek legyenek a RAM-ból a regiszterek számára, amelyekre később szükség lehet – ennek során a függőségi problémalehetőségekre is odafigyelnek, például arra, hogy a load művelet ne támaszkodjon egy olyan korábbi store műveletre, ami még kész sincs. A következő load művelettel kapcsolatos spekuláció folyamán szükség van a fizikai címre is, hogy ne alakulhassanak ki hibás függőségek, ám az Intel saját címspekulációval kapcsolatos implementációja sajnos gyengeségeket tartalmaz. Pont ez az, amiért a SPOLIER sebezhetőség működhet.
A SPOILER gyakorlatilag a load és store utasítások közötti időzítések mérésével operál, amelyekből következtetéseket lehet levonni a virtuális memórialapok felépítésével kapcsolatban, így a fizikai és virtuális memória kapcsolatáról és a memóriatérképről is információkat lehet nyerni. A kutatók algoritmusa első körben feltölti a processzoron belül található store buffert olyan címekkel, amelyek azonos offsettel rendelkeznek, de különböző virtuális lapokon vannak. Majd végrehajt egy load parancsot, amely hasonló ofsettel rendelkezik, de egy eltérő memórialapot céloz. Amennyiben több ilyen virtuális lappal is elvégzik a műveleteket, az időzítések érdekes információt adnak azzal kapcsolatban, milyen függőség-feloldási hibák jelentkeznek a különböző szinteken. Ezekkel aztán további műveleteket követően értékes adatokhoz lehet jutni. A SPOILER jóvoltából a már ismert Rowhammer és Cache támadások sokkal könnyebben kivitelezhetőek lesznek és a JavaScript alapú támadások is sokkal hamarabb eredményt hozhatnak – vagyis nem hetekig, hanem csak másodpercekig tart a futásuk, ami azért óriási előrelépés, legalábbis a támadók szemszögéből nézve.A SPOILER segítségével gyakorlatilag egy weboldalon futó JavaScript kódon keresztül is megszerezhetők jelszavak, titkosítási kulcsok, illetve egyéb kényes adatok is. A sikeres támadásnak az a feltétele, hogy az áldozat gépén már futnia kell egy malware-nek, illetve egyéb kártékony kódnak, ami nem megoldhatatlan feladat, a helyzetet pedig tovább rontja, hogy a támadás folyamán nincs szükség rendszergazdai jogosultságra, ugyanis felhasználói módból is kiaknázható a sérülékenység. További rossz hír, hogy a sebezhetőség operációs rendszertől függetlenül működik, akár virtuális gépeken is sikerrel kiaknázható, sőt, a sandbox sem véd ellene.
A kutatók vizsgálatai szerint a sebezhetőség az első Intel Core sorozatú processzorokig visszamenőleg minden Intel gyártmányú központi egységet érint, az ARM és az AMD processzorai azonban védettek vele szemben. Ennél egy fokkal nagyobb baj, hogy a kutatók szerint igazából nincs ellene hatékony szoftveres védelem, illetve mikrokód alapú frissítés sem, ezek ugyanis csak úgy valósíthatóak meg, ha cserébe igen komoly mértékben teljesítményt veszít az adott rendszer. A kutatók szerint a hiba csak hardveresen javítható, ám ehhez mindenképpen évekre lesz szüksége az Intelnek. Pont ezért van az, hogy a sebezhetőség CVE besorolást sem kapott, hiszen klasszikus javítás nem igazán érkezhet rá.