¿Qué significa Prevención de ejecución de datos (DEP)? ¿Por qué a veces no puedo acceder a Internet a pesar de la protección DEP?
La siguiente es la documentación técnica de Microsoft: Prevención de ejecución de datos
¿Cuál es la función de la Prevención de ejecución de datos?
La Prevención de ejecución de datos (DEP) es un conjunto de tecnologías de hardware y software que realizan comprobaciones adicionales en la memoria para ayudar a prevenir la intrusión de código malicioso. En Windows XP SP2, DEP se realiza tanto mediante hardware como mediante software.
DEP ejecutado por hardware
El DEP ejecutado por hardware marca todas las ubicaciones de memoria en un proceso como no ejecutables a menos que la ubicación contenga explícitamente código ejecutable. Existe una clase de programas de ataque que intentan insertar código en ubicaciones de memoria no ejecutables y ejecutar el código. La Prevención de ejecución de datos ayuda a prevenir estos ataques interceptando este código y generando excepciones.
El DEP aplicado por hardware se basa en el hardware del procesador para marcar la memoria con un atributo que indica que el código no debe ejecutarse en la memoria. La protección de ejecución de datos funciona por página de memoria virtual, normalmente modificando un bit de datos en una entrada de la tabla de páginas (PTE) para marcar la memoria.
La implementación específica del hardware DEP y la forma en que se marcan las páginas de memoria virtual variarán según la arquitectura del procesador. Sin embargo, en los procesadores que admiten la función DEP aplicada por hardware, la ejecución de código desde una página etiquetada con el conjunto de atributos apropiado generará una excepción.
Advanced Micro Devices (AMD) e Intel han definido y lanzado arquitecturas de prevención de ejecución de datos compatibles con Windows.
A partir del Service Pack 2 de Windows XP, las versiones de 32 bits de Windows comienzan a utilizar la función de procesador de protección de página no ejecutable (NX) definida por AMD o la función de bit de desactivación de ejecución definida por Intel. Para utilizar estas funciones del procesador, el procesador debe estar ejecutándose en modo de dirección física extendida (PAE). Las versiones de 64 bits de Windows XP utilizan funciones del procesador NX en extensiones de 64 bits y ciertos valores en el campo Entrada de tabla de páginas de acceso (PTE) en el procesador IPF.
Se espera que todos los procesadores futuros de 32 y 64 bits admitan la protección de ejecución de datos aplicada por hardware. Microsoft seguirá trabajando con los fabricantes de procesadores para promover la adopción y el desarrollo de la tecnología DEP.
DEP aplicado por software
Se agregó otro conjunto de comprobaciones de seguridad de protección de ejecución de datos a Windows XP SP2. Estas comprobaciones, también conocidas como DEP aplicadas por software, están diseñadas para reducir el uso de los mecanismos de manejo de excepciones de Windows. El DEP aplicado por software se ejecuta en cualquier procesador que pueda ejecutar Windows XP SP2. De forma predeterminada, el DEP aplicado por software solo puede proteger un número limitado de archivos binarios del sistema, independientemente de las capacidades DEP aplicadas por hardware del procesador.
¿A qué usuarios se aplica esta función?
Los desarrolladores de aplicaciones y controladores deben comprender la prevención de la ejecución de datos y lo que se requiere para ejecutar su software en plataformas compatibles. Las aplicaciones que generan código justo a tiempo (JIT) o ejecutan memoria desde la pila o el montón de procesos predeterminados deben tomar en serio los requisitos de DEP.
Animamos a los desarrolladores de controladores a que se tomen en serio el modo PAE en plataformas que admitan la Prevención de ejecución de datos aplicada por hardware. Para mejorar la compatibilidad de los controladores, hemos realizado cambios en el comportamiento del modo PAE en sistemas Windows XP Service Pack 2.
¿Qué hay de nuevo en esta característica de Windows XP Service Pack 2?
Prevención de ejecución de datos en versiones de 32 bits de Windows y aplicaciones
Descripción detallada
DEP aplicado por hardware
Aunque existen algunos diferencias. Sin embargo, el comportamiento general de Prevención de ejecución de datos es idéntico en las versiones de 32 y 64 bits de Windows. Para brindar coherencia a los desarrolladores de aplicaciones y controladores, el modelo de protección de la memoria, incluida la prevención de ejecución de datos, está diseñado para comportarse de manera idéntica en las versiones de Windows de 32 y 64 bits.
Los desarrolladores de aplicaciones deben conocer el comportamiento de DEP en modo usuario. La excepción DEP en modo usuario provoca STATUS_ACCESS_VIOLATION (0xc0000005) en sistemas Windows. El primer parámetro de ExceptionInformation (ubicado en la estructura EXCEPTION_RECORD) contiene el tipo de infracción de acceso que ocurrió. Si el valor en ExceptionInformation[0] es 8, la infracción de acceso es una infracción de ejecución.
En la mayoría de los procesos, la excepción STATUS_ACCESS_VIOLATION será una excepción no controlada que hará que el proceso finalice.
DEP también se aplica a los controladores en modo kernel. DEP para regiones de memoria en modo kernel no se puede habilitar o deshabilitar selectivamente. En las versiones de 32 bits de Windows, la prevención de ejecución de datos se aplica a la pila de forma predeterminada. Esto es diferente del DEP en modo kernel en las versiones de 64 bits de Windows, que aplica prevención de ejecución de datos a la pila, el grupo paginado y el grupo de sesiones.
Si DEP está habilitado, el controlador del dispositivo no puede ejecutar código en la pila. La infracción de acceso al DEP en modo kernel da como resultado el error de detección 0xFC: ATTEMPTED_EXECUTE_OF_NOEXECUTE_MEMORY
DEP aplicado por software
El DEP aplicado por software realiza comprobaciones adicionales en los mecanismos de manejo de excepciones en Windows. Si el archivo de imagen del programa se creó utilizando la función Safe Structural Exception Handling (SafeSEH), el DEP aplicado por software garantiza que el controlador de excepciones se registre en la tabla de funciones del archivo de imagen antes de enviar la excepción.
Si el archivo de imagen del programa no se creó utilizando SafeSEH, el DEP aplicado por software garantizará que el controlador de excepciones ubicado en la región de memoria esté marcado como ejecutable antes de enviar la excepción.