Bit NX

Le NX-bit ( N o e X ecute) est une technique de processeurs de la famille x86 pour renforcer la sécurité d'un ordinateur. Son objectif est d'empêcher l'exécution de données arbitraires telles que des programmes et ainsi le lancement de codes malveillants tels que. B. Virus , backdoors, etc. Dans les systèmes d'exploitation Windows (à partir de Windows XP SP2), la technologie est également connue sous le nom de Data Execution Prevention ( DEP en abrégé ; prévention allemande de  l' exécution des données ).

Des techniques similaires existent depuis un certain temps sur d'autres architectures de processeurs , comme le PowerPC d'IBM, le Sun SPARC et les processeurs Alpha .

l'histoire

Depuis le processeur Intel 80286, il est possible dans le mode dit protégé de marquer des segments de mémoire individuels comme exécutables (segments de code) ou non exécutables (segments de données). Si une tentative est faite pour exécuter du code à une adresse dans un segment de mémoire marqué comme non exécutable , la CPU déclenche une interruption matérielle, qui est interceptée par le système d'exploitation. Le programme en question peut alors être annulé.

Les systèmes d'exploitation actuels utilisent également le mode protégé, mais ils utilisent un soi-disant «modèle de mémoire plate» dans lequel tous les segments couvrent la même zone de mémoire linéaire. La protection mémoire basée sur les segments est ainsi annulée et il n'y a plus de séparation entre les zones de code et de données.

La technologie a donc été introduite par le fabricant de puces AMD avec le processeur Athlon 64 sous le nom de NX-Bit pour le marché x86. La technologie est commercialisée par AMD sous le nom de Enhanced Virus Protection (EVP) . Même Intel a utilisé cette technique dans les processeurs Itanium et les derniers Pentium 4 - et Pentium-M - et Core , sous le nom de XD Bit (Execute Disable). Aussi Transmeta et VIA / Centaur offre des CPU bit avec NX.

Fonctionnalité

Entrée 64 bits dans l'entrée du répertoire des pages
Morceaux: 63 62… 52 51… 32
Contenu: NX réservé Bit 51… 32 de l'adresse de base
Morceaux: 31… 12 11… 9 8ème 7e 6e 5 4e 3 2 1 0
Contenu: Bit 31… 12 de l'adresse de base AVL ig 0 ig UNE. PCD PHE NOUS R / W P.

Les systèmes d'exploitation actuels reposent exclusivement sur la gestion de la mémoire par page pour la protection de la mémoire. Avec l'architecture IA32, cela permet la distinction entre les pages en "lecture seule" et celles en "lecture et écriture" (voir le bit 1 ("R / W") dans l'entrée de la table des pages), mais il n'y a pas de distinction entre (Données) "Lire" et (Code) "Exécuter" fourni. AMD a utilisé le bit 63 pour le bit NX dans les tables et répertoires de pages 64 bits. Les tables de pages et répertoires 64 bits ne sont utilisés qu'en mode 64 bits et en mode 32 bits avec l'extension d'adresse physique activée .

Le bit NX est défini par le système d'exploitation, s'il le prend en charge, pour la pile et les autres zones de données de la mémoire principale, afin que celles-ci ne puissent plus être exécutées. Si un programme tente d'exécuter les pages de mémoire marquées de cette manière en raison d'un bogue ou d'une infection par un code malveillant, le CPU intercepte cela et le signale au système d'exploitation via une interruption matérielle, qui met alors fin au programme concerné.

Cette procédure viole partiellement le principe de Von Neumann de stockage des données et des programmes dans une mémoire partagée. Cependant, seule l'exécution de code dans des segments de données (par exemple dans une pile ou un tas ) est empêchée. Le débordement de tampon lui-même n'est pas empêché. Si un saut vers une page de codes est déclenché, la technique de non-exécution n'a aucun effet. De plus, malgré cette technologie, n'importe quel code peut être exécuté, par exemple au moyen d'un " retour dans la libc ".

Systèmes d'exploitation

les fenêtres

Le système d' exploitation Windows de Microsoft prend en charge DEP à partir de Windows XP SP 2, à condition que le processeur respectif en offre la possibilité. À partir de Windows Vista , les paramètres sont visibles par l'utilisateur (Propriétés système → Avancé → Performances → Paramètres → Prévention de l'exécution des données). Windows 8 et les versions plus récentes de Windows ne peuvent pas être démarrés sur des processeurs sans bit NX.

Linux

Le noyau Linux prend en charge le bit NX à partir de la version 2.6.8, dans lequel un noyau 64 bits (x64, x86_64, amd64) ou un noyau 32 bits pour un processeur avec PAE activé doit être utilisé.

macOS

Le système d'exploitation pour les ordinateurs d' Apple , macOS (anciennement «Mac OS X» et «OS X»), prend en charge le bit NX à partir de la version 10.6 « Snow Leopard ».

CPU avec bit NX

Les processeurs dotés de la fonction NX bit peuvent être reconnus par le logiciel par un 11e bit défini dans le registre d'activation de la fonction étendue . Ce «registre spécifique au modèle» ne peut être lu que par un logiciel privilégié (logiciel système), par exemple par le noyau du système d'exploitation.

AMD

Intel

Du repos

liens web

Preuve individuelle

  1. msdn.microsoft.com
  2. https://support.microsoft.com/de-de/help/12660/windows-8-system-requirements