Ciberataques DrDoS basados en el protocolo SSDP

Fecha de publicación 11/11/2021
Autor
INCIBE (INCIBE)
Ataques DrDoS basados en SSDP

Tras el estudio preliminar de los ciberataques de denegación de servicio (DoS), junto con algunas de sus variantes expuestas en el artículo “DrDoS: características y funcionamiento”, en este nuevo artículo se abordará cómo el protocolo de SSDP es utilizado como una herramienta para desarrollar un ciberataque DoS en su variante denegación de servicio reflejado (DrDoS).

SSDP

La finalidad del Protocolo Simple de Descubrimiento de Servicios (SSDP, Simple Service Discovery Protocol) es buscar dispositivos Universal Plug And Play (UPnP) y conectarlos a otro dispositivo dentro de una red privada o pública. Un dispositivo UPnP puede ser un PC, una impresora o un dispositivo móvil.

Se trata de un protocolo ampliamente utilizado en todo el mundo, en el que se utilizan transmisiones unicast o multicast, basadas en el protocolo UDP (User Datagram Protocol) por el puerto 1900, para anunciar la existencia de un dispositivo o detectar los periféricos antes mencionados en una red. Sin este protocolo la comunicación entre equipos y periféricos se volvería más complicada.

Un ejemplo del funcionamiento de este protocolo lo encontramos cuando una impresora UPnP, conectada a una red y con una dirección IP determinada, anuncia sus servicios al resto de equipos de la red, enviando un mensaje a la dirección de multidifusión. Una vez que un equipo escucha ese mensaje de descubrimiento procedente de la impresora, este equipo solicita a la impresora una descripción completa de sus servicios. Finalmente, la impresora responde directamente con la lista completa.

Ilustración 5. Esquema arquitectura SSDP

Vector de ataque

El protocolo SSDP cuenta con ciertas vulnerabilidades que podrían permitir a un ciberdelincuente efectuar un ataque de DrDoS en una red sin grandes esfuerzos. Basándose en este protocolo, este tipo de ciberataques está caracterizado por tener un impacto muy alto en comparación con los recursos empleados para ejecutarlo.

SSDP tiene la función de anunciar y descubrir dispositivos utilizando la pila de protocolos UPnP, un protocolo que los atacantes pretenden explotar, aprovechando una vulnerabilidad en la consulta del usuario final sobre los tipos de servicios proporcionados, reenviando las respuestas a la dirección de la víctima.

Ilustración 6. Esquema del ataque a SSDP

Este ataque es posible gracias al comando “M-SEARCH”, el cual tiene la función de hacer búsquedas por multidifusión en la dirección y puerto reservados (239.255.255.250:1900 en IPv4 o ff0X::c, donde x indica el rango de direcciones a las que se realiza el multicast) de un mensaje de búsqueda, con un patrón o destino igual a un tipo o identificador para un dispositivo o servicio. Una vez ejecutado el comando se realiza una búsqueda de dispositivos de interés en la red.

La sencillez del ciberataque radica en que un atacante no falsificado solo requiere de una línea de código para desencadenarlo. Por esta razón, este tipo de ataques sigue existiendo.

El modus operandi que siguen los ciberdelincuentes se divide en las dos fases siguientes:

  • Fase de escaneo: se realiza un escaneo de los dispositivos UPnP con el fin de encontrar factores de amplificación, es decir, dispositivos UPnP activos que respondan a la solicitud de M-SEARCH, y se elabora una lista con todos ellos.
  • Fase de ataque: el atacante envía un paquete de búsqueda de multidifusión falso (M-SEARCH), que contiene la dirección IP de la víctima, a los anteriores dispositivos encontrados. Los paquetes falsificados de M-SEARCH con los mensajes de anuncio “upnp: rootdevice” o “ssdp: all” son enviados, y cada dispositivo UPnP responde con un mensaje amplificado (factor de amplificación de ancho de banda de hasta 30.8), que contiene todos los servicios que proporciona.

Adicionalmente, para este tipo de ataques es posible el uso de una botnet con la que asegurar la inundación de toda la red, quedando totalmente desbordada por la cantidad de tráfico a la que se verá sometida y ocasionando la denegación de servicio de los recursos web.

Otras consecuencias son la pérdida de ingresos, la pérdida de confianza del consumidor o el desvío de la atención para robar datos o instalar software malicioso (malware).

Prevención

El primer paso para prevenir un ataque DrDoS basado en SSDP es comprobar si un servidor SSDP puede ser utilizado como amplificador. Para ello, se debe observar si algún servicio está publicado en el puerto 1900 UDP, que es el puerto por defecto para SSDP. En caso de estarlo, será vulnerable, es decir, podría ser utilizado como amplificador. El siguiente comando de nmap puede darnos la información que buscamos:

nmap -sV --script=broadcast-upnp-info <target>

El servidor es vulnerable si el comando devuelve una lista de servicios y puertos de red.

Una vez comprobado lo anterior, a continuación se exponen algunas recomendaciones para evitar ser el objetivo o formar parte, tanto de un ataque de SSDP, por medio del comando M-SEARCH, como de un ataque de DrDoS:

  • Bloqueo del puerto UDP 1900 de entrada en el firewall.
  • Desplegar los servidores SSDP detrás del cortafuegos. Se deben definir reglas en el firewall para detectar y filtrar las peticiones dirigidas por los protocolos de datagramas de usuario al puerto del servidor SSDP, así como reglas antispoofing para aquellas que tengan las direcciones IP de origen falseadas.
  • Solicitar al proveedor de servicios de internet (ISP) filtros antispoofing. Los ISP cuentan con medidas para rechazar tráfico SSDP con direcciones falsificadas, no accesibles a través de la ruta real del paquete. Esto evitará que el servidor SSDP propio reciba y atienda peticiones que sean susceptibles de ser un ataque de DrDoS.
  • Desplegar sistemas de detección y bloqueo de intrusiones (IDS/IPS). Mediante soluciones del Gestor de Eventos e Información de Seguridad (SIEM) es posible identificar anomalías en el tráfico SSDP y detectarlas rápidamente para aplicar una respuesta inmediata que limite el impacto del ataque.
  • Definir un protocolo de actuación para incidentes de DDoS por SSDP. Disponer de pautas concretas sobre cómo identificar estos ataques y cómo actuar si se producen estos ataques es clave para no causar más problemas o fallos que afecten a otros componentes.
  • Permitir a los clientes de los ISP utilizar BGP flowspec. De esta forma, se conseguiría limitar la velocidad del tráfico entrante del puerto de origen UDP 1900 y aliviar la congestión durante grandes ataques SSDP.
  • Mantener los sistemas actualizados y parcheados de los equipos y periféricos. Es la forma de prevenir la explotación de vulnerabilidades nuevas o anteriores en los sistemas.

Detección y evidencias

Una evidencia de que un servidor SSDP está siendo víctima de un ataque de DrDoS o está formando parte del mismo contra un tercero, puede encontrarse en un tráfico UDP inusual e intenso en el puerto 1900 y la dirección IP “239.255.255.250:1900”, dado que es la dirección utilizada por SSDP para descubrir dispositivos.

Una aplicación de análisis de paquetes de protocolos mostrará en detalle la cantidad de solicitudes M-SEARCH que se están enviando por la red, lo que permitirá determinar si la cantidad de solicitudes son anómalas para los equipos y el tiempo transcurrido.

Para una detección temprana es recomendable usar herramientas de monitorización del estado de dispositivos, que supervisen la utilización de los recursos de estos (procesador, memoria, disco, etc.), ya que un consumo irregular en cuanto a los recursos del servidor es otra evidencia a tener en cuenta. Asimismo, las alertas que provengan de los IDS/IPS también permitirían la detección temprana.

Respuesta y recomendaciones

Si se confirma que se está produciendo un ataque de DrDoS sobre servidores SSDP propios, es importante aplicar el protocolo de actuación y gestión de incidentes, predefinido para este tipo de ataques. Este protocolo debería incluir las siguientes acciones:

  • Recopilar la mayor cantidad de datos posible sobre el incidente. Se tendrán que identificar las direcciones IP de origen y destino, puertos y posibles direcciones URL de donde provenga el ataque.
  • Bloquear y filtrar el tráfico no deseado. La recopilación de datos anterior podrá ser utilizada para configurar reglas de filtrado en cortafuegos y enrutadores, y así impedir que lleguen las peticiones a servidores SSDP propios. También es conveniente contactar con el ISP y el proveedor de hosting para que puedan aplicar sus respectivos filtros antitráfico no autorizado.
  • Ponerse en contacto con INCIBE-CERT. De esta forma, se proporcionará ayuda para tomar medidas de mitigación y de recuperación ante tales ataques.

Una vez que el servicio y las comunicaciones se hayan restablecido con normalidad y los dispositivos estén a pleno rendimiento tras el ciberataque, se deberán analizar las causas que lo hicieron posible, identificando vulnerabilidades y debilidades para mejorar el bastionado y las medidas de prevención frente a un nuevo ataque.

También, con independencia del impacto del ciberataque, se ha de comunicar el incidente a las autoridades, como cualquier otro tipo de delito tecnológico, para que pueda ser investigado y perseguido.