Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

Al investigar casos relacionados con phishing, botnets, transacciones fraudulentas y grupos de piratas informáticos criminales, los expertos del Grupo IB han estado utilizando el análisis gráfico durante muchos años para identificar varios tipos de conexiones. Los diferentes casos tienen sus propios conjuntos de datos, sus propios algoritmos para identificar conexiones e interfaces diseñadas para tareas específicas. Todas estas herramientas fueron desarrolladas internamente por Group-IB y estaban disponibles solo para nuestros empleados.

Análisis gráfico de la infraestructura de red (gráfico de red) se convirtió en la primera herramienta interna que incorporamos en todos los productos públicos de la empresa. Antes de crear nuestro gráfico de red, analizamos muchos desarrollos similares en el mercado y no encontramos un solo producto que satisficiera nuestras propias necesidades. En este artículo hablaremos sobre cómo creamos el gráfico de red, cómo lo usamos y qué dificultades encontramos.

Dmitri Volkov, CTO Group-IB y jefe de ciberinteligencia

¿Qué puede hacer el gráfico de red del Grupo IB?

Investigaciones

Desde la fundación de Group-IB en 2003 hasta la actualidad, identificar, sancionar y llevar a los ciberdelincuentes ante la justicia ha sido una de las principales prioridades de nuestro trabajo. Ninguna investigación de ciberataques estuvo completa sin analizar la infraestructura de red de los atacantes. Al comienzo de nuestro viaje, fue un “trabajo manual” bastante minucioso buscar relaciones que pudieran ayudar a identificar a los delincuentes: información sobre nombres de dominio, direcciones IP, huellas digitales de servidores, etc.

La mayoría de los atacantes intentan actuar de la forma más anónima posible en la red. Sin embargo, como todas las personas, comete errores. El objetivo principal de dicho análisis es encontrar proyectos históricos "blancos" o "grises" de atacantes que tengan intersecciones con la infraestructura maliciosa utilizada en el incidente actual que estamos investigando. Si es posible detectar "proyectos blancos", entonces encontrar al atacante, por regla general, se convierte en una tarea trivial. En el caso de los “grises”, la búsqueda requiere más tiempo y esfuerzo, ya que sus propietarios intentan anonimizar u ocultar los datos de registro, pero las posibilidades siguen siendo bastante altas. Como regla general, al comienzo de sus actividades delictivas, los atacantes prestan menos atención a su propia seguridad y cometen más errores, por lo que cuanto más profundicemos en la historia, mayores serán las posibilidades de una investigación exitosa. Es por eso que un gráfico de red con un buen historial es un elemento extremadamente importante en dicha investigación. En pocas palabras, cuanto más profundos sean los datos históricos de una empresa, mejor será su gráfico. Digamos que una historia de 5 años puede ayudar a resolver, condicionalmente, 1 o 2 de cada 10 delitos, y una historia de 15 años da la oportunidad de resolver los diez.

Detección de phishing y fraude

Cada vez que recibimos un enlace sospechoso a un recurso de phishing, fraudulento o pirateado, creamos automáticamente un gráfico de recursos de red relacionados y verificamos todos los hosts encontrados en busca de contenido similar. Esto le permite encontrar tanto sitios de phishing antiguos que estaban activos pero desconocidos, como otros completamente nuevos que están preparados para futuros ataques, pero que aún no se utilizan. Un ejemplo elemental que ocurre con bastante frecuencia: encontramos un sitio de phishing en un servidor con solo 5 sitios. Al revisar cada uno de ellos, encontramos contenido de phishing en otros sitios, lo que significa que podemos bloquear 5 en lugar de 1.

Buscar servidores

Este proceso es necesario para determinar dónde reside realmente el servidor malicioso.
El 99% de las tiendas de tarjetas, foros de hackers, muchos recursos de phishing y otros servidores maliciosos se esconden detrás de sus propios servidores proxy y de servicios legítimos, por ejemplo, Cloudflare. El conocimiento del backend real es muy importante para las investigaciones: se conoce el proveedor de alojamiento del que se puede acceder el servidor y es posible establecer conexiones con otros proyectos maliciosos.

