Upnp что это такое
Что такое UPnP и почему его нужно отключить?
Вы бы предпочли выбрать удобство или безопасность? UPnP помогает быстро подключать устройства к сети — нет необходимости в ручной настройке. Однако он также может позволить хакерам входить в вашу сеть для выполнения вредоносных действий. Стоит узнать, как хакеры используют UPnP и что можно сделать, чтобы защитить себя.
Что такое переадресация портов?
Чтобы понять, что такое UPnP, нужно сначала разобраться, что такое переадресация портов. Она используется для установления прямого подключения между домашним устройством или сервером и удаленным устройством. Например, вы можете подключить ноутбук к видеокамере и следить за ним, пока находитесь вдали.
Как это работает? Все ваши домашние устройства, включая маршрутизатор, вместе создают локальную сеть (LAN). Все, что находится за пределами локальной сети, например, серверы сайта или компьютер вашего друга, расположено в глобальной сети (WAN). Как правило, никто за пределами вашей локальной сети не может получить доступ к устройствам в вашей сети, если вы не позволите им воспользоваться переадресацией портов.
Что такое UPnP?
Это протокол, который позволяет приложениям и другим устройствам в вашей сети автоматически открывать и закрывать порты для подключения друг к другу. Например, если вы решили подключить принтер ко всем устройствам в доме без UPnP, то вам потребуется сделать это вручную, уделяя внимание каждому отдельному девайсу. Но благодаря UPnP можно автоматизировать этот процесс.
UPnP предлагает нулевую конфигурацию, что означает, что ни одно из устройств в вашей сети не нуждается в ручной настройке для обнаружения нового устройства. С поддержкой UPnP они могут автоматически подключаться к сети, получать IP-адрес, находить другие устройства в сети и подключаться к ним, и это очень удобно.
Для чего используется UPnP?
Почему UPnP небезопасен?
Первоначально предполагалось, что UPnP будет работать только на уровне локальной сети, что означает, что устройства только в вашей сети могут подключаться друг к другу. Однако многие производители маршрутизаторов теперь включают UPnP по умолчанию, что делает их доступными для обнаружения из WAN, а это приводит к многочисленным проблемам безопасности.
UPnP не использует аутентификацию или авторизацию (только некоторые устройства), предполагая, что устройства, пытающиеся подключиться к нему, являются надежными и поступают из вашей локальной сети. Это означает, что хакеры могут найти бэкдоры в вашей сети. Например, они отправят UPnP-запрос на ваш маршрутизатор и он откроет им порт без лишних вопросов.
Как только хакер получит доступ к сети, он сможет:
Как защитить себя?
Когда дело доходит до уязвимостей UPnP, есть два варианта, которые вы можете выбрать для собственной защиты.
Другим более безопасным методом является полное отключение UPnP. Перед этим рекомендуется проверить, уязвим ли ваш маршрутизатор к UPnP-эксплойтам. Также нужно подумать о том, хотите ли вы отказаться от удобства UPnP и сможете ли вы настроить свои устройства вручную. Для этого может потребоваться некоторые технические знания.
На видео: Как включить на роутере UPnP?
Для чего нужен UPnP – как его используют и почему следует отключить
Вы предпочитаете удобство или безопасность? UPnP помогает быстро подключать устройства к сети – не требует ручной настройки. Однако, он также может позволить хакерам проникнуть в вашу сеть для выполнения злонамеренных действий.
Узнайте, как хакеры используют UPnP и что вы можете сделать, чтобы защитить себя.
Что такое переадресация портов
Чтобы понять, что такое UPnP, вы должны сначала понять переадресацию портов.
Переадресация портов используется для установления прямого соединения между вашим домашним устройством или сервером и удаленным устройством. Например, вы можете подключить свой ноутбук к домашней камере и следить за домом, пока вас нет.
Как это работает? Все ваши домашние устройства, включая маршрутизатор, вместе создают, так называемую, локальную сеть (LAN). Все, что находится за пределами локальной сети, например, серверы веб-сайтов или компьютер вашего друга, находится в глобальной сети (WAN). Обычно никто за пределами вашей локальной сети не может получить доступ к устройствам в вашей сети, если вы не разрешите им использовать переадресацию портов.
Что такое UPnP
Universal Plug and Play (UPnP) – это протокол, который позволяет приложениям и другим устройствам в вашей сети автоматически открывать и закрывать порты для соединения друг с другом. Например, если вы хотите подключить принтер ко всем в вашей семье без UPnP, вам нужно будет подключить принтер к каждому устройству. UPnP автоматизирует это.
UPnP предлагает нулевую конфигурацию, это означает, что ни одно из устройств в вашей сети не требует ручной настройки для обнаружения нового устройства. Устройства с поддержкой UPnP могут автоматически подключаться к сети, получать IP-адрес, а также находить и подключаться к другим устройствам в вашей сети, что делает это очень удобным.
Для чего используется UPnP
UPnP лучше для игр
UPnP, безусловно, упрощает игровой процесс. Вместо того, чтобы вручную определять номер порта для каждого устройства или онлайн-игры, UPnP сделает это за вас. Однако, если вы решите пойти по маршруту ручной переадресации портов, есть онлайн-руководства о том, как открыть определенные порты для определенных игр и устройств.
Некоторые утверждают, что ручная переадресация портов лучше для скорости вашего интернет-соединения, поскольку UPnP вызывает задержку. Но, так ли это на самом деле? Это очень маловероятно, но когда дело доходит до игр, это может увеличить задержку вашего соединения, но это не должно повлиять на скорость загрузки.
Почему UPnP не безопасен
Первоначально предполагалось, что UPnP будет работать только на уровне локальной сети, а это означает, что только устройства в вашей сети могут подключаться друг к другу. Однако, многие производители маршрутизаторов теперь включают UPnP по умолчанию, что делает их обнаруживаемыми в глобальной сети и приводит ко многим проблемам с безопасностью.
UPnP не использует аутентификацию или авторизацию (только некоторые устройства), предполагая, что устройства, пытающиеся подключиться к нему, заслуживают доверия и находятся в вашей локальной сети. Это означает, что хакеры могут найти лазейки в вашей сети. Например, они могут обнаружить ваш маршрутизатор в более широкой сети, а затем притвориться устройством Xbox. Они отправят запрос UPnP на ваш маршрутизатор, и маршрутизатор откроет порт – без вопросов.
Как только хакер появится в сети, он сможет:
Использование вашего маршрутизатора в качестве прокси-сервера означает, что все эти атаки будут выглядеть так, как будто они исходят от вас, а не от хакера.
Как защитить себя
Когда дело доходит до уязвимостей маршрутизатора UPnP, есть два варианта, которые вы можете выбрать, чтобы защитить себя.
Что произойдёт, если отключить UPnP на маршрутизаторе
Если вы полностью отключите UPnP, ваш маршрутизатор будет игнорировать все входящие запросы, поэтому вам придется настраивать устройства вручную. Это означает, что маршрутизатор больше не будет автоматически открывать порты в вашей локальной сети, игнорируя даже безопасные запросы.
Это не значит, что вы не сможете подключаться к устройствам в своей сети или к онлайн-играм. Но, хлопот будет больше. Вам придётся вручную настроить правила переадресации портов для каждого конкретного соединения, что потребует больше времени, усилий и технических знаний. Тем не менее, есть онлайн-руководства, которые помогут вам выполнить перенаправление конкретных портов.
Что такое UPnP в роутере, для чего эта функция нужна и как её включить и выключить
Всем привет! Сегодня мы поговорим про функцию UPnP (Universal Plug and Play) – что это такое, для чего нужна эта функция, и как она включается (или выключается) на роутере. Давайте рассмотрим конкретный пример – представим, что у нас есть домашняя сеть с роутером. В ней есть подключенные устройства – не важно какие, это могут быть телефоны, планшеты, телевизоры, принтеры или IP-камеры.
Все они подключены к маршрутизатору (роутеру), который также аналогично подключен к глобальной сети интернет. В итоге у нас есть:
Для того, чтобы в локальной сети все устройства работали нормально, обнаруживали друг друга и быстро подключались, и нужна технология UPnP. В противном случае всем этим телефонам, планшетам и телевизорам нужно было вручную прописывать настройка и открывать порты. Во время подключения таких устройств, на них постоянно открываются и закрываются порты – прям как на морском берегу для кораблей.
Например, вы решили посмотреть с телевизора фильм, находящийся на компьютере. Тогда нужна технология DLNA, которая позволяет передавать видео в потоковом режиме. При подключении к компьютеру, он в свою очередь открывает определенный порт. В общем, если бы не было у нас UPnP, то для каждого подключения к любому устройству дома вам нужно было бы прописывать вручную настройки, открывать или закрывать порты.
UPnP в глобальной сети
Мы рассмотрели понятие на примере домашней сети, но ведь не все используют прямое подключение в локальной сетке. Обычно к роутеру подключаются, чтобы выйти в интернет. И тут также включается функция UPnP, которая при запросе в интернет к определенному серверу также открывает определенные порты.
Например, всем известный uTorrent также использует эту технологию, и она должна по умолчанию быть включена на роутере. Когда мы включаем эту программу, она делает запрос в интернет и открывает порт для данного потока информации.
По сути UPnP открывает и закрывает порты для внешних запросов, для тех устройств, которые и делали эти запросы в интернет. Я думаю с понятием мы разобрались. Но бывают проблемы, когда данная функция выключена на роутере. Тогда некоторые программы, игры, утилиты не будут работать на компьютере или телефоне. Также могут быть проблемы с подключением игровых приставок тип Xbox или PlayStation.
Но существует и «обратная сторона монеты». Как вы понимаете, при запросе к серверу при подключении открываются порты на ваше устройство. Понятное дело, что данным подключением могут воспользоваться хакеры и взломщики. Для обычного пользователя шанс, конечно, не велик, но все же… В интернатах до сих пор идут «холивары» по поводу того, надо ли отключать UPnP или нет. Поэтому отключать функцию или включать – решать вам. Но как я и говорил ранее, при выключенном UPnP нужно будет для отдельных программ или устройств делать ручной проброс портов на роутере.
Далее я расскажу, как включить UPnP, отключить и настроить на вашем домашнем маршрутизаторе.
Вход в интерфейс роутера
Нам нужно попасть в Web-интерфейс аппарата – для этого с подключенного устройства к локальной сети нужно открыть браузер и вписать в адресную строку IP или DNS адрес роутера. Данный адрес находится на этикетке под роутером. Чаще всего используют 192.168.1.1. или 192.168.0.1. Если у вас будут какие-то проблемы со входом в маршрутизатор – смотрите инструкцию тут.
Далее инструкции будут немного отличаться в зависимости от модели роутера.
Безопасность технологии UPnP в видеонаблюдении
Возможно немногие обращают внимание при настройке IP камер и видеорегистратора на сетевую технологию UPnP. А вот зря! ВЫ МОЖЕТЕ ОТКРЫТЬ ДОСТУП К ВАШИМ КАМЕРАМ ИЛИ ВИДЕОРЕГИСТРАТОРУ, не зная об этом. Но только в том случае, если у вас внешний статический публичный IP адрес.
Для понимания, UPnP (Universal Plug and Play) — это архитектура многоранговых соединений между персональными компьютерами и интеллектуальными устройствами, установленными, например, дома. UPnP строится на основе стандартов и технологий интернета, таких как TCP/IP, HTTP и XML, и обеспечивает автоматическое подключение подобных устройств друг к другу и их совместную работу в сетевой среде, в результате чего сеть (например, домашняя) становится лёгкой для настройки большему числу пользователей. (из википедии)
Если простым языком, то технология UPnP в нашем случае работает следующим образом. Ваш роутер поддерживает технологию UPnP и данная опция включена в настройках. Ваш видеорегистратор и/или IP камера также поддерживает UPnP и данная опция включена в настройках. И нажатием кнопки «передать настройку портов UPnP» у вас автоматически на роутере настраивается проброс необходимых портов к вашему видеорегистратору или ip камере. С одной стороны это хорошо, просто и удобно. Но я бы об этом не писал, если всё было хорошо:)
Настройки UPnP как правило находятся в разделе Сеть (Network), пример на видеорегистраторе Hikvision:
А теперь по порядку при использовании UPnP:
Вышеперечисленное ведет практически к свободному администраторскому доступу к вашему видеорегистратору/ip камере. Кто-то скажет: ой да ладно, кому я нужен, и кто узнает мой внешний ip адрес. Погуглите о свободном доступе к видеорегистраторам/камерам через гугл поисковик, неприятно удивитесь =)
Особенно популярна следующая история при использовании UPnP: на видеорегистраторе отключен UPnP, на роутере включен UPnP, на ip камерах включен UPnP. И в зависимости от кол-ва ip камера переодически чередуется доступ к ip камерам через стандартные порты 80 или 8080 с логином и паролем admin/admin.
Поэтому достаточно просто отключить на роутере поддержку UPnP и уже вручную настроить проброс необходимых портов.
Пример отключения UPnP на роутерах Mikrotik:
Старая уязвимость в UPnP на новый манер
Всё новое — это хорошо забытое старое (а лучше очень хорошо забытое старое). Следить за новыми уязвимостями, конечно же, правильно, но и о старых забывать не стоит. Тем более, когда о них позволяет себе «забыть» производитель. Кто-то должен помнить. Иначе мы снова и снова будем наступать на одни и те же грабли.
Речь в статье пойдет об одной старенькой, но, как оказалось, ни разу не потерявшей актуальности и по сей день, дыре UPnP.
P.S. Провайдера называть не буду, вины его в этом нет, но с другой стороны есть явный недосмотр политик безопасности, которые вкупе с архитектурой сети дали возможность проэксплуатировать эту уязвимость. Как это всегда бывает — звезды сошлись. Провайдер ставил на своей сети роутеры клиентам с нужными чипами и подключал с внешним ip адресом. Да, большинство портов были зафильтрованы, но почему-то не 52869.
P.P.S. Все события произошли в конце 2018 года. Герои вымышлены, а совпадения с реальными личностями случайны.
Есть некоторая библиотека libupnp для разработки, которая «используется на тысячах устройств и называется Intel SDK для UPnP-устройств или Portable SDK для UPnP-устройств».
«The portable SDK for UPnP Devices (libupnp) provides developers with an API and open source code for building control points, devices, and bridges that are compliant with Version 1.0 of the Universal Plug and Play Device Architecture Specification and support several operating systems like Linux, *BSD, Solaris and others.»
«… ограничение взаимодействия со службой… Только клиенты и серверы, которые имеют законные процедурные отношения… должны иметь возможность общаться с ним.»
Недостаток существует в сервисе miniigd SOAP. Проблема заключается в обработке запросов NewInternalClient из-за невозможности очистки пользовательских данных перед выполнением системного вызова. Злоумышленник может использовать эту уязвимость для выполнения кода с привилегиями root.
Т.е. на всех роутерах с версией UPnP 1.0 можно выполнять произвольный удаленный код.
Без авторизации. От рута. Здорово, правда?
Любой желающий может на github’е найти готовый плагин для метасплоита, работоспособность которого проверена прожженными стульями наших дежурных инженеров.
Было неожиданно и совсем не весело.
Краткая хронология событий того дня:
14:00 В техническую поддержку начинают поступать обращение абонентов на плохо работающий интернет.
15:00 Количество заявок начинает превышать среднюю температуру по больнице и одиночные заявки начинают лепить в заявки по больше с типом «Авария». Заявки передаются на старших администраторов для проверки сегментов сети.
15:20 Админы закрывают массовые аварии, т.к. проблем на сети нет, все заявки клиентов с разных точек подключения и одиночные. (к примеру: коммутатор полный активных абонентов, а плохо работает у одного). В этот момент спадают обращения и всё затихает. Кто-то обращает внимание (наконец-то), что все заявки на плохую работу были с одной и той-же моделью роутера, все дружно делают вид, что всё хорошо.
15:30 Снова наплыв заявок от абонентов, снова регистрация массовой аварии и передача админам. В этот момент становится ясно, что что-то действительно не так и нужно что-то делать (кто работал с клиентским сервисом меня поймет, как это иногда сложно сделать. Клиенты всегда врут, а иногда и первая линия врет, чтобы эскалировать задачу дальше).
15:35 Дежурный инженер получает заявку на проблему с клиентским сервисом. Получает список всех клиентов, тип их подключения и модель устройства. А дальше начинается немного магии.
15:40 Инженер прогоняет список клиентов через все диагностики какие есть, каждый роутер был проверен по всем стандартным метрикам и… ничего не нашлось. Роутер как роутер. Да, увеличилось CPU, но показатели не критичные, да он льет куда-то трафик, значит — работает.
Да, крутится на 52869 порту UPnP-сервис. Да там еще куча открытых портов, открыты значит нужны (логика железная), и он всегда там крутился и никаких проблем не было (еще один аргумент железной логики). Прямой ssh на данную модель роутера невозможен (откровенно говоря возможен, но внутри сильно урезанный busybox и политикой компании крайне не приветствовалось такое хождение по клиентским устройствам). Всё опять встало.
16:00 Только сейчас мы узнаем о том, что есть какие-то проблемы. Дежурный инженер докладывает своему руководителю, а руководитель телефонным звонком сообщает нам свои догадки по поводу 52869 порта и просит помочь.
16:05 Дальше всё происходило очень быстро. На тестовый стенд включается такая же модель роутера, у проблемного клиента забирается ip-адрес и вешается на тестовый. Включается wireshark. Это чтобы отловить запросы к устройству.
Чтобы отловить запросы от роутера (на тот момент еще неизвестна была общая схема, как происходит взаимодействие) клиент изолируется в тестовом сегменте и весь его трафик миррорится в ближайшую тестовую машину где поднят еще один wireshark.
Дальше ждем, смотрим в экран.
Таким способом уже ловили взломы — достаточно эффективно и поэтому решили не изменять привычкам.
16:10 Пока wireshark шуршит, в гугле находится уязвимость CVE-2014-8361 о чем сообщается инженерам. Инженер, не дослушав, принимает решение (и в принципе логичное) — фильтр данного порта на бордерах. Сказанно — сделано.
16:25 Нам сообщают, что все говно миша переделывай не сработало. И мы уже знали, что не сработает. К тому моменту на тестовый роутер уже постучались, подняли реверс-шел на другом порту и начали параллельно использовать для DDOS-a через 1900(!) порт используя еще одну уязвимость. Господи, како же дырявое помойное ведро
Использование в DDoS атаках схемка
В 2014 неожиданно обнаружили, что SSDP использовался в DDoS атаках типа «Атака отражения и усиления при помощи SSDP» (SSDP reflection attack with amplification). Многие устройства, в том числе бытовые маршрутизаторы имели изъян в программном обеспечении UPnP, который позволял атакующему направлять ответы с порта 1900 на произвольный адрес в сети Интернет. В случае использования ботнета из многих тысяч подобных устройств, атакующий мог создать большой поток пакетов, достаточных для занятия пропускной полосы и насыщения каналов передачи данных атакуемой площадки, что приводит к отказу в обслуживании для обычных пользователей.
Самое интересное — были изменены правила файрвола на устройстве и nmap теперь не показывал открытые порты с внешки. Только в дампе трафика можно было обнаружить запросы по этим портам. Т.е. злоумышленник после взлома закрывал доступ для остальных. Не хай-тек подход, но всё равно — браво.
16:30 Собирается конфа с вопросами «кто виноват и что делать». Оставили забаннеными порты 1900 и 52869. Принимаются попытки уже на взломанных устройствах что-то исправить. Ребут — не помог, идею перепрошить сразу отвергли. Да, функционал такой имеется, можно было одной кнопкой на всех устройствах переставить удаленно ПО через TR069. Но т.к. устройство не первой свежести, а количество клиентов было большим — определенный процент окирпиченных устройств создал бы проблем.
16:40 Подводим краткий итог: устройства взломаны, участвуют минимум в ddos и по шифрованному каналу куда-то что-то передают. (Все на разных портах). Залезть внутрь не представляется возможным, вендор отказал в полном доступе по ssh к устройству и посмотреть, что именно там накрутили невозможно. Консоль запаролена.
Где-то ближе к 17:00 Было принято решение шить устройства как самый быстрый способ. После перепрошивки и перезагрузки — всё нормализовалось.
Вместо итогов
К сожалению, так до конца решить эту проблему мы не смогли.
Под «решить» я подразумеваю получить полную информацию по взлому и обновить наши политики для противодействия подобному в дальнейшем. Да, не все поставленные задачи решаются успешно и так как хотелось бы. Это нормально. Хоть и обидно.
Если хорошо поискать на шодане,
то можно найти себе что-нибудь
для экспериментов:
так или так
но я вам этого не говорил.