Атака Cable Haunt, позволяющая получить контроль над кабельными модемами
11 января 2020 года
Исследователи безопасности из компании Lyrebirds раскрыли сведения об уязвимости ( CVE-2019-19494) в кабельных модемах на базе чипов Broadcom, позволяющей получить полный контроль над устройством. По предположению исследователей, проблеме подвержены около 200 миллионов устройств в Европе, применяемых разными кабельными операторами. Для проверки своего модема подготовлен скрипт, оценивающий активность проблемного сервиса, а также рабочий прототип эксплоита для совершения атаки при открытии в браузере пользователя специально оформленной страницы.
Проблема вызвана переполнением буфера в сервисе, предоставляющем доступ к данным спектрального анализатора, который позволяет операторам диагностировать проблемы и учитывать уровень помех при кабельном подключении. Сервис обрабатывает запросы чрез jsonrpc и принимает соединения только во внутренней сети. Эксплуатация уязвимости в сервисе оказалась возможна благодаря двум факторам: сервис не был защищён от применения техники " DNS rebinding" из-за некорректного использования WebSocket и в большинстве случаев предоставлял доступ на основе предопределённого инженерного пароля, общего для всех устройств модельного ряда (спектральный анализатор является отдельным сервисом на своём сетевом порту (обычно 8080 или 6080) со своим инженерным паролем доступа, который не пересекается с паролем от web-интерфейса администратора).
Техника "DNS rebinding" позволяет при открытии пользователем определённой страницы в браузере установить WebSocket-соединение с сетевым сервисом во внутренней сети, недоступным для прямого обращения через интернет. Для обхода применяемой в браузерах защиты от выхода за пределы области текущего домена ( cross-origin) применяется смена имени хоста в DNS. На DNS-сервере атакующих настраивается поочерёдная отдача двух IP-адресов: на первый запрос отдаётся реальный IP сервера со страницей, а затем возвращается внутренний адрес устройства (например, 192.168.10.1). Время жизни (TTL) для первого ответа выставляется в минимальное значение, поэтому при открытии страницы браузер определяет реальный IP сервера атакующего и загружает содержимое страницы. На странице запускается JavaScript-код, который ожидает истечения TTL и отправляет второй запрос, который теперь определяет хост как 192.168.10.1. Это позволяет из JavaScript обратиться к сервису внутри локальной сети, обойдя ограничение cross-origin.
После получения возможности отправки запроса к модему атакующий может эксплуатировать переполнение буфера в обработчике спектрального анализатора и добиться выполнения кода с правами root на уровне прошивки. После этого атакующий получает полный контроль над устройством, что позволяет изменить любые настройки (например, подменять DNS-ответы через перенаправление DNS на свой сервер), отключить обновление прошивки, подменить прошивку, перенаправить трафик или вклиниться в сетевые соединения (MiTM).
Уязвимость присутствует в типовом обработчике Broadcom, который используется в прошивках кабельных модемов различных производителей. В процессе разбора поступающих через WebSocket запросов в формате JSON из-за ненадлежащей проверки данных хвост указанных в запросе параметров может быть записан в область за пределами выделенного буфера и переписать часть стека, в том числе адрес возврата и сохранённые значения регистров.
В настоящее время уязвимость подтверждена в следующих устройствах, которые были доступны для изучения в процессе исследования:
- Sagemcom F@st 3890, 3686;
- NETGEAR CG3700EMR, C6250EMR, CM1000 ;
- Technicolor TC7230, TC4400;
- COMPAL 7284E, 7486E;
- Surfboard SB8200.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.