Mellékleteink: HUP | Gamekapocs
Keres

Új védelmet hoznak az Intel processzorok

Gálffy Csaba, 2016. június 13. 11:00
Ez a cikk több évvel ezelőtt születetett, ezért előfordulhat, hogy a tartalma már elavult.
Frissebb anyagokat találhatsz a keresőnk segítségével:

Az Intel és a Microsoft együttműködésében új hardveres védelmi megoldás kerül a processzorokba. A CET megakadályozza, hogy a támadó felülírja a futó alkalmazás folyamatvezérlését.

A modern processzorok és operációs rendszerek már képesek megkülönböztetni a memória futtatható és adat területeit, az NX-bit jelöli, hogy mely területeket tilos futtatni. Ez megakadályozza, hogy a támadó kódot adatként betöltve le lehessen futtatni, és további akrobatikára kényszeríti a támadót.

Az egyik ilyen akrobatamutatvány a futó alkalmazás kódjából dolgozik, az utasítások végrehajtási sorrendjét felülírva és újrarendezve áll össze a támadókód, amely például végrehajthatóvá tudja címkézni a memória bizonyos részeit. Az ilyen támadást ROP/JOP néven ismerjük, a return oriented programming vagy jump oriented programming rövidítéseként, és roppant nehéz ellene védekezni és detektálni.

Verem az árnyékban

Az Intel és a Microsoft együttműködésében most egy új megoldás készült, CET (control-flow enforcement technology) néven. Ez egy hardveres megoldás a fenti problémára és azt ígéri, hogy megnehezíti a futó programok feletti ROP/JOP hatalomátvételt a támadók számára. Ehhez két elemet használ, a Shadow Stacket és az indirekt ágazáskövetést (indirect branch tracking, IBT).

A shadow stack egy új, párhuzamosan létrehozott verem, amely kizárólag a program vezérlését tárolja és teljesen elszigetelt az adatveremtől, így puffertúlcsordulással nem manipulálható a tartalma. Ez az ellenőrzést szolgálja, a CPU minden CALL és RET utasításnál összehasonlítja a program vezérlését a shadow stack tartalmával, és amennyiben eltérést észlel, azonnal megszakítja a futást és (az operációs rendszeren keresztül) hibaüzenetben tájékoztatja a felhasználót.

Az x86-os stack - túl könnyű manipulálni

Maga a shadow stack koncepciója nem új, szoftveres implementációk már eddig is léteztek. Amiben az Intel-féle megoldás újat hoz, az a hardveres elem. Így ugyanis kikényszeríthető, hogy a shadow stack a normális memória-munkaterülettől teljes izolációban létezzen, annak tartalma pedig MOV, XSAVE és hasonló utasításokkal nem manipulálható.

A másik újdonság az IBT, ez a shadow stackkel ellentétben az x86-os utasításkészlethez vadonatúj utasítást is ad, az ENDBRANCH formájában. Ez arra szolgál, hogy az indirekt hívásokat validálja a hardver felé - csak az ilyen, megjelölt hívások számítanak érvényesnek. Az utasítás visszafelé kompatibilis az Intel szerint, az utasítást nem támogató processzorok ezt NOP (no operation) képében látják és egyszerűen átugorják.

A CET-et támogató processzoroknál azonban megjelenik egy state machine (automata), amely az indirekt JMP és CALL utasításokat figyeli: amikor ilyen utasítást lát a CPU, akkor következő utasításként az ENDBRANCH-et várja. Ha nem ez következik, akkor a program futása leáll.

Érdekes módon az IBT nem nyerte el a kritikusok tetszését, a PaX anonim fejlesztője szerint a jogosultságok kezelése túlságosan primitív. A szoftveres PaX ugyanezt finomabb szemcsézéssel, érdemi teljesítményvesztés nélkül képes megvalósítani - mondja a széles körben használt Linux-patch írója.

Évek múlva lesz érdekes

Az Intel bejelentése szerint a CET-et alkotó két újdonság az alkalmazások számára teljesen transzparens lesz, a támogatáshoz semmilyen, vagy csak minimális változtatásra van szükség. Az olyan programok amelyeknél szükség van ilyen módosításra, opt-out lehetőséget kapnak addig, amíg a fejlesztők elvégzik a megfelelő változtatásokat, így a kompatibilitást ez sem töri meg. Ez fordítva is igaz, a CET-et támogató alkalmazások minden gond nélkül futnak majd a CET-et nem implementáló processzorokon - igaz, ilyenkor a védelem értelemszerűen nem aktív.

Fontos megjegyezni, hogy a CET és az utasításkészlet-kiterjesztés még egyik ma megvásárolható CPU-ban sem található meg. A bejelentés nem mondja ki, hogy a piaci rajt mikorra várható, ebből sejtésünk szerint az következik, hogy a küszöbön álló Kaby Lake-ben a biztonsági funkció még nem lesz elérhető.

A CET részletes specifikációja és műszaki leírása az Intel oldalán érhető el.

Facebook

Mit gondolsz? Mondd el!

Adatvédelmi okokból az adott hír megosztása előtt mindig aktiválnod kell a gombot! Ezzel a megoldással harmadik fél nem tudja nyomon követni a tevékenységedet a HWSW-n, ez pedig közös érdekünk.