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

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… 

¿Cuáles son los países con más capacidades CNA?

Echemos un vistazo a los países con capacidades para ejecutar operaciones de destrucción o manipulación:

$ for i in `grep "Sabotage and destruction" [0-9]*.txt|awk -F: '{print $1}'`; do grep \"meta\",\"country\"\] $i|awk '{print $2}'|sed 's/\"//g';done|awk '{a[$0]++}END{for(k in a){print a[k],k}}'|sort -n 
1 KP
1 US
1 US,IL
2 IR
7 RU
$

Rusia tiene siete grupos identificados con estas capacidades; lejos de Irán, con solo dos grupos identificados… Sin duda, Rusia es el país más activo -o al menos más identificado- en este ámbito.

¿Y qué hay del ciber crimen? ¿Qué hay de los actores focalizados en intereses puramente económicos?

Podemos ejecutar una query similar a la anterior para obtener estos resultados:

1 "BY"
1 "IT"
1 "KZ"
1 "PK"
1 "RO"
1 "SA"
1 "UA"
2 "US"
3 "KP"
6 "CN"
27 "RU

De nuevo, la medalla de oro en el ámbito de la delincuencia económica se la lleva Rusia, y una vez más con mucha distancia con respecto al segundo clasificado (China).

Así que Rusia es el campeón… ¿podemos focalizarnos en sus necesidades de información?

Por supuesto. Vamos a ver qué sectores y países son los objetivos de los actores rusos. En primer lugar, vamos a por los sectores objetivo:

$ cat russia.sh
#!/bin/sh

for i in [0-9]*.txt; do
        grep -w RU $i >/dev/null
        if [ $? -eq 0 ]; then
                grep cfr-target-category $i
        fi
done |awk -F\" '{a[$8]++}END{ for(k in a){print a[k],"\x22"k"\x22"}}'|sort -n
$ ./russia.sh  >temp
$ 

Ahora preparamos los datos para dibujarlos:

$ awk '{print k++,$2,$3,$4,$1}’  temp >sectors.ru #sorry for the quick hack
$

gnuplot> set boxwidth 0.5
gnuplot> set xtics rotate by 45 right
gnuplot> unset key
gnuplot> set style fill solid
gnuplot> set title "Russian target sectors"
gnuplot> plot "sectors.ru" using 1:3:xtic(2) with boxes

Podemos comprobar que los principales objetivos de la Federación Rusa son los sectores financiero, gubernamental, defensa, energía y medios y educación. El sector relativo a medios de comunicación es muy curioso… ¿o no?

Echemos un vistazo ahora a los países objetivo; modificando el script anterior, y analizando países que han sido objetivo de al menos cinco grupos rusos -simplemente por razones de representación gráfica-, obtenemos el siguiente gráfico:

El primer objetivo ruso es… la propia Rusia. Bien, esto seguramente no es ninguna sorpresa si buceamos un poco en la inteligencia rusa (¿recordáis nuestra serie de posts sobre la comunidad de ciberinteligencia rusa? ¿Os acordáis de SORM?). Aparte de Rusia, podemos confirmar el interés de Rusia en las áreas geográficas que ya sabíamos: repúblicas ex soviéticas y ámbito OTAN, principalmente. Nada sorprendente si conocemos un poco a la inteligencia rusa.

¿Qué países están irrumpiendo en el escenario durante los últimos años?

En primer lugar, generamos un fichero de datos extrayendo el país y el año de cada grupo y etiquetándolo de forma secuencia para poderlo representar gráficamente:

#!/bin/sh
for i in [0-9]*.txt; do
	c=`grep \"country\"\] $i|awk '{print $2}'|sed s/\"//g`
	y=`grep \"date\"\] $i|awk '{print $2}'|sed s/\"//g`
	if [ ! -z $c ] && [ ! -z $y ]; then
		echo $c $y
	fi
done | awk 'BEGIN{k=1}{if (a[$1]=="") {a[$1]=k++} ; {print $2" "a[$1]" "$1 }}’

Ahora dibujamos nuestra obra de arte:

Como podemos ver, durante los últimos años KP (Corea del Norte) y, especialmente, IR (Irán), han sido particularmente activos, incrementando sus actividades junto a los países habituales (China, Rusia y Estados Unidos). Otros países que estuvieron activos durante los primeros cinco años de la última década, como SY (Siria) o IN (Indonesia) por ejemplo, ahora parecen con menor actividad o, al menos, con menos grupos identificados (ojo, los grupos identificados previamente pueden permanecer activos, ahora veremos este detalle).

