:

Szerző: Gálffy Csaba

2016. június 13. 11:00

Új védelmet hoznak az Intel processzorok

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.

Nyerd meg az 5 darab, 1000 eurós Craft konferenciajegy egyikét!

A kétnapos, nemzetközi fejlesztői konferencia apropójából a HWSW kraftie nyereményjátékot indít.

Nyerd meg az 5 darab, 1000 eurós Craft konferenciajegy egyikét! A kétnapos, nemzetközi fejlesztői konferencia apropójából a HWSW kraftie nyereményjátékot indít.

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.

Milyen technológiai és munkaerőpiaci hatások érhetik a backendes szakmát? Május 8-án végre elindul az idei kraftie! meetup-sorozat is (helyszíni vagy online részvétellel).

a címlapról

Hirdetés

Security témákkal folyatódik az AWS hazai online meetup-sorozata!

2024. április 25. 21:45

A sorozat május 28-i, harmadik állomásán az AWS-ben biztonsági megoldásait vesszük nagyító alá. Átnézzük a teljes AWS security portfóliót a konténerbiztonságtól a gépi tanulásos alkalmazások védelmén át, egészen az incidenskezelésig.