Introducción al diseño de Malware

En días pasados, con el “boom” de #WannaCry, me puse a recordar cuando hacía mis pruebas de concepto de virus y otro malware. Nunca llegué a hacer una amenaza seria, pero si tengo por lo menos una creación que es reconocida por una compañía Antivirus.

Decidí que #WannaCry era el pretexto ideal para volver a esta asombrosa escena (del malware), sólo que no decidí regresar haciendo nuevas creaciones, más bien, decidí regresar compartiendo lo poco que sé de creación de malware.

Qué es el malware

Se puede definir como malware a cualquier programa que, de manera explícita, está diseñado para ejecutar acciones malintencionadas, tales como: sustracción de información, instalación de programas no deseados, sabotaje informático, desgaste de recursos (memoria, procesador, etc) entre otras.

Tipos de malware.

De acuerdo a las tareas que realiza, el malware se puede dividir en:

  • Virus: Para que programa sea considerado un virus, debe de realizar copias de sí mismo cada vez que se ejecuta, ya sea infectando otros archivos, enviándose a sí mismo por correo, copiándose a sí mismo por medio de la red local o programas de chat. Sus acciones pueden limitarse a propagarse por los medios ya mencionados, aunque también pueden incluir otras rutinas – llamadas payloads – que destruyan información, muestren falsos mensajes de error, envíen correos masivos en nuestro nombre, por mencionar algunas.

Algunos virus famosos han sido “I love you”, “Melissa”, “Anna Kournikova”, “Mapson”, “MyDoom”, “Klez”, “Sasser”, “Stuxnet”.

  • Troyano: Un Troyano es un software malicioso que se muestra como un programa legítimo, el cual contiene dentro de sí fragmentos de código destinados a realizar alguna acción malintencionada, por ejemplo, permitir a un atacante remoto obtener archivos de nuestro equipo, instalar programas, obtener capturas de nuestra pantalla, por mencionar las más comunes.
  • Spyware: El Spyware (del inglés Spy Software) también es llamado software espía, su propósito es recolectar todo tipo de información del equipo infectado. De este modo un atacante puede obtener entre otras cosas: sitios web que visitamos, que programas utilizamos, contraseñas, direcciones de correo, nuestra lista de contactos, etc. Una de las acciones más comunes del spyware es utilizar la información recolectada para crear un perfil del usuario y mostrar publicidad no deseada (véase Adware).
  • Exploit: Un exploit es un programa cuya única finalidad es aprovechar alguna falla en el sistema operativo o alguna aplicación para lograr acceder a funciones que requieren cierto tipo de privilegios. Una vez explotado el fallo el atacante remoto puede realizar diversas acciones en nuestro equipo tales como: enviar correos masivos, obtener archivos, liberar otros tipos de software maligno etc.
  • Adware: El adware tiene el único propósito de mostrar al usuario publicidad no deseada, generalmente es publicidad engañosa que conduce a sitios web de dudosa reputación, en los cuales se tiene una alta probabilidad de infectar el equipo con otro tipo de amenaza.
  • Botnet: También llamada red zombie, puede que sea la más elaborada de todas las amenazas listadas en este artículo debido a la complejidad de su operación. Consiste en una red de computadoras controladas por un solo operador, el cual envía instrucciones a los servidores para que -todos a la vez- lleven a cabo alguna tarea, siendo las más comunes ataques a Sitios Web, envío de spam y minería de Bitcoin.
  • Ransomware: La popularidad del ransomware es relativamente nueva. Básicamente consiste en un conjunto de programas que bloquean el equipo del usuario (cifrando todos o algunos de los archivos), y para desbloquearlo piden el pago de un rescate. Este deberá ser depositado usando un medio que garantice cierto anonimato al atacante, usualmente Bitcoin. Cabe destacar que en la mayoría de los casos, aún después de pagar el supuesto rescate, los archivos no son descifrados.

Un caso muy conocido en México de este tipo de amenaza es el llamado “Virus de la Policía Federal de México”, aunque hay otros más sofisticados como Cryptolocker y el propio WannaCry.

  • Keylogger: Es un software que una vez instalado registra todas las teclas que pulsamos almacenándolas en un archivo de texto, posteriormente el keyogger puede enviar el archivo con las pulsaciones a un atacante remoto. Keyloggers famosos: Invisible Keylogger Stealth (IKS) y teclasss.exe
  • Clicklogger: Funciona igual que un keylogger, pero en vez de registrar las pulsaciones de teclas hace una captura de pantalla cada vez que hacemos clic. En dicha captura el clicklogger suele indicar la posición del mouse y si el clic fue con el botón derecho o izquierdo.

Cabe aclarar que algunos malwares pueden presentar comportamientos que lo sitúen en más de un grupo de los descritos anteriormente.

Cómo funciona el malware

El malware, al igual que los programas legítimos, debe ser ejecutado. La diferencia es que el malware tratará de ejecutarse sin la aprobación del usuario, para ello se vale de diversas técnicas que van desde ingeniería social, hasta el uso de exploits.

Comportamiento común entre los diversos tipos de malware

Sin importar de qué tipo de malware hablemos, veremos que comparte ciertos comportamientos con los demás tipos, por ejemplo:

  • Ejecutarse sin consentimiento de los usuarios.
  • Iniciar con el sistema operativo.
  • Detección de procesos que se ejecutan.
  • Detección y evasión de AVs y otras herramientas de seguridad.
  • Detección de VMs y otros entornos controlados.

Creación de nuestro ambiente de desarrollo

Antes de abordar el tema del análisis y diseño del malware, debemos preparar nuestro laboratorio de pruebas, el cual debe consistir por lo menos en lo siguiente:

  • Maquinas virtuales: En esta serie de artículos trataremos el tema de malware para Windows, así que las máquinas virtuales usadas básicamente serán un Windows actualizado y otro sin actualizar.

Además, en la máquina con Windows actualizado podemos instalar software de seguridad.

En otra máquina virtual instalamos Windows XP y Visual Basic 6. ¿Por qué XP y Visual 6? Bueno, básicamente por 2 cosas: XP es liviano y prácticamente todo el código escrito en VB6 sigue funcionando en los Windows actuales.

  • Herramientas de desarrollo / análisis: IIS 5.0 o Apache con PHP, UPX, VBSWG, Wireshark.

Planeación

Escribir malware es como escribir cualquier otro tipo de programas, es decir, se debe de seguir un proceso de desarrollo: planeación -> pruebas de calidad -> liberación a producción.

Este proceso puede tender a realizarse de manera apresurada, sobre todo si el malware aprovecha un 0-day, ya que la ventana de propagación crítica será únicamente desde que se libera hasta que es descubierto el 0-day.

En la siguiente entrega, analizaremos un virus VBS creado con VBSWG.

Anuncios

Responder

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. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s