Клиент Cox Communications, третьего по величине провайдера кабельного телевидения в США и одного из крупнейших операторов широкополосного доступа, насчитывающего 6.5 млн абонентов, опубликовал результаты экспериментов с используемым провайдером внутренним Web API, доступным для внешних запросов и применяемым, среди прочего, для доступа службы поддержки к абонентским модемам и базе пользователей. Оказалось, что зная лишь MAC-адрес абонентского устройства можно получить полный контроль над модемом, позволяющий изменять настройки и выполнять любые команды на модеме.
Примечательно, что MAC-адрес абонентского устройства можно узнать через обращение к публичному Web API без прохождения аутентификации, используя функцию поиска абонентов, например, через выборку по email или номеру учётной записи (перебирая номера можно последовательно выгрузить данные о клиентах). Помимо MAC-адреса выводятся и другие сведения об абоненте, включая адрес, телефон, ФИО и email. При этом информацию можно не только получить, но и изменить. Вся информация доступна для запросов из внешней сети без аутентификации.
Всего публично доступный API насчитывает более 700 обработчиков, среди которых многие реализуют операции по администрированию. По сути, любой атакующий может получить доступ к модему, аналогичный инженерному доступу, который получает служба поддержки оператора связи.
Для передачи команд и настроек на модемы пользователей использовалась передача зашифрованных наборов данных, но функции для шифрования удалось найти в одном из скриптов на языке JavaScript, отдаваемых сайтом webcdn-business.cox.com. Ключ для шифрования удалось определить установив точку останова в JavaScript-отладчике браузера во время регистрации на сайте myaccount-business.cox.com. Ключ формировался с использованием MAC-адреса, идентификатора устройства и номера учётной записи пользователя, а также нескольких вспомогательных параметров, таких как модель устройства и вид доступа.
На первом этапе атаки выполняется поиск жертвы через публичный Web API, используя в запрос по имени, номеру телефона, email или номеру учётной записи. Далее атакующий обращается к API для выгрузки полного набора персональных данных абонента, используя UUID, полученный при поиске на первом этапе. Используя указанный среди данных об абоненте MAC-адрес модема атакующий может посмотреть список подключённых к модему устройств, поменять любые параметры на модеме, запросить пароль, используемый для подключения к Wi-Fi, и выполнить любые команды на устройстве, что можно использовать, например, для организации анализа или перенаправления трафика пользователя.