Prevención de ejecución de datos en Office 2010

Hola, mi nombre es Vikas Malhotra y soy director del programa de seguridad del equipo de Informática de confianza de Office (TWC). En esta entrada de blog le informaré acerca de algunos cambios de seguridad realizados en torno a la Prevención de ejecución de datos (DEP), que se trata de uno de los muchos niveles de protección de defensa en profundidad nuevos que agregamos en Office 2010.

Comenzaré explicando en qué consiste DEP y cómo puede afectar tanto a profesionales de TI como a programadores.

¿Qué es DEP?

DEP es una característica de seguridad introducida en Windows XP Service Pack 2 y Windows Server 2003 Service Pack 1. Puede obtener más información general acerca de DEP en este artículo de Microsoft Knowledge Base.

Cuando se inicia un programa, se asignan páginas de memoria para ese programa. Estas páginas en la memoria tienen un "marcador" que indicará si son ejecutables o no. Si una página está marcada como ejecutable, se permitirá la ejecución del código que contiene esa dirección de memoria. Cuando DEP está habilitada, si el código intenta ejecutarse desde una página que no está marcada como ejecutable, se producirá una excepción DEP y se terminará el proceso que se está ejecutando.

Así que, cuando un malware infecta el equipo, lo primero que intentará hacer es escribir su código malintencionado en las áreas de memoria del equipo marcadas como de escritura y ejecutables. Posteriormente, el malware intentará ejecutar ese código malintencionado. Cuando se produce este paso y DEP está deshabilitada, lo único que percibirá el usuario es que la aplicación de Office se bloqueó. Desde una perspectiva de seguridad, lo que ocurrió fue que Office detuvo la ejecución del posible malware y se cerró para ayudar a proteger el equipo.

¿Cómo puedo saber si un programa se ejecuta con DEP habilitada?

El método más fácil es usar el Administrador de tareas. En el Administrador de tareas (Task Manager), asegúrese de que se vea la columna “Prevención de ejecución de datos” (Data Execution Prevention). Allí, cada proceso que se esté ejecutando con DEP aplicada tendrá la etiqueta “Habilitada” (Enabled) a su lado. Para ilustrarlo, en la figura siguiente se muestra que winword.exe se está ejecutando y se ha aplicado DEP para ese proceso:

clip_image001

¿Cómo se implementa DEP en Office?

Cuando las aplicaciones de Office se inician, llaman a la función GetSystemDEPPolicy para determinar la directiva de DEP del equipo. Esta API devolverá uno de los siguientes resultados y se comportará de la siguiente manera:

  • AlwaysOn: las aplicaciones de Office siempre se ejecutarán con DEP habilitada. No hay modo de cambiar esto sin modificar el archivo de configuración de inicio del sistema y reiniciar el equipo.
  • AlwaysOff: las aplicaciones de Office siempre se ejecutarán con DEP deshabilitada. No hay modo de cambiar esto sin modificar el archivo de configuración de inicio del sistema y reiniciar el equipo.
  • OptIn: cada aplicación de Office puede configurarse en el Centro de confianza (vea la sección siguiente) para determinar si debe ejecutarse con DEP habilitada.
  • OptOut: cada aplicación de Office puede configurarse en el Centro de confianza (vea la sección siguiente) para determinar si debe ejecutarse con DEP habilitada.

Si se determina que es necesario que una aplicación de Office se ejecute con DEP habilitada, entonces la aplicación llamará a SetProcessDEPPolicy para asegurarse de que DEP se encuentre habilitada permanentemente durante toda la vida de ese proceso. Al hacer esto, nos aseguramos de que todos los demás archivos binarios que se cargan en el proceso de Office también tengan DEP aplicada.

¿Con qué opciones de configuración cuento como profesional de TI?

En instalaciones de 64 bits, DEP siempre se aplicará para las aplicaciones de Office. En instalaciones de 32 bits, puede configurar si desea DEP en el nivel de la aplicación en el Centro de confianza (Trust Center). Para las aplicaciones que admiten la Vista protegida (Protected View), encontrará la opción para configurar DEP en la ficha Vista protegida. Para todas las otras aplicaciones de Office, encontrará la configuración en la ficha Prevención de ejecución de datos (Data Execution Prevention), como se muestra a continuación:

clip_image003

Figura: configuración de DEP para aplicaciones de Office que admiten la Vista protegida (Protected View)

clip_image005

Figura: configuración de DEP para aplicaciones de Office que no admiten la Vista protegida (Protected View)

Si la opción para habilitar DEP está atenuada en el Centro de confianza, se debe a que se han configurado las opciones AlwaysOn o AlwaysOff en el equipo.

La opción para configurar estas opciones del Centro de confianza también se encuentra disponible en las plantillas de directiva de grupo como se muestra a continuación para Word:

clip_image007

Como programador, ¿de qué modo puede afectar DEP a mis aplicaciones?

En la mayoría de los casos, DEP no afectará al código. Sin embargo, si el código requiere la escritura en ubicaciones de memoria que no están marcadas como ejecutables y luego se intenta ejecutar ese código (como hacen los compiladores JIT), tendrá algunas opciones. La primera opción consiste en reescribir el código para que ya no se ejecute de esta manera. Si no tiene acceso al código fuente o no es posible obtener nuevos complementos, puede deshabilitar DEP mediante las instrucciones proporcionadas anteriormente. La última opción consiste en usar la función VirtualProtect. VirtualProtect permite escribir código en la memoria en una página marcada como de escritura y ejecución. Una vez realizada la escritura, puede quitarse el atributo de escritura. Esto garantiza que se pueda ejecutar el código posteriormente sin que se produzca una excepción. La eliminación del atributo de escritura garantiza que el malware no podrá infectar la ubicación de memoria.

¿Cómo se sabe que se produjo una excepción DEP?

En la mayoría de los casos, se producirá un error de DEP en los complementos instalados, pero no en una aplicación de Office. Cuando un complemento desencadena una excepción DEP, la aplicación de Office se cerrará y parecerá que ha ocurrido un bloqueo normal. Al reiniciar la aplicación de Office, aparecerá un mensaje similar al siguiente:

clip_image008

En este ejemplo, el complemento "my vc test com add-in" causó una inestabilidad en Office. En este momento tengo dos opciones. La primera opción es deshabilitar el complemento para que no se cargue y la segunda es intentar volver a cargarlo. Mi recomendación es deshabilitar el complemento y permitir que Office arranque normalmente. Una vez iniciada la aplicación de Office, miraría en el administrador de complementos para comprobar la razón por la que se deshabilitó.

En la siguiente ilustración, puedo ver que “el usuario deshabilitó el complemento tras un error en Prevención de ejecución de datos" (Add-in was disabled by the user after a Data Execution Failure).

clip_image010

Por el momento, mantendría el complemento deshabilitado hasta obtener una versión más reciente que admita DEP.

En conclusión, Office 2010 ahora se distribuye con DEP habilitada. DEP es una característica que ayuda a mantener el equipo seguro, ya que se asegura de que el código que no se debe ejecutar nunca tenga la oportunidad de hacerlo.

Gracias.
Vikas Malhotra
Director del programa de seguridad
Informática de confianza de Office

Publicado originalmente: jueves 4 de febrero de 2010, 4:04 p.m. por OffTeam

Esta entrada de blog es una traducción. Puede consultar el artículo original en https://blogs.technet.com/office2010/archive/2010/02/04/data-excecution-prevention-in-office-2010.aspx.