Analisis de Malware en Maquinas Virtuales

S E G U R I D A D I N F O R M AT I C A A N A L I S I S D E M A LWA R E E N M A Q U I N A S V I RT UA L E S GUIA DE PRA

Views 105 Downloads 5 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

S E G U R I D A D I N F O R M AT I C A

A N A L I S I S D E M A LWA R E E N M A Q U I N A S V I RT UA L E S

GUIA DE PRACTICA

JHON HUAMANCHUMO - 0201014020

ANÁLISIS DE MALWARE EN MAQUINAS VIRTUALES

0

Índice

1

¿Qué es malware? 3

2

Análisis de Malware

3

El conjunto de herramientas

4

5 4

Técnicas de análisis de malware

5

Análisis Estático

6

Análisis Dinámico

7 8

13

¿Qué es un malware? ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

2

Según Wikipedia: “El malware (del inglés malicious software), también llamado badware, código maligno, software malicioso o software malintencionado, es un tipo de software que tiene como objetivo infiltrarse o dañar una computadora o sistema de información sin el consentimiento de su propietario. El término virus informático suele aplicarse de forma incorrecta para referirse a todos los tipos de malware, incluidos los virus verdaderos.” A modo de resumen se puede decir que un malware es una pieza de software capaz de realizar cualquier acción que causa algún tipo de daño a un usuario u organización, un equipo, o una red. Esto incluye pero no se limita a los virus, troyanos, gusanos, rootkits, scareware y spyware. Si se determina que la pieza de software encontrada es perjudicial, un análisis de malware es el arte de la disección del software malicioso para entender cómo funciona, cómo identificarlo y cómo eliminarlo. El propósito de un análisis de malware es brindar información necesaria para responder ante una intrusión en la red. Este propósito incluye el determinar exactamente lo que sucedió, y qué alcance y grado de dispersión tuvo en la red.

Análisis de Malware ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

3

Configuración del entorno virtual En primer lugar, si no se dispone de un entorno de laboratorio adecuado para llevar a cabo un análisis de malware, es posible que se deban volver a examinar las opciones que se tienen, para alinear lo mejor posible los recursos disponibles con la eficacia del análisis. Como ejemplo, se puede utilizar un entorno virtual para realizar el análisis o tener sistemas físicos separados. A diferencia de los entornos virtuales, los datos pueden tener fugas en el sistema base y esto puede eventualmente perjudicar a todo el sistema. Los malware más modernos son capaces dedetectar los sistemas virtuales y cambiar sus comportamientos para permanecer sin ser detectados. De todas las opciones que hay, tanto VMWare como VirtualBox ofrecen buenas soluciones para el análisis de malware. Usaré VMWare para el análisis. Una vez decidido el entorno en el que se va a trabajar, el siguiente paso sería definir el acceso a la red de esos sistemas. Los malwares avanzados son capaces de detectar cambios en la dirección IP y se esconden o no revelan la información sobre la ubicación real de otros nodos o puntos de control. Estas detecciones pueden desencadenar algunas otras funciones ocultas, tales como ataque DDOS al servidor interno. Por lo tanto, recomendamos entornos de red aislados con servidores virtuales que incluyen DNS propios, y servidores HTTP y de correo. En el caso de prueba adicional con conexión a internet, la red aislada puede aplicarse a través de un cortafuegos con reglas estrictas establecidas para supervisar las posibles conexiones abiertas y cerradas.

El conjunto de herramientas

SEGURIDAD INFORMATICA

