Содержание статьи
Производители роутеров зачастую не слишком заботятся о качестве кода, поэтому и уязвимости нередки. Сегодня роутеры — приоритетная цель сетевых атак, позволяющая украсть деньги и данные в обход локальных систем защиты. Как самому проверить качество прошивки и адекватность настроек? В этом помогут бесплатные утилиты, сервисы онлайн-проверки и эта статья.
Роутеры потребительского уровня всегда критиковали за их ненадежность, но высокая цена еще не гарантирует высокую безопасность. В декабре прошлого года специалисты компании Check Point обнаружили свыше 12 миллионов роутеров (в том числе топовых моделей) и DSL-модемов, которые можно взломать из-за уязвимости в механизме получения автоматических настроек. Он широко применяется для быстрой настройки сетевого оборудования на стороне клиента (CPE — customer premises equipment). Последние десять лет провайдеры используют для этого протокол управления абонентским оборудованием CWMP (CPE WAN Management Protocol). Спецификация TR-069 предусматривает возможность отправлять с его помощью настройки и подключать сервисы через сервер автоконфигурации (ACS — Auto Configuration Server). Сотрудники Check Point установили, что во многих роутерах есть ошибка обработки CWMP-запросов, а провайдеры еще усложняют ситуацию: большинство из них никак не шифруют соединение между ACS и оборудованием клиента и не ограничивают доступ по IP- или MAC-адресам. Вместе это создает условия для легкой атаки по типу man-in-the-middle — «человек посередине».
Через уязвимую реализацию CWMP злоумышленник может делать практически что угодно: задавать и считывать параметры конфигурации, сбрасывать установки на значения по умолчанию и удаленно перезагружать устройство. Самый распространенный тип атаки заключается в подмене адресов DNS в настройках роутера на подконтрольные взломщику серверы. Они фильтруют веб-запросы и перенаправляют на поддельные страницы те из них, которые содержат обращение к банковским сервисам. Фейковые страницы создавались для всех популярных платежных систем: PayPal, Visa, MasterCard, QIWI и других.
Особенность такой атаки состоит в том, что браузер работает в чистой ОС и отправляет запрос на корректно введенный адрес реальной платежной системы. Проверка сетевых настроек компьютера и поиск вирусов на нем не выявляют никаких проблем. Более того, эффект сохраняется, если подключиться к платежной системе через взломанный роутер из другого браузера и даже с другого устройства в домашней сети.
Поскольку большинство людей редко проверяют настройки роутера (или вовсе доверяют этот процесс техникам провайдера), проблема долго остается незамеченной. Узнают о ней обычно методом исключения — уже после того, как деньги были украдены со счетов, а проверка компьютера ничего не дала.
Чтобы подключиться к роутеру по CWMP, злоумышленник использует одну из распространенных уязвимостей, характерных для сетевых устройств начального уровня. Например, в них содержится сторонний веб-сервер RomPager, написанный компанией Allegro Software. Много лет назад в нем обнаружили ошибку в обработке cookies, которую оперативно исправили, но проблема осталась до сих пор. Поскольку этот веб-сервер является частью прошивки, обновить его одним махом на всех устройствах невозможно. Каждый производитель должен был выпустить новый релиз для сотен уже продающихся моделей и убедить их владельцев поскорее скачать обновление. Как показала практика, никто из домашних пользователей этого не сделал. Поэтому счет уязвимых устройств идет на миллионы даже спустя десять лет после выхода исправлений. Более того, сами производители продолжают использовать в своих прошивках старую уязвимую версию RomPager по сей день.
Помимо маршрутизаторов, уязвимость затрагивает телефоны VoIP, сетевые камеры и другое оборудование, допускающее удаленную настройку через CWMP. Обычно для этого используется порт 7547. Проверить его состояние на роутере можно с помощью бесплатного сервиса Стива Гибсона Shields Up. Для этого набирай его URL (grc.com), а затем добавь /x/portprobe=7547.
На скриншоте показателен только положительный результат. Отрицательный еще не гарантирует, что уязвимости нет. Чтобы ее исключить, потребуется провести полноценный тест на проникновение — например, с использованием сканера Nexpose или фреймворка Metasploit. Разработчики часто сами не готовы сказать, какая версия RomPager используется в конкретном релизе их прошивки и есть ли она там вообще. Этого компонента точно нет только в альтернативных прошивках с открытыми исходниками (речь о них пойдет дальше).
Прописываем защищенный DNS
Хорошая идея — почаще проверять настройки роутера и сразу прописать руками альтернативные адреса серверов DNS. Вот некоторые из них, доступные бесплатно.
- Comodo Secure DNS: 8.26.56.26 и 8.20.247.20
- Norton ConnectSafe: 199.85.126.10, 199.85.127.10
- Google Public DNS: 8.8.8.8, 2001:4860:4860:8888 — для IPv6
- OpenDNS: 208.67.222.222, 208.67.220.220
Все они блокируют только зараженные и фишинговые сайты, не ограничивая доступ к ресурсам «для взрослых».
Unplug and pray
Есть и другие давно известные проблемы, которые не желают исправлять владельцы сетевых устройств или (реже) их производители. Два года назад эксперты DefenseCode обнаружили целый набор уязвимостей в роутерах и другом активном сетевом оборудовании девяти крупнейших фирм. Все они связаны с некорректной программной реализацией ключевых компонентов. В частности — стека UPnP в прошивках для чипов Broadcom или использующих старые версии открытой библиотеки libupnp. Вместе со специалистами Rapid7 и CERT сотрудники DefenseCode нашли около семи тысяч уязвимых моделей устройств. За полгода активного сканирования случайного диапазона адресов IPv4 было выявлено свыше 80 миллионов хостов, ответивших на стандартный запрос UPnP на WAN-порт. Каждый пятый из них поддерживал сервис SOAP (Simple Object Access Protocol), а 23 миллиона позволяли выполнить произвольный код без авторизации. В большинстве случаев атака на роутеры с такой дырой в UPnP выполняется через модифицированный SOAP-запрос, который приводит к ошибке обработки данных и попаданию оставшейся части кода в произвольную область оперативной памяти маршрутизатора, где он выполняется с правами суперпользователя. На домашних роутерах лучше UPnP вовсе отключить и убедиться в том, что запросы на порт 1900 блокируются. Поможет в этом тот же сервис Стива Гибсона. Протокол UPnP (Universal Plug and Play) включен по умолчанию на большинстве маршрутизаторов, сетевых принтеров, IP-камер, NAS и слишком умной бытовой технике. Он по умолчанию активирован в Windows, OS X и многих версиях Linux. Если есть возможность тонкой настройки его использования — это еще полбеды. Если доступны только варианты «включить» и «отключить», то лучше выбрать последний. Иногда производители намеренно внедряют программные закладки в сетевое оборудование. Скорее всего, это происходит по указке спецслужб, но в случае скандала в официальных ответах всегда упоминается «техническая необходимость» или «фирменный сервис по улучшению качества связи». Встроенные бэкдоры были обнаружены в некоторых роутерах Linksys и Netgear. Они открывали порт 32764 для приема удаленных команд. Поскольку этот номер не соответствует ни одному общеизвестному сервису, эту проблему легко обнаружить — например, с помощью внешнего сканера портов.
INFO
Еще один способ выполнить бесплатный аудит домашней сети — скачать и запустить антивирус Avast. Его новые версии содержат мастер проверки Network check, который определяет известные уязвимости и опасные сетевые настройки.
Умолчания — для ягнят
Самой распространенной проблемой с защитой роутеров остаются заводские настройки. Это не только общие для всей серии устройств внутренние IP-адреса, пароли и логин admin, но также включенные сервисы, повышающие удобство ценой безопасности. Помимо UPnP часто по умолчанию включен протокол удаленного управления Telnet и сервис WPS (Wi-Fi Protected Setup). В обработке запросов Telnet часто находят критические ошибки. Например, маршрутизаторы D-Link серии DIR-300 и DIR-600 позволяли удаленно получить шелл и выполнить любую команду через демон telnetd безо всякой авторизации. На роутерах Linksys E1500 и E2500 была возможна инжекция кода через обычный пинг. Параметр ping_size у них не проверялся, в результате чего методом GET бэкдор заливался на роутер одной строкой. В случае E1500 вообще не требовалось никаких дополнительных ухищрений при авторизации. Новый пароль можно было просто задать без ввода текущего. Аналогичная проблема была выявлена у VoIP-телефона Netgear SPH200D. Дополнительно при анализе прошивки выяснилось, что в ней активен скрытый аккаунт service с таким же паролем. При помощи Shodan найти уязвимый роутер можно за пару минут. Они до сих пор позволяют менять у себя любые настройки удаленно и без авторизации. Можно этим немедленно воспользоваться, а можно сделать доброе дело: найти в Skype этого горе-юзера (по IP или по имени) и отправить ему пару рекомендаций — например, сменить прошивку и прочесть эту статью.
Сверхскопление массивных дыр
Беда редко приходит одна: активация WPS автоматически приводит к включению UPnP. Вдобавок используемый в WPS стандартный пин-код или ключ предварительной аутентификации сводит на нет всю криптографическую защиту уровня WPA2-PSK. Из-за ошибок в прошивке WPS часто остается включен даже после его отключения через веб-интерфейс. Узнать об этом можно с помощью Wi-Fi-сканера — например, бесплатного приложения Wifi Analyzer для смартфонов с ОС Android. Если уязвимые сервисы используются самим администратором, то отказаться от них не получится. Хорошо, если роутер позволяет хоть как-то их обезопасить. Например, не принимать команды на порт WAN или задать конкретный IP-адрес для использования Telnet. Иногда возможности настроить или просто отключить опасный сервис в веб-интерфейсе просто нет и закрыть дыру стандартными средствами невозможно. Единственный выход в этом случае — искать новую или альтернативную прошивку с расширенным набором функций.
Альтернативные службы
Наиболее популярными открытыми прошивками стали DD-WRT, OpenWRT и ее форк Gargoyle. Установить их можно только на маршрутизаторы из списка поддерживаемых — то есть тех, для которых производитель чипсета раскрыл полные спецификации. Например, у Asus есть отдельная серия роутеров, изначально разработанная с прицелом на использование DD-WRT (bit.ly/1xfIUSf). Она уже насчитывает двенадцать моделей от начального до корпоративного уровня. Роутеры MikroTik работают под управлением RouterOS, не уступающей по гибкости настроек семейству *WRT. Это тоже полноценная сетевая ОС на ядре Linux, которая поддерживает абсолютно все сервисы и любые мыслимые конфигурации. Альтернативные прошивки сегодня можно установить на многие роутеры, но будь внимателен и проверяй полное название устройства. При одинаковом номере модели и внешнем виде у маршрутизаторов могут быть разные ревизии, за которыми могут скрываться совершенно разные аппаратные платформы.
Проверка защиты
Проверку на уязвимость OpenSSL можно выполнить бесплатной утилитой ScanNow фирмы Rapid7 (bit.ly/18g9TSf) или ее упрощенной онлайновой версией (bit.ly/1xhVhrM). В онлайне проверка проходит за несколько секунд. В отдельной программе можно задать диапазон IP-адресов, поэтому тест длится дольше. Кстати, регистрационные поля утилиты ScanNow никак не проверяются.
После проверки отобразится отчет и предложение попробовать более продвинутый сканер уязвимостей Nexpose, ориентированный на сети компаний. Он доступен для Windows, Linux и VMware. В зависимости от версии бесплатный испытательный период лимитируется сроком от 7 до 14 дней. Ограничения касаются количества IP-адресов и областей проверки.
К сожалению, установка альтернативной опенсорсной прошивки — это лишь способ повысить защиту, и полной безопасности он не даст. Все прошивки построены по модульному принципу и сочетают в себе ряд ключевых компонентов. Когда в них обнаруживается проблема, она затрагивает миллионы устройств. Например, уязвимость в открытой библиотеке OpenSSL коснулась и роутеров с *WRT. Ее криптографические функции использовались для шифрования сеансов удаленного доступа по SSH, организации VPN, управления локальным веб-сервером и других популярных задач. Производители начали выпускать обновления довольно быстро, но устранить проблему полностью до сих пор не удается.
Новые уязвимости в роутерах находятся постоянно, и какими-то из них успевают воспользоваться еще до того, как выйдет исправление. Все, что может сделать владелец маршрутизатора, — это отключить лишние сервисы, сменить дефолтные параметры, ограничить удаленное управление, почаще проверять настройки и обновлять прошивку.