Что такое 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 (Simple Service Discovery Protocol, простой протокол обнаружения сервисов) — это протокол на основе UDP, который используют устройства UPnP (Universal Plug-and-Play, поддерживают набор сетевых протоколов для автоматического соединения в локальной сети и обмена данными). SSDP используется для обнаружения и анонсирования сетевых сервисов, но создаёт риски несанкционированного доступа. Также может применяться в DDoS-атаках типа SSDP-усиление (амплификация): поддельные запросы вызывают более крупные ответы, которые перенаправляются на жертву и перегружают её сеть или ресурсы.
Угрозы, связанные с SSDP
Однако необходимо помнить об обеспечении ИБ, поэтому нужно знать, что, во-первых, сам по себе протокол SSDP не обеспечивает шифрования (хотя, конечно, не препятствует устройствам обмениваться зашифрованными данными), и, во-вторых, во многих устройствах, предназначенных для использования в домашних условиях или небольшом офисе, функция поддержки SSDP по умолчанию включена, что создает риски несанкционированного доступа. Следовательно, эту функцию нужно держать отключенной, а включать лишь тогда, когда она реально нужна, и следить за тем, чтобы она была отключена на каждом устройстве, которое в данный момент ее не использует.
Проверить, включена ли служба обнаружения SSDP на вашем ПК под управлением Windows, можно с помощью команды services.msc. Чтобы убедиться в том, что поддержка SSDP включена на том или ином устройстве, следует внимательно изучить инструкцию к нему и проверить настройки.
Кроме того, необходимо помнить, что особенности SSDP могут быть использованы при реализации DDoS-атак типа «SSDP-амплификация». И, к сожалению, это не единственный риск для UDP-сервисов. Если приложение или инфраструктура использует UDP, стоит заранее предусмотреть защиту от DDoS-атак на этом уровне.
Защита сервисов TCP/UDP от DDoS-атак
- Подключение за 10 минут
- Поддержка 24×7
DDoS-атаки с использованием SSDP
Эти атаки сетевого уровня (L3) используют уязвимости протокола SSDP, вероятно, ставшие следствием стремления его разработчиков максимально упростить взаимодействие устройств в небольшой сети. К сожалению, эта простота реализована в ущерб безопасности.
В самом общем виде подключение нового устройства выглядит следующим образом. Чтобы узнать, какие из устройств уже присутствуют в сети, добавляемое в нее устройство с включенной функцией SSDP отправляет поисковый запрос к другим устройствам на зарезервированный адрес и порт (239.255.255.250:1900), применяя «веерную рассылку», или мультивещание. В запросе устройство указывает соответствующий своему типу шаблон, или цель. В ответ на запрос каждое из имеющихся в сети устройств, поддерживающих в данный момент SSDP, отправляет UDP-сообщение с информацией о себе на IP-адрес источника и порт, с которого был отправлен запрос.
Фокус в том, что в рамках протокола SSDP проверка местоположения отправителя сообщения не производится, поэтому устройства готовы отвечать не только на запросы «соседей», но и на запросы, отправленные извне. Исключить такие запросы может и должен межсетевой экран (он же брандмауэр или firewall). Но, во-первых, владельцы сети далеко не всегда его устанавливают, и во-вторых, в установленном межсетевом экране порт 1900 нередко остается открытым. И поскольку ответ на запрос SSDP может быть в разы, а то и в десятки раз длиннее, чем сам запрос, становится возможной атака с усилением (SSDP-амплификация): фальшивый запрос, «прилетевший» из внешней сети и содержащий в качестве обратного IP-адреса адрес узла-жертвы, может вызвать многократно усиленный ответ и отправить его жертве. Ну а дальше — как в классическом сценарии DDoS: либо канал связи узла-жертвы окажется забит «мусором», либо сам узел «захлебнется», пытаясь обработать мощный поток SSDP-ответов.

Чтобы минимизировать атаки на основе SSDP, необходимо:
- заблокировать как входящий, так и исходящий UDP-порт 1900 в межсетевом экране для входящего трафика;
- использовать BGP flowspec, чтобы ограничить входящий трафик с этого порта и на этот порт;
- крайне осторожно использовать сервисы на основе UDP, поскольку DDoS-атаки на базе этого протокола сложнее отражать;
- регулярно сканировать подключенные к сети устройства на наличие включенной функции SSDP и отключать ее всегда и везде, если она в данный момент не требуется.
Вам также может быть интересно узнать о возможностях таких услуг StormWall, как «Защита сети от DDoS-атак».
Автор: Юлия Ильина, технический эксперт StormWall
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Что такое SSDP (Simple Service Discovery Protocol)?",
"acceptedAnswer": {
"@type": "Answer",
"text": "SSDP (Simple Service Discovery Protocol) — сетевой протокол, используемый в небольших сетях, в том числе домашних, для анонсирования и выявления сетевых сервисов, в первую очередь поддерживаемых архитектурой UPnP. Протокол текстовый, на базе HTTPU, использует XML и обмен сообщениями посредством датаграмм UDP."
}
},
{
"@type": "Question",
"name": "Для чего используется SSDP?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Протокол SSDP является основой архитектуры UPnP. Он позволяет легко связывать между собой домашние устройства — смартфоны, принтеры, МФУ, телевизоры, медиаприставки, колонки, видеокамеры и др. Устройства, ПК или другая техника, поддерживающие SSDP, могут анонсировать свои сервисы и обнаруживать сервисы других устройств в одной сети."
}
},
{
"@type": "Question",
"name": "Какие угрозы связаны с использованием SSDP?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Хотя SSDP удобен, он не обеспечивает шифрования сам по себе (хотя устройства могут обмениваться зашифрованными данными). Более того, функция SSDP часто по умолчанию включена на домашних устройствах, что создаёт риск несанкционированного доступа."
}
},
{
"@type": "Question",
"name": "Что такое SSDP-амплификация и как она используется при DDoS-атаках?",
"acceptedAnswer": {
"@type": "Answer",
"text": "При атаках на базе SSDP злоумышленник может отправить специальный запрос SSDP с указанием IP-адреса жертвы в качестве источника. Уязвимые устройства отвечают, формируя усиленный поток данных, который перенаправляется на жертву. Это позволяет организовать DDoS-атаку с усилением (SSDP-амплификация)."
}
},
{
"@type": "Question",
"name": "Какие рекомендации по безопасности при использовании SSDP?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Для минимизации рисков, связанных с SSDP, рекомендуется: \n- блокировать входящий и исходящий трафик по UDP-порту 1900 на межсетевом экране; \n- ограничивать входящий трафик на этот порт через BGP flowspec; \n- регулярно сканировать устройства в сети на наличие включённой функции SSDP и отключать её, когда она не требуется."
}
}
]
}