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

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

Al investigar casos relacionados con phishing, redes bot, transacciones fraudulentas y grupos de hackers criminales, los expertos de Group-IB han estado utilizando el análisis gráfico durante muchos años para identificar diversos tipos de conexiones. En diferentes casos existen sus propios conjuntos de datos, algoritmos de detección de conexiones y interfaces adaptadas a tareas específicas. Todas estas herramientas han sido desarrolladas internamente por Group-IB y han estado disponibles únicamente para nuestro personal.

El análisis gráfico de infraestructura de red (grafo de red) se convirtió en la primera herramienta interna que integró en todos los productos públicos de la empresa. Antes de crear nuestro grafo de red, analizamos muchas de las soluciones similares en el mercado y no encontramos ningún producto que satisfaciera nuestras propias necesidades. En este artículo, contaremos cómo creamos el grafo de red, cómo lo utilizamos y con qué dificultades nos encontramos.

Dmitry Volkov, CTO de Group-IB y líder del área de ciberinteligencia

¿Qué puede hacer el grafo de red de Group-IB?

Investigaciones

Desde la fundación de Group-IB en 2003 hasta el presente, la identificación, deanonymización y responsabilidad de los ciberdelincuentes han sido la principal prioridad de nuestro trabajo. Ninguna investigación de un ciberataque ha estado libre del análisis de la infraestructura de red de los atacantes. Al principio de nuestro camino, esto era un trabajo bastante laborioso y manual para buscar conexiones que pudieran ayudar en la identificación de los delincuentes: información sobre nombres de dominio, direcciones IP, huellas digitales de servidores, entre otros.

La mayoría de los atacantes intenta actuar de la manera más anónima posible en la red. Sin embargo, como todas las personas, cometen errores. El objetivo principal de este análisis es encontrar proyectos históricos «blancos» o «grises» de los delincuentes que tienen conexiones con la infraestructura maliciosa utilizada en el incidente actual que estamos investigando. Si logramos detectar proyectos «blancos», generalmente se convierte en una tarea trivial encontrar al atacante. En el caso de los «grises», se necesita más tiempo y esfuerzo para la búsqueda, ya que sus propietarios intentan anonimizar o ocultar los datos de registro, pero las posibilidades siguen siendo bastante altas. Por lo general, al comienzo de su actividad delictiva, los atacantes prestan menos atención a su propia seguridad y cometen más errores, por lo que cuanto más profundo podamos sumergirnos en la historia, mayores serán las posibilidades de una investigación exitosa. Es por eso que un grafo de red con un buen historial es un elemento crucial de dicha investigación. En términos simples, cuanto más datos históricos tenga la empresa, mejor será su grafo. Supongamos que un historial de 5 años puede ayudar a resolver, digamos, 1-2 de cada 10 delitos, mientras que un historial de 15 años ofrece posibilidades de resolver los diez.

Detección de phishing y fraude

Cada vez que recibimos un enlace sospechoso de phishing, recursos fraudulentos o piratas, automáticamente construimos un grafo de recursos de red relacionados y verificamos todos los hosts encontrados en busca de contenido similar. Esto permite localizar tanto antiguos sitios de phishing que han estado activos pero son desconocidos, como absolutamente nuevos, que están preparados para futuros ataques pero aún no se utilizan. Un ejemplo elemental, que sucede con bastante frecuencia: encontramos un sitio de phishing en un servidor donde hay solo 5 sitios. Al verificar cada uno de ellos, encontramos contenido de phishing en los demás sitios también, lo que significa que podemos bloquear 5 en lugar de 1.

Búsqueda de backends

Este proceso es necesario para determinar dónde se encuentra realmente el servidor malicioso.
El 99% de las tiendas de tarjetas, foros de hackers, numerosos recursos de phishing y otros servidores maliciosos se ocultan tanto detrás de sus propios servidores proxy como detrás de proxies de servicios legítimos, como Cloudflare. Conocer el backend real es muy importante para las investigaciones: permite identificar al proveedor de hosting del que se puede incautar el servidor y establecer conexiones con otros proyectos maliciosos.

Por ejemplo, usted tiene un sitio de phishing para recopilar datos de tarjetas bancarias que se resuelve en la dirección IP 11.11.11.11, y la dirección de la tienda de tarjetas que se resuelve en la dirección IP 22.22.22.22. Durante el análisis, puede descubrirse que tanto el sitio de phishing como la tienda de tarjetas comparten la misma dirección IP de backend, por ejemplo, 33.33.33.33. Este conocimiento permite establecer una conexión entre los ataques de phishing y la tienda de tarjetas donde, posiblemente, se venden los datos de las tarjetas bancarias.

