23 may 2014

El malware se camufla para persistir en el sistema con AppInit_DLLs

Para asegurar su permanencia en un sistema infectado, el malware puede aplicar diversas técnicas. Hoy discutiremos la utilización de AppInit_DLLs, un método que implica la modificación del registro de Windows y la inyección de código en los procesos corriendo en el equipo afectado.

Al desarrollar códigos maliciosos, los cibercriminales desean que sus amenazas persistan en los sistemas infectados, siempre con el mayor nivel de sigilo posible. Si al apagar o reiniciar el equipo el malware no fuese cargado en memoria de forma automática, los cibercriminales verían frustrados sus intentos de controlar la actividad en el sistema. A diferencia de las aplicaciones con fines legítimos, que en gran parte de los casos son iniciadas por acción del usuario, el malware puede que tenga una única oportunidad de ser corrido, por lo que debe asegurarse su ejecución continua en el sistema.

Además, si esta permanencia fuese lograda con métodos típicos de instalación, como la copia de los archivos en el mismo sitio que el resto de las aplicaciones, o la utilización de llaves típicas en el registro, el usuario podría ser alertado de la existencia del código malicioso. A continuación analizaremos uno de los métodos utilizados en los códigos maliciosos con estos fines.

Una de las formas más utilizadas para asegurar que el malware continúa en memoria consiste en la utilización de la llave Run del registro de Windows. En este sentido, la mayor parte de los archivos maliciosos que recibimos en el Laboratorio de Investigación de ESET Latinoamérica crean un valor en la llave HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, con la ruta hasta el archivo malicioso. Luego, el sistema operativo ejecutará todos los archivos referenciados en esa llave del registro en cada inicio de sesión, sin intervención del usuario.

Sin embargo, hoy quiero mostrarles otro método que, si bien no es ampliamente utilizado por los cibercriminales, resulta muy efectivo. Si analizamos la llave de registro HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Windows, veremos que posee varios valores. Si ahora nos centramos en el valor AppInit_DLLs, es posible que observemos que no hay datos. Muchas veces así será, pero otras veces podremos encontrar un listado de archivos de tipo DLL. Así, todas las DLL especificadas en ese campo serán cargadas en el espacio de memoria de cada proceso que llame a funciones de User32.dll. Si tenemos en cuenta que todas las aplicaciones con interfaz gráfica en Windows importarán funciones de la API en User32.dll, entenderemos por qué el método resulta tan efectivo.

Contenido completo en fuente original We Live Security

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!