Trabajo para una compañía Fortune 500. ¿Podría tener un cuadrante mágico de grupos APT?

Por supuesto. Gartner posiciona a los proveedores tecnológicos de un mercado específico y los representa en el Magic Quadrant (https://www.gartner.com/en/research/methodologies/magic-quadrants-research). Este cuadrante clasifica a cada proveedor en cuatro categorías (líderes, visionarios, jugadores de nicho y desafiadores -las traducciones no son las más bonitas-) analizando su “capacidad para ejecutar” y su “completitud de visión”.

Para nuestro cuadrante, consideraremos la “capacidad para ejecutar” como el periodo que cada actor lleva activo y la “completitud de visión” como la variedad de objetivos del actor. ¿Por qué este criterio? Creemos (más o menos, recordemos que esto es un post, no un artículo de IEEE) que la capacidad para ejecutar puede calcularse como los años que un actor lleva vivo, esto es, que ha estado ejecutando operaciones. No sería del todo correcto: como hemos dicho, los datos obtenidos de ThaiCERT marcan su fecha de “fundación”, no el periodo que han estado vivos… sería necesario un dato “last time seen” o similar para estimar la capacidad real. Por otro lado, la completitud de visión la calculamos como la suma de objetivos (sectores y países) del actor, con un criterio muy simple: cuantos más objetivos tienes, más completa es tu visión… quizás no sea lo más estricto desde un punto de vista académico, pero recordemos lo que hemos dicho del artículo de IEEE :)

Siguiendo este criterio, podemos dibujar la primera versión de nuestro cuadrante mágico; en primer lugar, un script sencillo para obtener la información, extrayendo de cada actor su nombre, país (luego veremos para qué estamos interesados en el país), suma de sectores y países objetivo y años activo, o años desde que se descubrió su actividad:

$ cat extract.sh
n=`ls [0-9]*.txt|wc -l`
for i in $(seq 1 $n);do
        t=`grep "$i,\"value" $i.txt|awk -F"\t"  '{print $2}'|sed 's/\"//g' `
        name=`echo $t|awk -F, '{print $1}'`
        country=`grep \"country\"] $i.txt|awk '{print $2}'|sed 's/\"//g' `
        date=`awk 'index($1,"date")>0 {print $0}' $i.txt |awk '{print $2}'|sed 's/\"//g' `
        y=`date +%Y`
        ability=`expr $y - $date` 
        sectors=`grep -w cfr-target-category $i.txt|wc -l`
        countries=`grep -w cfr-suspected-victims $i.txt|wc -l`
        completeness=`expr $sectors + $countries` 
        echo $name:$pais:$completeness:$ability|awk -F: '{if($3>0 && length($2>0) && $4>=0){print $0}}'
done
$ ./extract.sh >data 2>/dev/null
$

Este código genera una salida con el siguiente formato:

$ head data
Aggah::31:2
Allanite::3:3
APT 3:CN:17:13
APT 4:CN:6:13
APT 5:CN:5:13
APT 6:CN:2:9
APT 12:CN:9:11
APT 16:CN:7:5
APT 17:CN:21:11
APT 19:CN:12:7
$

Formateamos el archivo donde hemos volcado los resultados:

$ awk -F: '{print $3" "$4" ""\x22"$1"\x22"}' data >quadrant
$

Y nos configuramos un cuadrante mágico “bonito”: 

$ cat quadrant.plot 
set title "APT groups" 
set xlabel "Completeness of vision"
set ylabel "Ability to execute"
set format y ""
set format x ""
unset key
set parametric
set arrow 1 from 40,0 to 40,25 nohead
set arrow 2 from 0,12.5 to 80,12.5 nohead
plot 'quadrant'  w labels point pt 7 offset char 1,1 
$

Trabajo realizado, como podemos ver:

Seguro que no es el Magic Quadrant más bonito para nuestro equipo de marketing (para eso está el diseño), pero al menos sí que es adecuado para sacar conclusiones interesantes: Turla es un LÍDER, como APT28 o Equation Group. Una vez más podemos decir, de forma completamente objetiva -no sé si correcta, pero objetiva- por qué Rusia es la campeona cuando hablamos de APT: dos de sus grupos en la parte superior derecha del cuadrante (además de lo que hemos visto de capacidades CNA, delincuencia económica…). Otra frase para las charlas de APT.