Correlación de eventos

Cuando tiene dos disparos diferentes (digamos, en IDS) con diferentes malware y diferentes servidores para gestionar los ataques, los considerará como dos eventos independientes. Pero si hay una buena conexión entre las infraestructuras maliciosas, se hace evidente que no se trata de ataques diferentes, sino de etapas de un ataque más complejo y en múltiples fases. Y si uno de los eventos ya ha sido atribuido a algún grupo de atacantes, el segundo también puede atribuirse al mismo grupo. Por supuesto, el proceso de atribución es significativamente más complejo, así que tome lo escrito como un ejemplo simple.

Enriquecimiento de indicadores

No dedicaremos mucha atención a esto, ya que es el escenario de uso más común de grafos en ciberseguridad: se proporciona un indicador de entrada y se obtiene un array de indicadores relacionados como salida.

Detección de patrones

La detección de patrones es necesaria para una caza efectiva. Los grafos no solo permiten encontrar elementos relacionados, sino también identificar propiedades comunes que son inherentes a un determinado grupo de hackers. Conocer estas características únicas permite reconocer la infraestructura de los atacantes incluso en la etapa de preparación y sin evidencia que confirme el ataque, como correos electrónicos de phishing o malware.

¿Por qué creamos nuestro grafo de red?

Reitero que consideramos soluciones de diferentes proveedores antes de llegar a la conclusión de que necesitábamos desarrollar nuestra propia herramienta que pudiera hacer lo que ningún producto existente puede. Su creación tomó varios años, durante los cuales la cambiamos completamente varias veces. Sin embargo, a pesar de la larga duración del desarrollo, todavía no hemos encontrado un analogo que satisfaga nuestras necesidades. Con nuestro producto, finalmente logramos resolver prácticamente todos los problemas que encontramos en las redes existentes. A continuación, analizaremos 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, servicios en ejecución en puertos, archivos que interactúan con nombres de dominio e IPs. Explicación. Por lo general, los proveedores ofrecen tipos de datos separados y, para obtener una imagen completa, hay que comprar suscripciones a todos. Pero aun así, no siempre se puede obtener todos los datos: algunos proveedores de SSL pasivo solo proporcionan datos sobre certificados emitidos por CA confiables, y la cobertura de certificados autogenerados es muy deficiente. Otros proporcionan datos también sobre certificados autogenerados, pero solo los obtienen de los puertos estándar.
Recopilamos todas las colecciones mencionadas anteriormente nosotros mismos. Por ejemplo, para recopilar datos sobre certificados SSL, escribimos nuestro propio servicio que los obtiene tanto de CA confiables como mediante el escaneo de todo el espacio IPv4. Los certificados fueron recolectados no solo desde IP, sino también desde todos los dominios y subdominios de nuestra base: si tienes un dominio example.com y su subdominio www.example.com y todos ellos resuelven a la IP 1.1.1.1, al intentar obtener un certificado SSL desde el puerto 443 por 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 distribuido de escaneo, porque las direcciones IP de los servidores de escaneo de otros servicios a menudo estaban en 'listas negras'. Nuestros servidores de escaneo también caen en 'listas negras', pero el resultado en la detección de los servicios que necesitamos es mejor que el de aquellos que simplemente escanean la mayor cantidad posible de puertos y venden acceso a esos datos.

La falta de acceso a toda la base de registros históricos. Explicación. Cada proveedor normal tiene una buena historia acumulada, pero por razones naturales, como clientes no podíamos acceder a todos los datos históricos. Es decir, se puede obtener toda la historia de un registro individual, como un dominio o una dirección IP, pero no se puede ver la historia completa; sin esto, no se puede ver el panorama completo.
Para recopilar la mayor cantidad de registros históricos sobre dominios, compramos diversas bases de datos, analizamos muchos recursos abiertos que tenían esta historia (afortunadamente, había muchos), y negociamos con registradores de nombres de dominio. Todas las actualizaciones en nuestras propias colecciones, por supuesto, se almacenan con un historial completo de cambios.

Todas las soluciones existentes permiten construir el gráfico manualmente. Explicación. Supongamos que has comprado numerosas suscripciones de todos los posibles proveedores de datos (generalmente se les llama 'enriquecedores'). Cuando necesitas construir un gráfico, le das la orden de completar las conexiones desde el elemento deseado, luego eliges los elementos necesarios de los que aparecen y ordenas que construyan las conexiones desde ellos, y así sucesivamente. En este caso, la responsabilidad de la calidad del gráfico construido recae completamente en la persona.
Hemos implementado la construcción automática de gráficos. Es decir, si necesitas construir un gráfico, las conexiones desde el primer elemento se construyen automáticamente, y luego desde todos los siguientes también. El especialista solo indica la profundidad con la que se debe construir el gráfico. El proceso de autoconstrucción de gráficos es simple, pero otros proveedores no lo implementan porque produce una gran cantidad de resultados irrelevantes, y esta desventaja también tuvimos que tenerla en cuenta (ver más abajo).

Una gran cantidad de resultados irrelevantes es un problema común en todos los gráficos de elementos de red. Explicación. Por ejemplo, un "dominio malo" (involucrado en un ataque) está vinculado a un servidor que ha estado relacionado durante los últimos 10 años con 500 otros dominios. Al añadir manualmente o construir automáticamente el gráfico, todos estos 500 dominios también deben aparecer en el gráfico, aunque no tengan relación con el ataque. O, por ejemplo, si estás verificando el indicador IP de un informe de un proveedor de seguridad. Por lo general, tales informes se publican con un retraso considerable y a menudo abarcan un año o más. Es probable que, en el momento en que lees el informe, el servidor con esa dirección IP ya haya sido arrendado a otras personas con otras relaciones, lo que resultará en obtener nuevamente resultados irrelevantes al construir el gráfico.
Hemos entrenado al sistema para detectar elementos irrelevantes siguiendo la misma lógica que utilizaron nuestros expertos manualmente. Por ejemplo, estás verificando un dominio malo example.com, que ahora resuelve a la IP 11.11.11.11, y hace un mes a la IP 22.22.22.22. Con la IP 11.11.11.11, además del dominio example.com, está relacionado también example.ru, mientras que con la IP 22.22.22.22 están vinculados 25 mil otros dominios. El sistema, al igual que una persona, entiende que 11.11.11.11 es probablemente un servidor dedicado, y dado que el dominio example.ru es similar en escritura a example.com, es muy probable que estén relacionados y deban aparecer en el gráfico; mientras que la IP 22.22.22.22 pertenece a un hosting compartido, por lo que no es necesario incluir todos sus dominios en el gráfico, a menos que haya otras conexiones que indiquen que alguno de esos 25 mil dominios también deba incluirse (por ejemplo, example.net). Antes de que el sistema entienda que se deben romper las conexiones y no incluir ciertos elementos en el gráfico, considera muchas propiedades de los elementos y los clústeres en los que estos están agrupados, así como la fortaleza de las conexiones actuales. Por ejemplo, si tenemos un pequeño clúster (50 elementos) en el gráfico que incluye un dominio malo, y otro clúster grande (5 mil elementos), y ambos clústeres están conectados por una relación (línea) con muy poca fortaleza (peso), entonces esa relación se romperá y los elementos del clúster grande serán eliminados. Pero si hay muchas relaciones entre el clúster pequeño y el grande y su fortaleza va aumentando gradualmente, en ese caso la relación no se romperá y permanecerán en el gráfico los elementos necesarios de ambos clústeres.

No se considera el intervalo de propiedad del servidor o del dominio. Explicación. El período de registro de los "malos dominios" eventualmente expira, y son comprados nuevamente para fines maliciosos o legítimos. Incluso los hosting bulletproof alquilan servidores a diferentes hackers, por lo que es crucial saber y considerar el intervalo durante el cual un dominio/servidor estuvo bajo la gestión de un mismo propietario. A menudo nos encontramos con la situación en la que un servidor con IP 11.11.11.11 ahora se utiliza como C&C para un bot bancario, mientras que hace apenas 2 meses era controlado por un ransomware. Si establecemos conexiones sin considerar los intervalos de propiedad, parecerá que hay un vínculo entre los propietarios de la red de bots bancarios y los extorsionistas, aunque en realidad no lo haya. Este error es crítico en nuestro trabajo.
Hemos enseñado al sistema a determinar los intervalos de propiedad. Para los dominios, esto es relativamente sencillo, ya que en el whois a menudo se indican las fechas de inicio y expiración del registro, y cuando hay un historial completo de cambios en el whois, es fácil determinar los intervalos. Cuando el plazo de registro de un dominio no ha expirado, pero su gestión ha sido transferida a otros propietarios, también se puede rastrear. Para los certificados SSL, no hay tal problema, ya que se emiten una vez, no se renuevan ni se transfieren. Sin embargo, en los certificados autoadjudicados, no se puede confiar en las fechas que se indican en la validez del certificado, porque se puede generar un certificado SSL hoy y especificar la fecha de inicio de validez desde 2010. La dificultad mayor es determinar los intervalos de propiedad para los servidores, ya que solo los proveedores de hosting tienen las fechas y plazos de alquiler. Para determinar el período de propiedad de un servidor, comenzamos a utilizar los resultados del escaneo de puertos y la creación de huellas dactilares de los servicios en ejecución en esos puertos. Con esta información, podemos decir con bastante precisión cuándo cambió de propietario un servidor.

