Malware: ejecutable que tiene una naturaleza maliciosa y realiza acciones dañinas en un sistema
informático de forma intencionada y sin el conocimiento del usuario.
Acciones de un malware: Espiar en el objetivo usando: RATs, Keyloggers. Encriptar o destruir datos:
Ransomware.
Clasificaciones de malware:
De acuerdo a su modo de propagarse:
Virus: código malicioso que se copia a si mismo infestando otros programas del sistema.
o Virus de Boot del Sector: infesta la partición de booteo o MBR de un disco duro por eso,
aunque se elimine del sistema, si se encuentra en esta zona siempre vuelve.
o Virus de fichero: se inyecta en los programas ejecutables.
o Virus polimórficos y metamórficos: cambia de forma después de cada inyección para evitar
ser detectado
Macro
Gusano: se caracteriza por propagarse y autorreplicarse sin necesidad de intervención
humana. No requieren un archivo huésped para realizar estas acciones.
Troyano: contiene un segmento malicioso que se adjunta a un programa de aplicación u
otro componente ejecutable
De acuerdo a su propósito:
Dropper: Su principal propósito es descargar o soltar otro malware (sin internet)
Downloader: descarga e instala código malicioso desde internet una vez obtienen acceso al
sistema.
Adware
Backdoor: Se instala en un dispositivo y permite acceso al atacante. Permite conectarse sin
autenticación y ejecutar comandos en el sistema.
Botnet: similar al backdoor, en este caso es para infestar un sistema de computadoras completo
recibiendo las mismas ordenes desde un único centro de control.
Ransomware: restringe el acceso a parte o totalidad del sistema. Una vez infestada la maquina
ya no se puede utilizar de forma normal y su propietario recibe la petición de un rescate
económico para eliminar esas restricciones. (Ejemplo: Cryptolocker, Wannacry)
Análisis de malware: Proceso de analizar un malware o muestra y extraer tanta información como sea
posible del mismo. La información extraída debe ayudar a comprender el alcance de la funcionalidad del
programa maligno, como se infesta el sistema y como defenderse de ataques similares en el futuro.
Objetivos del análisis de malware:
- Conocer cómo se comunica con el atacante
- Detectar entradas de registro, llaves y nombres de fichero para generar firmas que puedan ser
usadas en futuras detecciones
- Señalizaciones en amarillo del propio concepto
Tipos de análisis de malware:
Análisis de comportamiento: Proceso que monitorea y analiza el malware durante su ejecución.
Análisis estático: se analiza el malware sin ejecutarlo. El objetivo es extraer tanta metadata
como sea posible.
Análisis dinámico: proceso de ejecutar y analizar su funcionalidad y comportamiento. El objetivo
es comprender exactamente como y que hace el malware durante su ejecución. Se realiza a
través de un “debugueador”.
Análisis de código: Proceso de analizar y realizar ingeniería inversa al código ensamblador. Se
pude realizar de manera dinámica o estática.
<Otros conceptos>
Cuarentena: proceso de aislamiento de archivos y aplicaciones sospechosas de contener malware para
evitar una mayor ejecución y posible daño al sistema.
Payload y Exploit: partes del código de malware responsable de realizar acciones maliciosas
Formato Portable Ejecutable: describe la estructura de archivos ejecutables y de bibliotecas en la
familia de sistemas operativos de Windows.
Se denomina portable por la versatilidad del formato en numerosos ambientes de arquitecturas de
software de SO
Estructura:
Dos Header: contiene información como el nombre y número mágico (4D 5A o MZ). También las
extensiones como exe, scr, sys, dll, cpl.
Dos Stub: Pequeña pieza de código que se ejecuta al inicio de la aplicación e imprime el mensaje
“This program cannot be run in DOS mode”
PE Header: Contiene información del SO requerido para ejecutar la aplicación. Nos permite
conocer la funcionalidad del malware y como interactúa con el sistema operativo.
Tabla de secciones: contiene el listado de las secciones del ejecutable
Importancia de PE Header:
• Contiene toda la información importante y necesaria que requiere el sistema operativo para la
ejecución de la muestra. (opcional header, tabla de secciones, donde será cargado en memoria
importante para un análisis dinámico)
• Contiene información que especifica donde el ejecutable necesita ser cargado en memoria.
(importante para un análisis dinámico)
• Contiene las bibliotecas que el ejecutable requiere para ser cargado (funciones a las que llama,
indica las funcionalidades de esta muestra)
• Contiene información que especifica donde la ejecución comienza (punto de entrada)
Secciones del PE Header:
.code/.text: código ejecutable
.data: almacena datos (lectura y escritura)
.idata: almacena la tabla de importaciones
.edata: almacena la tabla de exportaciones
.rsrc: almacena los recursos
Packer: Es un software que se desempaca a sí mismo en memoria cuando el ‘fichero empaquetado”
es ejecutado. Normalmente utilizado para hacer los ficheros más pequeños. Hacen más difícil la
ingeniería inversa y dejan menor huella en el dispositivo infestado.
Crypter: tipo de malware que encripta, ofusca y manipula un programa maligno para hacerlo más
difícil de detectar por los antivirus e investigadores de malware. Se clasifican en:
- Dinámico: paquete de encriptación que es configurable para cada cliente que lo utiliza
- Polimórfico: usan algoritmos del “estado del arte” usando variables, datos, llaves y
decodificadores aleatorios. Un código de entrada nunca produce un mismo fichero compilado.
- Protector: software que pretende prever la ingeniería inversa y su monitoreo mediante la
aplicación de varias capas de protección sobre la carga maligna.