Data Execution Prevention
La prévention de l'exécution des données (data execution prevention, DEP) est un dispositif de sécurité intégré à de nombreux systèmes d'exploitation modernes tels Linux, Mac OS X, iOS, Microsoft Windows et Android. Il est destiné à empêcher l'exécution de code depuis des blocs de mémoire censés contenir des données afin d'affaiblir les probabilités de réussite d'une attaque de type dépassement de tampon.
DEP fut introduit dans Linux en 2004 (kernel 2.6.8[1]), sur Microsoft Windows en 2004 avec le Service Pack 2 de Windows XP[2] ainsi que sur Mac OS X lors de la transition vers X86 en 2006[3]
Modes d'application
[modifier | modifier le code]Matériel
[modifier | modifier le code]L'activation de la fonctionnalité DEP consiste à passer le bit NX à 1 dans le processeur. Il préviendra toute exécution de code dans la plage mémoire allouée aux données et remontera une exception si cela arrive.
Logiciel
[modifier | modifier le code]Sous Linux, on trouve des émulations d'activation du bit NX : par exemple dans la solution PaX.
Le DEP logiciel consiste, sous Microsoft Windows, à vérifier, lorsqu'une exception est remontée, si elle est enregistrée dans une table prévue à cet effet. Cela implique que le programme soit spécifiquement conçu pour exploiter cette fonctionnalité. Dans ce cas, il n'y a aucun lien avec le bit NX.
Voir aussi
[modifier | modifier le code]- Dépassement de tampon
- Protection de l'espace exécutable
- Un outil (anglais) permettant de tester le support DEP d'une application.
Références
[modifier | modifier le code]- « Nouveautés du kernel 2.6.8 » (consulté le )
- « Description détaillée (en anglais) de la fonctionnalité DEP dans Windows XP Service Pack 2, Windows XP Tablet PC Edition 2005 et Windows Server 2003 », Microsoft, (consulté le )
- (de) Tobias Engler, « Schwere der Lücken ist besorgniserregend », Mac & i, Heinz Heise, (consulté le )