Por ejemplo, tiene un sitio de phishing para recopilar datos de tarjetas bancarias que se resuelve en la dirección IP 11.11.11.11 y una dirección de tienda de tarjetas que se resuelve en la dirección IP 22.22.22.22. Durante el análisis, puede resultar que tanto el sitio de phishing como la tienda de tarjetas tengan una dirección IP de backend común, por ejemplo, 33.33.33.33. Este conocimiento nos permite establecer una conexión entre los ataques de phishing y una tienda de tarjetas donde se pueden vender datos de tarjetas bancarias.

Correlación de eventos

Cuando tenga dos desencadenantes diferentes (digamos en un IDS) con malware diferente y servidores diferentes para controlar el ataque, los tratará como dos eventos independientes. Pero si existe una buena conexión entre infraestructuras maliciosas, entonces resulta obvio que no se trata de ataques diferentes, sino de etapas de un ataque de varias etapas más complejo. Y si uno de los eventos ya se atribuye a algún grupo de atacantes, entonces el segundo también se puede atribuir al mismo grupo. Por supuesto, el proceso de atribución es mucho más complejo, así que trate esto como un ejemplo sencillo.

Enriquecimiento de indicadores

No prestaremos mucha atención a esto, ya que este es el escenario más común para el uso de gráficos en ciberseguridad: se proporciona un indicador como entrada y, como salida, se obtiene una serie de indicadores relacionados.

Identificando patrones

Identificar patrones es esencial para una caza eficaz. Los gráficos le permiten no solo encontrar elementos relacionados, sino también identificar propiedades comunes que son características de un grupo particular de piratas informáticos. El conocimiento de características tan únicas permite reconocer la infraestructura del atacante incluso en la etapa de preparación y sin pruebas que confirmen el ataque, como correos electrónicos de phishing o malware.

¿Por qué creamos nuestro propio gráfico de red?

Nuevamente, analizamos soluciones de diferentes proveedores antes de llegar a la conclusión de que necesitábamos desarrollar nuestra propia herramienta que pudiera hacer algo que ningún producto existente podía hacer. Fueron necesarios varios años para crearlo, durante los cuales lo cambiamos por completo varias veces. Pero, a pesar del largo período de desarrollo, todavía no hemos encontrado un solo análogo que satisfaga nuestras necesidades. Usando nuestro propio producto, finalmente pudimos resolver casi todos los problemas que descubrimos en los gráficos de red existentes. A continuación consideraremos estos problemas en detalle:

problema
Solución

Falta de un proveedor con diferentes colecciones de datos: dominios, DNS pasivo, SSL pasivo, registros DNS, puertos abiertos, ejecución de servicios en puertos, archivos que interactúan con nombres de dominio y direcciones IP. Explicación. Normalmente, los proveedores proporcionan tipos de datos separados y, para obtener una visión completa, es necesario comprar suscripciones de todos. Aun así, no siempre es posible obtener todos los datos: algunos proveedores de SSL pasivos proporcionan datos sólo sobre certificados emitidos por CA confiables, y su cobertura de certificados autofirmados es extremadamente pobre. Otros también proporcionan datos mediante certificados autofirmados, pero los recopilan únicamente de puertos estándar.
Nosotros mismos recopilamos todas las colecciones anteriores. Por ejemplo, para recopilar datos sobre certificados SSL, escribimos nuestro propio servicio que los recopila tanto de CA confiables como escaneando todo el espacio IPv4. Los certificados se recopilaron no solo de IP, sino también de todos los dominios y subdominios de nuestra base de datos: si tiene el dominio ejemplo.com y su subdominio www.example.com y todos se resuelven en IP 1.1.1.1, luego, cuando intentas obtener un certificado SSL desde el puerto 443 en una IP, dominio y su subdominio, puedes obtener tres resultados diferentes. Para recopilar datos sobre puertos abiertos y servicios en ejecución, tuvimos que crear nuestro propio sistema de escaneo distribuido, porque otros servicios a menudo tenían las direcciones IP de sus servidores de escaneo en "listas negras". Nuestros servidores de escaneo también terminan en listas negras, pero el resultado de detectar los servicios que necesitamos es mayor que el de aquellos que simplemente escanean tantos puertos como sea posible y venden el acceso a estos datos.

