Tr069 что это в роутере
Tr069 что это в роутере
Конфигурация клиента TR-069 осуществляется путем добавления в build.prop файла следующих полей:
Обратите внимание: все вышеперечисленные поля должны быть закодированы по методу Base64, чтобы данная информация не хранилась в открытом виде. Все поля, кроме “ro.stb.management.s0”, могут быть пустыми. Если поле “ro.stb.management.s0” будет пустым, то сервис закончит свою работу сразу после старта.
Обратите внимание: данные о сервере и другие параметры build.prop файла можно изменить только перепрошив устройство.
Обратите внимание: после сброса STB к заводским настройкам конфигурационные данные клиента TR-069 не стираются. Стираются только логи.
Как происходит подключение STB к ACS?
Обратите внимание: в локальной сети (LAN) сервер может сам инициировать подключение STB, игнорируя интервал подключения равный 60 секунд. Данная возможность настраивается на стороне сервера.
Обновление версии прошивки
Перезагрузка устройства
Отправка файла на устройство
Все файлы, отправленные с сервера на STB, сохраняются в папке Download.
Просмотр логов с устройства
Для возможности просмотра логов с устройства в рекомендованную модель данных клиента добавлено поле DeviceLogs в группе InternetGatewayDevice.DeviceInfo. При отправке лог-файла генерируется два блока:
По умолчанию устройство отправляет запросы на сервер раз в минуту.
Безопасность
Протокол CWMP обеспечивает высокую степень надежности операций по взаимодействию, которые его используют. Протокол CWMP позволяет обеспечить безопасность и конфиденциальность транзакций между STB и ACS, а также предоставляет возможность использования различных уровней аутентификации. Протокол поддерживает такие механизмы безопасности:
В полях “ro.stb.management.s3” и “ro.stb.management.s4” указываются логин и пароль для аутентификации сервера на устройстве. Если данные сервера неверные, устройство игнорирует это соединение. Если данные сервера верные, приставка инициирует соединение с сервером.
Требования к серверной части
Клиент TR-069 может работать с различными реализациями ACS-сервера, поддерживающими стандарт TR-069. Один сервер может обслуживать STB разных типов, на которых установлен клиент TR-069.
Серверная часть работы протокола была реализована и протестирована с помощью GenieACS – программного продукта с открытым исходным кодом, который поддерживает протокол TR-069. В качестве примера все возможные операции рассмотрены c использованием GenieACS.
Спецификация TR-069, разрабатываемая некоммерческой организацией Broadband Forum начиная с 2004 года, описывает протокол управления абонентскими устройствами – CPE WAN Management Protocol (CWMP). Основная цель создания CWMP – унификация средств и методов управления CPE в сетях провайдеров, независимо от производителей и моделей CPE. Достижение указанных целей позволило бы обеспечить качество предоставления массовых услуг, оптимизировать расходы на их сопровождение, упростить процедуру доступа к услуге со стороны абонентов.
Рис. Примерная схема сети оператора
Протокол CWMP определяет принципы взаимодействия между абонентскими устройствами (CPE) и сервером Auto-Configuration Server (ACS). ACS, согласно TR-069, является сетевым устройством и представляет собой сервер приложений, автоматизирующий реализацию основных методов управления абонентскими устройствами (CPE):
QFR-200-4T-W с поддержкой TR-069 синхронизируется с сервером ACS. Все параметры, заданные на CPE, контролируются и настраиваются с сервера ACS. Пользователю необходимо ввести URL, имя пользователя и пароль для сервера ACS для подключения устройства. Тем не менее, URL, имя пользователя и пароль пользователя изменить не сможет. Данные параметры настраиваются на стороне ACS сервера.
Выполните следующие действия:
периодического информирования ACS-сервера. Далее укажите временной
интервал в диапазоне значений от 0 до 65535 секунд, через который CPE будет связываться с ACS.
Выбираем вкладку Администрирование, затем TR069.
Активируем опцию TR069, нажимая “Включить”
Указываем URL, логин и пароль для ACS сервера, после чего нажимаем применить и перезагружаем роутер.
Москва, Россия, 27 июля 2012 года. Компания D-Link представляет новый программный продукт – ACS-сервер, работающий в соответствии с техническими рекомендациями TR-069. Данный программный продукт предназначен для удаленного управления и конфигурации абонентского оборудования.
При наличии в устройстве клиента TR-069, устройство может подключиться к ACS-серверу, установленному и работающему в сети оператора связи, после чего ACS-сервер позволит управлять версиями программного обеспечения абонентских устройств и их обновлениями, осуществлять автоконфигурацию уже работающего устройства или внесение изменений в настройки, анализировать log-файлы, производительность устройства, осуществлять диагностику.
ACS-сервер компании D-Link представляет собой разработку, призванную облегчить и автоматизировать эксплуатацию сети доступа оператора связи, при этом решается целый ряд вопросов, таких как:
Пример из жизни: в техническую поддержку оператора обращается возмущенный абонент:
В обычной ситуации технической поддержке приходится долго разбираться с абонентом, оперируя зачастую непонятными для последнего терминами, выяснять – что же все-таки произошло и каков статус абонентского устройства, шаг за шагом помогать абоненту проверить настройки и сконфигурировать устройство заново.
На это уходит масса времени и сил. При наличии работающего сервиса TR-069, техническая поддержка оператора способна оперативно проверить статус устройства и предоставляемых сервисов и, при наличии выявленных проблем, принять решение об их устранении.
Таким образом, использование сервера TR-069 значительно сократит издержки оператора связи на решение возникающих проблем с предоставлением услуг конечным пользователям.
ACS-сервер компании D-Link распространяется бесплатно и основан на лицензии Open Source (в отличие от других подобных продуктов, распространяющихся на коммерческой основе и имеющих закрытый код), что позволит операторам связи производить доработку данного программного обеспечения в соответствии с их целями и задачами.
Дистрибутив ACS-сервера компании D-Link и сопутствующую документацию можно загрузить по нижеуказанным ссылкам:
Компания D-Link является ведущим мировым производителем сетевого оборудования, предлагающим широкий набор решений для создания локальных сетей Ethernet/ Fast Ethernet/ Gigabit Ethernet, построения беспроводных сетей и организации широкополосного доступа, передачи изображений и голоса по IP (VoIP). В 2012 году компания открыла в Российской Федерации собственное производство, сертифицированное в соответствии с требованиями ГОСТ Р ИСО 9001-2008 (ISO 9001:2008). В РФ офисы компании D-Link открыты в Москве, Санкт-Петербурге, Архангельске, Астрахани, Барнауле, Белгороде, Владивостоке, Волгограде, Воронеже, Екатеринбурге, Ижевске, Иркутске, Казани, Калининграде, Кемерово, Краснодаре, Красноярске, Курске, Мурманске, Н.Новгороде, Новосибирске, Омске, Оренбурге, Пензе, Перми, Ростове-на-Дону, Рязани, Самаре, Саратове, Ставрополе, Тольятти, Туле, Тюмени, Ульяновске, Уфе, Хабаровске, Чебоксарах, Челябинске и Ярославле. В Брянске, Иваново, Кирове, Магнитогорске, Твери работают региональные представители компании.
Основная цель создания CWMP – унификация средств и методов управления CPE2 в сетях провайдеров, независимо от производителей и моделей CPE, централизация функций управления CPE, их передача со стороны абонента на сторону провайдера.
Достижение указанных целей позволило бы обеспечить качество предоставления массовых услуг, оптимизировать расходы на их сопровождение, упростить процедуру доступа к услуге со стороны абонентов.
Рис. 1. Схема сети оператора
Протокол CWMP определяет принципы взаимодействия между абонентскими устройствами (CPE) и сервером Auto-Configuration Server (ACS). ACS, согласно TR-069, является сетевым устройством и представляет собой сервер приложений, автоматизирующий реализацию основных методов управления абонентскими устройствами (CPE):
Другие статьи автора
Статьи по теме
Место ACS в сети оператора схематично представлено на рисунке 1.
«Состав» спецификации TR-069
Наименование | Наименование документа (актуальная версия) | Краткое описание |
TR-046 | Auto-Config: Architecture & Framework | Определяет основные принципы автоматизированного конфигурирования оконечных устройств, подключенных по технологии DSL |
TR-069 | CPE WAN Management Protocol v1.1 | Спецификация протокола CWMP |
TR-098 | Internet Gateway Device Data Model for TR-069 | Описывает модель данных CWMP для шлюзов доступа в интернет |
TR-104 | DSLHomeTM Provisioning Parameters for VoIP CPE | Описывает модель данных CWMP для устройств VoIP |
TR-106 | Data Model Template for TR-069-Enabled Devices | Определяет объектную структуру и требования к модели данных CWMP |
TR-111 | DSLHomeTMApplying TR-069 to Remote Management of Home Networking Devices | Определяет функции управления устройствами локальных сетей, в том числе за NAT |
TR-135 | Enabling Network Throughput Performance Tests and Statistical Monitoring | Определяет объекты CWMP, обеспечивающие решение задачи мониторинга производительности и контроля доступности CPE |
TR-140 | TR-069 Data Model for Storage Service Enabled Devices | Описывает модель данных CWMP для устройств хранения |
TR-142 | Framework for TR-069 enabled PON Devices | Описывает модель данных CWMP для устройств PON и подключенных к ним оптических устройств |
TR-143 | Enabling Network Throughput Performance Tests and Statistical Monitoring | Определяет объекты CWMP, обеспечивающие решение задачи мониторинга производительности и контроля доступности CPE |
TR-157 | Component Objects for CWMP | Расширение объектной модели CWMP в соответствии с новыми технологиями и возможностями домашних сетей |
TR-181 | Device Data Model for TR-069 | Определяет единую модель данных для всех устройств, поддерживающих TR-069 |
TR-196 | Femto Access Point Service Data Model | Описывает модель данных CWMP для устройств femto- cell |
«Южный» интерфейс (southbond) обеспечивает реализацию вышеперечисленных функций управления по отношению к CPE. Первоначально предполагалось управление CPE с использованием технологии DSL. В настоящее время усилиями как самого Broadband Forum, так и других организаций (Home Gateway Initiative, Digital Video Broadcasting), в состав управляемых по TR-069 CPE вошли интегрированные устройства доступа (IAD), PON и связанные с ними оптические устройства, VoIP-устройства, приставки IPTV, другие устройства домашних сетей.
«Северный» (northbound) интерфейс обеспечивает взаимодействие ACS с другими системами OSS/BSS провайдера в рамках реализации единых сквозных процессов управления услугами.
Функции управления
Ключевая и одна из наиболее востребованных бизнесом функций управления CPE, определяемых TR-069 – автоматическая настройка и динамическое реконфигурирование сервисов. Спецификация определяет возможность как первичного, так и повторного конфигурирования CPE, например, по запросу абонента или при изменении тех или иных параметров услуги.
TR-069 определяет возможность выполнения операций конфигурирования как по отношению к одному конкретному CPE, так и к группе, объединенных одним или несколькими общими признаками, такими как производитель CPE, модель, версия firmware и т.д.
Поддерживается возможность работы с опциональными наборами параметров услуг (например, с параметрами, определяющими платежи, функции Родительского контроля), включение которых требует относительно более высокого уровня доступа, в том числе с использованием механизма цифровой подписи.
Функция управления программным обеспечением CPE обеспечивает выполнение загрузки ПО на устройство. Протокол определяет механизмы идентификации версий управляемого ПО, инициации (по инициативе ACS или по запросу CPE), выполнения и завершения загрузки файлов образов, логирования и оповещения службы эксплуатации о результативности выполнения загрузки.
Помимо функций непосредственного управления конфигурацией CPE, протокол CWMP определяет методы предоставления доступа к информации, которая может быть использована сервером ACS для мониторинга статуса и производительности CPE. Протокол CWMP также определяет набор механизмов, которые позволяют CPE самостоятельно оповещать ACS об изменениях своего состояния.
Помимо возможностей мониторинга CPE, CWMP предоставляет также механизмы диагностики, в том числе состав параметров, которые могут содержать диагностическую информацию, методы предоставления диагностической информации. Существенным отличием от SNMP-протокола является возможность для ACS (исполняющего роль менеджера) не только запросить диагностическую информацию с CPE, но и получить ее в необходимом объеме от самого CPE (в случае SNMP возможно получение только SNMP- трапа, всю остальную информацию менеджер должен самостоятельно запрашивать у агента).
В дополнение к вышеперечисленным функциям CWMP предоставляет механизмы автоматической аутентификации и авторизации на веб-сайтах оператора в зависимости от идентификатора и типа используемого для доступа CPE (подробнее соответствующий механизм описан в приложении D к спецификации TR-069).
Архитектура CWMP
Архитектура протокола CWMP включает в себя:
Стек протоколов
Протокол CWMP реализован как комплекс стандартных и специально разработанных протоколов. Структура стека представлена на рисунке:
TR-069
Основная цель создания CWMP – унификация средств и методов управления CPE2 в сетях провайдеров, независимо от производителей и моделей CPE, централизация функций управления CPE, их передача со стороны абонента на сторону провайдера.
Достижение указанных целей позволило бы обеспечить качество предоставления массовых услуг, оптимизировать расходы на их сопровождение, упростить процедуру доступа к услуге со стороны абонентов.
Рис. 1. Схема сети оператора
Протокол CWMP определяет принципы взаимодействия между абонентскими устройствами (CPE) и сервером Auto-Configuration Server (ACS). ACS, согласно TR-069, является сетевым устройством и представляет собой сервер приложений, автоматизирующий реализацию основных методов управления абонентскими устройствами (CPE):
Другие статьи автора
Статьи по теме
Поделиться
Место ACS в сети оператора схематично представлено на рисунке 1.
«Состав» спецификации TR-069
Под формулировкой TR-069 обычно понимают весь комплекс спецификаций, разработанных Broadband Forum в области управления CPE. Прилагаемая таблица определяет состав указанных спецификаций. Актуальные версии соответствующих документов приведены на сайте www.broadband-forum.org.
Наименование | Наименование документа (актуальная версия) | Краткое описание |
TR-046 | Auto-Config: Architecture & Framework | Определяет основные принципы автоматизированного конфигурирования оконечных устройств, подключенных по технологии DSL |
TR-069 | CPE WAN Management Protocol v1.1 | Спецификация протокола CWMP |
TR-098 | Internet Gateway Device Data Model for TR-069 | Описывает модель данных CWMP для шлюзов доступа в интернет |
TR-104 | DSLHomeTM Provisioning Parameters for VoIP CPE | Описывает модель данных CWMP для устройств VoIP |
TR-106 | Data Model Template for TR-069-Enabled Devices | Определяет объектную структуру и требования к модели данных CWMP |
TR-111 | DSLHomeTMApplying TR-069 to Remote Management of Home Networking Devices | Определяет функции управления устройствами локальных сетей, в том числе за NAT |
TR-135 | Enabling Network Throughput Performance Tests and Statistical Monitoring | Определяет объекты CWMP, обеспечивающие решение задачи мониторинга производительности и контроля доступности CPE |
TR-140 | TR-069 Data Model for Storage Service Enabled Devices | Описывает модель данных CWMP для устройств хранения |
TR-142 | Framework for TR-069 enabled PON Devices | Описывает модель данных CWMP для устройств PON и подключенных к ним оптических устройств |
TR-143 | Enabling Network Throughput Performance Tests and Statistical Monitoring | Определяет объекты CWMP, обеспечивающие решение задачи мониторинга производительности и контроля доступности CPE |
TR-157 | Component Objects for CWMP | Расширение объектной модели CWMP в соответствии с новыми технологиями и возможностями домашних сетей |
TR-181 | Device Data Model for TR-069 | Определяет единую модель данных для всех устройств, поддерживающих TR-069 |
TR-196 | Femto Access Point Service Data Model | Описывает модель данных CWMP для устройств femto- cell |
«Южный» интерфейс (southbond) обеспечивает реализацию вышеперечисленных функций управления по отношению к CPE. Первоначально предполагалось управление CPE с использованием технологии DSL. В настоящее время усилиями как самого Broadband Forum, так и других организаций (Home Gateway Initiative, Digital Video Broadcasting), в состав управляемых по TR-069 CPE вошли интегрированные устройства доступа (IAD), PON и связанные с ними оптические устройства, VoIP-устройства, приставки IPTV, другие устройства домашних сетей.
«Северный» (northbound) интерфейс обеспечивает взаимодействие ACS с другими системами OSS/BSS провайдера в рамках реализации единых сквозных процессов управления услугами.
Функции управления
Ключевая и одна из наиболее востребованных бизнесом функций управления CPE, определяемых TR-069 – автоматическая настройка и динамическое реконфигурирование сервисов. Спецификация определяет возможность как первичного, так и повторного конфигурирования CPE, например, по запросу абонента или при изменении тех или иных параметров услуги.
TR-069 определяет возможность выполнения операций конфигурирования как по отношению к одному конкретному CPE, так и к группе, объединенных одним или несколькими общими признаками, такими как производитель CPE, модель, версия firmware и т.д.
Поддерживается возможность работы с опциональными наборами параметров услуг (например, с параметрами, определяющими платежи, функции Родительского контроля), включение которых требует относительно более высокого уровня доступа, в том числе с использованием механизма цифровой подписи.
Функция управления программным обеспечением CPE обеспечивает выполнение загрузки ПО на устройство. Протокол определяет механизмы идентификации версий управляемого ПО, инициации (по инициативе ACS или по запросу CPE), выполнения и завершения загрузки файлов образов, логирования и оповещения службы эксплуатации о результативности выполнения загрузки.
Помимо функций непосредственного управления конфигурацией CPE, протокол CWMP определяет методы предоставления доступа к информации, которая может быть использована сервером ACS для мониторинга статуса и производительности CPE. Протокол CWMP также определяет набор механизмов, которые позволяют CPE самостоятельно оповещать ACS об изменениях своего состояния.
Помимо возможностей мониторинга CPE, CWMP предоставляет также механизмы диагностики, в том числе состав параметров, которые могут содержать диагностическую информацию, методы предоставления диагностической информации. Существенным отличием от SNMP-протокола является возможность для ACS (исполняющего роль менеджера) не только запросить диагностическую информацию с CPE, но и получить ее в необходимом объеме от самого CPE (в случае SNMP возможно получение только SNMP- трапа, всю остальную информацию менеджер должен самостоятельно запрашивать у агента).
В дополнение к вышеперечисленным функциям CWMP предоставляет механизмы автоматической аутентификации и авторизации на веб-сайтах оператора в зависимости от идентификатора и типа используемого для доступа CPE (подробнее соответствующий механизм описан в приложении D к спецификации TR-069).
Архитектура CWMP
Архитектура протокола CWMP включает в себя:
Стек протоколов
Протокол CWMP реализован как комплекс стандартных и специально разработанных протоколов. Структура стека представлена на рисунке:
Tr069 что это в роутере
Спецификация TR-069, разрабатываемая некоммерческой организацией Broadband Forum начиная с 2004 года, описывает протокол управления абонентскими устройствами – CPE WAN Management Protocol (CWMP). Основная цель создания CWMP – унификация средств и методов управления CPE в сетях провайдеров, независимо от производителей и моделей CPE. Достижение указанных целей позволило бы обеспечить качество предоставления массовых услуг, оптимизировать расходы на их сопровождение, упростить процедуру доступа к услуге со стороны абонентов.
Рис. Примерная схема сети оператора
Протокол CWMP определяет принципы взаимодействия между абонентскими устройствами (CPE) и сервером Auto-Configuration Server (ACS). ACS, согласно TR-069, является сетевым устройством и представляет собой сервер приложений, автоматизирующий реализацию основных методов управления абонентскими устройствами (CPE):
Настройка TR-069 на примере роутера QFR-200-4T—W GATEWAY
QFR-200-4T-W с поддержкой TR-069 синхронизируется с сервером ACS. Все параметры, заданные на CPE, контролируются и настраиваются с сервера ACS. Пользователю необходимо ввести URL, имя пользователя и пароль для сервера ACS для подключения устройства. Тем не менее, URL, имя пользователя и пароль пользователя изменить не сможет. Данные параметры настраиваются на стороне ACS сервера.
Выполните следующие действия:
периодического информирования ACS-сервера. Далее укажите временной
интервал в диапазоне значений от 0 до 65535 секунд, через который CPE будет связываться с ACS.
Настройка TR-069 на примере роутера QBR-1040W v3S
Выбираем вкладку Администрирование, затем TR069.
Активируем опцию TR069, нажимая “Включить”
Указываем URL, логин и пароль для ACS сервера, после чего нажимаем применить и перезагружаем роутер.
Слишком много поваров, или взлом Интернета с помощью TR-069
Шахар Тал: проведём быстрое голосование – кто из вас видел сериал «Слишком много поваров?». Достаточно хороший процентаж для такой аудитории. Итак, начнём.
На экране демонстрируется заставка к фильму, затем появляются портреты докладчиков.
Далее в титрах указаны:
Дени ДеВито – в роли доступного тостера IPv4, Арнольд Шварценеггер – в роли роутера TP- Link TD-W8961NDи другие…
Итак, тем из вас, кто не видел фильм «Слишком много поваров», который демонстрировался несколько месяцев назад, советуем его посмотреть, нам он очень понравился. Если вы его смотрели, то смогли оценить наши «весёлые картинки», которые мы использовали для презентации.
Итак, мы являемся исследователями вредоносного ПО и уязвимостей и работаем в компании – разработчика программ в сфере IT-безопасности CheckPoint, расположенной в Тель-Авиве. Слоган нашей компании – «Мы защищаем Интернет». Наша задача состоит в том, чтобы найти уязвимость оборудования, рассказать об этом его производителю и поделиться информацией с обществом.
Сегодня мы поговорим о следующем:
Это то, что ISP используют:
Справа расположено оборудование пользователя CPE – ваш домашний роутер с клиентом TR-069, слева – сервер TR-069, называемый также сервером автоматической конфигурации ACS. Они «разговаривают» друг с другом при помощи SOAP RPS, использующим язык XML через HTTP.
Сессию всегда инициирует роутер, это одиночное IP-соединение, с помощью которого компьютер подсоединяется к сети. ASC использует запрос соединения и отсылает роутеру команды «получить значения параметров» и «установить значения параметров».
Как вы можете убедиться, это достаточно просто. Здесь задействован двойной механизм аутентификации. СPE должен убедиться, что связывается с вашим доверенным ASC, а ASC разрешает сессию только авторизованному пользователю.
На DEFCON 22 мы рассказывали о том, что мы нашли в этом процессе. Наше исследование обнаружило недостатки реализации и конфигурации, производимой многими ACS серверами сетевых провайдеров (ISP):
В прошлом году парни из Dead Map провели очень интересное исследование, это был Захарий Румрич и его друзья из Мичиганского университета. Они просканировали 2 миллиона случайных адресов на каждом из почти 10 тысяч портов, и определили, что CWMP 7547 — порт по умолчанию для TR-069 — является в мире вторым по популярности открытым портом. Процент его использования Hit Rate для интернета составляет 1,12%. Напомню, что этот протокол был создан 10 лет назад – подумайте об этом! Этот порт для связи с интернетом используют примерно 45 миллионов устройств, и через этот открытый порт они могут быть «прослушаны».
Проведём небольшой обзор самых популярных в мире портов, которые различные устройства используют для связи с Интернетом.
Портом 80 пользуются примерно 70 миллионов устройств, половина — для связи с веб-серверами глобального Интернета. Большинство из них это Apache серверы, далее следуют серверы nginx, IIS 8 и другие. Вторая половина устройств использует 80-й порт для Интернета вещей. Эти устройства представляют собой роутеры, веб-камеры, VoIP телефоны и тостеры.
Сейчас наконец-то люди начинают осознавать, что открытый доступ к этим вещам попросту опасен. Поэтому они ищут как можно больше устройств, которые используют для локальных сетей только порт 80.
Учтите, что открытый порт 7547 используют не только обычные пользователи, его применение предусмотрено программным обеспечением серверов провайдеров, взаимодействующих с устройствами пользователей. И все 45 миллионов устройств, использующих TR-069, представляют собой Интернет вещей.
Все эти устройства выходят в сеть с использованием запроса соединения Connection Request.
Мы решили исследовать проблемы безопасности и найти число пострадавших от этой уязвимости. Нам нужно было перестать гадать и перейти к фактам. В прошлом месяце (ноябрь 2014 года) мы несколько раз просканировали порты 7547 по всему адресному пространству IPv4 с помощью наших друзей Rapid 7 и ребят из Мичиганского университета. В результате после простого ввода «слэш» (/) через порт 7547 нам ответили 1,18% всех устройств публичного Интернета, общее число которых составило 46 093 733 штуки по всему свету. То есть это не одна страна, в которой открыты данные порты, это 189 стран по всему миру.
Если вы помните, в спецификации TR-069 существует требование, чтобы этот порт был открыт для запросов ASC. Так вот, в прошлом году появилось ещё 0,06% новых устройств, удовлетворяющих этому требованию, а это целых 2,2 миллиона! То есть тенденция роста налицо.
Мы занялись проблемой реализации TR-069 на клиентской стороне и вот какую статистику получили.
У нас получилось 5 основных типов серверов, использующих запрос соединения. Больше половины пришлось на штуку под названием RomPager. Это встроенный HTTP сервер от Allegro Software, компании, расположенной в штате Массачусетс, который включён в прошивку большинства роутеров. Он оптимизирован под минимальные требования – двоичные коды, минимум памяти – и впервые был представлен в 1996 году. С тех пор было много версий, последней является 5.4. Мы решили сфокусировать на нём внимание и установили, что оборудование клиента использует четыре версии RomPager.
В результате мы выяснили, что 98,04% устройств использует устаревшую версию 4.07, 1,44% используют версию 4.51, 0,51% — 4.03 и 0,01% 4.34. Как говорилось в сериале, «после этого я стал подозрительным». Чем объясняется такая невероятная популярность единственной версии RomPager?
Мы купили новый роутер TP Link, распаковали его и подсоединили к сети. В нём был установлен RomPager 4.07. Мы подумали, что может быть это старый роутер с устаревшей прошивкой и скачали с сайта TP Link новую прошивку 2014 года, обновили, перезагрузили роутер и в результате снова получили версию 4.07.
Таким образом мы получили объяснение такой популярности старой версии – это был единственный самый последний вариант прошивки, расположенный на сайтах производителей роутеров.
Кто из присутствующий здесь имеет нераспакованный новый роутер? Не может быть, вот это удача!
Парень из зала передаёт коробку с роутером, и докладчик кладёт его на стол.
Уверяю вас, этот человек на меня не работает! Мы займёмся этой коробкой позже.
Мы решили исследовать, что собой представляет RomPager версии 4.07. Он был выпущен в 2002 году и появился во множестве современных устройств:
Очень важный момент состоит в том, что самые популярные версии спецификаций имеются в Интернете в открытом доступе.
А сейчас пусть продолжит Лиор – он расскажет о том, как мы анализировали эту прошивку.
Добрый день! Меня зовут Лиор и я производил анализ того, как работает RomPager версии 4.07, и обнаружил интересные результаты. У нас была фирменная прошивка, скачанная с сайта производителя роутера TP Link. Она выглядела как сжатый массив данных, поэтому мы использовали Binwalk — инструмент для поиска файлов и исполняемого кода в данном двоичном образе. Его используют для взлома архива и извлечения запакованных файлов.
Для более объективного анализа я решил загрузить все прошивки RomPager версии 4.07, какие только смог найти в Интернете, и обнаружил, что все они содержали заголовок ZyNOS (mipsb32) – операционную систему, которые используют сетевые устройства производства компании ZyXEL. Я не мог понять, почему устройства разных производителей имели одинаковую прошивку. Я стал изучать, что собой представляет ZyNOS.
Это основная операционная система в режиме реального времени – Real Time OS, RTOS, без всякой файловой системы и специальных разрешений, она состоит из одного большого двоичного файла, предназначенного для удовлетворения любых требований.
Эта система имеет известную уязвимость «rom-0» (СVE-2014- 4019). По состоянию на май 2014 года этой уязвимостью обладали 1 219 985 устройств по всему миру. Эта уязвимость позволяет злоумышленнику захватить контроль над роутером, просто загрузив из него файл конфигурации без всякой авторизации, прямо из панели веб-браузера через порт 80. В результате взломщик просто получит пароль и имя пользователя. И такой уязвимости подвержены 1,2 миллиона устройств во всём мире.
Рассмотрим, как выглядит интерфейс атаки через порт 80. Мы получили запрос авторизации, и так как не знали имя пользователя и пароль, попробовали войти через порт 7547.
Здесь мы получили сообщение, что по данному адресу «Объект не найден» для любого пути, кроме правильного адреса.
Я решил найти правильный адрес, то есть отправить запрос по правильному пути. Перед тем, как начать разбираться с кодом, я решил выполнить ручное тестирование через HTTP-заголовки, и неожиданно мне удалось взломать роутер путём отправки дайджест-имени пользователя с переполнением заголовка дайджест-аутентификации значением ‘a’#600.
Это привело меня к первой уязвимости. Чтобы понять, почему это происходит, давайте рассмотрим структуру кода RomPager. Каждая строка здесь состоит из заголовка HTTP и относящейся к ней функции производителя для обработки этого заголовка.
Рассмотрим функцию, которая отвечает за имя пользователя.
Вы можете увидеть, что приводит к такой уязвимости – это незащищённая strcpy, функция стандартной библиотеки для копирования нуль-терминированной строки (включая нуль-терминатор) в буфер. Но что в действительности приводит к возможности взлома роутера – это отсутствие символов и возможности динамического анализа. Это очень трудно понять.
Я вскрыл роутер и принялся искать JTAG. Для тех, кто не знает, что это такое, объясню: JTAG это интерфейс для отладки и проверки встроенных программ. Но когда я снял корпус, то не обнаружил там никаких разъёмов JTAG, зато я нашёл там нечто, выглядевшее как последовательный порт U-ART на отдельной микросхеме – разъём, предназначенный для связи с другими цифровыми устройствами.
Я занялся пайкой и подсоединил его к самому роутеру, а затем через USB адаптер подсоединил этот U-ART к своему компьютеру. Когда я загрузил роутер, то обнаружил очень хорошую возможность для отладки роутера. Я покажу вам, что получил после того, как взломал роутер – это очень симпатичный краш-дамп со всеми регистрами и стеками, с указанием причины аварийной записи – «переполнение TLB». Вверху расположена строка EPS – указателя инструкций для микропроцессора MIPS. Как видите, она переписана мной, и это значит, что я контролирую роутер. Дальнейший анализ аварийного дампа позволил полностью выяснить причину уязвимости.
Итак, незащищённая strcpy позволяет полностью переписать EPC, который состоит из 584 шестнадцатиричных байт, удобно расположенных после имени пользователя, поэтому взломать роутер очень легко.
В этом заключается эксплойт №1:
Трудность такого способа взлома заключается в следующем:
Теоретически обойти эти проблемы можно, если попытаться внедрить shellcode через другую уязвимость утечки информации роутера. Давайте посмотрим, как это работает.
Так как у меня не было возможности полноценной отладки, я использовал вариант отладки для «нищих», используя примитивные возможности отладки, встроенные в сам RomPager, через последовательный порт. Это позволило пропатчить прошивку перед её загрузкой, что было достаточно удобно, но весьма утомительно.
После нескольких перезагрузок я нашёл скрытую функцию операционной системы ZyNOS, которая позволила добраться до памяти роутера через интернет. Это ZynOs Remote Debugger, или ZORDON. Эта функция позволяла создавать контрольные точки, просматривать и редактировать память, читать и переписывать регистры в режиме онлайн.
Давайте рассмотрим уязвимость №2.
Если помните, динамическое выделение памяти отсутствует, поэтому каждый входящий HTTP-запрос заполняет предварительно выделенную «структуру запроса».
RomPager 4.07 обрабатывает до 3 параллельных запросов (3 предварительно выделенные структуры).
При посылании 3-х последовательных запросов один из них может переписать HTTP структуру, которую мы видели ранее. Это также стало возможным из-за незащищённой strcpy, и мы снова захватили контроль над EPC.
Итак, в чём состоит эксплойт №2?
RomPager поддерживает «кукиз». Как вы помните, динамическое выделение памяти отсутствует, поэтому имеет место предварительное выделение памяти под каждый массив «кукиз» общим количеством 10 штук, каждая длиной по 40 байт. Имена «кукиз» постоянны – от С0, С1, С2 … С9. На следующем слайде показано, как выглядит С0.
Посмотрим, как RomPager «крадёт печеньки», то есть обрабатывает файл «кукиз». Вверху слайда видно, что сначала он проверяет имя «кукиз» с заглавной буквы в его начале. Если это так, он конвертирует остальную часть имени «кукиз» в целое число и использует его как индекс для массива «кукиз».
Далее он загружает его, умножая на s3, это будет индекс для 40, и использует его в пункте назначения strncpy.
Таким образом, уязвимость №3 заключается в следующем.
Выполняя произвольную запись в память относительно фиксированной точки во внутренней структуре управления RomPager, мы получаем контроль над всем, что делает RomPager. При этом дополнительным бонусом является возможность переполнить 32-х битное целочисленное значение с целью негативного воздействия на инфраструктуру.
Если мы посылаем любое «кукиз» вместо С0, С1 и так далее, то получаем такой ответ:
Этот приём срабатывает на любой модели роутеров любой марки, к которым мы получили легальный доступ. Таким образом, эксплойт №3 заключается в следующем: используя несколько волшебных «кукиз», добавленных к вашему запросу, вы обходите любую аутентификацию и просматриваете интерфейс конфигурации как администратор, через любой открытый порт.
Давайте посмотрим демонстрацию сказанного – у нас есть видеозапись наших действий. Запускаем интернет-браузер и в адресной строке вводим IP адрес нашего роутера и запрос на авторизацию. Если прописать в строке: 7547, то мы получим показанное ранее сообщение.
Поэтому мы используем «наш» плагин браузера Chrome, то есть встроенный нами эксплойт, его значок размещен правее адресной строки браузера (плагин называется «Завладей всеми этими штуками!»).
Щелкаем по значку, чтобы активировать этот плагин.
Проходит буквально секунда, и перед нами открывается окно настроек роутера TP-Link. Мы обошли процесс авторизации!
Далее можно опять щелкнуть по плагину, чтобы восстановить легальный режим.
Покажу вам ещё раз, как это работает: вводим в строку IP-адрес роутера 192.168.1.1, обновляем страницу при подключённом плагине…не получилось… пробуем ещё раз обновиться – готово! Мы зашли на страницу настроек роутера без всякого запроса аутентификации, окно ввода имени пользователя и пароля вообще не появлялось.
Ещё раз повторю: у нас сейчас подключён новый роутер от производителя, прямо из коробки, выпущенный в 2014 году, и он подвержен всё той же уязвимости, которую обнаружили и описали более 10 лет назад.
Вернёмся к нашей презентации. Мы разместили на этом слайде ссылку на сайт, где размещена информация по сути описанной нами проблемы.
На этой карте показано, какие страны затронуты этой уязвимостью. Это 189 стран по всему миру и свыше 52% всех IP-адресов.
Я знаю о чём вы сейчас подумали: нужно немедленно отказаться от использования порта 7547 на своих устройствах для выхода в Интернет. Но даже если попытаться в настройках роутера деактивировать функцию CWMP, порт 7547 всё равно останется открытым.
Противостоять этому можно следующим образом:
Рассмотрим, как проходит процесс производства роутеров.
Компания Allegro Soft поставляет RomPager производителю чипсетов, который отправляет их производителям роутеров ASUS, D-Link, Huawei, TP-Link, ZTE. Те приспосабливают ПО к различным моделям, вставляют в прошивку своё лого и продают готовые роутеры конечному пользователю оборудования.
Подумайте, как медленно происходит обновление системы безопасности в такой производственной цепочке.
Allegro Soft поставляет фиксированную версию RomPager производителю чипов, который должен включить его в SDK и передать производителю роутера. После этого нужно перекомпилировать прошивки для каждой линейки продуктов и каждой модели, а если ещё и выполнять регулярное обновление, то это станет настоящим кошмаром для производителя.
Именно в таком случае мы говорим: «Too many cooks do spoil the broth», то есть «У семи нянек дитя без глазу» (дословный перевод с английского: «Слишком много поваров портят бульон»).
Замечу, что большинство людей никогда не обновляют прошивку своих роутеров. Это одна из причин, почему подобные уязвимости не устраняются на протяжении месяцев или даже лет.
Рассмотрим вопрос сотрудничества с производителями. Мы связались с Allegro Soft и наиболее влиятельными производителями роутеров, представили им полное описание уязвимости и предложили неразрушающие «заплатки» операционной системы (POS) для её устранения. Несмотря на наш ломанный английский, большинство вняло нашим рекомендациям и выпустило обновления прошивки с учётом наших рекомендаций, например, компания Huawei.
Зато Allegro Soft ответили нам, что «мы не можем заставить производителей обновиться до последней версии», при том, что последнюю обновлённую версию они представили в 2005 году! Подумайте о том, что если обновление 2005 года до сих пор ещё не прошло по всей этой цепочке, то что-то с этим явно не в порядке.
А сейчас мы ответим на часто задаваемые вопросы:
Правда ли, что RomPager настолько плох?
— Нет, он очень удобен, надёжен и безопасен, если используется «заплатка», просто мы исследовали старую уязвимую версию прошивки, которая до сих пор чрезвычайно популярна во всём мире.
Возможно ли, что этот «чёрный ход» намеренно оставили открытым?
– Нет, на это непохоже.
Можете ли вы поделиться свои эксплойтом?
Можете ли вы сказать, какие IP-адреса подвержены уязвимости по этой причине в моей стране?
– Просканируйте порты 80 и 7547 и пользовательские порты ISP TR-069, используемые для запроса соединения, так как в разных странах по умолчанию могут использоваться разные порты.
Вывод: мы обнаружили очень серьёзную уязвимость IPv4, четвёртой версии протокола IP, которая на сегодняшний является основной и обслуживает большую часть сети Интернет.
Производители роутеров, вы обязаны это исправить!
Благодарю вас за внимание, теперь мы готовы ответить на ваши вопросы.
— Я увидел в вашем списке роутер D-Link GSL 320, он использует ОС на основе Linux, можете ли вы сказать, что он соответствует современным требованиям безопасности?
— Мы не знаем особенностей каждого устройства, представленного в нашем списке, потому что у нас не было доступа к каждому устройству из списка, и мы не ставили перед собой задачу проверить каждый роутер, обеспечивающий связь с Интернетом, но мы можем поговорить об этом роутере позже, если вы представите нам детальную информацию.
— Когда вы опубликовали список уязвимого оборудования, то посоветовали использовать в качестве защиты межсетевой экран ZoneAlarm. Вы можете посоветовать, как мне защитить свой компьютер, не устанавливая персональный файервол?
— Это совсем другой способ, нежели тот, о котором мы здесь говорили, и возможно, мы поговорим о нём позже.
— Проверяли ли вы кабельные модемы, потому что по крайней мере в Германии, мы используем модемы, представленные нашими провайдерами, это специальные модели, эксплойты для которых очень хорошо известны, и над ними также легоко можно захватить контроль? Я интересуюсь потому, что не могу отказаться от использования именно этого ISP.
— Мы не пытались классифицировать кабельные или DSL модемы, но если ваша модель имеется в списке потенциально уязвимого оборудования, для меня не составит особого труда её протестировать.
Мы не можем знать, какие именно устройства в каких странах обладают уязвимостью, поэтому мы публикуем наши исследования в надежде оказать давление на производителей, чтобы они исправили эти проблемы так быстро, как это только возможно. Поэтому мы просим – если вы обнаружили уязвимость, сообщайте об этом вашему провайдеру, потому что это очень важный аспект вашей безопасности.
— Может вам стоит попытаться использовать gSOAP для решения проблемы?
— Мы никогда не использовали этот SDK, потому что это совершенно другое направление исследований, однако любой интересующийся может использовать его для такого случая.
— Можно ли использовать ваш эксплойт для того, чтобы взломать роутер и поменять прошивку?
— Можно ли избавиться от уязвимости, заблокировав использование порта 7547?
— Если вам каким-то волшебным способом удастся заблокировать этот порт, то вы лишите свой роутер важных функций, которые обеспечивает провайдер интернета, в том числе получение IP, и можете вообще потерять доступ в WAN. Однако если использовать этот порт для получения IP в локальной сети LAN, а для выхода в Интернет пользоваться другим портом, то уязвимости можно избежать. И некоторые провайдеры Интернета предоставляют такую возможность своим клиентам.
— Могу ли я избавиться от уязвимости, если сразу после того, как вытащу роутер из коробки и подсоединю к сети, ACS назначит ему другой порт по умолчанию?
— Возможно, поэтому мы советуем провайдером именно так и поступать, во всяком случае, это обезопасит вас от атаки хакеров, которые сканируют весь Интернет в поисках открытых по умолчанию портов.
— Избавлены ли последние версии прошивки от этой уязвимости?
— Да, многие производители учли эту проблему и предусмотрели защиту от неё.