Не первый раз
Протокол DHCP (описан в RFC 2131) позволяет сетевым устройствам автоматически получать IP-адрес. Это достаточно старая технология, которую в большинстве сетей TCP/IP используют более тридцати лет. Поэтому неудивительно, что за прошедшее время специалисты по информационной безопасности обнаружили десятки уязвимостей в работе протокола и связанных с ним решений.
Например, еще в 2016 году эксперты отмечали риски, которые несут идентификаторы клиентов (стр. 30). DHCP-серверы используют их для индексации базы с привязками адресов. Но поскольку каждый клиент имеет уникальный идентификатор, злоумышленники могут использовать их для мониторинга активности в сети. Для защиты от подобной слежки даже был разработан специальный механизм под названием Anonymity Profiles (он описан в RFC 7844).
Уязвимости встречались и в реализациях DHCP-серверов некоторых операционных систем. Так, в 2019 году специалисты обнаружили CVE-2019-0626. Она открывала возможность удалённого выполнения кода.
И вот в начале осени группа инженеров из Университета Твенте в Нидерландах обнаружила новую уязвимость. Она позволяет оценить количество устройств в сети, динамику их взаимоотношений и отслеживать пользователей даже при наличии защитных механизмов.
Как это работает
Когда устройство подключается к сети, оно запрашивает у DHCP-сервера новый адрес. Он зарезервирован в течение определённого времени или до тех пор, пока клиент не отправит служебное сообщение, чтобы его высвободить. Однако бывают ситуации, когда устройство просто покидает сеть. В этом случае возникает задержка до таймаута, и в этот момент можно изучить сеть с помощью обратных запросов к DNS.
На основании публичных адресов возможно построить карту с именами хостов в сети. На первый взгляд, это не очень опасно, однако, если они содержат критическую информацию, возникает угроза приватности. Условный адрес может быть связан с именем toms-iphone12.example.edu или secret-nas.example.edu. Данные о марке и модели устройства подскажут злоумышленникам, какие эксплойты подойдут для взлома.
Инженеры из Университета Твенте также отмечают, что анализ интервалов получения IP-адресов может дать представление о динамике сети и перемещениях пользователей. Еще в прошлом году американские коллеги показали, что запросы rDNS позволяют определить геолокацию маршрутизатора и, соответственно, здание, где находится клиент.
Что можно сделать
В первую очередь необходимо ограничить информацию — в частности, имена устройств — которая передается DHCP-серверам (стр. 12). Однако это зависит от разработчиков аппаратного обеспечения, повлиять на которых сложно. В то же время сетевые администраторы могут нивелировать проблему, если заблокируют передачу информации Host Name с DHCP к DNS.
Делать это стоит и в контексте работы с IPv6, поскольку технологии вроде SLAAC (позволяет устройству получить свой префикс, длину префикса и адрес шлюза по умолчанию от маршрутизатора IPv6) открывают возможности для еще более детализированного сбора информации. В будущем инженеры из Твенте планируют подробнее изучить подходы к решению проблемы.