Falta de acceso a toda la base de datos de registros históricos. Explicación. Todo proveedor normal tiene un buen historial acumulado, pero por razones naturales nosotros, como cliente, no pudimos acceder a todos los datos históricos. Aquellos. Puede obtener el historial completo de un solo registro, por ejemplo, por dominio o dirección IP, pero no puede ver el historial de todo y, sin él, no puede ver la imagen completa.
Para recopilar tantos registros históricos de dominios como fuera posible, compramos varias bases de datos, analizamos muchos recursos abiertos que tenían este historial (es bueno que hubiera muchos) y negociamos con los registradores de nombres de dominio. Por supuesto, todas las actualizaciones de nuestras propias colecciones se mantienen con un historial de revisiones completo.

Todas las soluciones existentes le permiten crear un gráfico manualmente. Explicación. Digamos que compró muchas suscripciones de todos los proveedores de datos posibles (generalmente llamados "enriquecedores"). Cuando necesita construir un gráfico, sus "manos" dan la orden de construir a partir del elemento de conexión deseado, luego seleccionan los necesarios de los elementos que aparecen y dan la orden de completar las conexiones a partir de ellos, y así sucesivamente. En este caso, la responsabilidad de qué tan bien se construirá el gráfico recae enteramente en la persona.
Realizamos construcción automática de gráficos. Aquellos. si necesita crear un gráfico, las conexiones del primer elemento se crean automáticamente y luego también de todos los siguientes. El especialista sólo indica la profundidad a la que se debe construir el gráfico. El proceso de completar gráficos automáticamente es simple, pero otros proveedores no lo implementan porque produce una gran cantidad de resultados irrelevantes y nosotros también tuvimos que tener en cuenta este inconveniente (ver más abajo).

Muchos resultados irrelevantes son un problema con todos los gráficos de elementos de red. Explicación. Por ejemplo, un “dominio incorrecto” (que participó en un ataque) está asociado con un servidor que tiene otros 10 dominios asociados durante los últimos 500 años. Al agregar manualmente o construir automáticamente un gráfico, todos estos 500 dominios también deberían aparecer en el gráfico, aunque no estén relacionados con el ataque. O, por ejemplo, verifica el indicador de IP del informe de seguridad del proveedor. Normalmente, estos informes se publican con un retraso significativo y, a menudo, abarcan un año o más. Lo más probable es que, en el momento de leer el informe, el servidor con esta dirección IP ya esté alquilado a otras personas con otras conexiones, y al crear un gráfico nuevamente obtendrás resultados irrelevantes.
Entrenamos el sistema para identificar elementos irrelevantes usando la misma lógica que usaron nuestros expertos manualmente. Por ejemplo, está comprobando un dominio incorrecto, ejemplo.com, que ahora se resuelve en IP 11.11.11.11, y hace un mes, en IP 22.22.22.22. Además del dominio example.com, la IP 11.11.11.11 también está asociada con example.ru, y la IP 22.22.22.22 está asociada con otros 25 mil dominios. El sistema, como una persona, entiende que 11.11.11.11 es probablemente un servidor dedicado, y dado que el dominio example.ru tiene una ortografía similar a example.com, entonces, con una alta probabilidad, están conectados y deberían estar en el grafico; pero la IP 22.22.22.22 pertenece a hosting compartido, por lo que no es necesario incluir todos sus dominios en el gráfico a menos que haya otras conexiones que muestren que uno de estos 25 mil dominios también debe incluirse (por ejemplo, ejemplo.net). . Antes de que el sistema comprenda que es necesario romper las conexiones y que algunos elementos no se muevan al gráfico, tiene en cuenta muchas propiedades de los elementos y grupos en los que se combinan estos elementos, así como la fuerza de las conexiones actuales. Por ejemplo, si tenemos un grupo pequeño (50 elementos) en el gráfico, que incluye un dominio malo, y otro grupo grande (5 mil elementos) y ambos grupos están conectados por una conexión (línea) con muy baja fuerza (peso). , entonces dicha conexión se romperá y se eliminarán los elementos del grupo grande. Pero si hay muchas conexiones entre grupos pequeños y grandes y su fuerza aumenta gradualmente, entonces en este caso la conexión no se romperá y los elementos necesarios de ambos grupos permanecerán en el gráfico.

