Evitar malware o inyecciones de código – DEP

(Durante el post, podéis pinchar en las imagenes para verlas con mejor claridad)

Con la llegada de los nuevos sistemas operativos desconocemos las nuevas facetas de las que disponemos, es decir no tenemos ni pajolea idea de manejar las nuevas herramientas en los relativamente ya nuevos Sistemas Operativos, no nos molestamos en aprender a usar una herramienta de trabajo y diversión como es nuestro windows 7, total para que ??? si puedo tener un antivirus por la cara, me lo pirateo de las típicas web y sino pues el Avast que es gratuito o el Microsoft Security Essentials no? (el colmo ya son las empresas que tienen el Avast gratuito como versión Home y no pagan la licencia enterprise, so ratas !!!!!), pues bien de poco os sirven hoy en día contra los Malware, estoy reventado de que me llamen los amigos para que les solucione el virus de la policia u otros similares, hay que escapar de los tópicos de los antivirus, nosotros y nuestras técnicas son la mejor protección.

En nuestros PC usados para la empresa no usamos antivirus, sabemos usar nuestro sistema operativo, conocemos los servicios que están en ejecución y no instalamos cualquier aplicación de terceros y lo que es más importante podemos recuperanos de un fallo en menos de lo que canta un pollo, ocurra lo que ocurra, bueno lo retiro, pero en la mayoría de los casos.

En casa todo es muy fácil pero en las empresas en servidores en producción la cosa cambia, explicale al director que hay que parar una producción o al informático que ha metido la gamba e igual es tu jefe o la persona que te ha contratado … hay que hacer lo imposible con tal de no formatear y reinstalar, tonto el primero en formatear, incluso en casa …

Que hace DEP?, bueno pues evitar ese desbordamiento de memoría que tanto nos suena a ataque hacker, (odio la palabra hacker, pobrecitos que cruz les dejaron si eran programadores) o mejor dicho evitar que nos inyecten instrucciones cuando la CPU esta ejecutando un proceso, dicho proceso debe procesar por ciclo de reloj los datos asociados a ese proceso y a veces esos datos se convierten en instrucciones por culpa de algun malware que anteriormente se ha instalado en nuestro Windows 7,  haciendo que ahora nuestro procesador ejecute esas instrucciones que nos van a llevar a otros datos que no son los que nos tocaba procesar por ese proceso y ya estamos infectados.

En la memoría de paginación se guarda todo lo que nuestro preceso necesita, como deberiais saber para que un proceso pueda funcionar debe hacerlo en memoría de paginación (para eso está) , ahí están los datos, la pila, las instrucciones que necesita y un indice que va colocado en al principio de la pila.

Para que se usa este indice?, en realidad el proceso no esta en la paginación la paginación se translada a la memoría ram real, y lo que hace es trocear todo lo que necesita el proceso para trabajar, colocando su datos, pila e instrucciones en distintos sitios de la memoria real. El exploit generado por el malware se aprovecha de esto para apoderarse de ese indice y así decirle al proceso que vaya a otra direccion de memoria donde ya no esta el código de este proceso y donde estaran nuestra instrucciones metidas en la variable datos, pues bien DEP IMPIDE QUE LEA ESTAS INSTRUCCIONES y que solo lea datos de la variable datos y no instrucciones que introduce el malware en dicha variable, en pocas palabras el procesador ya no es tonto o mejor dicho distingue datos de instrucciones.

Como se hace esta cabronada por parte del malware?, pues inyectando código hexadecimal a fuego 🙂 aprovechando excepciones de aplicaciones que … y bla bla bla, bueno ya valio de teoría, esta resuelto para que vale DEP, al lio.

Vamos a usar DEP, como medida preventiva y repito solo preventiva tenemos una nueva opción y digo nueva solo desde el punto de vista que viene incluida en windows 7 por defecto que es Data Execution Prevention (DEP), esta medida recibe diferentes nombres dependiendo del fabricante que la implemente. En servidores se puede activar por Bios, que se hace indispensable.

Suele venir en las nuevas placas base que vienen con EFI en vez de Bios (el que no sepa lo que es EFI ahh se siente a mirar Wikipedia y donar aunque sea un dolar.)

DEP lo podemos activar desde Windows 7 y se llamaría hardware DEP, ya que nuestro procesador lo permite si es compatible.

En la imagen al seleccionar DEP podemos ver como nos dice que es compatible, si no lo es también hay DEP por software pero ese no tengo ganas de explicar lo que hace, además no me gusta, por software tengo la teoría de que influye en el rendimiento pero no puedo asegurarlo, ya tendría que explicarlo un Guru de estos temas.

Si os fijáis en la imagen de más abajo, selecciono la opción segunda para añadir una excepción y no habilitar DEP en la aplicación Alcohol 120%, descarto aplicaciones de grabación de DVD porque estamos en crisis, no quiero tener que tirar ningun DVD por un fallo de grabación, que por suerte ya no tengo que pagar la ESTAFA del CANON de la sociedad de autores por copiarme un DVD con mis propias aplicaciones o fotos, pero tambien es cierto que ya lo pague cuando compre la grabadora de DVD el año pasado.

