Protocolo de descubrimiento de servicio simple
El Protocolo simple de descubrimiento de servicios (SSDP) es un protocolo de red basado en el conjunto de protocolos de Internet para publicidad y descubrimiento de servicios de red e información de presencia. Logra esto sin la ayuda de mecanismos de configuración basados en servidor, como el Protocolo de configuración dinámica de host (DHCP) o el Sistema de nombres de dominio (DNS), y sin una configuración estática especial de un host de red. SSDP es la base del protocolo de descubrimiento de Universal Plug and Play (UPnP) y está diseñado para su uso en entornos residenciales o de pequeñas oficinas. Microsoft y Hewlett-Packard lo describieron formalmente en un borrador de Internet de IETF en 1999. Aunque la propuesta de IETF expiró (abril de 2000), SSDP se incorporó a la pila de protocolos UPnP y se incluye una descripción de la implementación final en Documentos de normas UPnP.
Protocolo de transporte y direccionamiento
SSDP es un protocolo basado en texto basado en HTTPU, que utiliza UDP como protocolo de transporte subyacente. Los servicios son anunciados por el sistema de alojamiento con direccionamiento de multidifusión a una dirección de multidifusión IP designada específicamente en el número de puerto UDP 1900. En IPv4, la dirección de multidifusión es 239.255.255.250 y SSDP sobre usos de IPv6 el conjunto de direcciones ff0X::c para todos los rangos de alcance indicados por X.
Esto da como resultado las siguientes direcciones prácticas de multidifusión conocidas para SSDP:
- 239.255.255.250 (dirección local IPv4)
- [FF02::C] (IPv6 link-local)
- [FF05::C] (IPv6 site-local)
- [FF08::C] (IPv6 organización local)
- [FF0E::C] (IPv6 global)
Además, las aplicaciones pueden usar las direcciones de multidifusión específicas de la fuente derivadas del prefijo de enrutamiento IPv6 local, con ID de grupo C (12 decimal).
SSDP utiliza el método HTTP NOTIFY para anunciar el establecimiento o retiro de información de servicios (presencia) al grupo de multidifusión. Un cliente que desea descubrir los servicios disponibles en una red, utiliza el método M-SEARCH. Las respuestas a dichas solicitudes de búsqueda se envían mediante direccionamiento de unidifusión a la dirección de origen y al número de puerto de la solicitud de multidifusión.
Las implementaciones de SSDP de IPv6 de Microsoft en Windows Media Player y Server utilizan la dirección de ámbito de vínculo local. Microsoft usa el número de puerto 2869 para la notificación de eventos y las suscripciones a eventos. Sin embargo, las primeras implementaciones de SSDP también usaban el puerto 5000 para este servicio.
Ataque DDoS
En 2014 se descubrió que SSDP se estaba utilizando en ataques DDoS conocidos como ataque de reflexión SSDP con amplificación. Muchos dispositivos, incluidos algunos enrutadores residenciales, tienen una vulnerabilidad en el software UPnP que permite que un atacante obtenga respuestas desde el número de puerto 1900 a una dirección de destino de su elección. Con una botnet de miles de dispositivos, los atacantes pueden generar suficientes tasas de paquetes y ocupar ancho de banda para saturar los enlaces, provocando la denegación de servicios. La compañía de redes Cloudflare ha descrito este ataque como el 'Protocolo DDoS estúpidamente simple'.
Vulnerabilidad de Firefox
Firefox para Android anterior a la versión 79 no validaba correctamente el esquema de la URL recibida en SSDP y era vulnerable a la ejecución remota de código. Un atacante en la misma red podría crear un servidor malintencionado que finge ser un dispositivo compatible con la transmisión, pero en lugar de un archivo de configuración, devolvería una URL intent://
. Firefox lanzaría la intención (si fuera compatible con el dispositivo) y, por lo tanto, ejecutaría código arbitrario. Esto no es un error con SSDP, solo una validación incorrecta realizada por el servicio de transmisión de Firefox.
Contenido relacionado
Tabla de métodos virtuales
ALGOL Y
Hacer bucle while
API de repositorio de contenido para Java
Datosflex