NX-bit

De NX ('No eXecute') bit is een beveiligingstechnologie die onder andere geïmplementeerd is in AMD64-processors, Intel EM64T-processors, Sun SPARC's en Transmeta Efficeons. De NX-bit beschermt de computer onder andere tegen "bufferoverloop", die veroorzaakt kan worden door virussen. Doordat de NX-bit aangeeft welke stukken geheugen code bevatten die mag worden uitgevoerd en welke niet, wordt voorkomen dat data die door een programma in het geheugen wordt geladen als code wordt uitgevoerd, als gevolg van een buffer overflow.

Intel gebruikt de benaming XD (eXecute Disable) bit om deze technologie aan te duiden.

Buffer overflows

Bufferoverloop wordt veroorzaakt door het aanbieden van foutieve gegevens in bijvoorbeeld een gebruikersscherm. De betreffende gegevens zijn langer dan de bedoeling is, waardoor de instructies overschreven worden door data. Wanneer een cracker deze data zorgvuldig uitkiest, kan hij code uit laten voeren die niet als code bedoeld was. Het NX-bit is een teken voor de processor dat op een bepaalde geheugenlocatie geen instructie maar gegevens staan en niet uitgevoerd mogen worden. Aangezien de aanvaller na het overschrijven van de instructies nog geen controle heeft over de applicatie, kan hij ook het NX-bit niet instellen, wat betekent dat hij ook geen controle zal gaan krijgen.

Wanneer de processor op het punt staat code uit te voeren die het NX-bit niet aan heeft staan, zal de processor de kernel van het actieve besturingssysteem aanroepen om de fout af te handelen. Doorgaans zal dit erin resulteren dat de applicatie hard afgesloten wordt.