Szerző: Asztalos Olivér

2019. november 14. 08:30:00

Feladják a leckét a biztonsági sebezhetőségek az Intelnek

Egy friss blogbejegyzésében összesen 77 különféle biztonsági hiba javításáról adott hírt az Intel. A vállalat büszkén emelte ki, hogy 67 darab hibát házon belül, saját alkalmazottai találtak. Független szakemberek szerint azonban ez még mindig kevés, egy súlyos processzoros sebezhetőséget ugyanis bő 1 év alatt sem tudtak kijavítani a mérnökök.

HIRDETÉS

A 77 darab biztonsági rés a gyártó termékeinek széles palettáját érinti, a különféle hálózati adapterektől kezdve a GPU-s drivereken át egészen a processzoros mikroarchitektúrákig. Utóbbival kapcsolatban ugyanakkor nem lehet teljes az öröm, a májusban publikált MDS-re épülő egyik hibát ugyanis továbbra sem volt képes befoltozni az Intel. Az exploitra rámutató szakemberek szerint ez kiábrándító, a ZombieLoad v2 becenéven futó probléma ugyanis még tavaly szeptemberben, vagyis nagyjából 14 hónappal ezelőtt jutott el a chipgyártóhoz.

Maga az Intel mutat rá említett bejegyzésében, hogy a CVE-2019-11135 exploit kiaknázását bár megnehezítették, továbbra sem lehetetlen érzékeny adatokat kinyerni a rendszerből, a tökéletes javítás pedig egy újabb mikrokód frissítés formájában érkezik majd, valamikor. Az ügy pikantériája, hogy a Zombieload v2 a chipgyártó legújabb processzoraiban, vagyis a Cascade Lake kódnevű Xeonokban, illetve a Comet Lake mobil CPU-kban is ott lapul.

Az MDS-es (Microarchitectural Data Sampling) résekre még májusban kezdett el javításokat kiadni az Intel. A biztonsági problémát az amszterdami Vrije Universiteit, a grazi University of Technology, az University of Michigan, a Worcester Polytechnic Institute, illetve a KU Leuven kutatói egyaránt kiszúrták. 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.

00:39

RIDL-TAA leaking full root password hash in seconds

Még több videó

Az MDS-nél a támadó ki tudja mérni a komplex művelet-végrehajtás egyes paramétereit, időzítéseit, a lekérdezések között eltelt időből pedig 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.

A Vrije Universiteit szerint az Intel mindeddig csupán részben javította az MDS-es sebezhetőségeket, az erőfeszítések tehát mindmáig félsikert mutatnak. Az egyetem szakemberei már májusban látták, hogy a chipgyártó megoldása ingatag lábakon áll, az Intel kérésének eleget téve azonban nem kommentálták a javítás minőségét. Kaveh Razavi, az egyik kutató szerint az Intel egyszerűen figyelmen kívül hagyta az egyik MDS-variánst, amely ráadásul mind közül a legveszélyesebb. Razaviék szerint ugyanis ezt meglovagolva csupán másodpercek alatt hozzá lehet férni érzékeny adatokhoz, például jelszavakhoz.

A villámgyors módszert TSX Asynchronous Abort (TAA) néven írták le. Ahogy az elnevezés is utal rá, ehhez az Intel TSX utasításkészlet-kiterjesztése szükséges. A Haswell architektúrában megjelent fejlesztés a tranzakcionális memóriakezelést hivatott javítani. A tranzakció végrehajtása közben a processzor feljegyzi, hogy mely memóriaterületekről történt olvasás és melyekre írás, valamint a módosítások csak az L1D és L2 cache-be kerülnek, miközben az L3 az eredeti adatokat tartalmazza, így a többi programszál ezeket látja. A művelet végén a processzor ellenőrzi, hogy a feljegyzett memóriaterületek még mindig az eredeti értékeket tartalmazzák-e (azaz amikkel a program a tranzakció alatt számolt, azt más szál nem módosította-e időközben). Amennyiben igen, akkor az adatmódosítások egyszerre lesznek láthatóak a teljes rendszer számára (commit), ha viszont változás történt, akkor az L1/L2 cache-ben levő a módosított értékeket felülírja az aktuális értékekkel (rollback), és újra megpróbálkozik a teljes tranzakció lefuttatásával.

A támadó ez utóbbit lovagolhatja meg, vagyis kvázi kényszerítheti a processzort arra, hogy rollbackeljen, amely utat nyit a pufferekben található friss adatokhoz. A Vrije Universiteit másik kutatója, Jonas Theis szerint ezzel mindössze 30 másodperc alatt képesek adminisztrátori jelszavak hashének kinyerésére. Az Intel ezzel szemben azt állítja, hogy a Zombieload v2 rendkívül nehezen aknázható ki, amely inkompetencia mellett a probléma elbagatellizálására egyaránt utalhat. A hozzáállást látva az ugyancsak a Vrije Universiteitnél tevékenykedő Cristiano Giuffrida mélységes csalódásának adott hangot, mely szerint az Intel biztonsági mérnökei lassan két évvel a processzoros sebezhetőségi hullámot kiváltó Spectre/Meltdown után sincsenek a helyzet magaslatán.

 

a címlapról