En este capítulo vamos a iniciar a los espectadores, si, se que estás comiendo palomitas, en el mundo del análisis del Malware.
Como sabes si eres asiduo a mis post, no me considero un analista de malware, ni tan siquiera de seguridad, me considero un tipo de sistemas con la vertiente de la seguridad muy asumida. Soy de los que piensa que si los administradores de sistemas hiciéramos bien nuestro trabajo, y si los programadores hicieran bien su trabajo, el cibercrimen se reduciría hasta casi la separación. Hago énfasis en el CASI...
Puesto a trabajar, voy a intentar contaros mis pequeños pasos en este mundillo, sin grandes pretensiones, y por supuesto sin ánimo de "sentar cátedra" ya que hay muy buenos expertos en esta disciplina en el panorama nacional con abundante información pública y en castellano.
Disculpas pedidas de ante mano comienzo...
¿Qué es el análisis de Malware? Podemos diferenciar la detección del malware en dos, Host-based y network signatures. Mientras que un antivirus suele basar su análisis en la firma del fichero infeccioso, con el análisis de malware host based analizamos que acciones a efectuado el malware en el equipo, y en la parte de network, imagínatelo tu :-).
Dentro del procedimiento básico de análisis de malware está el saber si alguien ya ha revisado ese fichero. No estamos para inventar la rueda y teniendo http://www.virustotal.com con varios motores AV no tiene sentido no empezar nuestro trabajo por ahí. Imaginas un mes de trabajo para "descubrir" que el malware que tienes sobre la mesa es un gusano-sql de 2003?
Pasado este punto, debemos realizar una firma, un hash del fichero en formato MD5 o SHA1, dos de los más empleados. Con winmd5 podemos hacerlo de manera gráfica en nuestro amado Windows.
Podemos usar una herramienta muy simpática para Windows que es PEstudio. Una aplicación portable, sin necesidad de instalación, que con un simple drag&drop nos muestra un pequeño análisis de la pieza que le pasamos, incluyendo la integración con VirusTotal para comprobar si ya ha sido detectado.
La herramienta nos da una seria de indicadores de que puede ser un malware, por ejemplo las funciones que usa, librerias sospechosas que carga, nos permite ver en el MSDN que hace esa función, nos muestra los strings que encuentra y unas cuentas comodidades más.
Como es normal, esto no es análisis de malware, ya que es la propia herramienta la que nos da "pistas" de lo que hace el binario, pero hemos basado nuestro "descubrimiento" en que virus total detecta el malware. Poco a poco...
Si quieres bajarte alguna pieza de malware, aquí tienes un recurso para descargar algunas muestras de ejemplo de Malware. Recuerda que si tienes activo algún antivirus, posiblemente te marque el fichero ZIP entero como peligroso, y no puedes hacer ninguna gestión. Si vas a realizar habitualmente este trabajo, te recomiendo que pares el AV en el momento de trabajar, y que metas una exclusión al directorio.
Bueno, vamos a seguir con el planteamiento inicial, comenzar en el mundo del análisis de malware, sin la necesidad de hacer reversing, ensamblador y otras cosas que no nos gustan, a priori, por desconocimiento xDDD
Vamos a seguir un poco con el análisis básico. Esta vez es el turno de Cuckoo Sandbox. Cuckoo Sandbox es un conjunto de scripts en Python, un framework, para el análisis dinámico de Malware mediante modulos que podemos activar/desactivar. Trabaja con máquinas virtuales, donde realizaremos el concepto de "sandbox" o zona aislada, generalmente un equipo Windows, en donde se ejecutará el malware y se analizará el comportamiento de este dentro del sistema virtual.
Para ello necesitamos un linux, instalar Cuckoo, un hypervisor tipo 1 Vmware/kvm/qemu o tipo 2 Virtualbox/Vmware/Xenserver y dentro de este, una máquina Windows. La máquina Windows debe estar los más "relajada" posible en cuanto a seguridad, por ejemplo sin updates (para evitar tráfico que moleste para el análisis) firewall, instalar Adobe pdf reader y Ms Office para futuros análisis y deshabilitar el UAC ( desde el panel de control-cuentas de usuario, no lo haga con la clave de registro que indican los manuales, ya que esto era para win7 y para 8 no es recomendable)
Para la instalación básica de Cucko podemos usar esta guía tan bien explicada del profesor Adastra del mejor blog de seguridad informática en Castellano.
También me gustó esta guía, por lo que recomiendo leer las dos para tener claro todos los conceptos de red con la máquina virtual.
Ya que estamos, por qué no leer la guia oficial? xD
Os recomiendo algunos cambios básicos en la configuración de la red entre el host y la vm. Pongamos un ejemplo de un malware que se conecta a un C2 ( command & control) externo en internet para recibir ordenes. Si ejecutamos el malware en nuestro entorno sandbox, con que ip externa se conectará el malware? con la de nuestra linea de Internet...algo que me parece sumamente peligroso. Para corregir este comportamiento, según puedo leer en un buen post de Security By Default, vamos a usar un gateway TOR basado en una distro. de anonimato llamada Whonix.
Una vez solventada la conectividad entre nuestra máquina sandbox y Cuckoo podemos empezar a realizar algún análisis.
En todos los manuales que he puesto aparece el proceso completo de ejecución, por lo que me limito a mostrarte algunas pantallas que seguro te interesarán:
Por la característica del ejecutable, no aparece mucha información.
Recuerda que el motivo de este artículo es solo animarte con el estudio automático de algunos casos que puedan llegar a tu entorno.
En el próximo artículo añadiremos más módulos a cuckoo, integraremos con firmas YARA, veremos las capturas de memoria/Red etc.
Espero que os animéis en este mundillo.
Gracias por leerme !!!