Explotando datos de APT for fun and (no) profit (III): análisis (no tan) simple

Entradas de la serie “Explotando datos de APT for fun and (no) profit”:
=> I: adquisición y procesamiento
=> II: análisis simple
=> III: análisis no tan simple
=> IV: conclusiones

Una vez que hemos respondido a algunas preguntas tontas o simplemente sencillas, es el momento de plantearnos algunas más complejas, así que empecemos…

¿Los actores con capacidades CNA están incrementando sus actividades en los últimos años?

En las preguntas simples hemos identificado que el sabotaje o la destrucción no son las motivaciones más habituales en los actores de la amenaza. Pero estamos interesados en ellos, por lo que veamos sus actividades en el tiempo:

for i in `grep "Sabotage and destruction" [0-9]*.txt|awk -F: '{print $1}'`; do grep \"meta\",\"date\"\] $i|awk '{print $2}'|sed 's/\"//g';done|awk '{a[$0]++}END{for(k in a){print k,a[k]}}’ >years.cna

Dibujando los resultados, tenemos:

gnuplot> set boxwidth 0.5
gnuplot> set xtics 1
gnuplot> set ytics 1
gnuplot> set yrange [0:5]
gnuplot> plot 'years.cna' with boxes

Desde 2012, el número de actores con capacidades CNA -o al menos su salto a la fama- se ha incrementado de forma considerable: de 14 grupos totales, 9 han arrancado sus actividades en los últimos ocho años, por lo que podríamos decir que es una tendencia al alza. Por curiosidad, el actor más antiguo con capacidades CNA empezó en 2001. ¿Adivinamos su nombre? Efectivamente, Equation Group… 

[Read more…]

Explotando datos de APT for fun and (no) profit (II): análisis simple

Entradas de la serie “Explotando datos de APT for fun and (no) profit”:
=> I: adquisición y procesamiento
=> II: análisis simple
=> III: análisis no tan simple
=> IV: conclusiones

Con la información ya procesada y lista podemos empezar el análisis por la parte mas sencilla: las preguntas tontas y las preguntas simples que en muchas ocasiones nos planteamos. Allá vamos.

¿Cuáles son los grupos con más sinónimos?

La pregunta más tonta que siempre me he planteado es por qué usamos tantos nombres diferentes para el mismo actor. ¿Quién tiene el privilegio de ser el grupo con más nombres? Veamos:


$ for i in [0-9]*.txt; do c=`grep synonyms\", $i|grep -vi operation|wc -l `; echo $c $i;done |sort -n|tail -1
18 233.txt
$

El resultado es “233.txt”, que corresponde a APT 28, con 18 sinónimos; el segundo clasificado, con 16 nombres diferentes, es Turla. Casualmente, ambos de Rusia (veremos luego algunas curiosidades de Rusia).

Aparte de esto, una opinión personal: ¡18 nombres para el mismo grupo! Definitivamente, y una vez más, necesitamos un estándar para los nombres de actores hostiles. Esta puede ser tu primera frase cuando des una charla de APT: donde está un comité ISO cuando se le necesita?

¿Qué grupos son de mi país?

Aparte de los actores que todos tenemos en mente (Rusia, China…), ¿tenemos grupos españoles? ¿Tenemos grupos de otros países relevantes? El código ISO 3166-1 para España es ES, por lo que podemos buscar actores españoles -y de otros países- con una orden simple:

[Read more…]

Explotando datos de APT for fun and (no) profit (I): adquisición y procesamiento

Entradas de la serie “Explotando datos de APT for fun and (no) profit”:
=> I: adquisición y procesamiento
=> II: análisis simple
=> III: análisis no tan simple
=> IV: conclusiones

Cuando asistimos a charlas relacionadas con APT -o las damos-, a veces oímos frases como “la mayor parte de los actores se focalizan en robo de información” o “Rusia es uno de los actores más activos en el panorama”. Pero, ¿de dónde vienen estas frases? Hemos pasado una noche entera explotando datos relativos a APT por diversión (y for (no) profit) para proporcionar curiosidades, hechos, datos… que puedes usar desde ya mismo en tus charlas! :)

