Протокол ssdp что это
Протокол ssdp что это
SSDP (Simple Service Discovery Protocol) — сетевой протокол, используемый в небольших сетях, в том числе домашних, для анонсирования и выявления сетевых сервисов, в первую очередь поддерживаемых архитектурой Universal Plug-and-Play (UPnP). SSDP представляет собой текстовый протокол на базе HTTPU, использующий XML. Обмен сообщениями в нем осуществляется посредством датаграмм UDP.
Оглавление:
Подключил — и работает
Протокол SSDP является основой архитектуры UPnP. Он позволяет легко связывать между собой домашние устройства, работающие в рамках одной небольшой сети или подключенные к одной точке Wi-Fi. Среди таких устройств могут быть, например, смартфоны, принтеры и МФУ, умные телевизоры, медиаприставки, колонки, видеокамеры и пр. Чтобы SSDP работал, эти устройства должны поддерживать UPnP.
На устройствах и ПК, поддерживающих SSDP, эту функцию можно включить, отключить или приостановить. При включенной функции SSDP устройства сообщают информацию о себе и предоставляемых сервисах любому другому клиенту UPnP. Применяя SSDP, информацию о доступных сервисах предоставляют и компьютеры, подключенные к сети.
С помощью SSDP устройства и ПК не только «узнают» друг о друге, но и получают возможность каким-то образом взаимодействовать: обмениваться данными, запускать функции и сервисы на другом устройстве и пр.
Угрозы, связанные с SSDP
Однако необходимо помнить об обеспечении ИБ, поэтому нужно знать, что, во-первых, сам по себе протокол SSDP не обеспечивает шифрования (хотя, конечно, не препятствует устройствам обмениваться зашифрованными данными), и, во-вторых, во многих устройствах, предназначенных для использования в домашних условиях или небольшом офисе, функция поддержки SSDP по умолчанию включена, что создает риски несанкционированного доступа. Следовательно, эту функцию нужно держать отключенной, а включать лишь тогда, когда она реально нужна, и следить за тем, чтобы она была отключена на каждом устройстве, которое в данный момент ее не использует.
Проверить, включена ли служба обнаружения SSDP на вашем ПК под управлением Windows, можно с помощью команды services.msc. Чтобы убедиться в том, что поддержка SSDP включена на том или ином устройстве, следует внимательно изучить инструкцию к нему и проверить настройки.
Кроме того, необходимо помнить, что особенности SSDP могут быть использованы при реализации DDoS-атак типа «SSDP-амплификация».
DDoS-атаки с использованием SSDP
Эти атаки сетевого уровня (L3) используют уязвимости протокола SSDP, вероятно, ставшие следствием стремления его разработчиков максимально упростить взаимодействие устройств в небольшой сети. К сожалению, эта простота реализована в ущерб безопасности.
В самом общем виде подключение нового устройства выглядит следующим образом. Чтобы узнать, какие из устройств уже присутствуют в сети, добавляемое в нее устройство с включенной функцией SSDP отправляет поисковый запрос к другим устройствам на зарезервированный адрес и порт (239.255.255.250:1900), применяя «веерную рассылку», или мультивещание. В запросе устройство указывает соответствующий своему типу шаблон, или цель. В ответ на запрос каждое из имеющихся в сети устройств, поддерживающих в данный момент SSDP, отправляет UDP-сообщение с информацией о себе на IP-адрес источника и порт, с которого был отправлен запрос.
Фокус в том, что в рамках протокола SSDP проверка местоположения отправителя сообщения не производится, поэтому устройства готовы отвечать не только на запросы «соседей», но и на запросы, отправленные извне. Исключить такие запросы может и должен межсетевой экран (он же брандмауэр или firewall). Но, во-первых, владельцы сети далеко не всегда его устанавливают, и во-вторых, в установленном межсетевом экране порт 1900 нередко остается открытым. И поскольку ответ на запрос SSDP может быть в разы, а то и в десятки раз длиннее, чем сам запрос, становится возможной атака с усилением (SSDP-амплификация): фальшивый запрос, «прилетевший» из внешней сети и содержащий в качестве обратного IP-адреса адрес узла-жертвы, может вызвать многократно усиленный ответ и отправить его жертве. Ну а дальше — как в классическом сценарии DDoS: либо канал связи узла-жертвы окажется забит «мусором», либо сам узел «захлебнется», пытаясь обработать мощный поток SSDP-ответов.
Чтобы минимизировать атаки на основе SSDP, необходимо:
Simple Service Discovery Protocol
Simple Service Discovery Protocol
Простой протокол обнаружения сервисов (англ. Simple Service Discovery Protocol , SSDP ) — истекший черновик интернет стандарта (Internet draft) IETF, написанный компаниями Microsoft и Hewlett-Packard. Данный протокол является основой протокола обнаружения Universal plug-and-play.
SSDP описывает механизм, согласно которому сетевые клиенты могут обнаружить различные сетевые сервисы. Клиенты используют SSDP без предварительной конфигурации. SSDP поддерживает обнаружение при помощи мультикаста, уведомления от серверов и маршрутизацию. Данная служба включает обнаружение UPnP-устройств в домашней сети. Например, телевизор с поддержкой DLNA/UPNP находит медиа-серверы в локальной сети с использованием этого протокола. Домашние маршрутизаторы тоже, как правило, обнаруживаются компьютерами с помощью SSDP (для отображении информации о маршрутизаторах и медиа-серверах в «Сетевом окружении» эти устройства также должны поддерживать протокол HTTP, т. к. SSDP сообщает устройствам http-ссылку на узел управления устройством).
SSDP использует XML UDP пакеты как в одноадресной, так и в многоадресной рассылке для объявлений о сервисах. Используется мультикаст-адрес 239.255.255.250.
В операционной системе Windows для нормального функционирования «Службы Обнаружения SSDP» никаких других служб не требуется. От работы этого сервиса зависит «Узел универсальных PnP-устройств» (Universal Plug and Play Device Host).
См. также
Внешние ссылки
Полезное
Смотреть что такое «Simple Service Discovery Protocol» в других словарях:
Simple Service Discovery Protocol — (SSDP) is an expired IETF Internet draft by Microsoft and Hewlett Packard. SSDP is the basis of the discovery protocol of Universal plug and play.SSDP provides a mechanism which network clients can use to discover network services. Clients can… … Wikipedia
Simple Service Discovery Protocol — (SSDP) est un protocole de communication informatique en réseau. Il a été déclaré à l IETF sous forme de brouillon par Microsoft et Hewlett Packard. Ce brouillon a expiré depuis, mais le protocole est toujours utilisé, notamment comme base à UPnP … Wikipédia en Français
Simple Service Discovery Protocol — SSDP im TCP/IP‑Protokollstapel: Anwendung SSDP Transport UDP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token … Deutsch Wikipedia
Simple Network Management Protocol — (SNMP) forms part of the internet protocol suite as defined by the Internet Engineering Task Force (IETF). SNMP is used in network management systems to monitor network attached devices for conditions that warrant administrative attention. It… … Wikipedia
Service discovery — protocols are network protocols which allow automatic detection of devices and services offered by these devices on a computer network. Service discovery is an essential ingredient of the Semantic Web, since the future Web must allow software… … Wikipedia
Service Location Protocol — The Service Location Protocol (SLP, srvloc) is a service discovery protocol that allows computers and other devices to find services in a local area network without prior configuration. SLP has been designed to scale from small, unmanaged… … Wikipedia
Service Oriented Architecture — Architecture orientée services Pour les articles homonymes, voir SOA. L architecture orientée services (calque de l anglais Service Oriented Architecture, SOA ou AOS) est une forme d architecture de médiation qui est un modèle d interaction… … Wikipédia en Français
Hypertext Transfer Protocol — HTTP Persistence · Compression · HTTPS Request methods OPTIONS · GET · HEAD · POST · PUT · DELETE · TRACE · CONNECT Header fields Cookie · ETag · Location · Referer DNT · … Wikipedia
Simple Service Discovery Protocol ( SSDP ) представляет собой сетевой протокол на основе набора протоколов Интернет для рекламы и обнаружения сетевых сервисов и информации о присутствии. Это достигается без помощи механизмов конфигурации на основе сервера, таких как протокол динамической конфигурации хоста (DHCP) или система доменных имен (DNS), и без специальной статической конфигурации сетевого хоста. SSDP является основой протокола обнаружения Universal Plug and Play (UPnP) и предназначен для использования в жилых или небольших офисных средах. Она была официально описана в Engineering Task Force Интернет (IETF) Internet Draft по Microsoft и Hewlett-Packard в 1999 году Хотя предложение IETF с тех пор истекли (апрель, 2000), SSDP был включен в стек протокола UPnP, а также описание окончательная реализация включена в документы стандартов UPnP.
СОДЕРЖАНИЕ
Транспортный протокол и адресация
Это приводит к следующим хорошо известным практическим групповым адресам для SSDP:
Кроме того, приложения могут использовать зависящие от источника адреса многоадресной рассылки, полученные из локального префикса маршрутизации IPv6, с идентификатором группы C (десятичное число 12).
Реализации Microsoft IPv6 SSDP в проигрывателе и сервере Windows Media используют адрес локальной области связи. Microsoft использует номер порта 2869 для уведомлений о событиях и подписок на события. Однако ранние реализации SSDP также использовали порт 5000 для этой службы.
DDoS-атака
Уязвимость Firefox
Firefox для Android до версии 79 неправильно проверял схему URL-адреса, полученного в SSDP, и был уязвим для удаленного выполнения кода. Злоумышленник в той же сети может создать вредоносный сервер, выдавая себя за устройство, поддерживающее трансляцию, но вместо файла конфигурации он вернет intent:// URL-адрес. Firefox запустит намерение (если оно поддерживается устройством) и, таким образом, выполнит произвольный код. Это не ошибка SSDP, а просто неправильная проверка, выполненная службой кастинга Firefox.
Simple Service Discovery Protocol ( SSDP ) представляет собой сетевой протокол на основе набора протоколов Интернет для рекламы и обнаружения сетевых сервисов и информации о присутствии. Это достигается без помощи механизмов конфигурации на основе сервера, таких как протокол динамической конфигурации хоста (DHCP) или система доменных имен (DNS), и без специальной статической конфигурации сетевого хоста. SSDP является основой протокола обнаружения Universal Plug and Play (UPnP) и предназначен для использования в жилых или небольших офисных средах. Она была официально описана в Engineering Task Force Интернет (IETF) Internet Draft по Microsoft и Hewlett-Packard в 1999 году Хотя предложение IETF с тех пор истекли (апрель, 2000), SSDP был включен в стек протокола UPnP, а также описание окончательная реализация включена в документы стандартов UPnP.
СОДЕРЖАНИЕ
Транспортный протокол и адресация
Это приводит к следующим хорошо известным практическим групповым адресам для SSDP:
Кроме того, приложения могут использовать зависящие от источника адреса многоадресной рассылки, полученные из локального префикса маршрутизации IPv6, с идентификатором группы C (десятичное число 12).
Реализации Microsoft IPv6 SSDP в проигрывателе и сервере Windows Media используют адрес локальной области связи. Microsoft использует номер порта 2869 для уведомлений о событиях и подписок на события. Однако ранние реализации SSDP также использовали порт 5000 для этой службы.
DDoS-атака
Уязвимость Firefox
Firefox для Android до версии 79 неправильно проверял схему URL-адреса, полученного в SSDP, и был уязвим для удаленного выполнения кода. Злоумышленник в той же сети может создать вредоносный сервер, выдавая себя за устройство, поддерживающее трансляцию, но вместо файла конфигурации он вернет intent:// URL-адрес. Firefox запустит намерение (если оно поддерживается устройством) и, таким образом, выполнит произвольный код. Это не ошибка SSDP, а просто неправильная проверка, выполненная службой кастинга Firefox.
Stupidly Simple DDoS Protocol (SSDP) генерирует DDoS на 100 Гбит/с
В мае мы поделились статистикой по самым популярным атакам с отражением. Тогда средний размер атаки SSDP был в районе 12 Гбит/с, а крупнейшая атака SSDP с отражением была такой:
График пакетов в секунду:
Использование полосы:
Пакетный флуд продолжался 38 минут. Судя по выборке потока данных, использовались 930 тыс. отражающих серверов. По нашей оценке, каждый рефлектор отправил 120 тыс. пакетов на Cloudflare.
Отражающие сервера располагались по всему миру, больше всего в Аргентине, России и Китае. Вот уникальные IP-адреса по странам:
Распределение IP-адресов по ASN вполне типично. Оно во многом соотносится с крупнейшими в мире домашними интернет-провайдерами:
Впрочем, что такое SSDP?
Данная атака состоит из UDP-пакетов с порта 1900. Этот порт используется протоколами SSDP и UPnP. UPnP — один из протоколов Zeroconf (Zero Configuration Networking), которые создают IP-сеть без конфигурации или специальных серверов. Скорее всего, ваши домашние устройства поддерживают его, чтобы их легче было найти с компьютера или телефона. Когда присоединяется новое устройство (вроде вашего ноутбука), оно может опросить локальную сеть на предмет наличия конкретных устройств, таких как интернет-шлюзы, аудиосистемы, телевизоры или принтеры. Подробнее см. сравнение UPnP и Bonjour.
UPnP плохо стандартизирован, но вот выдержка из спецификаций о фрейме M-SEARCH — основном методе обнаружения:
Когда в сеть добавляется контрольная точка, протокол обнаружения UPnP позволяет этой контрольной точке поиск интересующих устройств в сети. Он делает это с помощью мультивещания поискового сообщения на зарезервированный адрес и порт (239.255.255.250:1900) с шаблоном, или целью, соответствующей типу идентификатора для устройства или сервиса.
Ответы во фрейм M-SEARCH :
Чтобы быть найденным поисковым запросом, устройство должно отправить одноадресный ответ UDP на IP-адрес источника и порт, который прислал сообщение с помощью мультивещания. Ответ требуется, если в поле заголовка ST в запросе M-SEARCH указано “ssdp:all”, “upnp:rootdevice”, “uuid:”, а далее следует UUID, который в точности соответствует UUID устройства, или если запрос M-SEARCH соответствует типу устройства или типу сервиса, поддерживаемому устройством.
Так оно и работает на практике. Например, мой браузер Chrome регулярно опрашивает Smart TV, насколько я понимаю:
Этот фрейм отправляется на IP-адрес для мультивещания. Другие устройства, которые слушают этот адрес и поддерживают специфический многоэкранный тип ST (search-target), должны ответить.
Кроме запросов специфических типов устройств, существует два «общих» типа запросов ST :
В моей домашней сети отзываются два устройства:
Файрвол
Теперь, когда мы понимаем основы SSDP, будет легко понять суть атаки с отражением. На самом деле есть два способа доставки фрейма M-SEARCH :
Если дать нашему скрипту такую мишень с неправильной конфигурацией файрвола, то он отлично сработает через интернет:
Умножение пакетов
В этом конкретном случае единственный пакет SSDP M-SEARCH вызвал 8 пакетов в ответ. Просмотр в tcpdump:
Мишень совершила восьмикратное умножение пакетов и 26-кратное умножение трафика. К сожалению, это типичный случай SSDP.
Спуфинг IP
Последний шаг, необходимый для проведения атаки — убедить уязвимые серверы отсылать ответные пакеты на адрес жертвы, а не злоумышленника. Для этого злоумышленнику необходимо подделать IP-адрес отправителя в своих запросах.
Мы опросили IP-адреса рефлекторов, которые использовались в вышеупомянутой атаке на 100 Гбит/с. Оказалось, что из 920 тыс. адресов только 350 тыс. (35%) по прежнему отвечают на пробные запросы SSDP.
Ответившим на пробные запросы мы отправляли, в среднем, 7 пакетов:
Пакеты с запросами имели размер 110 байт. Пакеты с ответами — в среднем, 321 байт (± 29 байт).
Подробнее о серверах SSDP
Поскольку мы опросили уязвимые серверы SSDP, мы можем показать самые популярные значения заголовка Server :
104833 Linux/2.4.22-1.2115.nptl UPnP/1.0 miniupnpd/1.0
77329 System/1.0 UPnP/1.0 IGD/1.0
66639 TBS/R2 UPnP/1.0 MiniUPnPd/1.2
12863 Ubuntu/7.10 UPnP/1.0 miniupnpd/1.0
11544 ASUSTeK UPnP/1.0 MiniUPnPd/1.4
10827 miniupnpd/1.0 UPnP/1.0
8070 Linux UPnP/1.0 Huawei-ATP-IGD
7941 TBS/R2 UPnP/1.0 MiniUPnPd/1.4
7546 Net-OS 5.xx UPnP/1.0
6043 LINUX-2.6 UPnP/1.0 MiniUPnPd/1.5
5482 Ubuntu/lucid UPnP/1.0 MiniUPnPd/1.4
4720 AirTies/ASP 1.0 UPnP/1.0 miniupnpd/1.0
4667 Linux/2.6.30.9, UPnP/1.0, Portable SDK for UPnP devices/1.6.6
3334 Fedora/10 UPnP/1.0 MiniUPnPd/1.4
2814 1.0
2044 miniupnpd/1.5 UPnP/1.0
1330 1
1325 Linux/2.6.21.5, UPnP/1.0, Portable SDK for UPnP devices/1.6.6
843 Allegro-Software-RomUpnp/4.07 UPnP/1.0 IGD/1.00
776 Upnp/1.0 UPnP/1.0 IGD/1.00
675 Unspecified, UPnP/1.0, Unspecified
648 WNR2000v5 UPnP/1.0 miniupnpd/1.0
562 MIPS LINUX/2.4 UPnP/1.0 miniupnpd/1.0
518 Fedora/8 UPnP/1.0 miniupnpd/1.0
372 Tenda UPnP/1.0 miniupnpd/1.0
346 Ubuntu/10.10 UPnP/1.0 miniupnpd/1.0
330 MF60/1.0 UPnP/1.0 miniupnpd/1.0
.
Самые популярные значения заголовка ST :
298497 upnp:rootdevice
158442 urn:schemas-upnp-org:device:InternetGatewayDevice:1
151642 urn:schemas-upnp-org:device:WANDevice:1
148593 urn:schemas-upnp-org:device:WANConnectionDevice:1
147461 urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1
146970 urn:schemas-upnp-org:service:WANIPConnection:1
145602 urn:schemas-upnp-org:service:Layer3Forwarding:1
113453 urn:schemas-upnp-org:service:WANPPPConnection:1
100961 urn:schemas-upnp-org:device:InternetGatewayDevice:
100180 urn:schemas-upnp-org:device:WANDevice:
99017 urn:schemas-upnp-org:service:WANCommonInterfaceConfig:
98112 urn:schemas-upnp-org:device:WANConnectionDevice:
97246 urn:schemas-upnp-org:service:WANPPPConnection:
96259 urn:schemas-upnp-org:service:WANIPConnection:
93987 urn:schemas-upnp-org:service:Layer3Forwarding:
91108 urn:schemas-wifialliance-org:device:WFADevice:
90818 urn:schemas-wifialliance-org:service:WFAWLANConfig:
35511 uuid:IGD<8c80f73f-4ba0-45fa-835d-042505d052be>000000000000
9822 urn:schemas-upnp-org:service:WANEthernetLinkConfig:1
7737 uuid:WAN<84807575-251b-4c02-954b-e8e2ba7216a9>000000000000
6063 urn:schemas-microsoft-com:service:OSInfo:1
.
Уязвимые IP-адреса как будто принадлежат, в основном, домашним маршрутизаторам.
Открытый SSDP — это уязвимость
Само собой понятно, что разрешить входящий трафик 1900/UDP из интернета на ваш домашний принтер или другое устройство — не самая лучшая идея. Эта проблема известна по крайней мере с января 2013 года:
Клиенты Cloudflare полностью защищены от атак SSDP и других атак с умножением класса L3. Эти атаки хорошо отражаются инфраструктурой Cloudflare и не требуют дополнительных действий. Однако увеличение размера SSDP может стать серьёзной проблемой для других пользователей интернета. Мы должны призвать своих интернет-провайдеров запретить IP-спуфинг в своих сетях, включить поддержку BGP flowspec и настроить сбор потока данных в сети (netflow).
Статью подготовили совместно Марек Майковски и Бен Картрайт-Кокс.