Después de haber configurado el entorno virtual, el siguiente paso es seleccionar un conjunto de herramientas que faciliten el proceso de análisis. Se recomienda las siguientes herramientas que pueden ser útiles en distintas etapas del ciclo de análisis, aunque hay muchas otras disponibles. Principalmente usaremos herramientas libres o gratuitas, incluidas las versiones demo de algunas herramientas comerciales. Enseguida se realiza una breve descripción de cada herramienta que utilizamos para llevar a cabo el análisis. OllyDbg OllyDbg es un depurador a nivel de aplicación. La interfaz OllyDbg muestra el código ensamblador, volcado hexadecimal, la pila y registros de la CPU. OllyDbg también soporta rastreo, puntos de interrupción condicionales, visión de cabecera PE, edición hexadecimal, y plug-in de soporte. En la primera puesta en marcha, OllyDbg pide configurar el directorio de datos del usuario (UDD) y el directorio de plug-ins. UDD se utiliza para guardar información específica de la aplicación como puntos de interrupción. Ofrece amplias opciones de depuración como la configuración de breakpoints en la carga de nuevos módulos, la creación de threads, la forma de procesar las excepciones, etc. OllyDbg soporta el establecimiento de puntos de interrupción de hardware, puntos de interrupción de software, puntos de interrupción de memoria e incluso puntos de interrupción condicionales. IDA Pro Al igual que OllyDbg, IDA Pro es un depurador / desensamblador a nivel de aplicación que nos ayudará enormemente en seguir la pista de la ejecución del programa. Cuenta con una versión de demo y una versión freeware más antigua, que es gratuita solo para uso no comercial. UPX UPX es un compresor/descompresor de código ejecutable, que logra una excelente relación de compresión y ofrece descompresión muy rápida cuidando el consumo de memoria. Una medida más que utilizan los ejecutables para ocultarse es el almacenar su código comprimido, por lo que necesitaremos una herramienta capaz de extraer el código ejecutable en claro, como UPX.

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

5

Autoruns Esta herramienta, que cuenta con la lista más amplia de ubicaciones de inicio automático, muestra qué programas están configurados para ejecutarse durante el arranque del sistema o de inicio de sesión, y muestra las entradas en el orden en que Windows las procesa. Estos programas incluyen los de su carpeta de inicio, Run, RunOnce, y otras claves del registro. Puede configurar Autoruns para mostrar otras ubicaciones, incluidas las extensiones de shell del Explorador, barras de herramientas, objetos de ayuda del navegador, las notificaciones de Winlogon, servicios de inicio automático, y mucho más. Autoruns extiende por mucho la utilidad MSConfig incluida en Windows Me y XP. ProcessExplorer ProcessExplorer es, como su nombre indica, un explorador de procesos. Su interfaz gráfica se compone de dos subventanas; la superior siempre muestra una lista de los procesos activos, incluidos los nombres de las cuentas que poseen, mientras que la información mostrada en la inferior depende del modo en que Process Explorer esté configurado. En el modo de DLL, mostrará los archivos DLL y archivos asignados en memoria que el proceso ha cargado. Process Explorer también tiene una herramienta de búsqueda muy potente que mostrará rápidamente qué procesos tienen handlers abiertos o sus DLL cargados. Las capacidades de Process Explorer lo hacen especialmente útil para localizar problemas de DLL – versión o pérdidas de identificadores, y para dar una idea de la forma de funcionar de Windows y otras aplicaciones. Process Monitor Process Monitor es una herramienta de monitorización avanzada para Windows que muestra en tiempo real actividad en el sistema de archivos, el registro, y los procesos en ejecución. Combina las características de las herramientas Filemon y Regmon, y añade una amplia lista de mejoras que incluyen el filtrado avanzado y no destructivo, las propiedades de eventos integrales tales como identificadores de sesión y nombres de usuario, pilas de threads completas con soporte para símbolos integrados de cada operación, registro simultáneo en un archivo, y mucho más. Las características de Process Monitor hacen de ella una utilidad fundamental en la solución de problemas del sistema y en el conjunto de instrumentos de caza de malware.

SEGURIDAD INFORMATICA

