Что такое tr 069 в роутере
Спецификация TR-069 для управления CPE
Попробовал найти на Хабре статьи на эту тему. Но, что странно — не нашёл упоминаний. Поделюсь тогда своими знаниями об этом я. Это моя вторая попытка написать статью на Хабре.
Итак. Последние несколько лет наблюдается тенденция смещения функций контроля и настройки конечных сетевых устройств от пользователей к провайдерам. Они берут на себя заботу по конфигурации и обновлению устройств, а пользователь получает просто коробку с оборудованием, которое достаточно включить, чтобы начать работать.
Современные производители понимают это и предоставляют собственные протоколы для управления. Но не каждый оператор позволит себе работать только с одним вендором и практически полностью от него зависеть.
Для управления тысячами абонентских устройств нужен гибкий механизм, не привязанный к конкретному производителю. Этот механизм должен быть универсальным и достаточно простым в реализации для производителей сетевого оборудования.
Протокол предполагает расположение на территории провайдера сервера автоконфигурации (ACS), организующего взаимодействие с абонентским оборудованием, осуществляющего обработку запросов от устройств и способного подключать дополнительные сервисы, в зависимости от выбранной политики.
Сессия может быть инициирована как со стороны CPE, так и со стороны ACS.
Для того, чтобы было возможно управление устройством, оно должно иметь IP-адрес независимо от типа этого устройства (Bridge, Router, IP-Phone). Для обеспечения защищённого соединения в TR-069 используется SSL и TLS.
TR-069 поддерживает следующие функции
1.Конфигурация. Речь идёт как о начальной конфигурации, так и автоконфигурации уже работающего устройства или внесении изменений в настройки.
2.Управление версиями ПО и его обновление.
3.Анализ log-файлов, производительности и диагностика устройства.
4.Выполнение хранимых процедур
Выбор СРЕ для обслуживания может осуществляться по различным условиям. Например, конкретное устройство, по вендору, модели или версии ПО.
Использовать автоконфигурацию возможно при любом способе приобретения устройств:
1.Оборудование предоставляется при подписании договора.
2.Оборудование покупается абонентом в виде комплекта подключения к сети оператора.
3.Оборудование покупатеся абонентом самостоятельно и не имеет предварительных настроек на сеть оператора.
Я работаю в новом провайдере WiMAX и, возможно, у нас будет внедрение этого механизма в будущем. Если всё получится, то смогу рассказать об этом более подробно.
Перспективное удаленное управление с помощью TR-069
Мы предлагаем продукты, которые поддерживают TR-069, что позволяет настраивать удаленное управление. Присоедините устройства TP-Link TR-069 к вашей существующей системе или создайте собственную систему ACS для обеспечения высокой масштабируемости в будущем.
Что такое TR-069?
TR-069, также известный как CWMP (CPE WAN Management), представляет собой техническую спецификацию, которая предлагает структурированное удаленное управление клиентским оборудованием. Он использует XML/SOAP для доставки сообщений между сервером автоконфигурации (ACS) и CPE, что сильно упрощает обслуживание. TP-Link рекомендует использовать шифрование SSL/TLS для повышения безопасности соединений.
Первая коммуникация между CPE и ACS.
Полное удаленное управление
Автоконфигурация
При загрузке CPE автоматически запрашивает конфигурацию у ACS. ACS также может инициировать настройку, когда это необходимо. Включение/отключение клиентов от сервисов становится более гибким для интернет-провайдера.
Firmware Upgrade
TR-069 облегчает процесс развертывания новых функций для существующих клиентов. Интернет-провайдеры могут определять версию прошивки на CPE через ACS и одновременно делать ее обновление на клиентских устройствах.
Удаленная диагностика
Поддерживайте надежность своей системы, планируя регулярную диагностику клиентских устройств. TR-069 предоставляет интернет-провайдерам решения для мониторинга состояния и производительности сети их CPE.
Исправление проблем
С TR-069 интернет-провайдеры могут удаленно обнаруживать проблемы в CPE у клиентов. Интернет-провайдеры также могут выполнять важные действия по устранению неполадок и сокращать количество посещений инженеров на места.
Группировка устройств
При управлении множеством подключенных устройств TR-069 предоставляет решения для их группировки и позволяет интернет-провайдерам удобнее организовать работу с CPE.
Совместимые устройства
*Поддерживается со специальной прошивка, за прошивкой обращайтесь в отдел продаж.
** Archer C6 V2 EU/RU/JP/KR, V3 US/BR
*** Archer A6 V2 EU/RU, V3 US/TW
Все маршрутизаторы Wi-Fi
AC1900 Беспроводной двухдиапазонный гигабитный MU-MIMO маршрутизатор
AC1900 Беспроводной двухдиапазонный гигабитный MU-MIMO маршрутизатор
AC1200 Беспроводной двухдиапазонный гигабитный MU-MIMO маршрутизатор
AC1350 Беспроводной двухдиапазонный гигабитный MU-MIMO маршрутизатор
AC1200 Беспроводной двухдиапазонный гигабиный MU-MIMO маршрутизатор
AC1200 Беспроводной двухдиапазонный MU-MIMO маршрутизатор
AC750 Беспроводной двухдиапазонный маршрутизатор
Беспроводной двухдиапазонный маршрутизатор
N300 Многорежимный беспроводной маршрутизатор
N300 Многорежимный беспроводной маршрутизатор
Показать все 10 Все маршрутизаторы Wi-Fi
Как мне приобрести продукты?
Как подготовиться к развертыванию TR-069 в моей сети?
Для развертывания TR-069 требуются совместимые устройства CPE и ACS. Если вы просто хотите ускорить развертывание, вы можете использовать Agile Config.
Как включить автоконфигурацию на устройствах с TR-069?
Заранее установите адрес ACS, информацию о профиле (имя пользователя и пароль) в клиентских устройствах, для использования автоконфигурации. TP-Link рекомендует использовать Agile Config для эффективного использования ACS.
Предлагает ли TP-Link собственное официальное решение ACS для продуктов TR-069?
Подпишитесь на рассылку Мы с ответственностью относимся к вашим персональным данным. Полный текст политики конфиденциальности доступен здесь.
Удалённое управление через TR-069
Мы поставляем устройства с поддержкой спецификации TR‑069, позволяющей выполнять их кастомизируемое удалённое управление. Легко интегрируйте устройства TP‑Link с поддержкой TR‑069 в текущую систему или создайте собственную систему ACS для масштабирования сети в будущем.
Что такое TR-069?
TR-069 (или CWMP — CPE WAN Management) — это техническая спецификация структурированного удалённого управления абонентским оборудованием (CPE). Для коммуникации между сервером автоматического конфигурирования (ACS) и абонентским оборудованием (CPE) используется XML/SOAP, что упрощает обслуживание. Для повышенной защиты TP‑Link рекомендует использовать шифрование SSL/TLS.
Первичная коммуникация между абонентским оборудованием и ACS.
Полноценное удалённое управление
Автоконфигурирование
При включении абонентское оборудование автоматически запросит настройки у ACS. При необходимости ACS также инициирует применение настроек. Таким образом у провайдера есть контроль над включением/выключением сервиса.
Обновление прошивки
TR-069 помогает распространять новые функции среди текущих абонентов. Через ACS провайдеры могут определять версию прошивки абонентского оборудования и обновлять его прошивку.
Удалённая диагностика
Для профилактики лучше периодически выполнять диагностику системы. TR-069 позволяет провайдерам отслеживать сетевое состояние и производительность абонентского оборудования, чтобы предотвратить утечки в системе.
Устранение неполадок
С помощью TR-069 провайдеры могут удалённо выявлять проблемы в абонентском оборудовании и сократить число выездов мастеров.
Группирование устройств
Если абонентских устройств много, то для упрощения работы с помощью TR‑069 можно выполнить их группирование.
Все Wi-Fi роутеры
AC1900 MU-MIMO гигабитный Wi-Fi роутер
AC1900 MU-MIMO Wi-Fi роутер
AC1200 Гигабитный MU‑MIMO Wi‑Fi роутер
AC1300 Wi-Fi роутер с MU‑MIMO
AC1200 Гигабитный MU‑MIMO Wi‑Fi роутер
AC1200 Wi-Fi роутер с MU‑MIMO
AC1200 Двухдиапазонный Wi‑Fi роутер
AC750 Двухдиапазонный Wi‑Fi роутер
AC750 Двухдиапазонный Wi-Fi роутер
N300 Многорежимный Wi-Fi роутер
N300 Многорежимный Wi‑Fi роутер
Показать все 11 Все Wi-Fi роутеры
Подписаться на рассылку Мы с ответственностью относимся к вашим персональным данным. Полный текст политики конфиденциальности доступен здесь.
These cookies are necessary for the website to function and cannot be deactivated in your systems.
Site Selection Popup
SMB Product Selection System
tp_smb-select-product_scence, tp_smb-select-product_scenceSimple, tp_smb-select-product_userChoice, tp_smb-select-product_userChoiceSimple, tp_smb-select-product_userInfo, tp_smb-select-product_userInfoSimple
__livechat, __lc2_cid, __lc2_cst, __lc_cid, __lc_cst, CASID
VISITOR_INFO1_LIVE, YSC, LOGIN_INFO, PREF, CONSENT, __Secure-3PSID, __Secure-3PAPISID, __Secure-3PSIDCC
Analysis and Marketing Cookies
Analysis cookies enable us to analyze your activities on our website in order to improve and adapt the functionality of our website.
The marketing cookies can be set through our website by our advertising partners in order to create a profile of your interests and to show you relevant advertisements on other websites.
Google Analytics & Google Tag Manager & Google Optimize
_gid, _gat, _gat_global, _ga, _gaexp
Google Ads & DoubleClick
NID, IDE, test_cookie, id, 1P_JAR
fr, spin, xs, datr, c_user, sb, _fbp
_ce.s, _CEFT, _gid, cean, _fbp, ceac, _drip_client_9574608, cean_asoc
_hjKB, _fbp, ajs_user_id, _BEAMER_LAST_UPDATE_zeKLgqli17986, _hjid, _gcl_au, _ga, ajs_anonymous_id, _BEAMER_USER_ID_zeKLgqli17986, _hjAbsoluteSessionInProgress, _hjFirstSeen, _hjIncludedInPageviewSample, _hjTLDTest
Hm_lpvt_33178d1a3aad1dcf1c9b345501daa675, Hm_lvt_33178d1a3aad1dcf1c9b345501daa675, HMACCOUNT_BFESS
lms_analytics, AnalyticsSyncHistory, _gcl_au, liap
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 реализован как комплекс стандартных и специально разработанных протоколов. Структура стека представлена на рисунке:
Слишком много поваров, или взлом Интернета с помощью 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 назначит ему другой порт по умолчанию?
— Возможно, поэтому мы советуем провайдером именно так и поступать, во всяком случае, это обезопасит вас от атаки хакеров, которые сканируют весь Интернет в поисках открытых по умолчанию портов.
— Избавлены ли последние версии прошивки от этой уязвимости?
— Да, многие производители учли эту проблему и предусмотрели защиту от неё.