AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Delphi-News aus aller Welt Cómo habilitar DEP y ASLR en las aplicaciones Windows
Thema durchsuchen
Ansicht
Themen-Optionen

Cómo habilitar DEP y ASLR en las aplicaciones Windows

Ein Thema von DP News-Robot · begonnen am 12. Mär 2022
Antwort Antwort
Benutzerbild von DP News-Robot
DP News-Robot

Registriert seit: 4. Jun 2010
15.473 Beiträge
 
#1

Cómo habilitar DEP y ASLR en las aplicaciones Windows

  Alt 12. Mär 2022, 21:20
A medida que se van incrementando los ataques informáticos, resulta cada vez mas necesario que nuestras aplicaciones Delphi sean lo más seguras posible.

Delphi ya es un sistema de desarrollo de software muy robusto, la última vulnerabilidad conocida es del año 2014 CVE-2014-0994 relacionada con la versión XE6 y fue un desbordamiento de buffer en VCL.Graphics.TPicture.Bitmap en la función PaletteFromDibcolorTable en la que al no verificar la cantidad máxima de colores en una imagen se podría hacer un buffer overflow para inyectar código malicioso.

Este problema encontrado por una empresa de seguridad externa fue inmediatamente corregido por Embarcadero y desde entonces no se han reportado nuevos fallos de seguridad.

Para hacer que las aplicaciones Windows sean mas robustas Microsoft desarrolló dos nuevas funciones llamadas DEP y ASLR que están presentes desde Delphi 2007.

DEP ayuda a prevenir la inyección de código al marcar direcciones de memoria como no ejecutables lo que protege contra desbordamientos de buffer y ASLR hace que las aplicaciones no se carguen siempre en la misma dirección de memoria (lo hace de forma aleatoria) con lo que el heap y el stack varían dificultando que los piratas informáticos puedan obtener acceso a datos específicos del programa de forma consistente.


Para que sea útil DEP y ASLR se deben utilizar juntos.

Cómo sabemos si nuestras aplicaciones tienen DEP activado


Abrimos el administrador de tareas de Windows y en la pestaña "Detalles" añadimos una columna nueva llamada "Prevención de ejecución de datos" y vemos si aparece como Habilitado o Deshabilitado




Cómo activar DEP en nuestras aplicaciones

Añadiendo en el archivo *.dpr lo siguiente:


- Para aplicaciones de 64 bits

{ $ SETPEOPTFLAGS $ 160 } { $ SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE }









- Para aplicaciones de 32 bits

{ $ SETPEOPTFLAGS $ 140 }

- Si no tiene WinApi.Windows en el uses utilice


{ $ SETPEOPTFLAGS $ 160 } { $SetPEFlags $ 20 }

o si quieren activar DEP en runtime pueden usar el siguiente procedimiento:


procedure EnableDEP;
const
PROCESS_DEP_ENABLE: DWORD=$00000001;
var
SetProcessDEPPolicy: function(dwFlags: DWORD): BOOL; stdcall;
begin
SetProcessDEPPolicy := GetProcAddress(GetModuleHandle(kernel32),
'SetProcessDEPPolicy');
if Assigned(SetProcessDEPPolicy) then begin
//don't bother checking for errors since we don't need to know if it fails
SetProcessDEPPolicy(PROCESS_DEP_ENABLE);
end;
end;


Esto funcionará para cualquier versión de Delphi
Cómo comprobar que DEP está activado



Para comprobar que DEP está activado ir al Administrador de tareas y verificar que está habilitado








Si te ha gustado esta entrada y quieres recibir un email cada vez que se publique una nueva
suscríbite desde aquí








Enlaces a otros post de este blog que te podrían interesar


Analizar malware con reglas Yara


Crear un crypter con Delphi


Evitar la propagación del virus WannaCry


Firewall en Delphi












































































Suscribirse :



Weiterlesen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz