Ugrás a tartalomra

Execute Disable (NX)

Architektúra-hivatkozásFeex

Az Execute Disable, amelyet az x86 terminológiában NX vagy XD néven is említenek, lehetővé teszi, hogy az oldaltáblák nem végrehajthatóként jelöljenek meg memóriaterületeket. Ez egy olyan hardveres építőelem, amelyet az operációs rendszerek végrehajtás-védelmi házirendjei használnak.

Amit tudni érdemes

Az Execute Disable, amelyet az x86 terminológiában NX vagy XD néven is említenek, lehetővé teszi, hogy az oldaltáblák nem végrehajthatóként jelöljenek meg memóriaterületeket. Ez egy olyan hardveres építőelem, amelyet az operációs rendszerek végrehajtás-védelmi házirendjei használnak.

Hogyan működik

Ha engedélyezve van a megfelelő lapozási környezetben, a nem végrehajthatóként megjelölt oldalról történő utasításlehívás végrehajtási hiba (fault) kiváltását eredményezi a bájtok futtatása helyett. Az oldaljogosultságok megkülönböztetik a végrehajtást az adathozzáféréstől; a megfelelő jogosultságok hozzárendeléséért és a legitim generált kód állapotátmeneteinek kezeléséért a szoftver felel.

Ahol hasznos

Az operációs rendszer le tud képezni egy adatpuffert végrehajtási jogosultság nélkül, így a gépi kódú bájtok pufferbe írása nem teszi azt végrehajtható kódoldallá. A JIT futtatókörnyezetek dokumentált memóriakezelési API-kat és jogosultsági házirendeket használnak a generált kódokhoz.

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

A CPUID.80000001H:EDX 20. bitje jelzi az x86 execute-disable képességet a vonatkozó gyártói definíció szerint. A tényleges érvényesítés a lapozási módtól és az operációs rendszer általi engedélyezéstől is függ. Vizsgálja meg az operációs rendszer dokumentált védelmi állapotát ahelyett, hogy azt egy CPU-modellből következtetné ki.

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 NX nem garantálja, hogy egy futtatható fájl biztonságos, nem hárít el minden kód-újrafelhasználásos támadást, és nem bizonyítja a Windows-kompatibilitást sem. Az adatok a külön jogosultságoknak megfelelően olvashatók vagy írhatók maradnak. Egy funkciójelző megléte nem jelenti azt, hogy minden memórialeképezés szigorú írási/végrehajtási házirendet követ.

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

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?