lunes, 11 de marzo de 2019

Matriz del Mitre...

Estimados amigos de Inseguros !!!

Tanto si te dedicas a la seguridad ofensiva, al famoso Red Team, como si tus problemas son los logs, la respuesta a incidentes y la parte defensiva, el Blue Team, coincidiras conmigo en que la matriz del Mitre es algo que habrás visto en la redes, conferencias y demás.




Yo personalmente la menciono y trabajo en mis charlas, porque creo que es un framework, un marco de trabajo, una taxonomía, una biblioteca... podría darle bastantes calificativos.

En este post voy a presentaros algunos opiniones y explicaciones al más puro estilo murciano para centraros en este "mundillo" que seguro os apasiona.

En primer lugar, quien son MITRE.  Una organización, empresa, que indica en su texto de presentación: Nosotros solventamos problemas para hacer el mundo más seguro. Lejos de ser una consultora de informática, tienen distintas líneas de actuación, y solo una de ellas es la línea de trabajo dedicada a la ciberseguridad.

Desde hace 5 o 6 años han desarrollado varias matrices de datos, las conocidas como Attack en las que aglutinan conocimiento en base a técnicas, tácticas y procedimientos conocidos en el mundo del ciber...

Pero lo mejor es ver una imágen para que lo entiendas.



Como puedes ver, a la izquierda, podemos filtrar entre recursos por sistemas y desde hace poco para entornos móviles.

La matriz selecciona en distintas columnas las tácticas que se emplean, y en filar las técnicas exactas, pudiendo éstas estar en distintas tácticas. Por ejemplo, la fuerza bruta puede ser un elemento de acceso inicial, pero también de escalada de movimiento lateral.


Initial Access
Execution
Persistence
Privilege Escalation
Defense Evasion
Credential Access
Discovery
Lateral Movement
Collection
Exfiltration

Command and Control

El número de técnicas que documentan crece y es muy amplio, pero voy a dejaros dos pantallazos para que os hagáis una idea.


Si nos fijamos en la información que nos muestra, podemos ver la explicación de la técnica, como mitigar el ataque, como detectarlo !!! casi más importante que nada...

Nos muestra bibliografía relacionada, herramientas usadas, grupos de cibercriminales que las han usado, informes públicos en los que aparece esta táctica/técnica.

Al final, es una gran base de datos de conocimiento que podemos usar para muchos propósitos.

Una de las informaciones que manejo son Data Source. Qué fuentes de datos monitorizan o alertan de este ataque.

En el trabajo defensivo, el Blue Team, no solo debemos confiar en un Firewall/UTM, o en un Endpoint o EDR, o en un IDS/IPS, o en un WAF, o en... al final, debemos tener MUCHOS elementos de monitorización para detectar en mayor medida la cantidad de ataques, o intentos, o actividades maliciosas que ocurren en la red y que muchas deben ser estudiadas.

Pongo en mis charlas siempre el ejemplo de imaginar que el atacante tiene la clave de un admin de la red. Ahí ya no valen el 90% de las protecciones "habituales" en la pyme... y luego a luego solo en SOC´s muy preparados.

En la matriz de Mitre podemos encontrar muchos data source: ['File monitoring', 'Process monitoring', 'Process command-line parameters'], ['Packet capture', 'Netflow/Enclave netflow', 'Malware reverse engineering', 'Process use of network'] ['WMI Objects'] etc etc etc

Un buen atacante sería aquel que conoce y controla todas las técnicas implicadas en la matriz, y un buen defensor sería aquel que tendría la manera de detectar/mitigar/parar estos ataques.

El camino es largo amigo... y más si tienes dos o tres elementos. Como he indicado, no creo que haya ningún SOC que sea capaz de darte un 100% de Mitre, no me refiero a la seguridad, porque Mitre no recopila TODO, recopila lo que sabe...

Volvemos al ruedo. Si usas un SIEM para aglutinar la información en un SOC, ya sea este externo, interno, toda una organización o un pequeño software en una VM que nadie ve, al final, tendrás que haberte visto liado con las taxonomías. Cómo categorizar los incidentes, o mejor, los eventos, porque muchas veces el paso de evente a incidente debería ser automático, y no que necesitará la ayuda de un analista... pero bueno, esto son otras cosas.

Imagina que tienes en tu SIEM aparejadas las alarmas con técnicas del Mitre, por ejemplo, cuando un fail2ban detecta una fuerza bruta en un ssh, manda un log al siem, y aparte de los datos típicos, añade : T1078 Valids Account. En esta técnica indica que los data sources que la monitorizan son los logs de autenticación, y la monitorización de procesos, en nuestro caso son los logs de la autenticación.

