Введение

Протокол конфигурации маршрутизатора по HTTP. Технический отчет 069 (TR 069) — это техническая спецификация Broadband Forum, определяющая протокол прикладного уровня для удаленного управления и конфигурирования абонентского оборудования (CPE), подключенного к сети Интернет-протокола (IP). TR 069 использует протокол управления CPE WAN (CWMP), который предоставляет функции для автоматической настройки, управления образами программного обеспечения или прошивки, управления программными модулями, управления состоянием и производительностью, а также диагностики. Протокол управления CPE WAN — это двунаправленный протокол на основе SOAP и HTTP, обеспечивающий связь между CPE и серверами автоматической конфигурации (ACS). Протокол охватывает растущее число различных устройств доступа в Интернет, таких как модемы, маршрутизаторы, шлюзы, а также устройства конечных пользователей, подключаемые к Интернету, например, приставки и VoIP-телефоны. TR 069 был впервые опубликован в мае 2004 года, с изменениями в 2006, 2007, 2010, июле 2011 года (версия 1.3) и ноябре 2013 года (версия 1.4 am5). Другие технические инициативы, такие как Home Gateway Initiative (HGI), Digital Video Broadcasting (DVB) и WiMAX Forum, приняли CWMP в качестве протокола для удаленного управления домашними сетевыми устройствами и терминалами.

Транспорт

CWMP – это протокол, основанный на текстовых сообщениях. Команды, отправляемые между устройством (CPE) и сервером автоматической конфигурации (ACS), передаются по протоколу HTTP (или чаще HTTPS). На этом уровне (HTTP) CPE выступает в роли клиента, а ACS – в роли HTTP-сервера. По сути, это означает, что управление ходом сеанса конфигурирования полностью лежит на устройстве.

Параметры конфигурации

Для того чтобы устройство подключилось к серверу, необходимо предварительно настроить определенные параметры. К ним относятся URL-адрес сервера, к которому устройство должно подключиться, и интервал, с которым устройство будет инициировать сеанс подготовки (PeriodicInformInterval). Кроме того, если по соображениям безопасности требуется аутентификация, необходимо предоставить данные, такие как имя пользователя и пароль.

Сессия по обеспечению

Все коммуникации и операции выполняются в рамках сеанса обеспечения. Сеанс всегда инициируется устройством (CPE) и начинается с передачи сообщения Inform. Прием этого сообщения и готовность сервера к сеансу подтверждаются сообщением InformResponse. Это завершает этап инициализации сеанса. Порядок следующих двух этапов зависит от значения флага HoldRequests. Если значение – false, то за этапом инициализации следует передача запросов от устройства, в противном случае сначала передаются команды ACS. Дальнейшее описание предполагает, что значение – false. На втором этапе от устройства в ACS передаются команды. Хотя протокол определяет несколько методов, которые устройство может вызывать на ACS, обычно используется только один – TransferComplete, который служит для информирования ACS о завершении передачи файла, инициированной ранее отправленным запросом на загрузку или выгрузку. Этот этап завершается отправкой пустого HTTP-запроса в ACS. На третьем этапе происходит смена ролей на уровне CWMP. HTTP-ответ на пустой HTTP-запрос от устройства будет содержать запрос CWMP от ACS. За ним последует HTTP-запрос, содержащий ответ CWMP на предыдущий запрос CWMP. Несколько команд могут передаваться последовательно. Этот этап (и весь сеанс обеспечения) завершается пустым HTTP-ответом от ACS, указывающим на отсутствие ожидающих команд.

Безопасность

Компрометация ACS провайдера интернет-услуг или канала связи между ACS и CPE несанкционированными лицами может предоставить доступ к TR 069-совместимым устройствам всей абонентской базы поставщика услуг. Информация о клиентах и функционирование устройств станут доступны потенциальным злоумышленникам, включая другие MAC-адреса в клиентских сетях. Возможно скрытое перенаправление DNS-запросов на поддельный DNS-сервер и даже скрытое обновление прошивки с внедренными бэкдорами. Программное обеспечение ACS TR 069 часто реализуется с недостаточной степенью защиты. Уязвимости в комбинированных реализациях TR 064 (конфигурация DSL CPE на стороне локальной сети) и TR 069 (CWMP), которые повторно использовали одну и ту же HTTP-конечную точку через публичный интернет для запросов на подключение без надлежащей защиты, были обнаружены в устройствах различных производителей и эксплуатируются ботнетом Mirai и другим вредоносным ПО.