Active Registry Monitor El Active Registry Monitor (ARM) es una utilidad diseñada para analizar los cambios hechos al registro de Windows – tomando snapshots de su estado y guardándolos en una base de datos. Posteriormente, pueden compararse dos de estas fotografías y obtener un listado de claves/datos nuevos, eliminados o, simplemente, cambiados. TCPview TCPView es un programa de Windows que muestra la lista detallada de todos los puntos finales TCP y UDP en el sistema, incluyendo las direcciones y el estado de las conexiones TCP locales y remotas. En Windows Server 2008, Windows Vista y XP, TCPView también informa del nombre del proceso que posee el punto final. TCPView proporciona un subconjunto más informativo y bien presentado del programa Netstat que se incluye con Windows. WinVi WinVi es un editor gratuito para MS Windows para la edición y la detección automática de archivos Unicode en codificaciones UTF- 8, UTF-16 Little Endian y UTF-16 Big Endian. WinVi funciona como un editor Vi para Windows. En el análisis de malware se utiliza esta herramienta como un editor hexadecimal que puede soportar archivos de hasta 2 GB.

Técnicas de análisis de malware Muy a menudo, cuando se realiza el análisis de malware, la única cosa que se tiene es el propio ejecutable malicioso, que no dará demasiada información, ya que está destinado a no ser comprendido por seres humanos. Habrá que hacer uso de una gran variedad de herramientas con el fin de obtener una comprensión amplia del malware en cuestión. Existen dos enfoques fundamentales para el análisis de malware: los análisis estáticos y los análisis dinámicos. El análisis estático consiste en examinar el malware sin ejecutarlo, mientras que el análisis dinámico implica la ejecución del malware en entornos controlados. Análisis estático básico El análisis estático básico consiste en examinar el archivo ejecutable sin ver las instrucciones reales. El análisis estático puede confirmar si un archivo es ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

7

malicioso, proporciona información sobre su funcionamiento, y a veces ofrece información que permitirá realizar un network footprinting simple. El análisis estático básico es sencillo y puede ser rápido, pero es en gran medida ineficaz contra el malware sofisticado, y se pueden pasar por alto funciones importantes.

Análisis Dinámico Básico Las técnicas de análisis dinámicas básicas implican ejecutar el malware y la observación de su comportamiento en el sistema con el fin de averiguar algunos aspectos de su comportamiento, poder eliminar la infección, y producir firmas eficaces. Sin embargo, antes de poder ejecutar el malware de forma segura, se debe configurar un entorno que permita estudiar el malware ejecutándose sin riesgo de daño al sistema o la red. Al igual que las técnicas básicas de análisis estático, las técnicas básicas de análisis dinámico pueden ser utilizadas por la mayoría de las personas sin grandes conocimientos de programación, pero no serán eficaces con todo el malware y también se puede pasar por alto funcionalidad importante. En la Práctica El virus que se analizara el virus RaDa, es un virus real creado en el marco del Proyecto Honeynet para aumentar la concienciación sobre la seguridad en torno a ejemplares de malware y para señalar la necesidad de contramedidas defensivas adicionales con el fin de luchar contra las actuales amenazas de malware. Enlace: http://old.honeynet.org/scans/scan32/RaDa.zip

Análisis estático En el análisis estático de este virus vamos a intentar recabar tanta información como sea posible, que nos ayudará a comprenderlo mejor y a orientar de forma eficiente nuestros esfuerzos en el posterior análsis dinámico. Como primer paso, se lleva a cabo una recolección de información previa observando los detalles del virus y realizando una visualización en un editor hexadecimal. Esto revela algunas cadenas en el código del virus, además de ayudarnos a verificar que se trata de un ejecutable.

SEGURIDAD INFORMATICA

WinVi mostrando la cabecera del ejecutable del virus y una cadena de texto

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

9

El siguiente paso comienza con cargar el ejecutable (RaDa.exe) en OllyDbg para llevar a cabo un análisis de código con el fin de descubrir sus capacidades funcionales. En primer lugar, abrimos el archivo ejecutable en el OllyDbg para ver los detalles básicos. La siguiente figura muestra cierta información de los registros, la CPU y el estado de la memoria del programa, incluyendo una advertencia que indica que el código está comprimido, cifrado o codificado para ocultar su verdadera naturaleza. OllyDbg mostrando cierta información del ejecutable del virus RaDa