No podemos decir que para todos los servicios que requieran "account" que requieran login y password tengamos monitorización, pero si sabemos que para el SSH si.

Si vinculamos todas nuestras técnicas a "técnicas Mitre" podemos hacer un estudio mensual por ejemplo, y pedirle al sistema, en base a las alertas que has generado, dame los data sources que tengo.
Tendríamos una lista de Data source, que nosotros ya sabemos, pero estos se identifican dinámicamente según las apariciones de alertas. Digamos que es una vía más de control de si estamos haciendo las cosas bien.

Esta cuestión va dirigida a la auto-evaluación de nuestras capacidades, pero antes de seguir por ahí, vamos a hablar de otro recurso no-Mitre pero muy interesante, y luego seguimos con el Mitre.


Hablo de un proyecto muy interesante para medir las capacidades del SOC a varios niveles, no solo a nivel de la capacidad de correlación, monitorización, respuesta a incidentes, sino desde todos los planos. incluyendo el organizativo, empresarial, reporting, etc. El proyecto recopila una seria de preguntas en formato Excel guiado y mediante unas fórmulas nos da el grado de madurez del servicio.

Podemos descargar gratuitamente el proyecto desde https://www.soc-cmm.com/ y realizar nuestros "self assesment".

Pero ahora volvemos al Mitre, y al concepto de medir nuestras capacidades.

Tenemos un mapa Mitre sobre el que podemos "trabajar" ubicado en : https://mitre-attack.github.io/attack-navigator/enterprise/#

Por supuesto es un proyecto que podemos bajar a nuestros servidores y así "garantizar" la seguridad del mismo. Si hacemos uso de las numerosas api´s de consulta que hay ( yo uso la api https://github.com/Cyb3rWard0g/ATTACK-Python-Client/blob/master/notebooks/Usage_Basics.ipynb del señor @Cyb3rWard0g ) podemos hacer "chulas"

Por ejemplo, a mi se me ha ocurrido usar una capa sobre la matriz original, que según el grado de madurez del data source, busque las técnicas asociadas y coloree, según un gradiente, el mayor o menor estado de la monitorización. Bien para informes, para clientes, para control interno, para tener un mapa de ataques por técnicas Mitre, por lo que sea, podemos jugar con casi todo.

Un ejemplo de json sencillo:

{
    "domain": "mitre-enterprise",
    "name": "example",
    "gradient": {
        "colors": [
            "#ffffff",
            "#ff6666"
        ],
        "maxValue": 100,
        "minValue": 0
    },
    "description": "hello, world",
    "version": "2.1", 
    "techniques": [
{
"techniqueID": "T1213",
"score": 85
},
{
"techniqueID": "T1092",
"score": 15
},
{
"techniqueID": "T1200",
"score": 10
},
{
"techniqueID": "T1119",
"score": 20
},
{
"techniqueID": "T1160",
"score": 10
},
{
"techniqueID": "T1188",
"score": 10
},

Si subimos esta capa a la matriz navegable obtenemos algo así:


Podemos usar una tabla intermedia para construir el json que vaya incrementando el valor de la detección según los data sources, pero sobre elementos distintos, para no creernos que con monitorizar el ssh estamos cubiertos, ni mucho menos. Tanto la gestión como organización de esta información es algo tedioso, que necesita de bastante dedicación, y que solo para estructuras de SOC formales con personal cualificada tendrá sentido trabajar.

Otra cosa es que como he dicho, como atacante o defensor, usas este matriz para evaluarte y guiarte en tus estudios, o en tu trabajo. 

Sin duda,  ir aumentando el grado de "control" de las técnicas es algo básico tanto para Red como para Blue.

Espero que os haya gustado la medio explicación de la matriz de Mitre y que os sirve de inspiración las distintas vías de interacción que nos permita el framework.

Hay muchas aproximaciones que podemos hacer con la matriz, como por ejemplo, usar este magnífico recurso que correla eventos de Windows con posibles técnicas de ataque.

Tenemos otros recursos en forma de aplicaciones de entrenamiento, Caldera y RedCanary, similares a Infection Monkey que vimos aquí hace años. Son colecciones de ataques basados en las taxonomías de Mitre que nos ayudan a evaluarnos, de una manera ordenada.

Muchas gracias por leerme, un saludo !!!