No se tiene en cuenta el intervalo de propiedad del servidor y del dominio. Explicación. Los “dominios malos” tarde o temprano caducan y se vuelven a comprar con fines maliciosos o legítimos. Incluso los servidores de alojamiento a prueba de balas se alquilan a diferentes piratas informáticos, por lo que es fundamental conocer y tener en cuenta el intervalo en el que un dominio/servidor en particular estuvo bajo el control de un propietario. A menudo nos encontramos con una situación en la que un servidor con IP 11.11.11.11 ahora se utiliza como C&C para un robot bancario, y hace 2 meses estaba controlado por Ransomware. Si construimos una conexión sin tener en cuenta los intervalos de propiedad, parecerá que existe una conexión entre los propietarios de la botnet bancaria y el ransomware, aunque en realidad no la hay. En nuestro trabajo, tal error es crítico.
Enseñamos al sistema a determinar los intervalos de propiedad. Para los dominios, esto es relativamente simple, porque el whois a menudo contiene fechas de inicio y vencimiento del registro y, cuando hay un historial completo de cambios de whois, es fácil determinar los intervalos. Cuando el registro de un dominio no ha caducado, pero su gestión ha sido transferida a otros propietarios, también se puede realizar su seguimiento. No existe tal problema con los certificados SSL, porque se emiten una vez y no se renuevan ni se transfieren. Pero con los certificados autofirmados, no puede confiar en las fechas especificadas en el período de validez del certificado, porque puede generar un certificado SSL hoy y especificar la fecha de inicio del certificado a partir de 2010. Lo más difícil es determinar los intervalos de propiedad de los servidores, porque sólo los proveedores de hosting tienen fechas y periodos de alquiler. Para determinar el período de propiedad del servidor, comenzamos a utilizar los resultados del escaneo de puertos y a crear huellas digitales de los servicios en ejecución en los puertos. Con esta información, podemos decir con bastante precisión cuándo cambió el propietario del servidor.

Pocas conexiones. Explicación. Hoy en día, ni siquiera es un problema obtener una lista gratuita de dominios cuyo whois contiene una dirección de correo electrónico específica, o conocer todos los dominios que estaban asociados con una dirección IP específica. Pero cuando se trata de piratas informáticos que hacen todo lo posible para ser difíciles de rastrear, necesitamos trucos adicionales para encontrar nuevas propiedades y construir nuevas conexiones.
Pasamos mucho tiempo investigando cómo podríamos extraer datos que no estaban disponibles de forma convencional. No podemos describir aquí cómo funciona por razones obvias, pero en determinadas circunstancias, los piratas informáticos, al registrar dominios o alquilar y configurar servidores, cometen errores que les permiten descubrir direcciones de correo electrónico, alias de piratas informáticos y direcciones de backend. Cuantas más conexiones extraigas, más gráficos precisos podrás construir.

Cómo funciona nuestro gráfico

Para comenzar a utilizar el gráfico de red, debe ingresar el dominio, la dirección IP, el correo electrónico o la huella digital del certificado SSL en la barra de búsqueda. Hay tres condiciones que el analista puede controlar: tiempo, profundidad del paso y limpieza.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

tiempo

Hora: fecha o intervalo en el que el elemento buscado se utilizó con fines maliciosos. Si no especifica este parámetro, el propio sistema determinará el último intervalo de propiedad de este recurso. Por ejemplo, el 11 de julio, Eset publicó reportar sobre cómo Buhtrap utiliza el exploit de día 0 para el ciberespionaje. Hay 6 indicadores al final del informe. Uno de ellos, Secure-Telemetry[.]net, se volvió a registrar el 16 de julio. Por lo tanto, si construyes un gráfico después del 16 de julio, obtendrás resultados irrelevantes. Pero si indica que este dominio se utilizó antes de esta fecha, entonces el gráfico incluye 126 nuevos dominios, 69 direcciones IP que no figuran en el informe de Eset:

  • ukrfreshnews[.]com
  • búsqueda unian[.]com
  • vesti-mundo[.]info
  • runewsmeta[.]com
  • foxnewsmeta[.]biz
  • sobesednik-meta[.]info
  • rian-ua[.]net
  • et al.

Además de los indicadores de red, inmediatamente encontramos conexiones con archivos maliciosos que tenían conexiones con esta infraestructura y etiquetas que nos dicen que se utilizaron Meterpreter y AZORult.

Lo bueno es que obtienes este resultado en un segundo y ya no necesitas pasar días analizando los datos. Por supuesto, este enfoque a veces reduce significativamente el tiempo necesario para las investigaciones, lo que suele ser crítico.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

El número de pasos o profundidad de recursividad con la que se construirá el gráfico.

De forma predeterminada, la profundidad es 3. Esto significa que todos los elementos directamente relacionados se encontrarán a partir del elemento deseado, luego se construirán nuevas conexiones a partir de cada elemento nuevo con otros elementos, y se crearán nuevos elementos a partir de los nuevos elementos del último paso.

Tomemos un ejemplo no relacionado con APT y exploits de día 0. Recientemente, se describió en Habré un interesante caso de fraude relacionado con las criptomonedas. El informe menciona el dominio thecx[.]co, utilizado por estafadores para alojar un sitio web que pretende ser un Miner Coin Exchange y una búsqueda telefónica[.]xyz para atraer tráfico.

De la descripción se desprende claramente que el esquema requiere una infraestructura bastante grande para atraer tráfico hacia recursos fraudulentos. Decidimos observar esta infraestructura construyendo un gráfico en 4 pasos. El resultado fue un gráfico con 230 dominios y 39 direcciones IP. A continuación, dividimos los dominios en 2 categorías: aquellos que son similares a servicios para trabajar con criptomonedas y aquellos que están destinados a generar tráfico a través de servicios de verificación telefónica:

Relacionado con la criptomoneda
Asociado con servicios de marcado telefónico

tenedor de monedas[.]cc
sitio de registro de llamadas[.]

mcxwallet[.]co
registros telefónicos[.]espacio

btcnoise[.]com
fone-descubrir[.]xyz

criptominero[.]ver
número-descubrir[.]info

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

limpieza

De forma predeterminada, la opción "Limpieza de gráficos" está habilitada y todos los elementos irrelevantes se eliminarán del gráfico. Por cierto, se utilizó en todos los ejemplos anteriores. Preveo una pregunta natural: ¿cómo podemos asegurarnos de que no se borre algo importante? Responderé: para los analistas a quienes les gusta construir gráficos a mano, se puede desactivar la limpieza automática y seleccionar el número de pasos = 1. A continuación, el analista podrá completar el gráfico a partir de los elementos que necesita y eliminar elementos de el gráfico que son irrelevantes para la tarea.

Ya en el gráfico, el analista dispone del historial de cambios en whois, DNS, así como los puertos abiertos y los servicios que se ejecutan en ellos.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

Phishing financiero

Investigamos las actividades de un grupo APT, que durante varios años llevó a cabo ataques de phishing contra clientes de varios bancos en diferentes regiones. Un rasgo característico de este grupo era el registro de dominios muy similares a los nombres de bancos reales, y la mayoría de los sitios de phishing tenían el mismo diseño, la única diferencia estaba en los nombres de los bancos y sus logotipos.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio
En este caso, el análisis de gráficos automatizado nos ayudó mucho. Tomando uno de sus dominios, lloydsbnk-uk[.]com, en unos segundos construimos un gráfico con una profundidad de 3 pasos, que identificó más de 250 dominios maliciosos que han sido utilizados por este grupo desde 2015 y continúan usándose. . Algunos de estos dominios ya han sido comprados por bancos, pero los registros históricos muestran que previamente estaban registrados por atacantes.

