Hirde​t​és

2018. május 24., csütörtök

Két sebezhetőség is pánikban tartja a világot

  • (f)
  • (p)
Írta: | | Forrás: PROHARDVER!

A Meltdown és Spectre hasonlóan veszélyes, ráadásul a javításuk nem jár majd áldozatok nélkül.

A tegnapi napon robbant a bombahír, hogy egy Intel CPU-kban talált hiba javítása sokat lassíthat a számítógépeken, de azóta érdekes új fejlemények is vannak, amelyekre mindenképpen érdemes odafigyelni. Mivel a sajtó elől meglehetősen elzártan folytak a javítások, így gyakorlatilag a világ nagy része csak most értesül a problémáról, melynek alapjául a Google Project Zero kutatásai szolgáltak.

A keresőóriás által delegált csoport felfedezte, hogy a processzorokban található adatgyorsítótárak időzítése esetlegesen olyan visszaélésekre adhat lehetőséget, amelyekkel hatékonyan kinyerhetők bizonyos információk a virtuális memóriából, amiről mondanunk sem kell, hogy mennyire súlyos biztonsági kockázatnak számít. Az eddigi kutatás alapján három támadási lehetőséget tartanak nyilván: bounds check bypass (CVE-2017-5753), branch target injection (CVE-2017-5715) és rogue data cache load (CVE-2017-5754). Ezek közül az első kettő a Spectre, míg az utolsó a Meltdown elnevezésű sebezhetőséghez tartozik.

Spectre
Spectre

A bounds check bypass támadással elérhető, hogy a felhasználói módból egy program tetszőlegesen olvasson a kernelmemória 4 GB-os régiójában. Ezt a teszthez használt Intel Haswell processzoron Debian disztribúció mellett aktív vagy inaktív eBPF bájtkód interpreter és JIT módban is meg lehetett tenni, míg AMD PRO sorozatú processzorral csak az eBPF JIT bekapcsolt állapotában oldható meg. Azt nem tudni, hogy minden egyes nagyobb teljesítményű, x86/AMD64 és ARM architektúrára épülő processzor érintett-e valamilyen eBPF JIT beállítással, de nagy a valószínűsége, hogy igen. Ugyanakkor erre a támadási módra már létezik egy operációs rendszer oldali javítás, ami hamarosan elérhető lesz. További jó hír, hogy ennek telepítése csak elhanyagolható teljesítményvesztéssel járhat, nincs tehát különösebb érv a használata ellen.

A branch target injection támadás már izgalmasabb és különösen veszélyes, ugyanis ha egy virt-managerrel létrehozott KVM vendég rendszergazda jogosultságokkal futtat egy programot, akkor egy Intel Haswell processzorral 1,5 kilobájt/másodperces teljesítménnyel olvashatóvá válik a host kernelmemóriája. Ezt Debian disztribúción sikerült is bizonyítani. Ennek a támadási módnak a jelenlegi adatok alapján Intel és ARM processzoron van hatása, más gyártó megoldásán még nem sikerült kihasználni. Ugyanakkor ebben a pillanatban nem kizárható, hogy egy alternatív implementációval később még bővül a támadható hardverek sora. Sajnos konkrétan erre támadási formára még javítást sem könnyű biztosítani.

Ezek a Spectre sebezhetőségek főleg amiatt problémásak, mert mindkét említett és egyben ismert támadási mód a modern processzorok spekulatív végrehajtását használja ki valamilyen formában. Ez teszi a mai rendszereket nagy teljesítményűvé és közben sajnos sérülékennyé is. A modernebb magok persze rendelkeznek olyan utasításokkal, amelyek arra kényszeríthetik a processzort, hogy megvárják a kiemelt memóriaolvasásokat és -írásokat, és ezzel gyakorlatilag elejét vegyék a spekuláción alapuló feldolgozásnak, de nehéz meghatározni, hogy ezeket az utasításokat hova érdemes beszúrni. Emiatt sajnos előfordulhat, hogy a magok olyan programrészeket is futtatnak, amelyeket nem kellene, de akkor amikor ez megtörténik, még nem tudja a hardver, hogy hibát követ el. Később persze ez kiderül, és a rendszer korrigálja is magát, tehát elvi szinten olyan sok negatívummal nem jár ez a modell, viszont sok pozitívuma lehet a sebességre nézve, ha mégis le kellett futtatni az adott programrészt. A Spectre sebezhetőségeknek itt a méregfoga. Egyszerűen megpróbálják megvezetni a hardvert, hogy lefuttasson egy programrészt, amiről később nyilván kiderül, hogy felesleges volt, de az adat már ki lett olvasva, és ez nyomot hagy a memóriahierarchia egyes lépcsőfokain is.

Meltdown
Meltdown

A Meltdown sebezhetőségre rátérve a rogue data cache load támadás kerül előtérbe, aminek két formája is van. Lényegében mindkét esetben ugyanaz a cél, mégpedig a kernelmemóriát olvasni felhasználói módból, a kernel kód vezérlési gráfjának félrevezetése nélkül. Az eltérő támadási variánsok csupán az egyes processzorokhoz igazodnak, így téve lehetővé a támadást olyan hardvereken is, amelyeknél az első implementáció kudarcot vallott. Erre vonatkozóan lesz javítás az operációs rendszerek oldalán, de ez már érezhető teljesítményvesztéssel járhat, mivel a javítás módja a rendszerhívások és a megszakítások esetében megnöveli a többletterhelést. Minél több van ezekből egy adott munkafolyamat során, annál nagyobb mértékű lesz a lassulás.

Az operációs rendszereket fejlesztő szereplők az események hatására elárulták, hogy az utóbbi időben folyamatosan dolgoztak a lehetséges javításokon, amelyek vagy elérhetők már, vagy hamarosan hozzáférhetők lesznek. Emellett a hardvergyártók közül az Intel, az ARM és az AMD is reagált az eseményekre.

Az Intel eléggé általános közleményt küldött, amely nem igazán azzal foglalkozott, hogy mely processzoraik érintettek, hanem inkább az ARM-ot és az AMD-t emlegette. Emiatt sajnos túl sok hivatalos információ nem derült ki, de jelenleg úgy néz ki, hogy a Spectre és a Meltdown sebezhetőségek, eddig ismert összes támadási módjával szemben sérülékenyek az Intel processzorai.

Az ARM közleménye sokkal inkább a lényegre tör, így leírták, hogy a Spectre sebezhetőség mindkét variánsa kihasználható a Cortex-R7, -R8, -A8, -A9, -A15, -A17, -A57, -A72, -A73 és -A75 magokon, ugyanakkor a Cortex-R7 és -R8 esetében a célpiac miatt nem igazán kell ezzel a problémával foglalkozni. A Meltdown szempontjából az eredeti támadási implementációval sebezhető a Cortex-A75, míg ennek a módosított variánsa a Cortex-A15, -A57 és -A72 magokat fenyegeti. Az ARM egyébként kiemeli, hogy a Meltdown sebezhetőségre adott szoftveres tapasz véd a Spectre branch target injection támadásával szemben is. Emellett arra buzdítják a partnereiket, hogy a legfrissebb firmware-t használják.

Az AMD a közleményében tudatta, hogy a processzorai teljesen immunisak a Meltdown sebezhetőség eddig ismert implementációra, ugyanis nem úgy működnek, hogy ez a fajta támadási módszer hatásos legyen rajtuk. A Spectre sebezhetőség szempontjából a bounds check bypass támadásra bizonyos körülmények között érzékenyek lehetnek a hardvereik, ugyanakkor kiemelték, hogy már elkészült erre a javítás, ami ezt a problémát megoldja. A branch target injection támadás szempontjából az AMD azt írta, hogy az architekturális alapok következtében közel nulla az esélye annak, hogy ez kihasználható lesz a processzoraikon.

Egyelőre itt tart tehát a világ, a pánik lassan mindenhova elér, de szerencsére már sokkal többet lehet tudni az érintett hardverekről, illetve az egyes támadások ellen védő javításokról.

Hi​r​de​t​é​s​

Copyright © 2000-2018 PROHARDVER Informatikai Kft.