Noticias

Indicadores de seguridad de RAD Studio 11.1 y Windows PE

peflags11101

Delphi y C++Builder en 11.1 habilitan de forma predeterminada una serie de indicadores de seguridad PE para aplicaciones de Windows, algunos de los cuales ya estaban disponibles, pero un poco ocultos.


Delphi ha tenido durante mucho tiempo cierto soporte para ASLR y algunas de las otras banderas de seguridad de Windows recomendadas. En la versión 11.1 reciente, Embarcadero facilitó el uso de esas banderas tanto en Delphi como en C++Builder, mostrando opciones específicas del enlazador, habilitándolas de manera predeterminada y también creando paquetes y aplicaciones que son parte de RAD Studio con esas banderas habilitadas. .

Más información sobre estas banderas de Windows PE

Prevención de ejecución de datos (DEP)

Permite que el sistema marque una o más páginas de la memoria como no ejecutables, lo que impide que el código se ejecute desde estas regiones de la memoria, lo que dificulta la explotación de los desbordamientos del búfer. Puede leer más sobre esto en la  documentación de Microsoft aquí .

Aleatorización del diseño del espacio de direcciones (ASLR)

Organiza aleatoriamente las posiciones del espacio de direcciones de las áreas de datos clave de un proceso, incluida la base del ejecutable y las posiciones de la pila, el montón y las bibliotecas. Previene la explotación de vulnerabilidades de corrupción de memoria. Puede leer  más sobre ASLR  en Wikipedia.

ASLR de 64 bits de alta entropía (solo en aplicaciones de 64 bits)

Permite que ASLR use todo el espacio de direcciones de 64 bits, como puede  leer aquí .

Servicios de terminal

Cree aplicaciones compatibles con Terminal Server (TSAWARE). Esto no está relacionado con la seguridad y lo cubre Microsoft  aquí .

Soporte mejorado de RAD Studio

Mientras que  las banderas del compilador existían antes , el IDE de RAD Studio ahora expone estas banderas como opciones del enlazador. Puede ver a continuación la configuración de los compiladores de Windows Delphi y C ++ (gracias a Jim McKeeth por las imágenes )

peflags111_01-2313780

peflags111_02-3606655

Un par de advertencias

La configuración del compilador ASLR funciona como se esperaba para las aplicaciones de Delphi que usan el paquete de tiempo de ejecución. Para los programas que se vinculan en bibliotecas en el ejecutable, existe un conflicto con la forma en que los programas se refieren a las funciones DLL cargadas retrasadas, lo que impide el comportamiento esperado. Este es un problema que Embarcadero encontró después del lanzamiento y proporcionaría una solución en un futuro (cercano).

Como puede ver a continuación, para una aplicación con paquetes de tiempo de ejecución, obtiene la configuración adecuada, como lo muestra SysInternals Process Explorer:

peflags111_03-9363841

En general, tenga en cuenta que estos indicadores refuerzan la seguridad y existe la posibilidad de que una aplicación que utilice código de bajo nivel ya no funcione. Por ejemplo, descubrimos que algunos controles ActiveX antiguos ya no funcionan en el IDE debido a un conflicto con el indicador DEP.

Si ve algún problema en sus aplicaciones, puede deshabilitar estos indicadores, pero le recomendamos que investigue el problema subyacente, ya que algunas empresas comienzan a exigir que todo el software que utilizan se construya con todos los indicadores de seguridad recomendados por Microsoft habilitados.


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

IN THE ARTICLES