¿Detectando tráfico C2 a través de DNS?

4

Supongamos que tengo una gran red empresarial (miles de nodos) y en algún lugar de esa red hay malware que se comunica a través de DNS para C2. Asumamos que las solicitudes están diseñadas de tal manera que el tráfico sea un DNS legítimo y no contenga comandos obvios u otras cadenas que puedan detectarse de forma trivial. (Tal vez utiliza registros A o AAAA para codificar los datos).

Es posible intentar detectar el tráfico utilizando varias técnicas:

  1. Busque el tráfico DNS cronometrado regularmente. (es decir, exactamente cada hora)
  2. Busque con poca frecuencia los dominios solicitados: en una red tan grande, las solicitudes de malware deben ser los valores atípicos. (Pero quizás también haya otro tráfico que sea un valor atípico).
  3. Busque resultados de DNS que sigan cambiando (pero quizás sea el equilibrio de carga de DNS)

¿Existen otras técnicas que no haya considerado?

    
pregunta David 17.01.2018 - 06:12
fuente

2 respuestas

4
  1. La mayoría de los programas maliciosos que abusan de los canales (según mi experiencia) incluyen alguna forma de asignación aleatoria en el tiempo de conexión. Incluso algo tan simple como 60 minutes + rand(-5,5) puede derrotar a los perfiladores de tiempo. También encontrará que las personas tienen patrones sorprendentemente regulares en sus hábitos de navegación.
  2. Por experiencia, el análisis de frecuencia producirá muchos falsos positivos en una gran empresa. Todo el mundo está en su propia cosa y los intereses cambian. En su lugar, analizar los dominios de "infancia". Busque cuando se registró el dominio y busque dominios con menos de 3 meses de antigüedad. Luego busque dominios que no sean propiedad de * Inc. o * Ltd. o que tengan un "escudo de privacidad de dominio" en su lugar. Burbujea esos para una mayor investigación.

Una cosa que no ha mencionado es comparar el dominio con listas negras de un servicio de lista negra. Supongo que pensaste en eso, pero quería mencionarlo.

Recuerde que es trivial que los autores de malware se adapten a cualquier método de detección que pueda diseñar (como el análisis de tiempo). Los procesos de detección más robustos requieren un análisis estadístico complejo tanto en el destino como en el nodo solicitante, en comparación con los pares del nodo y las tendencias generales en el entorno local (tiempo, frecuencia, contenido, ancho de banda, perfiles de pares no coincidentes (un no-igual que actúa como un mirar)). E incluso en ese caso, requerirá un análisis adicional para determinar los verdaderos positivos.

He desarrollado algoritmos de la UEBA para este tipo de cosas, y una vez que comiences, te encontrarás con un poco de agujero de conejo ("¡tal vez pueda modificarlo de esta manera y obtener una mayor eficiencia!"). Para una efectividad del 80%, enfóquese en el análisis de "infancia" que mencioné anteriormente.

    
respondido por el schroeder 17.01.2018 - 10:36
fuente
2

Otras dos opciones:

1) Monitorea la longitud de las consultas de DNS. El tráfico C2, especialmente si se están filtrando datos, es probable que tenga consultas más grandes. Si se realiza un seguimiento a lo largo del tiempo, esto podría mostrar un posible túnel

2) recuento de FQDN por dominio de segundo nivel .

  

Algunas de las reglas de análisis de carga útil específicas podrían ser ignoradas por un   atacante bien informado. Podrían acortar las etiquetas utilizadas y reducir el número de   etiquetas en un FQDN. Sin embargo, siempre necesitarán crear un gran número de   FQDN que normalmente son de un dominio raíz específico.

Esto es de un SANS paper sobre la detección de túneles DNS que También ofrece varios otros indicadores posibles y cubre específicamente este segundo punto con gran detalle.

    
respondido por el IamNaN 17.01.2018 - 10:52
fuente

Lea otras preguntas en las etiquetas