Buff, bueno volvamos a lo que estabamos que se nos va en la IRA, la imagen (pinchar en ella para verla mejor) ahí activamos el DEP:

pcompatible

Donde tenemos esta opción que vemos en la imagen anterior?, pues en rendimiento en el botón de configuración:

rendimientoY después?, pues ya esta funcionando y  para comprobarlo vamos a inserta esa colunma en nuestro administrador de tareas para ver que aplicaciones lo tienen habilitado y cuales no, ya que las propias aplicaciones algunas pudieran ser incompatibles y si nos dan algún problema podemos sacarlas del DEP poniendolas como el alcohol en la excepción.

monitor

Como vemos en la siguiente imagen la aplicacion de copiado de DVD el Alcohol 120%, nos marca como deshabilitada, lo vemos en la marcada en azul donde dice Prevención de ejecución de datos (español) 🙂

alcohol

También podemos analizar nuestras aplicaciones para ver si tienen soporte para DEP, para ello deben de haber sido compiladas con una opción determinada usando así las librerías necesarias, ahora mismo no recuerdo cuales son, pero las podemos buscar si tenemos curiosidad con San Google.

Yo por ejemplo voy analizar una aplicación que uso mucho, el battlefiel 3 🙂

ntcore

He usado la aplicación que descargue de http://www.ntcore.com y lo que hago es darle abrir y seleccionar el .exe que contiene los binarios, es decir me he ido a la carpeta donde tengo instalado el juego y he seleccionado el fichero ejecutable el battlefield.exe

La aplicación me hace un analisis muy completo, pero lo que me interesa esta vez es irme a donde dice en el explorador de la izquierda: optional header. Una vez pinchada esta opción, en la lista que me muestra en el panel de la derecha busco DllCharacteristics y una vez encontrada me fijo en el tercer campo de esa fila, que dice:8000 creo que se refiere al valor del registro 0x8100.

A su derecha nos dice Click here, pues hacemos eso pinchamos ahí y nos sale un nuevo panel con las características.

En mi caso como ven salen dos marcados, uno de ellos es: «Image is NX compatible», bien pues eso significa non execute es decir que es compatible con DEP. Nx es un bit que se usa para marcar como no executable en el procesador, es lo mismo que XN,XD,ND, marketing … nada el que quiera saber más sobre NX que mire este enlace:

http://en.wikipedia.org/wiki/NX_bit

Por lo tanto battlefield 3 es compatible con DEP, tengo protección.

También podemos usar otras aplicaciones, en el caso de PeStudio nos lo ponen más visual, va imagen:

pestudioPara ver las DllCharacteristics en este caso hay que marcar la casilla que veis abajo en la imagen, como veis esta marcado con una estrella el DEP support.

Como anotación curiosa de las dos aplicaciones podemos ver que en este caso tiene marcado el SEH usage, y en CFF Explorer de NT core, es decir la imagen anterior no lo tiene marcado.  Si nos fijamos si estuviera marcada sería que no usa SEH, es decir dice justo lo contrario, por eso no esta marcada así que las dos aplicaciones nos muestran lo mismo pero visto desde otro punto de vista.

Y ahora si en vez de ir a la pestaña superior de Optional Header vamos a la pestaña Idicators, nos cercioramos al ver la opción que esta marcada en azul.

pestudio2

Deciros por último que algunos juegos pueden generar algún error por culpa de DEP, caso de ello fueron los SIM2 en la época del VISTA, pero que en ningún momento hemos experimentado lentitud en el juego por estar activada esta funcionalidad y hemos visto fallo en otras aplicaciones.

Recordar, DEP solo es una medida más contra los malwares ya que cada vez hay códigos más trabajados y que son verdaderas obras de arte, ahí es donde reside el dinero.

Otro día os comento algo que nos empieza a preocupar a la comunidad, la cantidad de peticiones html que recibimos por http siempre que publicamos algo sin dns, son ip 85 que curiosamente es la ip de CHINA …

Saludos a todos y que os traigan mucho los reyes magos y a los que estáis fuera de España y nos leeis, también 🙂

Hola de nuevo, he vuelto a editar el tema debido a varias preguntas recibidas a nuestro correo que figura en la parte superior del Blog. ¿Que es un PE?, supongo que la mayoría quiso preguntar que es un fichero PE.

Si os fijais en los programas usados en este artículo tienen nombre como PE estudio.

Para saber a fondo lo que es un fichero PE podeis leer el documento en español (para mi el mejor explicado) que hay colgado en este enlace https://www.box.com/shared/4156t5rfv8tr5v4bgo19 el autor es @The_Swash y ha juntado sus conocimientos mas el de sus colaboradores nombrados al final del mismo.

Publicado el enero 6, 2013 en Informatica, Microsoft y etiquetado en , , , . Guarda el enlace permanente. Deja un comentario.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: