Aviso sobre amenazas: DDoS de reflexión basado en mDNS

Autor: Wilber Mejia

Descripción general

Hacia finales del tercer trimestre de 2015, el equipo de respuesta a incidentes e inteligencia en seguridad (SIRT, por sus siglas en inglés) de Akamai empezó a observar que determinados ataques DDoS tenían su origen en dispositivos compatibles con el sistema de nombres de dominio de multidifusión (mDNS). La posibilidad de que mDNS se convierta en un vector de ataque mediante DDoS de reflexión y amplificación también se anunció en marzo de 2015.

En este aviso se detallan el concepto y las técnicas del vector de ataque de reflexión basado en mDNS y cómo mitigarlo. Dicho vector de ataque se aprovecha de la disponibilidad de dispositivos de origen que ponen en riesgo el sistema mDNS en Internet, normalmente a través del puerto 5353.

En octubre de 2016, Akamai detectó y mitigó satisfactoriamente siete ataques DDoS basados en mDNS dirigidos contra objetivos de los sectores verticales del juego y el software y la tecnología. Por lo tanto, y a la vista de las características observadas en los ataques del mundo real, puede ponerse en cuestión la longevidad de este ataque.

Cronología del ataque

El vector de ataque mDNS se ha utilizado de forma esporádica desde que fue detectado por primera vez en septiembre de 2015. Como se indica en la siguiente cronología, transcurrió un lapso de aproximadamente cinco meses entre el ataque inicial y el sucesivo. Esta laguna probablemente se deba a que se trataba de pruebas iniciales de las secuencias de comando de los ataques. No fue hasta finales de marzo y principios de abril de 2016 cuando empezó a observarse un uso más asiduo de este vector de ataque. Sin embargo, los ataques que utilizan mDNS como único vector no han sido hasta la fecha tan potentes como otros vectores de reflexión.

mDNS attack timeline

Atributos destacados del ataque

En la siguiente sección, presentamos un ataque que tuvo lugar en 2016. De los siete ataques mitigados hasta la fecha, ninguno se ha dirigido al mismo objetivo.

  • Ancho de banda máximo: 2,9 gigabits por segundo (Gbps)
  • Paquetes máximos por segundo: 465 200 paquetes por segundo
  • Vector de ataque: mDNS
  • Puerto de origen: 5353 (mDNS)
  • Puerto de destino: Aleatorio

mdns Highlighted Attack Attributes

El último ataque mDNS observado se produjo el 27 de octubre de 2016. Fue un ataque DDoS multivectorial basado en un pico de inundación SYN, inundación UDP, fragmento UDP, inundación DNS e inundación mDNS de 41 Gbps.

  • Hora de inicio del ataque: 27 de octubre de 2016 a las 06:01:00 UTC
  • Ancho de banda máximo: 41 Gb/s
  • Paquetes máximos por segundo: 6 millones de paquetes por segundo
  • Vectores de ataque: Inundación SYN, inundación UDP, fragmento UDP, inundación DNS e inundación mDNS
  • Puerto de origen: Aleatorio
  • Puerto de destino: Aleatorio

mdns flood
mdns SVN flood

Ataque y descripción general de mDNS

El sistema de nombres de dominio multidifusión (mDNS) es un protocolo estándar, publicado en 2013 bajo el número de referencia RFC6762, cuya función es facilitar el descubrimiento de dispositivos y servicios, idealmente en pequeñas redes, con una interacción mínima o inexistente por parte de los usuarios. Dadas sus características, mDNS también puede convertirse en un componente adecuado para las redes exentas de configuración (zeroconf). Además, mDNS comparte gran parte de la estructura de los paquetes DNS habituales, lo que supone una posible razón de su rápida adopción como vector de ataque DDoS.

