Description détaillée de la fonctionnalité Prévention de l'exécution des données dans Windows XP Service Pack 2, Windows XP Édition Tablet PC 2005 et Windows Server 2003

Traductions disponibles Traductions disponibles
Numéro d'article: 875352 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

La prévention de l'exécution des données est un ensemble de technologies matérielles et logicielles qui effectuent des contrôles de mémoire supplémentaires pour empêcher l'exécution de code mal intentionné sur un système. Dans Microsoft Windows XP Service Pack 2 (SP2) et Microsoft Windows XP Édition Tablet PC 2005, la prévention de l'exécution des données est appliquée par voie à la fois matérielle et logicielle.

L'objectif principal de la prévention de l'exécution des données consiste à empêcher l'exécution de code à partir de pages de données. Normalement, aucun code n'est exécuté à partir de la pile ou du segment du processus par défaut. La prévention de l'exécution des données par voie matérielle détecte le code exécuté à partir de ces emplacements et déclenche une exception lors de l'exécution de ce code. La prévention de l'exécution des données par voie logicielle peut empêcher un code mal intentionné de tirer profit des mécanismes de gestion des exceptions de Windows.

INTRODUCTION

Plus d'informations

Prévention de l'exécution des données par voie matérielle

La prévention de l'exécution des données par voie matérielle marque tous les emplacements mémoire d'un processus comme non exécutables, à moins que l'emplacement contienne explicitement du code exécutable. Certains types d'attaques tentent d'insérer et d'exécuter du code à partir d'emplacements mémoire non exécutables. La prévention de l'exécution des données empêche ces attaques en les interceptant et en déclenchant une exception.

La prévention de l'exécution des données par voie matérielle utilise le processeur pour marquer la mémoire avec un attribut indiquant qu'aucun code ne doit être exécuté à partir de cette mémoire. La prévention est appliquée par page de mémoire virtuelle et elle modifie généralement un bit de la table des pages (PTE, Page Table Entry) pour marquer la page de mémoire.

L'architecture de processeur détermine la façon dont la fonctionnalité est implémentée dans le matériel et dont elle marque la page de mémoire virtuelle. Toutefois, les processeurs qui prennent en charge la prévention de l'exécution des données par voie matérielle peuvent déclencher une exception lorsque du code est exécuté à partir d'une page marquée avec le jeu d'attributs approprié.

Les sociétés Advanced Micro Devices (AMD) et Intel ont défini et commercialisé des architectures compatibles Windows qui prennent en charge la prévention de l'exécution des données.

À partir de Windows XP SP2, la version 32 bits de Windows utilise l'un des éléments suivants :
  • la fonctionnalité de protection des pages « No Execute » (NX) définie par AMD ;
  • la fonctionnalité « Execute Disable Bit » (XD) définie par Intel.
Pour utiliser ces fonctionnalités processeur, le processeur doit fonctionner en mode d'extension d'adresse physique (PAE, Physical Address Extension). Toutefois, Windows activera le mode PAE automatiquement pour prendre en charge la prévention de l'exécution des données. Les utilisateurs ne doivent pas activer PAE physiquement à l'aide du commutateur de démarrage/PAE.

Remarque Étant donné que les noyaux 64 bits prennent en charge la technologie AWE (Address Windowing Extensions), il n'existe pas de noyau PAE distinct dans les versions 64 bits de Windows.
Pour plus d'informations sur les technologies PAE et AWE dans Windows Server 2003, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
283037 Prise en charge de mémoire volumineuse disponible dans Windows Server 2003 et Windows 2000

Prévention de l'exécution des données par voie logicielle

Un jeu supplémentaire de contrôles de sécurité pour la prévention de l'exécution des données a été ajouté dans Windows XP SP2. Ces contrôles de prévention dite par voie logicielle sont conçus pour bloquer le code malveillant qui tire profit des mécanismes de gestion des exceptions dans Windows. La prévention de l'exécution des données par voie logicielle est exécutée sur tous les processeurs qui peuvent fonctionner dans Windows XP SP2. Par défaut, elle protège uniquement certains binaires systèmes, quelles que soient les fonctionnalités de prévention par voie matérielle du processeur.

Avantages

L'intérêt principal de la fonctionnalité Prévention de l'exécution des données réside dans le fait qu'elle empêche l'exécution de code à partir de pages de données telles que les pages du segment du processus par défaut, diverses pages de la pile et les pages du pool de mémoire. Normalement, aucun code n'est exécuté à partir de la pile ou du segment du processus par défaut. La prévention de l'exécution des données par voie matérielle détecte le code exécuté à partir de ces emplacements et déclenche une exception lors de l'exécution de ce code. Si l'exception n'est pas gérée, le processus sera arrêté. L'exécution de code à partir de la mémoire protégée en mode noyau provoque une erreur STOP.

La prévention de l'exécution des données permet de bloquer certaines intrusions de sécurité. Plus précisément, elle peut bloquer un programme mal intentionné dans lequel un virus ou autre type d'attaque a injecté du code supplémentaire dans un processus et tente d'exécuter ce code injecté. Sur un système protégé par la prévention de l'exécution des données, l'exécution du code injecté provoque une exception. La prévention de l'exécution des données par voie logicielle permet de bloquer les programmes qui tirent profit des mécanismes de gestion des exceptions de Windows.

Configuration de la prévention de l'exécution des données à l'échelle du système

La configuration de la prévention de l'exécution des données à l'échelle du système est effectuée par le biais de commutateurs du fichier Boot.ini. Si vous avez ouvert une session en tant qu'administrateur, vous pouvez désormais configurer facilement les paramètres de prévention de l'exécution des données à l'aide de la boîte de dialogue Système du Panneau de configuration.

Windows prend en charge quatre configurations à l'échelle du système pour la prévention par voie matérielle et par voie logicielle.
Réduire ce tableauAgrandir ce tableau
ConfigurationDescription
OptInIl s'agit de la configuration par défaut. Sur les systèmes utilisant des processeurs capables d'implémenter la prévention de l'exécution des données par voie matérielle, la fonctionnalité est activée par défaut pour certains binaires système et programmes qui « choisissent » la prévention (« opt-in »). Avec cette option, seuls les binaires système Windows sont couverts par défaut par cette fonctionnalité.
OptOutLa prévention de l'exécution des données est activée par défaut pour tous les processus. Vous pouvez créer manuellement une liste de programmes spécifiques auxquels la fonctionnalité n'est pas appliquée à l'aide de la boîte de dialogue Système du Panneau de configuration. Les professionnels des technologies de l'information peuvent utiliser la trousse à outils de compatibilité des applications pour supprimer (« opt out ») la prévention de l'exécution des données pour un ou plusieurs programmes. Les correctifs de compatibilité système pour la prévention de l'exécution des données sont appliqués.
AlwaysOnCe paramètre fournit une couverture de prévention de l'exécution des données complète pour l'ensemble du système. Tous les processus sont toujours exécutés avec la fonctionnalité appliquée. La liste d'exceptions permettant d'exempter certains programmes de la prévention n'est pas disponible. Les correctifs de compatibilité système pour la prévention de l'exécution des données ne sont pas appliqués. Les programmes pour lesquels la fonctionnalité avait été supprimée à l'aide de la trousse à outils de compatibilité des applications sont exécutés avec la fonctionnalité appliquée.
AlwaysOffCe paramètre ne fournit aucune couverture de prévention de l'exécution des données pour aucun élément du système, quelle que soit la prise en charge matérielle de la fonctionnalité. Le processeur ne s'exécute pas en mode PAE, à moins que l'option /PAE soit présente dans le fichier Boot.ini.
La prévention de l'exécution des données par voie matérielle et par voie logicielle sont configurées de la même manière. Si la stratégie de prévention de l'exécution des données à l'échelle du système est définie sur OptIn, les mêmes programmes et binaires principaux de Windows seront protégés par la prévention par voie à la fois matérielle et logicielle. Si le système ne peut pas utiliser la prévention de l'exécution des données par voie matérielle, les binaires et programmes principaux de Windows seront protégés uniquement par voie logicielle.

De la même façon, si la stratégie de prévention de l'exécution des données à l'échelle du système est définie sur OptOut, les programmes qui ont été exemptés de la fonctionnalité seront exemptés de la prévention par voie à la fois matérielle et logicielle.

Les paramètres du fichier Boot.ini sont les suivants :
/noexecute=niveau_stratégie
Remarque niveau_stratégie est défini comme AlwaysOn, AlwaysOff, OptIn ou OptOut.

Les paramètres /noexecute existants du fichier Boot.ini ne sont pas modifiés lors de l'installation de Windows XP SP2. En outre, ces paramètres ne seront pas modifiés si une image du système d'exploitation Windows est déplacée sur d'autres ordinateurs avec ou sans prise en charge matérielle de la prévention de l'exécution des données.

Pendant l'installation de Windows XP SP2 et de Windows Server 2003 SP1 ou versions ultérieures, le niveau de stratégie OptIn est activé par défaut à moins qu'un niveau de stratégie différent soit spécifié dans une installation automatisée. Si le paramètre /noexecute=niveau_stratégie n'est pas présent dans le fichier Boot.ini pour une version de Windows qui prend en charge la prévention de l'exécution des données, le comportement est le même que si le paramètre /noexecute=OptIn avait été précisé.

Si vous avez ouvert une session en tant qu'administrateur, vous pouvez configurer manuellement la fonctionnalité pour basculer entre les stratégies OptIn et OptOut à l'aide de l'onglet Prévention de l'exécution des données des Propriétés système. La procédure suivante décrit comment configurer manuellement la prévention de l'exécution des données sur l'ordinateur :
  1. Cliquez sur Démarrer, puis sur Exécuter. Tapez sysdm.cpl et cliquez sur OK.
  2. Sous l'onglet Avancé, sous Performances, cliquez sur Paramètres.
  3. Sous l'onglet Prévention de l'exécution des données, appliquez l'une des procédures suivantes :
    • Cliquez sur Activer la prévention d'exécution des données pour les programmes et les services Windows uniquement pour sélectionner la stratégie OptIn.
    • Cliquez sur Activer la prévention d'exécution des données pour tous les programmes et les services, sauf ceux que je sélectionne pour sélectionner la stratégie OptOut, puis cliquez sur Ajouter pour ajouter les programmes pour lesquels vous ne souhaitez pas appliquer la fonctionnalité.
  4. Cliquez deux fois sur OK.
Les professionnels de l'informatique peuvent contrôler la configuration de prévention de l'exécution des données à l'échelle du système à l'aide de plusieurs méthodes. Le fichier Boot.ini peut être modifié directement à l'aide de scripts ou par le biais de l'outil Bootcfg.exe compris dans Windows XP SP2.

Pour configurer la prévention d'exécution de données pour basculer sur la stratégie AlwaysOn en utilisant le fichier Boot.ini, procédez comme suit :
  1. Cliquez sur Démarrer, cliquez avec le bouton droit sur Poste de travail, puis cliquez sur Propriétés.
  2. Cliquez sur l'onglet Avancé, puis sur Paramètres sous le champ Démarrage et récupération.
  3. Sous le champ Démarrage du système, cliquez sur Modifier. Le fichier Boot.ini s'ouvre dans le Bloc-notes.
  4. Dans le Bloc-notes, cliquez sur Rechercher dans le menu Edition.
  5. Dans la zone Rechercher, tapez /noexecute, puis cliquez sur Suivant.
  6. Dans la boîte de dialogue Rechercher, cliquez sur Annuler.
  7. Remplacez niveau_stratégie par AlwaysOn.

    AVERTISSEMENT Veillez à taper le texte sans faire de faute. Le commutateur du fichier Boot.ini est désormais comme ceci :
    /noexecute=AlwaysOn
  8. Dans le Bloc-notes, cliquez sur Enregistrer dans le menu Fichier.
  9. Cliquez deux fois sur OK.
  10. Redémarrez l'ordinateur.
Pour les installations automatisées de Windows XP SP2 ou versions ultérieures, vous pouvez utiliser le fichier Unattend.txt pour préremplir une configuration de prévention de l'exécution des données spécifique. Vous pouvez utiliser l'entrée OSLoadOptionsVar dans la section [Data] du fichier Unattend.txt pour spécifier une configuration de la fonctionnalité à l'échelle du système.

Configuration de la prévention de l'exécution des données par programme

Pour raisons de compatibilité des programmes, vous pouvez désactiver de façon ponctuelle la prévention de l'exécution des données pour des programmes 32 bits spécifiques lorsqu'elle est définie sur le niveau de stratégie OptOut. Pour cela, utilisez l'onglet Prévention de l'exécution des données des Propriétés système pour désactiver la fonctionnalité pour un programme spécifique. Pour les professionnels de l'informatique, un nouveau correctif de compatibilité de programme nommé DisableNX est compris dans Windows XP SP2. Le correctif de compatibilité DisableNX désactive la prévention de l'exécution des données pour le programme auquel le correctif est appliqué.

Le correctif DisableNX peut être appliqué à un programme à l'aide de la trousse à outils de compatibilité des applications. Pour plus d'informations sur la compatibilité des applications Windows, reportez-vous à Windows Application Compatibility (Compatibilité des applications Windows, en anglais) sur le site Web de Microsoft à l'adresse suivante (en anglais) :
http://www.microsoft.com/technet/prodtechnol/windows/appcompatibility/default.mspx
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
912923 Comment faire pour déterminer que du matériel de prévention d'exécution des données est disponible et configuré sur votre ordinateur

Références

Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft.
899298 La rubrique d'aide « Understanding Data Execution Prevention » (Comprendre la prévention de l'exécution des données) indique un paramètre par défaut erroné de la fonctionnalité dans Windows Server 2003 Service Pack 1

Propriétés

Numéro d'article: 875352 - Dernière mise à jour: lundi 10 juin 2013 - Version: 14.3
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Windows Server 2003 Service Pack 1 sur le système suivant
    • Microsoft Windows Server 2003, Web Edition
    • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
    • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
    • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
Mots-clés : 
kbtshoot kbinfo KB875352
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com