Para salvar este paso y poder extraer el ejecutable real y ver sus instrucciones, o al menos obtener información sobre el tipo de compresión, codificación o cifrado lleva, se utiliza la utilidad de descompresión de

SEGURIDAD INFORMATICA

ejecutables UPX:

Resultado del UPX en la primera ejecución para intentar descomprimirlo

Tal y como se puede observar en la imagen superior, el virus se resiste a desempaquetarse a través del método común con UPX. Por lo tanto, podemos probar a forzar el proceso usando el comando upx -9 --brute, que puede tardar un rato.

Después de un rato no ha habido suerte en el desempaquetamiento, por lo que vamos a moldear un poco el análisis, redireccionando nuestros esfuerzos en cierto modo hacia un análisis de comportamiento del malware, más que un análisis estático, debido a que el virus está preparado para evitar este tipo de análisis.

Para este propósito, es necesario realizar una ejecución controlada del virus, analizar sus puntos de inicio, y encontrar un breakpoint del virus.

Para poder localizar dichos puntos, vamos a empezar por analizar el mapa de memoria del malware, cosa que podemos hacer con el OllyDbg:

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

1 1

Mapa de memoria del virus

El mapa de memoria indica que hay tres secciones en el binario de RaDa: JDR0, JDR1 y .rsrc. Elentry point de RaDa.exe (0x0040FD20) está ubicado en la sección JDR1. Podemos echar un vistazo también a la sección JDR0 haciendo doble click sobre la etiqueta de la sección, aunque nos encontraremos en este caso que la sección está vacía:

SEGURIDAD INFORMATICA

Sección JRD0 del virus RaDa en blanco

Podemos obtener algo más de información sobre la sección JDR0 (0x004018A4) usando el IDA Pro: Información de la sección de código JDR0 en el IDA Pro

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

1 3

La siguiente captura de pantalla muestra que el código en JDR1 desempaqueta el código ofuscado que contiene en la sección JDR0. El registro ESI apunta a la dirección del bloque cifrado/ofuscado de código, mientras que el registro EDI apunta a la dirección de memoria a la que será copiada el código una vez se haya desempaquetado. Al terminar la sección JDR1, el control del programa salta a la dirección en que se ha

desempaquetado el código (jmp loc_40FD42). Parte del código de RaDa que desempaqueta el código ofuscado de JDR1 y lo copia a JDR0

Observando además la información presente en la vista General Register, en el registro EIP, podemos consolidar que la dirección de memoria JDR1:0040FD20 es el punto de inicio del programa. Dicho esto, aún es necesario extraer un buen String dump del código empaquetado. Con el OllyDbg podemos obtener cierta información de los (posibles) módulos de los que puede hacer uso el virus, que nos pueden ayudar a comprender la naturaleza del virus más a fondo:

SEGURIDAD INFORMATICA

Fragmento de los módulos ejecutables del virus

También podemos observar los handles del virus, para un propósito similar:

Handles del virus

Recapitulando hasta ahora: 1.

La información recabada en el análisis estático será de gran ayuda para, a la hora de hacer el análisis dinámico, saber dónde deben ir dirigidos nuestros esfuerzos. 2. Los handles del virus nos ayudarán a saber de qué recursos del sistema el ejecutable pretende hacer uso. Todo ejecutable hace uso de algún recursos del sistema; la cuestión aquí está en filtrar qué recursos son potencialmente peligrosos como para que los use un fragmento de software desconocido, y cuáles son más y menos habituales. 3. El mapa de memoria del ejecutable nos ha ayudado a determinar breakpoints del virus, que nos puede servir para controlar eficientemente la ejecución del virus en el análisis dinámico. 4. La lista de módulos ejecutables del malware nos da una pista (a veces, falsa) de los módulos que puede utilizar el virus. Reunidas todas estas pistas, hemos preparado el terreno para dirigir nuestro análisis dinámico de la forma más eficiente posible.

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

1 5