Pocas conexiones. Explicación. Ahora no es un problema incluso conseguir gratuitamente una lista de dominios en cuyos whois se indica una dirección de correo electrónico específica, o conocer todos los dominios que estuvieron asociados con una dirección IP determinada. Pero cuando se trata de hackers que hacen todo lo posible por ser difíciles de rastrear, se necesitan "trucos" adicionales que permitan encontrar nuevas propiedades y establecer nuevas conexiones.
Hemos dedicado mucho tiempo a investigar cómo extraer datos que no están disponibles de manera convencional. No podemos describir cómo funciona esto por razones obvias, pero bajo ciertas circunstancias, los hackers cometen errores al registrar dominios o alquilar y configurar servidores, lo que permite conocer direcciones de correo electrónico, seudónimos de hackers y direcciones de backends. Cuantas más conexiones extraiga, más precisas serán las gráficas que puede construir.

Cómo funciona nuestra gráfica

Para comenzar a usar la gráfica de red, debe ingresar en la barra de búsqueda un dominio, dirección IP, correo electrónico o huella de certificado SSL. Hay tres condiciones que puede administrar el analista: tiempo, profundidad de pasos y limpieza.

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

Tiempo

Tiempo: la fecha o intervalo en el que el elemento buscado fue utilizado para fines maliciosos. Si no se especifica este parámetro, el sistema determinará automáticamente el último intervalo de posesión de este recurso. Por ejemplo, el 11 de julio la empresa Eset publicó un informe sobre cómo Buhtrap utiliza un exploit de 0-day para ciberespionaje. Al final del informe hay 6 indicadores. Uno de ellos, secure-telemetry[.]net, fue registrado nuevamente el 16 de julio. Por lo tanto, si construye la gráfica después del 16 de julio, recibirá resultados irrelevantes. Pero si indica que este dominio fue utilizado antes de esa fecha, se incluirán en la gráfica 126 nuevos dominios y 69 direcciones IP que no se mencionan en el informe de Eset:

  • ukrfreshnews[.]com
  • unian-search[.]com
  • vesti-world[.]info
  • runewsmeta[.]com
  • foxnewsmeta[.]biz
  • sobesednik-meta[.]info
  • rian-ua[.]net
  • y otros.

Además de los indicadores de red, también encontramos de inmediato conexiones con archivos maliciosos que tenían vínculos con esta infraestructura y etiquetas que nos indican que se utilizaron Meterpreter, AZORult.

Lo más sorprendente es que recibe este resultado en un segundo y ya no necesita dedicar días a analizar datos. Sin duda, este enfoque a veces reduce drásticamente el tiempo de investigación, lo que a menudo es crítico.

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

Número de pasos o profundidad de recursión con la que se construirá la gráfica

De forma predeterminada, la profundidad es 3. Esto significa que se encontrarán todos los elementos directamente relacionados con el elemento buscado, luego se construirán nuevas conexiones para cada uno de estos nuevos elementos a otros elementos, y desde estos nuevos elementos se crearán nuevos elementos desde el paso anterior.

Tomemos un ejemplo no relacionado con APT y exploits de 0-day. Recientemente, en Habr, se describió un interesante caso de fraude relacionado con criptomonedas. En el informe se menciona el dominio — themcx[.]co, utilizado por los estafadores para alojar un sitio supuestamente de intercambio llamado Miner Coin Exchange, y phone-lookup[.]xyz, para atraer tráfico.

De la descripción se entiende que el esquema requiere una infraestructura bastante grande para atraer tráfico a los recursos fraudulentos. Decidimos observar esta infraestructura, construyendo un gráfico en 4 pasos. Al final, obtuvimos un gráfico con 230 dominios y 39 direcciones IP. A continuación, dividimos los dominios en 2 categorías: aquellos que se asemejan a servicios relacionados con criptomonedas y aquellos destinados a atraer tráfico a través de servicios de verificación de teléfonos:

Relacionados con criptomonedas
Relativo a servicios de verificación de teléfonos

