Alig két hete fedezték fel, de úgy tűnik föl, a Meltdown és Spectre nevű sérülékenységek a történelem legsúlyosabb számítógépes hibái. Anders Fogh-gal, a G Data kutatójával beszélgettünk, aki testközelből ismeri őket.
Foghnak a tavaly nyáron publikált tanulmánya indította el a lavinát, mely a sérülékenységek gyakorlati bizonyításához vezettek. Érdekesség, hogy mivel IT-biztonsági iparág jellemzően nem processzorral kapcsolatos biztonsági hibákkal foglalkozik, a G Data kutatója is szabadidejében foglalkozott ezzel a lenyűgöző területtel.
Hogyan találtál a hibára?
A Grazi Műszaki Egyetem kutatóival együtt foglalkoztunk a kiváltság-szabályokkal, a processzoron belüli végrehajtásukkal, alkalmazásukkal. Munkánkat a Black Hat USA 2016-i konferencián mutattuk be. Ezután a CPU rejtett csatornáival kapcsolatos kutatásom következett, majd 2017 januárjában kötöttem össze a két kutatási területet. Ez vezetett a Spectre és Meltdown mögötti központi problémához.
A kutatók rengeteg sérülékenységet fedeztek fel a múlt évtizedekben, egyesekben kiemelkedő potenciál rejtőzik. A potenciál ellenére mégsem született olyan kártevő, melyik kihasználta volna ezeket.
Mit gondolsz, mennyire valószínű, hogy a közeli jövőben megjelenik egy Meltdown vagy Spectre sérülékenységet kihasználó kártevő?
Szerintem nagy a valószínűsége, hogy látunk olyan kártevőket, melyek a Meltdown-hibát kihasználják. Már létezik is proof-of-concept jellegű forráskód, az exploitok elérhetőek az interneten. Emiatt rendkívül fontos, hogy frissítsük operációs rendszerünket. A Spectre-sérülékenységet nehezebb kihasználni, így hosszabb idő, amíg a rá épített kártevő is megjelenik.
A Meltdown és Spectre a hardverhez kapcsoló biztonsági hibák. Mit jelent ez a potenciális kártevők szempontjából?
Ami a hardver-CPU-kombinációt illeti, minden gyártónak széles skálán mozog a termék és modell kínálata, és ezek rendszer-architektúra és egyéb specifikáció tekintetében különböznek egymástól. Eléggé valószínűtlen, hogy létezne egy általános támadási kód, amely működnék az összes sebezhető CPU-platformon. Az ördög a részletekben rejlik. Eléggé nagy erőfeszítés olyan exploit-kódot írni, mely a különféle processzoron működnék, hiszen az operációs rendszerek közötti különbségeket is figyelembe kell venni a sérülékenységek kihasználásakor.
A Meltdown- és Spectre-támadások esetében az információszivárgás miatt juthatnak adatokhoz a támadók. Vannak nyilvánvaló célpontok szerver környezetekben, asztali pc-k, noteszgépek és okostelefonok esetében, de kevésbé nyilvánvaló támadásokra is számíthatunk. Milyen támadási forgatókönyvvel számoljunk?
Rengeteg eszközben használnak kiemelkedő teljesítményű processzorokat, legyenek azok szórakozást vagy ipari célokat szolgáló eszközök. Minél nagyobb teljesítményű egy processzor, annál nagyobb valószínűséggel lesz egy hasonló támadás célpontja. A támadók ideje sincs ingyen, őket is gazdaságossági megfontolások vezérlik. A Meltdown- és Spectre-hibák adatszivárgásos támadásokra használhatóak. Nem nyereséges a támadóknak teljes körű támadást indítani minden érintett eszköz ellen, hiszen egyszerűen ezen eszközök többsége nem dolgoz fel olyan értékes információt, mely megérné a rengeteg befektetett erőfeszítést. Hardveres routerek, tűzfalak esetében azonban már más a helyzet.
Ha a támadó szemszögéből nézzük, a kernel (az operációs rendszer magja) memóriában tárolt adatok megszerzése csak az első lépés, segítségükkel sokkal értékesebb információk is megszerezhetők. Mit tudnak a támadók a Meltdown-sérülékenységet kihasználó kártevővel elérni?
Normális esetben, egy korszerű operációs rendszerben egy kártevő biztonsági szintje megegyezik annak a használónak a biztonsági szintjével, amellyel a fertőzés pillanatában rendelkezett. Magyarul: a kártevő is csak azt tudja megtenni, amit a használó, így, ha ő nem telepíthet programokat a gépre, akkor a kártevő sem. A Meltdown viszont lehetővé teszi a kártevő számára, hogy hatékonyan kiolvasson bármilyen információt az operációs rendszer magjából. Ezek az információk hozzájárulnak ahhoz, hogy a kártevő jogköre gyarapodjék, és gyakorlatilag ellenőrzése alá vonja a megfertőzött gépet, a felhasználó biztonsági szintjétől függetlenül. Vagyis, ha a használó nem telepíthet programokat, a Meltdown-kártevő már igen.
A Meltdown- és Spectre-ügyben vitázó szakemberek rengeteg vélemény megfogalmaztak, melyik a legfontosabb a te szempontodból?
A számítógép biztonsága hosszú távú projekt, a Spectre és Meltdown csupán egy lépés ebben a hosszú utazásban. A hangsúly a processzornak a számítógép biztonságában betöltött szerepkörére tolódott, és reményeink szerint felébreszti a szakemberek érdeklődését a mostaninál biztonságosabb számítógépek tervezése iránt.
Az IT biztonsági szakemberek általában nem a processzorokban keresik a biztonsági hibákat. Mi jön ezután? Várhatunk újabb hardver alapú hibák megjelenésére?
A processzorok rendkívül összetett eszközök. Egy-egy modern CPU-ban a tranzisztorok száma meghaladja a 3 milliárdot (háromezer milliót). Összehasonlításképp, ez ezerszer több alkatrész, mint amennyit az embert a holdra vivő Saturn V rakétába építettek. Ilyen mértékű komplexitás mellett nagy valószínűséggel fogunk további hibákat találni a processzorban.
A Meltdown és Spectre néven ismertté vált biztonsági hibák nem megszokott szoftverhibák, hanem a számítógép processzorát érintik. A processzor feladata a kapott utasítások elvégzése, miközben azt is biztosítja, hogy a különböző folyamatok csak a saját adataikhoz férnek hozzá. Ezt a memória-izoláció (szigetelés) elv megtartásával sikerül a CPU-nak megoldania. A mai, modern processzorok működését a végtelenségig optimalizálták, a cél, hogy hatékonyan és gyorsan elvégezze feladatát. Ez azt jelenti, hogy a különféle utasításokat nem a természetes sorrendben végzi el. Ha az utasításokat gyorsan, egymás után dolgozná fel a processzor, akkor nagy szünetek lennének működésében, a program logikai elburjánzásához illeszkedve, vagyis lassú lenne számítógépünk. Azért, hogy ezt a folyamatot felgyorsítsa, a processzor megpróbálja kitalálni, milyen művelet következnék, és el is kezdi az utasításokat végrehajtani. Ha ezekre az adatokra mégsem lenne szükség, akkor később a processzor kidobja őket, de addig is ott élnek a processzor belső memóriájában, ahol elvileg nem láthatóak a rendszer többi részére számára. A most felfedezett sérülékenységek lényege, hogy a felfedezett módokon az adatok az aktív memória számára is elérhetővé válhatnak.