Análisis dinámico Ejecutaremos el virus en un ambiente controlado para ver su capacidad de abrir conexiones con el mundo exterior (calling home), las alteraciones del registro, modificaciones del sistema de archivos y los procesos en ejecución. Para controlar este tipo de actividades se utilizarán los programas TCPView, Active Registry Monitor, Process Explorer, Process Monitor y la aplicación Autoruns. Al haber localizado en el análisis estático el punto de inicio del programa, podemos controlar su ejecución:

Controlando la ejecución del virus con el IDA Pro

Una vez tenemos el entorno de laboratorio bien preparado y con el virus listo para ser ejecutado, el primer paso es averiguar cómo intenta comunicarse con el exterior: ¿cuáles son los puertos y las conexiones que el virus puede abrir hacia el mundo exterior? El TCPView muestra los detalles de conexiones salientes del malware: El virus RaDa modo GUI

SEGURIDAD INFORMATICA

Conexiones abiertas vistas con el TCPView - IEXPLORE.EXE arrancados por RaDa

El monitor de procesos y el ARM muestran las claves del registro recién alteradas del sistema local:

Pro cmon mostrando actividad del virus

Como una observación, podremos ver que el virus se está ejecutando detrás de la aplicación Internet Explorer para ocultarse. La única indicación que podemos ver es que el proceso "IEXPLORE.EXE" está abierto por el virus ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

1 7

para conectarse al destino remoto 10.10.10.10 en el puerto 80. También observamos que el proceso parece consumir más y más memoria.

Actividad del virus RaDa

El ProcessExplorer de Sysinternals nos da información relevante del virus en ejecución, pudiendo comprobar los DLL's que carga, y compararlos con lo encontrado en el análisis estático:

SEGURIDAD INFORMATICA

Información del virus RaDa en el ProcessExplorer

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

1 9

Vista de los módulos ejecutables en uso por el virus RaDa

Echando un ojo al Advanced Registry Editor, podemos ver los cambios que hace el virus en el registro de Windows:

Cambios en el registro de Windows efectuados por el virus

SEGURIDAD INFORMATICA

También observamos los cambios que ha hecho en el sistema de ficheros:

Cambios en el sistema de ficheros introducidos por el virus RaDa

Por último, también podemos ver en el Process Monitor información sobre el proceso RaDa.exe y el IEXPLORE.EXE, en especial, que RaDa ha sido capaz de lanzar el IEXPLORER como WIN-LCTFH8B302M\JHON, siendo RaDa ejecutado por un usuario con privilegios reducidos:

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

2 1

Información del proceso IEXPLORE.exe en el Process Monitor

SEGURIDAD INFORMATICA

Después de realizado los análisis estático y dinámico, se han podido comprobar varias cosas: o

El virus intenta ocultar su código ejecutable empaquetándolo, así como su punto de inicio. Hay virus más sofisticados que lo ponen mucho más complicado, con decenas de secciones de código distintas.

o

El programa Active Registry Monitor nos indica que se ha creado la siguiente clave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\Run\RaDa:C:\RaDa\bin\RaDa.exe. Esto permite que RaDa persista tras el reinicio del sistema.

o

El TCPView muestra que hubo intentos de conexión desde iexplore.exe, Internet Explorer, a 10.10.10.10:80. Parece que RaDa utiliza Internet Explorer como herramienta para conectarse con el sistema externo, y que además, es capaz de lanzarlo como el usuario WIN-LCTFH8B302M\JHON.

o

A través del Process Monitor se ha podido comprobar que se crearon los directorios C:\RaDa,C:\RaDa\tmp y C:\RaDa\bin. El ejecutable RaDa.exe se ha copiado en el directorio C:\RaDa\bin\.

o

El panel de Process Explorer muestra el proceso RaDa.exe en su lista activa, (no oculto bajo otro ejecutable), mostrando el crecimiento de la memoria usada.

ANALISIS DE MALWARE EN MAQUINAS VIRTUALES

2 3

SEGURIDAD INFORMATICA