coinkeeper[.]cc
caller-record[.]site.

mcxwallet[.]co
phone-records[.]space

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

cryptominer[.]watch
number-uncover[.]info

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

Limpiar

Por defecto, la opción 'Limpiar gráfico' está activada y todos los elementos irrelevantes serán eliminados del gráfico. Por cierto, se utilizó también en todos los ejemplos anteriores. Preveo una pregunta natural: ¿cómo evitar que se elimine algo importante? Responderé: para los analistas que prefieren construir gráficos manualmente, la limpieza automatizada se puede desactivar y seleccionar el número de pasos = 1. Luego, el analista podrá extender el gráfico con los elementos que necesite y eliminar los elementos que no sean relevantes para la tarea planteada.

Ya en el gráfico, el analista tiene acceso a la historia de cambios de whois, DNS, así como a 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

Phishing financiero

Investigamos las acciones de un grupo de APT que, durante varios años, llevó a cabo ataques de phishing contra clientes de varios bancos en diferentes regiones. Una característica destacada 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ía un diseño idéntico, las diferencias estaban solo 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
En este caso, el análisis gráfico automatizado nos ayudó considerablemente. Al tomar uno de sus dominios — lloydsbnk-uk[.]com, construimos en unos segundos un gráfico con una profundidad de 3 pasos, que reveló más de 250 dominios maliciosos utilizados por este grupo desde 2015 y que continúan en uso. Algunos de estos dominios ya han sido reComprados por bancos, pero en los registros históricos se observa que anteriormente fueron registrados por los atacantes.

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

Es notable que ya en 2019, los atacantes modificaron su táctica y comenzaron a registrar no solo dominios bancarios para el alojamiento de phishings web, sino también dominios de diversas empresas de consultoría 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

Cobalt gang

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

Tu salida, gráfico: cómo no encontramos un buen gráfico de red y creamos el nuestro
Los correos contenían enlaces a hXXps://nationalbank.bz/Doc/Prikaz.doc. El documento descargable contenía un macro que ejecuta powershell, que intentará descargar y ejecutar un 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 de CobInt, diseñado para interactuar con el servidor hXXp://admvmsopp.com/rilruietguadvtoefmuy.

Imagina que no tienes la posibilidad de recibir estos correos de phishing y realizar un análisis completo de los archivos maliciosos. El gráfico del dominio malicioso nationalbank[.]bz muestra de inmediato las conexiones con otros dominios maliciosos, los atribuye al 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
Tomemos de este gráfico la dirección IP 46.173.219[.]152 y construyamos un gráfico a partir de ella en un solo paso, desactivando la limpieza. Está asociada con 40 dominios, por ejemplo, bl0ckchain[.]ug
paypal.co.uk.qlg6[.]pw
cryptoelips[.]com

A juzgar por los nombres de dominio, parece que se utilizan en esquemas fraudulentos, pero el algoritmo de limpieza entendió 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
Si reconstruimos el gráfico de nationalbank[.]bz, pero desactivando el algoritmo de limpieza del gráfico, se obtienen más de 500 elementos, la mayoría de los cuales no tienen relación ni con el grupo Cobalt ni con sus ataques. Un ejemplo de cómo se ve un gráfico así se muestra a continuación:

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

Conclusión

Después de varios años de ajustes finos, pruebas en investigaciones reales, estudios de amenazas y caza de atacantes, no solo hemos logrado crear una herramienta única, sino también cambiar la percepción que tenían de ella los expertos dentro de la empresa. Al principio, los expertos técnicos querían tener un control total sobre el proceso de construcción del gráfico. Convencerlos de que la construcción automática del gráfico podría hacerlo mejor que una persona con años de experiencia fue extremadamente difícil. Todo se resolvió con el tiempo y múltiples verificaciones “manuales” de los resultados que generaba el gráfico. Ahora, nuestros expertos no solo confían en el sistema, sino que también utilizan los resultados que este proporciona en su trabajo diario. Esta tecnología opera dentro de cada uno de nuestros sistemas y permite identificar mejor las amenazas de cualquier tipo. La interfaz para el análisis manual del gráfico está integrada en todos los productos de Group-IB y amplía significativamente las capacidades de caza de ciberdelincuencia. Esto es confirmado por los comentarios de los analistas de nuestros clientes. Y nosotros, a nuestra vez, continuamos enriqueciendo el gráfico con datos y trabajando en nuevos algoritmos que utilizan inteligencia artificial para lograr un gráfico de red lo más preciso posible.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster