Ugrás a tartalomra

CET-IBT

Architektúra-hivatkozásFeex

A CET-IBT a közvetett elágazások követése (indirect branch tracking), egy olyan vezérlésifolyamat-védelmi eljárás, amely ellenőrzi a nyomon követett közvetett hívások és ugrások célpontjait. Ez elkülönül a CET árnyékvermeitől.

Amit tudni érdemes

A CET-IBT a közvetett elágazások követése (indirect branch tracking), egy olyan vezérlésifolyamat-védelmi eljárás, amely ellenőrzi a nyomon követett közvetett hívások és ugrások célpontjait. Ez elkülönül a CET árnyékvermeitől.

Hogyan működik

Ha a követés engedélyezve van a vonatkozó végrehajtási környezetben, az architektúra szabályai szerint egy közvetett átadásnak egy megfelelő ENDBR fogadóutasításra kell érkeznie. A mechanizmus architekturális követési állapotot használ, és a szabályok megsértésekor vezérlésvédelmi kivételt (control-protection exception) vált ki. A fordítóprogram és a bináris instrumentálása a bevezetés elengedhetetlen része.

Ahol hasznos

A fordító képes megjelölni az érvényes közvetett belépési pontokat egy könyvtárban. Az operációs rendszernek és a futtatókörnyezetnek kompatibilis engedélyezést és szabályzatot kell alkalmaznia a végrehajtott kódra. Az ENDBR bájtok jelenléte a gépi kód visszafejtésében (disassembly) önmagában még nem bizonyítja, hogy a rendszer jelenleg kényszeríti is az IBT-t.

A támogatás és az engedélyezés ellenőrzése

A CPUID.07H.00H:EDX 20. bitje jelzi az IBT képességet. Külön ellenőrizze az operációs rendszer felhasználói/felügyelői szintű támogatását és a binárisra vonatkozó szabályzatot. A kompatibilitási problémákat a hivatalos fordítói és operációsrendszer-útmutatók alapján diagnosztizálja, ahelyett hogy eltávolítaná a fogadóutasításokat egy binárisból.

A képességet, az engedélyezést és a kényszerítést külön kell ellenőrizni. Előfordulhat, hogy a processzor támogat egy védelmet, miközben az operációs rendszer, az alkalmazás vagy a virtuális gép házirendje nem aktiválja azt. Az adatbázisban található támogatási mező nem minősül egy futó rendszer igazolásának.

Amit a funkció nem biztosít

Az IBT nem ellenőrzi a normál függvényvisszatéréseket úgy, mint az árnyékvermek. Nem jelent garanciát a teljes vezérlésifolyamat-integritásra vagy az alkalmazás biztonságára, és az árnyékvermek támogatottsága sem vonja maga után automatikusan az IBT támogatását.

Kompatibilitás és teljesítmény a gyakorlatban

Tartsa naprakészen az operációs rendszert, a firmware-t és az érintett futtatókörnyezetet. Ha egy védelmi funkció kompatibilitási problémát tár fel, először a gyártói diagnosztikát és a támogatott frissítéseket használja. Egy átfogó védelmi kapcsoló nem kapcsolódó alkalmazásokat is érinthet, ezért kifejezett bevezetési és helyreállítási házirendet kell követnie.

Gyakorlati ellenőrzőlista

  1. Rögzítse az érintett processzor vagy platform pontos modelljét, valamint az alkalmazás, az operációs rendszer és a futtatókörnyezet verzióját. Őrizze meg a tényleges hiba vagy követelmény pontos szövegezését.
  2. Ellenőrizze az adott modellhez tartozó gyártói referenciát, majd vizsgálja meg a tényleges képességet és az engedélyezett állapotot abban a környezetben, ahol a program fut.
  3. Vesse össze a kiválasztott bináris vagy háttérrendszer minden követelményét. Egy hasonló elnevezésű funkció, álnév vagy tág technológiai címke nem elegendő.
  4. Győződjön meg arról, hogy az alkalmazás a kívánt implementációt választotta ki. Használja annak dokumentált diagnosztikai eszközeit és egy támogatott tartalék megoldást, ha a követelmények nem teljesülnek.
  5. Egyszerre csak egy támogatott módosítást hajtson végre, és ismételje meg ugyanazt a munkaterhelést. Tartsa elérhetően az eredeti konfigurációt és a helyreállítási útvonalat.

Ha a funkció szerepel a listán, de a szoftver nem tudja használni

Kezdje a hibát jelző pontos komponenssel. A hardveradatbázis a rögzített képességet írja le; az operációs rendszer vagy a hipervizor ettől eltérő tényleges környezetet tehet elérhetővé. Az érvénytelen utasítás miatti hiba (illegal-instruction) esetén a ténylegesen hibát okozó utasítást és a bináris összeállítást is vizsgálni kell, mivel az adatsérülés vagy egy nem kapcsolódó, nem támogatott utasítás is hasonló tünetet produkálhat.

Telepítse az adott platformhoz támogatott alkalmazás-, illesztőprogram- vagy futtatókörnyezet-verziót, és szükség esetén használja a gyártó által dokumentált alapértelmezett vagy tartalék változatot. Egy szoftverfrissítés nem hozhat létre olyan utasítást, amellyel a processzor nem rendelkezik. A firmware- és biztonságipolitika-módosítások során a rendszer gyártójának eljárását és egy helyreállítási tervet kell követni egy általános optimalizálási recept helyett.

A magyarázat forrásai és hatóköre

Intel 64 and IA-32 Architectures Software Developer's Manual · Linux kernel: Control-flow Enforcement Technology árnyékverem

Ezek a hivatkozások az architekturális viselkedést és a szoftverkövetelményeket határozzák meg. Nem ellenőrzik függetlenül a hivatkozott hardvermodell oldalán található összes funkcióértéket. A modell támogatásához használja az adott oldal gyártói bizonyítékait, és ellenőrizze a tényleges rendszerkonfigurációt. Ez a cikk nem tartalmaz teljesítménytesztet, tanúsítást vagy független felülvizsgálati dátumot.

Források és ellenőrzés

Szerkesztői jogtulajdonos: Feex. Független felülvizsgálati dátum nincs rögzítve. Hogyan kutatunk.

Hasznos volt ez a cikk?

Egy igen vagy nem is elég. Válasszon egy indokot, ha szeretne, vagy írjon egy rövid megjegyzést.

Hasznos volt ez a cikk?