Para mayor claridad, la figura muestra un gráfico con una profundidad de 2 pasos.

Cabe destacar que ya en 2019, los atacantes cambiaron un poco sus tácticas y comenzaron a registrar no solo los dominios de los bancos para alojar el phishing web, sino también los dominios de varias empresas consultoras para el envío de correos electrónicos de phishing. Por ejemplo, los dominios swift-department.com, saudconsultancy.com, vbgrigoryanpartners.com.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

Pandilla de cobalto

En diciembre de 2018, el grupo de hackers Cobalt, especializado en ataques dirigidos a bancos, envió una campaña de correo en nombre del Banco Nacional de Kazajstán.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio
Las cartas contenían enlaces a hXXps://nationalbank.bz/Doc/Prikaz.doc. El documento descargado contenía una macro que iniciaba Powershell, que intentaría cargar y ejecutar el archivo desde hXXp://wateroilclub.com/file/dwm.exe en %Temp%einmrmdmy.exe. El archivo %Temp%einmrmdmy.exe también conocido como dwm.exe es un stager CobInt configurado para interactuar con el servidor hXXp://admvmsopp.com/rilruietguadvtoefmuy.

Imagine no poder recibir estos correos electrónicos de phishing y realizar un análisis completo de los archivos maliciosos. El gráfico del dominio malicioso nationalbank[.]bz muestra inmediatamente las conexiones con otros dominios maliciosos, lo atribuye a un grupo y muestra qué archivos se utilizaron en el ataque.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio
Tomemos la dirección IP 46.173.219[.]152 de este gráfico, construyamos un gráfico a partir de él de una sola vez y desactivemos la limpieza. Hay 40 dominios asociados a él, por ejemplo, bl0ckchain[.]ug
paypal.es.qlg6[.]pw
criptoelips[.]com

A juzgar por los nombres de dominio, parece que se utilizan en esquemas fraudulentos, pero el algoritmo de limpieza se dio cuenta de que no estaban relacionados con este ataque y no los incluyó en el gráfico, lo que simplifica enormemente el proceso de análisis y atribución.

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio
Si reconstruye el gráfico usando nationalbank[.]bz, pero desactivando el algoritmo de limpieza del gráfico, contendrá más de 500 elementos, la mayoría de los cuales no tienen nada que ver con el grupo Cobalt o sus ataques. A continuación se muestra un ejemplo de cómo se ve dicho gráfico:

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro propio

Conclusión

Después de varios años de ajustes, pruebas en investigaciones reales, investigación de amenazas y búsqueda de atacantes, logramos no solo crear una herramienta única, sino también cambiar la actitud de los expertos de la empresa hacia ella. Inicialmente, los expertos técnicos quieren un control total sobre el proceso de construcción del gráfico. Convencerlos de que la construcción automática de gráficos podía hacer esto mejor que una persona con muchos años de experiencia fue extremadamente difícil. Todo se decidió por el tiempo y múltiples comprobaciones “manuales” de los resultados de lo que produjo el gráfico. Ahora nuestros expertos no sólo confían en el sistema, sino que también utilizan los resultados que obtiene en su trabajo diario. Esta tecnología funciona dentro de cada uno de nuestros sistemas y nos permite identificar mejor amenazas de cualquier tipo. La interfaz para el análisis gráfico manual está integrada en todos los productos de Group-IB y amplía significativamente las capacidades de búsqueda de delitos cibernéticos. Esto lo confirman las revisiones de los analistas de nuestros clientes. Y nosotros, a su vez, continuamos enriqueciendo el gráfico con datos y trabajando en nuevos algoritmos utilizando inteligencia artificial para crear el gráfico de red más preciso.

Fuente: habr.com

Añadir un comentario