Ugrás a tartalomra

Vezérlési folyamat védelme (CET)

Architektúra-hivatkozásFeex

Más néven CET

A CET, azaz a Control-flow Enforcement Technology olyan hardveres mechanizmusokat biztosít, amelyek a vezérlési folyamat védelmét szolgálják, elsősorban az árnyékvermek (shadow stack) és a közvetett elágazások követése (indirect branch tracking) révén. A hardveres támogatás és az aktív védelem egy adott folyamatban két külön állapotot jelent.

Amit tudni érdemes

A CET, azaz a Control-flow Enforcement Technology olyan hardveres mechanizmusokat biztosít, amelyek a vezérlési folyamat védelmét szolgálják, elsősorban az árnyékvermek (shadow stack) és a közvetett elágazások követése (indirect branch tracking) révén. A hardveres támogatás és az aktív védelem egy adott folyamatban két külön állapotot jelent.

Hogyan működik

Az árnyékvermek a visszatérési címkék védett állapotát tartják fenn, míg a közvetett elágazások követése korlátozza a nyomon követett közvetett ugrások céljait. Különböző vezérlésátadási műveleteket kezelnek, és külön enumerációval, valamint engedélyezéssel rendelkeznek. Az operációs rendszer, a betöltő, az alkalmazás binárisa és a könyvtárak mind szerepet játszanak a védett végrehajtási környezet kialakításában.

Ahol hasznos

Egy megfelelően felépített alkalmazás képes az operációs rendszer által kezelt árnyékveremmel futni, így az eltérő visszatérési címke a megadott kivételt váltja ki a végrehajtás észrevétlen átirányítása helyett. A kompatibilitási szabályzat eltérhet a régebbi modulok, valamint a felhasználói módú és a felügyelői módú (supervisor-mode) védelem esetén.

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

Ellenőrizze a CPUID.07H.00H:ECX 7. bitjét az árnyékverem-képességhez, és az EDX 20. bitjét a közvetett elágazások követéséhez, majd vizsgálja meg az operációs rendszer dokumentált folyamatvédelmi állapotát. A processzor egyetlen elérhető bitje önmagában nem garantálja a védelem érvényesítését egy futó program esetében.

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

Egy CET-mező megléte nem bizonyítja, hogy mindkét részfunkció jelen van vagy engedélyezve van. A CET nem teszi megbízhatóvá a binárist, nem hárít el minden memóriasérülési hibát, és nem helyettesíti a frissítéseket. A védelem globális letiltása nem számít rutinszerű megoldásnak egy alkalmazás összeomlására.

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?