Программа Microsoft ActiveSync – основной продукт для синхронизации карманных компьютеров (PDA, device, устройство) и интеллектуальных телефонов (Smartphone) на основе Windows c настольным компьютером (PC). Кроме полного доступа к файловой системе и реестру PDA ActiveSync позволяет преобразовывать форматы данных между мобильными и настольными вариантами приложений и контролировать версии документов. Используемый ActiveSync сетевой протокол не выдерживает никакой критики с точки зрения современных требований к безопасности.
Наталья Мельникова (hataha@yandex.ru)
Программа Microsoft ActiveSync – основной продукт для синхронизации карманных компьютеров (PDA, device, устройство) и интеллектуальных телефонов (Smartphone) на основе Windows c настольным компьютером (PC). Кроме полного доступа к файловой системе и реестру PDA ActiveSync позволяет преобразовывать форматы данных между мобильными и настольными вариантами приложений и контролировать версии документов.
[Используемый ActiveSync сетевой протокол не выдерживает никакой критики с точки зрения современных требований к безопасности.]
Интерфейсы взаимодействия ActiveSync
Наиболее распространенными интерфейсами взаимодействия PDA и PC являются COM и USB порты, а так же инфракрасное соединение. Все эти методы предполагают физическое соединение устройства и компьютера или наличие небольшого воздушного зазора (в случае IR) между ними и не представляют особого интереса для сетевого хакера. Поскольку «Если плохие парни имеют полный физический доступ к вашему компьютеру, это больше не ваш компьютер».
Были предприняты попытки создания утилиты по подбору пароля для доступа к защищенному встроенными средствами PDA (http://www.cs.nmt.edu/~cs553/paper3.pdf), однако, AFAIK, критическому исследованию со стороны security-сообщества дизайн и реализация протокола ActiveSync не подвергался.
В принципе, мер защиты встроенных в протокол (аутентификация PC с использованием пароля) для синхронизации через IR/USB/COM вполне достаточно. Пользователь всегда имеет возможность визуально аутентифицировать и компьютер и наладонник.
Однако все меняется, когда появляется сеть (см. Рисунок 1).
Рисунок 1. Welcome to the Real Word!
Все больше и больше PDA оснащается беспроводными интерфейсами стандарта 802.11 и естественно, их владельцы хотят использовать открывающийся при этом потенциал. Компания Microsoft, естественно, предоставляет им эту возможность, позволяя синхронизировать устройство по сети. Сетевая синхронизация отключена по умолчанию и это одно из немногих правильных решений в реализации ActiveSync. Но, судя по количеству “how-to synchronize via wi-fi” в сети, очень многие владельцы PDA задействуют эту опцию. Ну что ж, приступим.
Анализ сетевого протокола
Первое, что бросается в глаза – передача трафика в открытом виде. Это нормально для непосредственного соединения (троянский компонент на PC все равно сумеет получить доступ к трафику), но абсолютно неприемлемо в случае сетевого взаимодействия. Особенно если учесть то обстоятельство, что основным каналом связи между устройством и настольным компьютером является Wi-Fi, о «безопасности» которого сказано столько тёплых слов (ok, ok, я знаю что такое 802.11i). Однако данный факт описан в документации Microsoft, соответственно из разряда bugs переходит в область features.
После запуска ActiveSync открывает серверный порт 5679 на всех сетевых интерфейсах.
C:\>netstat -anb
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:5679 0.0.0.0:0 LISTENING
[WCESCOMM.EXE]
Таким образом, простое сканирование с помощью nmap –p 5679 позволяет обнаружить машины с установленным ActiveSync.
Компьютер и PDA взаимодействуют, используя несколько TCP соединений. Сначала PDA устанавливает TCP соединение на порт 5679 зарегистрированный в IANA как DCCM (Direct Cable Connect Manager).
В рамках этого соединения происходит идентификация устройства. В случае если устройство идентифицировано, настольный компьютер устанавливает соединение на порт 990 PDA. По этому соединению работает RPC-style протокол, по сути являющийся сетевой интерпретацией вызовов Microsoft RAPI. Подробнее об этих протоколах можно узнать из документации проекта SynCE (http://synce.sourceforge.net/synce/).
Ложный сервер
В случае синхронизации через COM/USB/IR пользователь имеет возможность защитить устройства от атак с внедрением ложного сервера. Для этого используется либо 4х разрядный pin-код либо алфавитно-цифровой пароль из 40ка символов. Перед синхронизацией сервер должен предъявить пароль устройству. Насколько мне известно, единственной утилитой подбора пароля является эмулятор работы пользователя в GUI, написанный на vbscript. В настоящее время протокол ActiveSync довольно неплохо изучен командой проекта SyncCE, и не представляет особой проблемы создать на основе их кода более «продвинутую утилиту».
Однако для реализации атаки «ложный сервер» при использовании для синхронизации TCP/IP такие изыски не нужны. Устройство просто не требует пароля в случае сетевой синхронизации! Я даже затрудняюсь сказать, чем это является – пробелом в безопасности или способом повышения защищенности. Ведь если синхронизация происходит через COM/USB/IR, пароль передается в открытом виде. Это, безусловно, недопустимо при передаче пароля по сети. Что ж, тогда не будем передавать его вообще!
Соответственно для реализации внедрения ложного сервера достаточно реализовать «половину» атаки mitm (человек по середине) и сделать так, что бы при соединении сервером PDA соединялся с нашей машиной.
Это можно реализовать, используя известные техники на 1,2,3… (выберите свой любимый) уровне модели OSI. В исследованиях использовался вариант с DNS-spoofing, поскольку устройство идентифицирует настольный компьютер по имени, но атакующему остается ещё много других возможностей. Я не думаю, что этот подход будет популярен у реальных «плохих парней», поскольку в большинстве SOHO сетей для разрешения имен используется NetBIOS.
Ещё одним компонентом, необходимым для реализации атаки является сам «ложный сервер». В нашем случае в дополнительном программировании необходимости нет, вполне достаточно встроенных возможностей ActiveSync.
Однако перед нами встает одна проблема. При первом подключении через COM/USB/IR устройство и PC согласуют параметры обмена и создают так называемые «партнерские взаимоотношения». Документированных способов их создания в случае сетевой синхронизации обнаружено не было. Прекрасно зарекомендовавший себя параметр HKLM\SOFTWARE\Microsoft\Windows CE Services\GuestOnly=1, позволяющий подключать любое устройство как «гостя» в данном случае не работает.
При более пристальном рассмотрении было обнаружено, что «партнерские взаимоотношения» определяются наличием ключа реестра HKCU\Software\Microsoft\Windows CE Services\Partners\<patrnerid> на PC, и параметра HKLM\Software\Microsoft\Windows CE Services\Partners\<PN>\Pid=<patrnerid> на PDA. Где <partnerid> - 32 битный идентификатор «партнерских взаимоотношений», а <PN> - порядковый номер партнера (P1, P2).
При сетевой синхронизации идентификатор «партнерских взаимоотношений», передается устройством в открытом виде, соответственно «ложный сервер» имеет возможность его перехватить (Рисунок 2), извлечь из запроса клиента, и настроить ActiveSync на прием соединений от данного устройства.
Рисунок 2. Идентификаторы соединений
Сценарий атаки
В ходе экспериментов была получена возможность полного доступа к устройству в «гостевом режиме», т.е. практически полный контроль над PDA. Реализацию атаки можно упростить, написав proxy, автоматически добавляющий перехваченный идентификатор партнера в настройки ActiveSync.
Ложный клиент
Атака «ложный клиент» позволяет подключить к серверу мобильное устройство и получить данные, настроенные на автоматическую синхронизацию, такие почтовые сообщения, файлы, контакты и т.д. Кроме того, при обнаружении ошибок типа «переполнение буфера» в модулях преобразования форматов ActiveSync, это может привести к выполнению произвольного кода.
Для создания ложного клиента необходима та же информация, что и для поднятия ложно сервера – имя машины с ActiveSync и PartnerID.
Идентификатор «партнерских взаимоотношений» можно получить путем перехвата сетевых пакетов или перебором. Во втором случае объем перебираемых комбинаций довольно велик и равен 2^32. Однако на практике, он несколько ниже, поскольку в запросе можно передавать сразу 2 ID (см. Рисунок 2), и кроме того, при генерации PartnerID ActiveSync пытается избежать «крайних» значений диапазона.
После того, как необходимое значение определено, необходимо настроить наладонник на синхронизацию с настольным компьютером, для чего с помощью редактора реестра на PDA создаются следующие значения
HKLM\Software\Microsoft\Windows CE Services\Partners\P1
PName [STRING] = <PC_NAME>
PId [DWORD]= <partnership id>
После этого, на PDA запускается клиент ActiveSync и инициируется соединение с PC.
Защита
При дизайне ActiveSync Microsoft мог бы воспользоваться SSL/TLS на самоподписанных сертификатах, генерируемых при установлении партнерских отношений. Это бы решило проблему взаимной аутентификации устройства и настольного компьютера, а так же позволило шифровать передаваемый трафик.
Поскольку этого не сделано, приходится задействовать навесную защиту. В Windows Mobile 2003 встроена поддержка протоколов защиты канального (WPA и 802.1X), сетевого (L2TP/IPSEC) и сеансового уровня (SSL/TLS) модели OSI. Последний из них весьма полезен при настройке синхронизации с сервером Exchange, которая происходит по протоколу HTTP с аутентификацией типа Basic (т.е. имя пользователя и пароль в кодировке Base64).
Первые два вполне подходят для решения задачи защиты ActiveSync. При выборе WPA можно задействовать аутентификацию на основе общего ключа (WPA/PSK) или с помощью сертификатов и паролей пользователя (802.1X PEAP-MSCHAPv2 или EAP-TLS). Использование PEAP или EAP является более защищенным вариантом, но требует настройки клиентских компонентов PKI на PDA, например настройки доверяя к сертификату сервера RADIUS.
При выборе IPSEC для аутентификации так же можно задействовать общий ключ либо цифровые сертификаты. К сожалению, в Windows Mobile 2003 нет возможности настройки IPSec в отрыве от L2TP, что требует развертывания на машине с ActiveSync службы RRAS или другого L2TP сервера.
Более подробно о защите коммуникаций Windows Mobile можно узнать из статьи, опубликованной в апрельском номере журнала «Системный администратор».
"Лаборатория Касперского" - международная компания-разработчик программного обеспечения для защиты от вирусов, хакеров и спама. Продукты компании предназначены для широкого круга клиентов - от домашних пользователей до крупных корпораций. В активе "Лаборатории Касперского" 16-летний опыт непрерывного противостояния вирусным угрозам, позволивший компании накопить уникальные знания и навыки и стать признанным экспертом в области создания систем антивирусной зашиты.Компания SoftKey – это уникальный сервис для покупателей, разработчиков, дилеров и аффилиат–партнеров. Кроме того, это один из лучших Интернет-магазинов ПО в России, Украине, Казахстане, который предлагает покупателям широкий ассортимент, множество способов оплаты, оперативную (часто мгновенную) обработку заказа, отслеживание процесса выполнения заказа в персональном разделе, различные скидки от
Академия Информационных Систем (АИС) создана в 1996 году и за время работы обучила свыше 7000 специалистов различного профиля. АИС предлагает своим партнерам десятки образовательных программ, курсов, тренингов и выездных семинаров. Сегодня АИС представлена направлениями: «Информационные технологии», «Дистанционное обучение в области ИТ», «Информационная безопасность, «Управление проектами», «Бизнес-образование», «Семинары и тренинги», «Экологические промышленные системы», «Конференции», «Консалтинг» и «Конкурентная разведка на основе Интернет».
Интернет-магазин www.watches.ru входит в состав крупной специализированной сети часовых салонов МОСКОВСКОЕ ВРЕМЯ, которая насчитывает более 40 торговых точек по Москве и регионам России. В нашем магазине представлены более 3000 моделей часов производства Швейцарии, Германии, Франции и Кореи. Доставка по Москве - бесплатно. Для постоянных клиентов существует гибкая система скидок и выдается накопительная дисконтная карта «Московское время».
От классики до авангарда — наука во всех жанрах