Naar inhoud springen

Execute Disable (NX)

ArchitectuurreferentieFeex

Execute Disable, in x86-terminologie ook wel NX of XD genoemd, stelt paginatabellen in staat om geheugen als niet-uitvoerbaar te markeren. Het is een hardwarematige bouwsteen die wordt gebruikt door het uitvoeringsbeschermingsbeleid van het besturingssysteem.

Wat u moet weten

Execute Disable, in x86-terminologie ook wel NX of XD genoemd, stelt paginatabellen in staat om geheugen als niet-uitvoerbaar te markeren. Het is een hardwarematige bouwsteen die wordt gebruikt door het uitvoeringsbeschermingsbeleid van het besturingssysteem.

Hoe het werkt

Wanneer dit is ingeschakeld in de toepasselijke paging-omgeving, leidt het ophalen van een instructie van een als niet-uitvoerbaar gemarkeerde pagina tot een fout in plaats van dat de bytes worden uitgevoerd. Paginamachtigingen maken onderscheid tussen uitvoering en gegevenstoegang; software is verantwoordelijk voor het toewijzen van passende machtigingen en het afhandelen van overgangen voor legitieme gegenereerde code.

Waar het nuttig is

Een besturingssysteem kan een gegevensbuffer toewijzen zonder uitvoeringsmachtiging, zodat het schrijven van machinecode-bytes naar die buffer er geen uitvoerbare codepagina van maakt. JIT-runtimes gebruiken gedocumenteerde API's voor geheugenbeheer en machtigingsbeleid voor gegenereerde code.

Ondersteuning en activering controleren

CPUID.80000001H:EDX bit 20 sommeert de x86 execute-disable-functionaliteit op volgens de relevante definitie van de leverancier. De daadwerkelijke handhaving hangt ook af van de paging-modus en inschakeling door het besturingssysteem. Controleer de gedocumenteerde beveiligingsstatus van het besturingssysteem in plaats van deze af te leiden uit een CPU-model.

Capaciteit, inschakeling en afdwinging moeten afzonderlijk worden gecontroleerd. Een processor kan een beveiliging ondersteunen terwijl het OS, de applicatie of het beleid voor virtuele machines deze niet activeert. Een ondersteuningsveld in een database is geen attestatie van een draaiend systeem.

Wat de functie niet vaststelt

NX bewijst niet dat een uitvoerbaar bestand veilig is, blokkeert niet elke aanval op basis van hergebruik van code en toont geen geschiktheid voor Windows aan. Gegevens blijven leesbaar of schrijfbaar volgens afzonderlijke machtigingen. Een functionaliteitsvlag betekent niet dat elke geheugentoewijzing een strikt schrijf-/uitvoerbeleid volgt.

Compatibiliteit en prestaties in de praktijk

Houd het besturingssysteem, de firmware en de betreffende runtime actueel. Als een beveiligingsfunctie een compatibiliteitsprobleem aan het licht brengt, gebruik dan eerst de diagnostische gegevens en ondersteunde updates van de leverancier. Een brede beveiligingsschakelaar kan niet-gerelateerde applicaties beïnvloeden en moet een expliciet implementatie- en herstelbeleid volgen.

Een praktische controlelijst voor verificatie

  1. Noteer het exacte processor- of platformmodel en de betrokken applicatie-, OS- en runtimeversies. Behoud de formulering van de daadwerkelijke fout of vereiste.
  2. Raadpleeg de fabrikantdocumentatie voor dat exacte model en inspecteer vervolgens de effectieve capaciteit en ingeschakelde status in de omgeving waarin het programma draait.
  3. Vergelijk elke vereiste van de geselecteerde binary of backend. Een gelijknamige functie, alias of breed technologielabel is niet voldoende.
  4. Bevestig dat de applicatie de bedoelde implementatie heeft geselecteerd. Gebruik de gedocumenteerde diagnostiek en een ondersteunde terugvaloptie wanneer niet aan de vereisten wordt voldaan.
  5. Voer één ondersteunde wijziging tegelijk door en herhaal dezelfde werklast. Houd de oorspronkelijke configuratie en het herstelpad beschikbaar.

Als de functie wordt vermeld maar software deze niet kan gebruiken

Begin bij het exacte falende onderdeel. Een hardwaredatabase beschrijft geregistreerde capaciteiten; het besturingssysteem of de hypervisor kan een andere effectieve omgeving tonen. Een fout met betrekking tot een ongeldige instructie vereist ook onderzoek van de daadwerkelijke foutieve instructie en binary-build, omdat beschadiging of een niet-gerelateerde niet-ondersteunde instructie een vergelijkbaar symptoom kan veroorzaken.

Installeer de applicatie-, driver- of runtimeversie die voor het exacte platform wordt ondersteund, en gebruik indien nodig de gedocumenteerde basislijn of fallback-build van de leverancier. Een software-update kan geen instructie creëren die de processor mist. Wijzigingen in firmware en beveiligingsbeleid moeten de procedure en het herstelplan van de systeemfabrikant volgen in plaats van een generiek optimalisatierecept.

Bronnen en reikwijdte van deze uitleg

Intel 64 and IA-32 Architectures Software Developer's Manual

Deze referenties stellen architecturaal gedrag en softwarevereisten vast. Ze verifiëren niet onafhankelijk elke functiewaarde op een gekoppelde hardwaremodelpagina. Gebruik voor modelondersteuning het fabrikantenbewijs van die pagina en controleer de effectieve systeemconfiguratie. Dit artikel biedt geen benchmark, certificering of onafhankelijke beoordelingsdatum.

Bronnen en verificatie

Redactioneel eigendom: Feex. Er is geen onafhankelijke beoordelingsdatum vastgelegd. Hoe wij onderzoek doen.

Was dit artikel nuttig?

Een ja of nee is voldoende. Kies desgewenst een reden of voeg een korte opmerking toe.

Was dit artikel nuttig?