Entre los grupos rusos, en la Champions League, ¿cómo sería este cuadrante mágico? Antes, en el script anterior, hemos incluido el código de país para cada grupo, útil para dibujar un cuadrante mágico por país. Por ejemplo, el ruso:

$ awk -F: '$2=="RU" {print $3" "$4" ""\x22"$1"\x22"}' data >quadrant.russia
$

Cambiando el título en el fichero .plot anterior y cargando este nuevo archivo, obtenemos el cuadrante mágico de grupos APT rusos:

Como Turla es un actor ruso y era el líder en el cuadrante global, y como Rusia tiene también grupos en la parte inferior, no es necesario ajustar los parámetros para dibujar el cuadrante ruso; si hacemos lo mismo para obtener el cuadrante mágico de grupos chinos es necesario ajustar parámetros y obtenemos este cuadrante:

NetTraveler es el líder chino; operativo desde 2004, y con cuatro sectores y 41 países objetivo, podemos considerarlo un actor robusto. Resiliente, como nos gusta decir ahora :)

¿Puedo obtener más frases para mis charlas?

Con un poco de ayuda de AWK y con gnuplot puedes obtener las estadísticas que necesites, desde el cuadrante mágico de otros países hasta cualquier dato -o correlación- de interés. Además, ThaiCERT mantiene otro JSON de datos relativos a herramientas usadas por los diferentes actores, así que ¡a disfrutar! 

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

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:

$ grep \"country\" [0-9]*.txt|grep -w ES
$ grep \"country\" *.txt|grep -w DE
$ grep \"country\" *.txt|grep -w IL
183.txt:["values",183,"meta","country"] “US,IL"
$

Vaya, no hay grupos españoles. Por supuesto, esto tiene una explicación técnica sencilla: los actores españoles son tan discretos que son muy difíciles de descubrir, y su OPSEC es tan buena que, en caso de ser descubiertos, no es posible una atribución clara. Seguro, por supuesto… Pero, ¿qué hay de Alemania? ¿Dónde está ahora el proyecto Rahab? ¿Y qué hay de Israel, con una triste aparición junto a USA? Stuxnet, eso sí, pero solo una entrada… Seguro que son tan buenos como los españoles: nadie puede descubrirlos, y la atribución es imposible… Otra frase para las charlas: los países más discretos pueden ser Israel o Alemania, y por supuesto España :)

¿Algún grupo tiene atribución clara?

Explotando nuestros datos, la respuesta es clara: NO. Todos tienen un grado de confianza “50”.

$ grep attribution-confidence [0-9]*.txt|awk '{print $2}'|grep -v ^\”50\"
$

Pero un momento: esto debe ser un error. ¿Cómo si no el FBI cuelga en sus posters de los más buscados a gente de Rusia, China o Irán? La atribución importa, y (opinión personal) creo que algunos grupos como APT28 deberían tener un grado confianza en su atribución más alto.

¿Cuáles son los países más atacados? ¿Y los sectores más atacados?

Una vez hemos respondido a las preguntas tontas que nos planteábamos, vamos a por las sencillas, aunque no tan tontas… En este caso, no hay que hacer ningún análisis, ya que ThaiCERT directamente muestra estas estadísticas en su portal. El país más atacado es Estados Unidos, seguido por el Reino Unido… ¡quién lo habría imaginado! :) Además, los sectores más atacados son Gobierno y Defensa. De nuevo, ¡sorpresa!

¿Cuáles son los países más activos?

De nuevo, no es necesario hacer ningún análisis… y de nuevo sin sorpresas: China, Rusia e Irán son los países más hostiles, en este orden, seguidos por Corea del Norte.

¿Cuál es el actor más estudiado?

Una query simple nos da la respuesta:

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

El resultado es “233.txt”, que corresponde a APT28, con 69 referencias en la base de datos (recordemos que APT28 era también el grupo con más sinónimos… una cosa lleva a la otra); el segundo en el ranking, con 58 referencias, es Lazarus.

¿Cuáles son los actores más antiguos? ¿Cuál es la distribución del descubrimiento o actividades de los grupos en el tiempo?

Esta cuestión es al menos algo más interesante que las anteriores… Vamos a construir e imprimir un array asociativo con nuestros datos:

$ grep \"meta\",\"date\"\] [0-9]*.txt|awk '{print $2}'|sed 's/\"//g'|awk '{a[$0]++}END{for(k in a){print k,a[k]}}' >years
$

Ahora vamos a dibujarlo para ver los resultados:

gnuplot> set boxwidth 0.5
gnuplot> plot 'years' with boxes 

