Análisis de malwares y Threat Intelligence
Introducción
A medida que se analizan los programas maliciosos y los incidentes de ciberseguridad, ha ido surgiendo una nueva disciplina: la inteligencia sobre amenazas (Threat Intelligence). Esta disciplina se basa en capitalizar conocimientos tales como los nombres y las distintas versiones de los programas maliciosos o malwares, las técnicas que utilizan, los grupos de atacantes que los emplean y a los que se atribuyen. El primer informe en el que se detallaba el malware a través del prisma de un grupo de atacantes vinculado a un país fue el «APT1 Exposing One of China’s Cyber Espionage Units» (APT1 Exponiendo Una de las Unidades de Ciber Espionaje China), de Mandiant, en 2013.
Este informe detalla el modus operandi del grupo APT1 (unidad militar china conocida como la APT1), así como un conjunto de trazas dejadas por este grupo durante sus intrusiones. Estas trazas se denominan «indicadores de infección». Esto sienta las bases de la inteligencia sobre amenazas.
En los últimos diez años, esta disciplina ha experimentado una gran expansión. Este capítulo evocará la tecnología punta en este tema.
El objetivo de la inteligencia sobre amenazas es registrar, documentar y difundir toda la información sobre el modus operandi de los grupos de atacantes (ciberdelincuentes o actores vinculados a estados que los apoyan). El objetivo es compartir estos conocimientos...
Indicadores de infección (IOC)
Existen dos tipos de indicadores de infección:
-
indicadores de tipo sistema, que son dejados por el sistema cuando se ejecuta el malware.
-
indicadores de red, que son dejados por el malware cuando se conecta a sus servidores de control o cuando se pasean (pivotean) por la red interna de sus víctimas.
1. Huellas digitales y firmas de los archivos
Los primeros indicadores del sistema son las huellas digitales de los propios archivos. Existen varios tipos de huellas:
-
huellas criptográficas, que identifican de forma única un archivo.
-
huellas que permiten agrupar (clasificar en clusters) el malware.
-
huellas vinculadas a objetos o trazas que el malware deja en el sistema.
a. Huellas criptográficas
Las huellas criptográficas son cálculos condensados que identifican de forma única un archivo, sea cual sea su naturaleza. El nombre de un archivo puede modificarse, pero siempre seguirá siendo el mismo archivo si su contenido no ha cambiado.
Los tres algoritmos de cálculo de compendios más comunes hoy en día son md5, sha1 y sha256. Se recomienda utilizar el sha256.
Ejemplo de cálculo de la huella criptográfica sha256 del archivo military.exe (familia de ransomware):

De la imagen anterior, vemos que su sha256 es: 1deb1efad2c469198aabbb618285e2229052273cf654ee5925c2540ded224402.
Para calcular los compendios sha1 y md5, los comandos de Linux son sha1sum y md5sum. Si cambiamos el nombre del archivo, las huellas seguirán siendo las mismas:

Las huellas digitales son obviamente muy inestables. Si se cambia un byte, la huella también cambia.
Como ejemplo, vamos a cambiar un byte en la cabecera DOS del archivo military2.exe. Esta es la cabecera original:

Sustituimos la h minúscula de la palabra «This» por una H mayúscula utilizando el siguiente script de Python:
content = open('military2.exe','rb').read()
fw = open('military2.exe','wb')
fw.write(content)
fw.seek(0x4f) // 0x4f es el desplazamiento de h en This.
fw.write(b'H')
fw.close()
He aquí la cabecera modificada:

El nuevo cálculo del compendio sha256 es: 03b20024594e4e283d1e66df9cb0d1b81ec06c6e111014a379a8d33b321ca06d.
Es distinto al anterior.

Es interesante observar que, si el malware se recompila, su compendio cambiará....
Matriz MITRE, TTPs y Threat Actors
1. Matriz MITRE
a. Presentación
El MITRE es una organización estadounidense sin ánimo de lucro que proporciona documentación sobre las técnicas utilizadas por el malware, las herramientas y los grupos de atacantes, en varias matrices.
Cualquiera que desee contribuir puede actualizar esta documentación. Está disponible en línea en: https://attack.mitre.org
Hay tres matrices disponibles, que representan diferentes entornos en los que se producirán los ataques informáticos:
-
Empresa para entornos de oficina corporativa/SI (Sistemas de información)
-
Móviles para smartphones
-
ICS (Industrial Control Systems; Sistemas de Control Industrial) para sistemas industriales
Presentaremos la matriz ATT&CK Enterprise, ya que es la más utilizada y también está integrada en herramientas como MISP (véase la sección MISP).
La matriz describe un ataque desde varios puntos de vista llamados tácticas:
-
Reconocimiento
-
Desarrollo de recursos
-
Acceso inicial
-
Ejecución
-
Persistencia
-
Escalada de privilegios
-
Defensa Evasión
-
Acceso a credenciales
-
Descubrimiento
-
Movimiento lateral
-
Colección
-
Mando y control
-
Exfiltración
-
Impacto
Para cada táctica se describen técnicas y subtécnicas. Cada técnica tiene un ID, y cada subtécnica un subID. He aquí un ejemplo de la técnica pass-the-hash (pasar el resumen criptográfico):