Desde 2019 el equipo de ThaiCERT publica en PDF “Threat Group Cards: A Threat Actor Encyclopedia” y proporcionan un portal de acceso libre (https://apt.thaicert.or.th/cgi-bin/aptgroups.cgi) con toda la información relativa a estos grupos, obtenida de fuentes abiertas. En este portal, además de navegar por los diferentes grupos y sus herramientas, se presentan estadísticas acerca de sus actividades (países origen, objetivos, herramientas más usadas…), y la mayor parte de estos grupos son considerados APT (en estos momentos, 250 de 329, con la versión de base de datos actualizada a fecha 20 de octubre de 2020). Pero, ¿y si necesitamos estadísticas o correlaciones específicas que no están en la página web?

[Read more…]

Threat hunting (VIII): cazando sin salir de casa. Creación de procesos (II)

Ver entradas anteriores: I: intro 1,  II: intro 2,  III: Kibana, IV: Grafiki, V: Jupyter Notebooks, VI: Creando nuestra víctima, VII: Creación de procesos (I)

¡Feliz días, cazadores!

En el anterior artículo vimos de una manera práctica la creación de procesos y algunas variaciones que existen sobre ello.

Hoy hablaremos sobre como los actores maliciosos utilizan variaciones en la creación de procesos para evadir detecciones.

Aunque técnicas para la ejecución de código hay muchísimas, aquí nos centraremos en las que implican interacción con la API de Windows, ya que son las más usadas por el malware tanto en binarios como en documentos maliciosos.

En la técnica de ATT&CK de Mitre “Native API” podemos ver cómo una larga lista de actores han sido observados utilizando estas técnicas, y no es de extrañar, ya que ejecutar código es algo básico.

Vamos a hablar, intentando profundizar un poco, sobre dos técnicas muy diferentes:

  • Parent Process ID Spoofing (PPID Spoofing)
  • Process Hollowing
[Read more…]

Threat hunting (VII): cazando sin salir de casa. Creación de procesos

Ver entradas anteriores: I: intro 1, II: intro 2, III: Kibana, IV: Grafiki, V: Jupyter Notebooks, VI: Creando nuestra víctima.

Buenas cazadores, ¿qué tal va la caza?

Espero que hayáis tenido tiempo para jugar con vuestro laboratorio y cada vez os sintáis más cómodos realizando consultas y analizado los datos.

Como dije en el artículo anterior, ahora toca bajarse al barro y empezar a entender qué es lo que está pasando en nuestro laboratorio. En este caso vamos a hablar de la creación de procesos, qué ocurre cuando se crea un proceso, qué formas hay de crearlos y los rastros que deja a su paso dicha creación.

Entendiendo el entorno

Windows se organiza en capas en lo que a interacción con el sistema se refiere.

Las capas superiores son con las que interactúa el usuario o los programas que él lanza, las capas inferiores las que utiliza el propio sistema operativo para funcionar.

Por motivos de seguridad, las capas superiores están bien documentadas y Windows ofrece facilidades para interactuar con ellas, pero con las capas inferiores la cosa cambia, no están documentadas y debido a la complejidad de su funcionamiento, es muy difícil o directamente no posible por seguridad.

[Read more…]

Threat hunting (VI): cazando sin salir de casa. Creando nuestra víctima

Ver entradas anteriores: I: intro 1, II: intro 2, III: Kibana, IV: Grafiki, V: Jupyter Notebooks.

Bienvenidos a esta nueva entrada sobre nuestro laboratorio doméstico, que poco a poco va creciendo más y más.

En este artículo se hablará sobre la creación de una máquina de pruebas a la que poder hacer todo tipo de perrerías sin miedo, y se abordarán las configuraciones necesarias para registrar todo lo que pasa en ella.

En la segunda entrada se habló de los repositorios de eventos que existen, más concretamente del proyecto Mordor y del repositorio EVTX-ATTACK-SAMPLES.

Estos repositorios son muy útiles para poder entender y aprender sobre cómo se comportan muchas amenazas, y facilitan mucho el trabajo, pero cuando el trabajo te lo dan hecho no se aprende igual. Con una máquina propia se pueden probar técnicas que vayan surgiendo y comprobar cómo son detectadas en el laboratorio.

Hay que tener en cuenta que no va a ser una máquina virtual en la que se debería ejecutar malware, dado que el nivel de aislamiento no va a ser el suficiente para garantizar la seguridad del equipo anfitrión.

[Read more…]

Threat hunting (V): cazando sin salir de casa. Jupyter Notebooks

Ver entradas anteriores: I: intro 1, II: intro 2, III: Kibana, IV: Grafiki.

¿Os acordáis cuando en la primera entrega hablábamos sobre lo que es y lo que no es el Threat Hunting? Pues una parte esencial de él es la generación de inteligencia.

De nada sirve que seamos los mejores detectando comportamientos anómalos. Si toda esa inteligencia adquirida no se transforma en información estructurada y repetible habremos perdido una de las partes más valiosas del proceso.

Estructurada, para que cualquiera que no sea el autor pueda utilizarla y entenderla. Repetible de la manera más cómoda posible, para que los equipos de detección puedan generar alertas con ello o para que cualquier otro analista pueda realizar las consultas de la manera más cómoda posible.

En nuestro laboratorio vamos a utilizar otra de las partes de HELK, los todo poderosos Jupyter Notebook.

[Read more…]

Sandbox evasion: Identificando Blue Teams

El pasado mes de marzo, Roberto Amado y un servidor realizamos una charla en la RootedCON 2020 titulada Sandbox fingerprinting: Evadiendo entornos de análisis. Esta se componía de dos partes, una primera en la que tratamos de clasificar entornos públicos de sandbox para análisis de malware, una segunda centrada demostrar si era posible identificar e incluso atacar a quien se encontraba analizando nuestras muestras. Dicha segunda parte es la que ocupará esta entrada.


Introducción

Durante los ejercicios de Red Team siempre es importante conocer a quién te enfrentas, sus medidas de seguridad y quien las gestiona. En este punto nos planteamos si sería viable llegar hasta el Blue Team y conocer si nuestros artefactos habían sido identificados y si seguían siendo útiles en el ejercicio.

Con este planteamiento nos centramos en las webs de análisis de malware como VirusTotal, Any.run, Hybrid Analysis… Que son consultadas continuamente por analistas de todo el mundo para buscar información sobre muestras o analizarlas. Los resultados se muestran en la interfaz web de dichas herramientas, mostrando información útil para los analistas como pueden ser direcciones IP o dominios a los que conecta, comandos ejecutados, payloads introducidos y un largo etcétera dedicado a facilitar la vida de los defensores.

Con esta información en mente, nuestro planteamiento fue encontrar vulnerabilidades en la interfaz web de estos servicios y así poder identificar a los usuarios. Para esta tarea los Cross-site scripting (XSS) fueron la opción perfecta.

[Read more…]

Cloud: diseñar la estrategia

Tras los anteriores posts (There is no cloud, it’s just… y Cloud: construir desde la seguridad), es momento de entrar en materia. Tras haber identificado qué es necesario plantearse al enfrentarse a la nube, ahora debemos desgranar los puntos a considerar al diseñar la protección de la infraestructura.

La idea de los siguientes artículos es mostrar los aspectos básicos del diseño de la estrategia, y mostrar el camino para ganar en tranquilidad cuando no se tiene el control total de una plataforma, como es el caso del cloud.

En primer lugar, recurro al dicho “más importante que tener el conocimiento, es tener el teléfono de quién lo tiene”, por lo que, para diseñar la estrategia, que mejor que basarse en referencias clave de la industria.

MITRE ATT&CK

En concreto, destaca MITRE ATT&CK, y traduzco literalmente de su web: “es una base de datos de conocimiento accesible globalmente de tácticas y técnicas de ataque basadas en observaciones del mundo real”. Es decir, recoge el conjunto de estrategias utilizado actualmente por los atacantes para entrar en los sistemas y robar la información.

[Read more…]

Threat hunting (IV): cazando sin salir de casa. Grafiki

Ver primera, segunda parte y tercera parte.


Teoría de Grafos: Análisis relacional de las Redes Sociales

Hoy traigo un artículo sobre algo muy especial para mí.

En la entrada anterior hablamos sobre la explotación de la información con Kibana y su utilidad en ver de un vistazo posible anomalías. Después de mucho trabajar con Kibana, dedicándole muchas horas a crear visualizaciones y dashboards, había una visualización que echaba de menos: ¡los grafos!

En ese sentido, hace tiempo que leí la frase “Los defensores piensan en listas. Los atacantes en grafos“.

Aunque puede levantar mucha controversia, de ser eso cierto nos dejaría a los defensores en una clara desventaja. En un mundo en el que cada vez las amenazas son más complejas, ser capaces de “unir los puntos” marca la diferencia entre encontrar nuestra amenaza o no.

De esta idea y de un aumento de mi tiempo libre por el confinamiento, surgió Grafiki. Vamos a verlo.

[Read more…]