No obstante, como no podía ser de otra manera, la simplicidad de un protocolo diseñado para permitir conectar y usar rápidamente un dispositivo conlleva cierto riesgo. Chad Seaman detectó una vulnerabilidad (VU#550620) en mDNS mediante la que el protocolo permite enviar respuestas a consultas procedentes de orígenes externos a la red local. Estas respuestas a su vez permiten divulgar información sobre el dispositivo afectado, como su software y servicios, además de otra información potencialmente confidencial, como el nombre del host, los ajustes de configuración de la red interna, el número de modelo, etc. Con dichos datos, un agente malicioso podría utilizar cualquier host mDNS que responda a consultas de unidifusión a través de su interfaz conectada a Internet con el fin de participar en ataques distribuidos de denegación de servicio (DDoS) de reflexión o amplificación. Puede consultar más información sobre esta vulnerabilidad aquí.

De forma similar, la secuencia de comandos del ataque mDNS creado por agentes maliciosos envía una consulta de unidifusión para obtener una respuesta de los dispositivos mDNS. Según se define en el estándar RFC6763, la consulta de enumeración de servicios resulta útil para devolver todos los tipos de servicios publicados en una red. La secuencia de comandos genera una consulta de carga de 46 bytes (ilustrada en la siguiente figura) y envía una consulta de DNS "_services._dns-sd._udp.local" al host vulnerable. El objetivo de esta consulta es devolver todos los servicios conocidos a los dispositivos que los solicitan. También se pueden dirigir consultas individualmente a los servicios anunciados con diferentes tamaños de respuesta, lo que ofrece oportunidades adicionales a los atacantes. Sin embargo, esta táctica requeriría una herramienta de ataque más sofisticada para aprovechar fácilmente las cargas de respuesta adicionales en un ataque DDoS.

mdns attack

Las cargas de las respuestas de mDNS observadas en los ataques DDoS han sido de un tamaño limitado hasta la fecha. Las más grandes contenían 428 bytes de datos, 12 bytes menos que un paquete de respuesta de datos monlist de NTP. Sin embargo, el tamaño típico de respuesta de mDNS observado ha rondado el intervalo de 100 a 200 bytes. Por lo tanto, el vector suele registrar una amplificación máxima unas 4,35 veces superior, si solo tenemos en cuenta la carga de solicitud de 46 bytes y la respuesta de carga de 200 bytes.

Uso y firmas de muestra de la secuencia de comandos del ataque

La secuencia de comandos de ataque creada para mDNS es una versión modificada diseñada a partir de muchas secuencias de comandos disponibles para ataques de reflexión y amplificación de UDP. Su uso es también similar al de otras secuencias de comandos: simplemente proporciona una IP y un puerto de destino, una lista de dispositivos mDNS en Internet, subprocesos, la tasa de aceleración de paquetes y, finalmente, el tiempo de ejecución del ataque. Tras ello, la secuencia de comandos suplantará el IP de destino cuando envíe las consultas maliciosas de 46 bytes observadas en la siguiente figura a través de tcpdump.

mdns sample script usage
mdns sample script usage

En nuestra prueba de laboratorio, las consultas se enviaron a un entorno de servidor Linux con un agente de escucha de mDNS. La respuesta básica puede verse en la siguiente figura.

mdns basic response

El 4 de noviembre de 2016, la Fundación Shadowserver completó un análisis de mDNS (5353/UDP) en el que 526 245 IP exclusivas respondieron a una consulta de mDNS. El siguiente gráfico representa los principales 20 países y ASN con mDNS accesibles según el último análisis.

mDNS Source Distribution Countries
mDNS Source Distribution ASNs

Mitigación

Este es uno de los protocolos diseñados para utilizarse dentro de una red local. Por lo tanto, los dispositivos mDNS no deberían verse expuestos a riesgos en Internet. En caso de ser necesario, se recomienda filtrar las consultas entrantes y permitir solo los orígenes conocidos. Se puede utilizar un IDS como Snort para detectar las consultas y mitigar aún más el uso de dispositivos en ataques DDoS. A continuación se incluye una regla de ejemplo de detección de Snort.

mdns mitigation

Conclusión

El vector de ataque mDNS no ha sido muy utilizado hasta la fecha. Al igual que SSDP, probablemente aproveche los dispositivos de una red doméstica. Los ataques iniciales han disminuido, pero hemos observado exploraciones del puerto mDNS 5353 diariamente en nuestra plataforma de mitigación. La posibilidad de ataques a mayor escala aumentará a medida que crezca la enumeración de dispositivos. Asimismo, al igual que sucede con SSDP y teniendo en cuenta la innecesaria exposición de este protocolo, se espera que mDNS no prospere como vector de ataque DDoS conforme los proveedores de servicios de Internet vayan introduciendo filtros para este puerto en las redes particulares. Por desgracia, incluso tras años de uso, SSDP se sigue utilizando diariamente y todavía es capaz de perpetrar importantes ataques DDoS. Paralelamente, la potencia de los ataques de mDNS puede crecer antes de que se aplique una estrategia proactiva de filtrado significativa.

Referencias