La identificación es T1550.002. Corresponde a la subtécnica 002 de la ID T1550. La matriz muestra a qué corresponde la T1550 (Use Alternate Authentication Material; Utilizar material de autenticación alternativo):

El sitio permite ver los vínculos entre las técnicas (o subtécnicas) y las herramientas (que pueden ser o no programas maliciosos). También muestra los vínculos entre los Intrusion Sets (conjuntos de intrusión) y los Threat Actors (actores de amenazas) (ver la sección Actores de amenazas y conjuntos...
Reglas y detecciones
1. Introducción
Los TTP sirven para caracterizar a los grupos de atacantes. Así, es útil poder detectarlos, ya que al atacante le resultará difícil empezar de cero.
Por lo tanto, la detección se hace en estos TTP. Examinaremos la detección en red utilizando la sonda de código abierto Suricata y explicaremos cómo crear reglas de detección. Del mismo modo, sobre los archivos, la herramienta YARA puede utilizarse tanto para la detección como para la identificación y el seguimiento de los actores.
2. Suricata
a. Introducción
Suricata es una sonda de detección de intrusos de código abierto desarrollada por la OSIF (el organismo de supervisión de las instituciones financieras). Su motor de detección está basado en reglas. Puede descargarse en: https://suricata.io/
He aquí un ejemplo de regla que detecta el tráfico DNS que resuelve el dominio olinaodi.com:
alert dns $HOME_NET any -> any any (msg:"ET MALWARE SunOrcal Reaver
Domain Observed (olinaodi .com) in DNS Lookup";
dns.query;
content:"olinaodi.com";
fast_pattern;
nocase; endswith;
classtype:trojan-activity;
sid:2024989; rev:4;
metadata:affected_product Windows_XP_Vista_7_8_10_Server_32_64_Bit,
attack_target Client_Endpoint, created_at 2017_11_14, deployment
Perimeter, former_category MALWARE, malware_family SunOrcal,
malware_family Reaver, performance_impact Low, signature_severity
Major, updated_at 2022_07_22;)
El formato de una regla es el siguiente:
acción protocolo ip_fuente puerto_fuente ip_destino
puerto_destino *( palabra_clave: valor; *)
En el marco de nuestro ejemplo, la acción consiste en generar una alerta que se escribirá en el archivo /var/log/suricata/eve.json. La vigilancia se realiza sobre el protocolo DNS desde la red interna hacia la externa, independientemente del puerto de destino o de la dirección IP.
El mensaje de alerta es: «ET MALWARE SunOrcal Reaver Domain Observed (olinaodi .com) in DNS Lookup». La supervisión se realiza en las consultas DNS utilizando la palabra clave dns.query y buscamos la cadena de caracteres olinaodi.com. La palabra clave nocase se utiliza para no tener en cuenta las mayúsculas ni minúsculas....
Fuentes de los datos
1. Presentación
Existen varias fuentes de datos disponibles en Internet que almacenan indicadores de infección. Estas plataformas pueden utilizarse para enlazar y rastrear los TTP de grupos de atacantes.
Existen varios tipos de fuentes:
-
escáneres (scanner) y crawlers (rastreadores),
-
DNS pasivos,
-
repositorios de malware,
-
fuentes que reagrupan todas estas funciones.
Para todas las fuentes que vamos a presentar, se puede crear una cuenta con el fin de realizar investigaciones. Todas las fuentes de datos disponen de sus propias API web con cuotas de consulta o de resultados. Estas plataformas también proporcionan librerías Python o un cliente de línea de comandos. Las investigaciones se llevan a cabo utilizando fuentes de código abierto (OSINT - Open Source Intelligence; Inteligencia de fuentes abiertas).
2. Escáneres
a. Definición
Estas plataformas exploran todas las direcciones IPv4 en diferentes puertos y recolectan varios tipos de datos.
-
direcciones IP,
-
datos de geolocalización,
-
servicios y aplicaciones accesibles junto con sus distintas versiones,
-
certificados SSL,
-
diferentes tipos de hashes (mumurhash3/sha1/md5) para las respuestas a peticiones HTTP,
-
nombres de dominio,
-
los AS (Autonomous System) a los que pertenecen las direcciones IP.
Cada escáner dispone de su propio sistema de consultas. Estos datos nos permitirán rastrear infraestructuras específicas y, al mismo tiempo, grupos de atacantes. Si un atacante utiliza una determinada configuración de servidor web y ha sido explorado por estos servicios, será posible encontrar otras máquinas con la misma configuración.
Presentaremos tres servicios:
-
Shodan.io
-
Onyphe.io
-
Censys.io
b. Shodan.io
Se puede acceder al portal Shodan a través de la URL: https://www.shodan.io/

Las consultas se realizan en el campo de búsqueda. Para buscar una dirección IP, basta con introducirla en el campo de búsqueda y obtendrá el resultado.
Tomemos el ejemplo de la dirección IP 203.124.43.229, que ha sido descrito como perteneciente a un C&C de Dropper Elephant en este artículo: https://unit42.paloaltonetworks.com/multiple-artradownloader-variants-used-by-bitter-to-target-pakistan/

Hay una serie de datos interesantes:
-
los puertos y servicios accesibles,
-
el histórico de los puertos abiertos.

Es interesante ver los cambios de configuración...
Plataformas de inteligencia sobre amenazas
1. Introducción
Se han desarrollado varias aplicaciones de software de código abierto con el objetivo de almacenar, manipular y enriquecer los datos que hemos presentado. Vamos a presentar dos de las más utilizadas:
-
MISP
-
Yeti
Echemos un vistazo a las diferentes funcionalidades de las plataformas y, sobre todo, a las características especiales de cada una. Todas ellas son aplicaciones web que pueden instalarse en un servidor o utilizarse en un contenedor Docker.
2. MISP
a. Presentación
MISP es una plataforma web multiusuario desarrollada en PHP, basada en MariaDB con numerosos módulos desarrollados en Python. Su mantenimiento corre a cargo de CIRCL (Computer Incident Response Center Luxembourg, en este caso CERT Luxemburgo) disponible en: https://github.com/MISP/MISP. Las instrucciones de instalación están disponi bles en GitHub: https://github.com/MISP/MISP/tree/2.4/INSTALL. Los módulos Python también están disponibles en el GitHub del proyecto: https://github.com/MISP/misp-modules. Hay máquinas virtuales disponibles para entrenarse o hacer pruebas en: https://vm.misp-project.org
Las instancias del MISP pueden vincularse entre sí para intercambiar información.
b. Características
Los indicadores se agrupan por eventos. Un analista creará un evento y le asociará indicadores. Los eventos que tiene derecho a ver el usuario se encuentran en la página de inicio:

Haga clic sobre la ID de un acontecimiento para acceder a su información.

Los indicadores están en el evento.

Si un indicador se encuentra en varios eventos, puede ver una lista de los eventos a los que pertenece.

Esto le permite dibujar un gráfico de correlación:

Para crear un evento, pulse en Add Event (Agregar evento):


En el campo Event Info (Información del evento), introduzca un título:

Puede añadir indicadores. Para ello,
utilice la opción Freetext
(Texto libre):

Puede crear un evento (evento) que contenga la lista de nombres de dominio obtenidos en RiskIQ de la IP 134.119.205.21:

Haga clic en Submit (Enviar). La aplicación detecta automáticamente el tipo de indicador:

Haga clic en Submit Attributes (Enviar atributos). El evento se crea con los nuevos indicadores:

MISP también propone la noción...
Resumen
La inteligencia sobre amenazas es un área de especialización por derecho propio, y merecería un libro entero. A lo largo de los años, y como consecuencia de los incidentes de seguridad, se han producido avances en este campo, y hoy en día disponemos de numerosas herramientas y documentación para estructurar los datos adquiridos durante estas investigaciones. Los atacantes también han progresado, haciendo de la inteligencia sobre amenazas, o Threat Intelligence, una parte necesaria del arsenal de los defensores.
El intercambio de información, como los indicadores de infección, es esencial. La historia ha demostrado que los atacantes suelen utilizar la misma infraestructura (mismas direcciones IP o nombres de dominio) para infectar diferentes objetivos. Si estos objetivos son capaces de intercambiar estos indicadores y actúan activamente para bloquear la infraestructura del atacante antes de que pueda ser utilizada, esto impondrá un coste (financiero) adicional a los atacantes.