Sin ser expertos, podemos ver dos grupos que se salen de lo normal,  uno con fecha 1919 y otro con fecha 1947; el primero es el GCHQ británico y el segundo es la CIA estadounidense, y en ambos casos se muestra la fecha en que ambos servicios fueron fundados. Como ningún otro actor es considerado de esta forma (por ejemplo, la fecha de Sofacy/APT28 no está fijada a 1942, año de fundación del GRU ruso), podríamos ajustar estas fechas a alguna más real. Pero como esto no es un artículo de IEEE sobre detección de anomalías, sino un simple post en un blog, es más rápido borrar ambos archivos txt y ejecutar de nuevo para ver los resultados (y fijar xtics a 1 en gnuplot):

Ahora ya podemos ver que el grupo APT más antiguo está fechado en 1996; revisando los ficheros txt, este grupo es Turla, que arrancó sus actividades en 1996. Cinco años después, en 2001, Equation Group comenzó oficialmente a operar (aunque todos sospechamos que esto probablemente no es cierto y comenzaron antes).

El número de grupos identificados operando desde 2010 crece de forma rápida; 2018 es el año en el que más grupos arrancan sus actividades, un total de 33.

¿Cuáles son las principales motivaciones de los actores hostiles?

De nuevo, los arrays asociativos son nuestros amigos:

$ grep \"motivation\", [0-9]*.txt |awk -F\" '{print $8}'|sed 's/\"//g'|awk '{a[$0]++}END{for(k in a){print k,a[k]}}'
Financial gain 32
Information theft and espionage 216
Sabotage and destruction 14
Financial crime 50
$

Sin hacktivismo, sin sorpresas… Como sospechábamos, la mayor parte de actores se focalizan en operaciones CNE, mucho más que en operaciones CNA. Más tarde sacaremos algunas conclusiones de este último tipo de actores, los que disponen de capacidades destructivas o de manipulación.

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

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? Podemos descargar un fichero en formato JSON para explotarlo nosotros mismos:

$ curl -o out.json https://apt.thaicert.or.th/cgi-bin/getmisp.cgi?o=g 

Pero estas cosas modernas como JSON son difíciles de procesar con awk, una de las herramientas de los dioses Por eso descargamos JSON.sh para convertir el archivo JSON a un formato cristiano:

$ curl -o JSON.sh https://raw.githubusercontent.com/dominictarr/JSON.sh/master/JSON.sh
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed
100 4809 100 4809 0 0 15512 0 --:--:-- --:--:-- --:--:-- 15512
$ chmod +x JSON.sh
$

Ahora parseamos el fichero JSON con el script JSON.sh:


$ cat out.json |./JSON.sh -l > work.txt

Et voilà, tenemos un fichero de texto con el que ya estamos cómodos. Pero para estar más cómodos aún lo troceamos en múltiples archivos, uno por cada actor identificado por ThaiCERT (en el fichero principal, identificado por la clave “values”):

$ n=`awk -F, 'index($1,"values")>0 {print $2}' work.txt |grep -v value| sort -n|uniq|tail -1` export n
$ for i in $(seq 1 $n);do grep "values\",$i," work.txt >$i.txt;done
$

No empecemos con la eficiencia del one-liner: se va a ejecutar una vez, así que mientras estás leyendo esta línea, ya tenemos un fichero de texto plano independiente para cada actor:

$ ls [0-9]*.txt |wc -l
327
$

Cada uno de estos 327 ficheros está compuesto por entradas de la forma “[clave]  valor”; por ejemplo:


$ cat 98.txt
["values",98,"value"] "DustSquad, Golden Falcon"
["values",98,"description"] "(Kaspersky) For the last two years we have been monitoring a Russian-language cyberespionage
actor that focuses on Central Asian users and diplomatic entities. We named the actor DustSquad and have provided private
intelligence reports to our customers on four of their campaigns involving custom Android and Windows malware. In this
blogpost we cover a malicious program for Windows called Octopus that mostly targets diplomatic entities.\n\nThe name
was originally coined by ESET in 2017 after the 0ct0pus3.php script used by the actor on their old C2 servers. We also
started monitoring the malware and, using Kaspersky Attribution Engine based on similarity algorithms, discovered that
Octopus is related to DustSquad, something we reported in April 2018. In our telemetry we tracked this campaign back to
2014 in the former Soviet republics of Central Asia (still mostly Russian-speaking), plus Afghanistan."
["values",98,"meta","synonyms",0] "DustSquad"
["values",98,"meta","synonyms",1] "Golden Falcon"
["values",98,"meta","synonyms",2] "APT-C-34"
["values",98,"meta","synonyms",3] "Nomadic Octopus"
["values",98,"meta","attribution-confidence"] "50"
["values",98,"meta","country"] "RU"
["values",98,"meta","motivation",0] "Information theft and espionage"
["values",98,"meta","date"] "2014"
["values",98,"meta","cfr-target-category",0] "Defense"
["values",98,"meta","cfr-target-category",1] "Government"
["values",98,"meta","cfr-target-category",2] "Media"
["values",98,"meta","cfr-suspected-victims",0] "Afghanistan"
["values",98,"meta","cfr-suspected-victims",1] "Kazakhstan"
["values",98,"meta","refs",0] "https://apt.thaicert.or.th/cgi-bin/showcard.cgi?u=982ea477-0c28-490e-87d6-3f43da257cae"
["values",98,"meta","refs",1] "https://securelist.com/octopus-infested-seas-of-central-asia/88200/"
["values",98,"meta","refs",2] "https://www.zdnet.com/article/extensive-hacking-operation-discovered-in-kazakhstan/"
["values",98,"related",0,"dest-uuid"] "e74394ee-e4ab-4642-aca4-fa84d0dcabbf"
["values",98,"related",0,"tags",0] "estimative-language:likelihood-probability=\"almost-certain\""
["values",98,"related",0,"type"] "uses"
["values",98,"related",1,"dest-uuid"] "3d3bf55f-402e-4122-a52b-196aed8e6507"
["values",98,"related",1,"tags",0] "estimative-language:likelihood-probability=\"almost-certain\""
["values",98,"related",1,"type"] "uses"
["values",98,"related",2,"dest-uuid"] "7ff6da6a-d13a-42db-91ac-ac6c3915f3d0"
["values",98,"related",2,"tags",0] "estimative-language:likelihood-probability=\"almost-certain\""
["values",98,"related",2,"type"] "uses"
["values",98,"uuid"] “982ea477-0c28-490e-87d6-3f43da257cae”
$

Ya tenemos todo listo para empezar a analizar los archivos y obtener resultados. Vamos allá.

Los IOC han muerto, ¡larga vida a los IOC!

Un indicador de compromiso (IOC) se define como una pieza de información que puede utilizarse para identificar el posible compromiso de un entorno: desde una simple dirección IP hasta un conjunto de tácticas, técnicas y procedimientos usados por un atacante en una campaña. Aunque cuando hablamos de IOC siempre tendemos a pensar en indicadores como IP o dominios, el concepto va más allá, y en función de su granularidad, podemos encontrar tres tipos de indicadores:

  • Indicadores atómicos: los que no pueden ser descompuestos en partes más pequeñas sin perder su utilidad, como una dirección IP o un nombre de dominio.
  • Indicadores calculados: los que se derivan de datos implicados en un incidente, como el hash de un fichero.
  • Indicadores conductuales: los que a partir del tratamiento de los anteriores, permiten representar el comportamiento de un atacante, sus tácticas, técnicas y procedimientos (TTP).
[Read more…]

Seguridad en Unix y redes 2.1′

AVISO: este post es un poco spammer…

Dice la canción que veinte años no es nada pero, sinceramente, algo sí que es, y desde luego te da tiempo a hacer muchas cosas (y a volver con la frente marchita).

Este año hace veinte que acabé la carrera y por tanto se cumple el vigésimo aniversario de mi PFC (Proyecto Final de Carrera, que ahora con Bolonia no tengo muy claro cómo se llama), un trabajo sobre seguridad en Unix y redes que empezó focalizado en la red de la Universidad Politécnica de Valencia y que luego anonimicé, generalicé y liberé. Para celebrar que nos hacemos viejos, y por algún tema personal que no viene al caso, he hecho una pequeña tirada impresa de la última versión disponible del documento, sólo apta para los amantes del retrocomputing…

[Read more…]

Tácticas CNA: una primera propuesta

Hoy toca un artículo doctrinal y algo metafísico…. Vamos, algo denso. Avisados estáis :)

Dentro las operaciones CNO (Computer Network Operations) encontramos tres tipos de capacidades o acciones: CND, CNA y CNE (Defensa, Ataque y Explotación respectivamente); mientras que CND trata obviamente de la defensa de entornos tecnológicos frente a ataques también tecnológicos -no contra un misil que impacta en un CPD-, las operaciones y capacidades CNE se focalizan en la adquisición y explotación de información a través de redes y ordenadores: lo que actualmente estamos denominando ciberespionaje. Por su parte, CNA, Computer Network Attack, hace referencia a lo que en muchas ocasiones se identifica con las operaciones puramente destructivas (las famosas “4D”: disrupt, deny, degrade and destroy).

[Read more…]

(Ciber) GRU (XIV): conclusiones

Hemos analizado en este trabajo principalmente la estructura, objetivos y TTP del GRU en el ámbito ciber, a partir de la información que durante 2018 ha visto la luz y que ha permitido obtener un conocimiento detallado del Servicio y sus actividades no sólo a servicios de inteligencia, sino también a pobres analistas como nosotros que no disponen de todas las capacidades de las que puede disponer un estado; con lo que sabemos, incluso analizando fuentes públicas, tenemos acceso a información que en algunos casos debe considerarse sensible y que sin duda está siendo -o ha sido- analizada por servicios de todo el mundo, empezando por la propia Rusia.

[Read more…]

(Ciber) GRU (XIII): preguntas y conspiraciones

Todo lo sucedido en 2018 en relación al GRU, tanto las acusaciones públicas de diferentes gobiernos como las investigaciones privadas en relación a sus actividades, nos hacen plantearnos diferentes preguntas; seguramente todas ellas tengan respuesta, pero no la conocemos, o al menos no a ciencia cierta… por eso, también podemos hablar de conspiraciones a la hora de responder a estas cuestiones. Vamos a verlas en este apartado.

¿Cómo se ha obtenido esta información?

No lo sabemos. Desde luego, de fuentes públicas no: seguramente estamos hablando de información obtenida de fuentes humanas, por ejemplo, por un posible topo en el Servicio… o en otro servicio que conozca bien al GRU.

Algunos analistas relacionan con las informaciones que han visto la luz este año la detención, en diciembre de 2016, entre otros de Sergei MIKHAILOV (Coronel del FSB, Director del Segundo Departamento del ISC), Dmitry DOKUCHAEV (Comandante del FSB, adscrito al mismo departamento que MIKHAILOV y buscado además por el FBI) y Ruslan STOYANOV (analista de Kaspersky, pero anteriormente ligado al FSB). Acusados todos ellos de alta traición a la patria y que podrían haber vendido información sensible a la inteligencia estadounidense. ¿Podrían haber traicionado estas personas al FSB, y por extensión al GRU, facilitando datos de operaciones, agentes, técnicas… usadas por el Servicio contra intereses extranjeros? ¿Podría tener un topo aún activo alguno de los servicios rusos que venda esta información a otros servicios de inteligencia? Quién lo sabe…

[Read more…]

(Ciber) GRU (XII): OPSEC

Los miembros del GRU expulsados de Holanda aplicaban medidas básicas de OPSEC, como llevarse ellos mismos la basura de la habitación del hotel; no obstante su detención ha puesto de manifiesto la falta de otras medidas de seguridad, igualmente básicas, que sin duda habrán dado mucho que hablar en el Servicio. Quizás las operaciones de proximidad -en Holanda al menos- no eran consideradas como de riesgo por el GRU, quizás son fallos humanos por incumplimiento de normativa… quién sabe. El hecho cierto es que esta OPSEC pobre ha sacado a la luz información sobre identidades, objetivos, TTP… del Servicio que nos han permitido conocerlo un poco mejor durante 2018 y que, de haber actuado de otra forma, estas evidencias no lo serían tanto.

Cuando hablamos de OPSEC, más allá de modelos y metodologías formales, hablamos siempre de las tres C [1]: cover, concealment, compartmentation. La cobertura de una operación debe permitir justificar dónde estás (estado) y qué estás haciendo (acción), la ocultación debe permitir ocultar actividades o identidades relacionadas con la operación y, por último, la compartimentación, como línea de defensa final, debe minimizar el impacto en caso de que las cosas vayan mal, no afectando a otras personas, operaciones, etc. [Read more…]

(Ciber) GRU (XI): TTP

Las informaciones que han salido a la luz en los últimos meses, en especial la acusación de Mueller, han identificado diferentes tácticas y técnicas del GRU, algunas de ellas conocidas previamente -y en muchos casos ligadas a APT28- y otras que, aunque todos nos podíamos imaginar, nadie había confirmado con anterioridad. Se muestran resumidas en la siguiente tabla dichas TTP, basadas en una adaptación de las tácticas y técnicas que publica MITRE en su framework ATT&CK:

[Read more…]