Менеджер загрузок Xunlei используется для скрытой установки приложений Android

от автора

В этом посте мы публикуем информацию о потенциально нежелательном ПО (Potentially Unwanted Application, PUA), компоненты которого обнаруживаются ESET как Win32/Kankan. Эти компоненты реализованы в менеджере загрузок Xunlei. Мы обратили внимание на это ПО из-за следующих интересных особенностей:

  • Для обеспечения своей скрытности и выживаемости в системе это ПО регистрирует один из своих компонентов как плагин для Microsoft Office.
  • Обнаруженный вредоносный код осуществляет установку приложений для устройств под управлением Android, которые подключены к компьютеру через USB, без ведома пользователя.
  • Win32/Kankan содержит код для обнаружения специальных системных инструментов, которые анализируют его поведение в системе.
  • Файлы Xunlei, которые содержат этот вредоносный код, подписаны цифровой подписью, принадлежащей китайской компании Xunlei Networking Technologies (разработчик Xunlei).

История

История Win32/Kankan началась в июне прошлого года, когда на нескольких китайских форумах появились жалобы на подозрительную программу, подписанную компанией Xunlei Networking Technologies. Компания, о которой идет речь, занимается разработкой ПО Xunlei, которое используется для ускорения скачивания файлов (download manager). Xunlei похож на менеджер загрузок Orbit Downloader, историю с которым мы публиковали раньше.

Популярность Xunlei объясняется тем, что эта программа кроме возможности ускоренной закачки файлов позволяет пользователю искать необходимые файлы в сети и потом загружать их оптимизированным способом (торрент-клиент). У программы есть сформированная база адресов различных файлов. Когда нужно скачать тот или иной файл, Xunlei использует браузер или торрент-клиент таким образом, чтобы на загрузку потребовалось минимально возможное время. Для реализации подобной возможности компания Xunlei Networking Technologies встроила в ПО поисковый движок для файлов, торрент-клиент с поддержкой различных протоколов, собственный p2p протокол, а также другие инструменты. Более подробное описание Xunlei можно найти здесь.

Этот менеджер загрузок является очень популярным у китайских пользователей. Исследование TorrentFreak, опубликованное в 2009 г. показывает, что Xunlei — самый востребованный торрент клиент в мире с количеством идентификаторов (ID) пользователей более ста миллионов. В то время как для uTorrent максимальным количеством пользователей было 92 миллиона. Нужно отметить, что Xunlei является локальным продуктом для китайского рынка, так как на официальном сайте отсутствует другой язык кроме китайского, а перевод самого интерфейса ПО на другие языки выполнен сторонними компаниями или самими пользователями.

Анализ

Выше мы упоминали, что некоторые китайские пользователи обнаружили на своих компьютерах подозрительные файлы, подписанные сертификатом Xunlei Networking Technologies. Сертификат показан ниже.


Рис. Сертификат, которым подписаны вредоносные файлы.

Эти файлы принадлежали инсталлятору (Windows installer), имя которого было INPEnhSetup.exe. Он основан на системе дистрибутивов Nullsoft Scriptable Install System. В процессе установки инсталлятор связывается с доменом kkyouxi.stat.kankan.com, который жестко зашит в его код, для того, чтобы сообщить серверу о начале новой установки. Затем осуществляется установка в систему трех файлов: INPEn.dll, INPEnhUD.exe и INPEnhSvc.exe. После этого библиотека INPEn.dll загружается в память и происходит вызов функции DllRegisterServer. Далее установщик снова связывается с kkyouxi.stat.kankan.com и сообщает об окончании своей работы.

Исполнение кода в INPEn.dll начинается с регистрации dll как плагина с именем InputEnhance для Word, Excel и PowerPoint. Для выполнения этой операции он создает разделы реестра в соответствующем расположении, что позволяет библиотеке INPEnh.dll в дальнейшем выступать в качестве плагина для приложений Office. Ниже представлены некоторые из этих ключей реестра.


Рис. Раздел реестра, через который вредоносная DLL осуществляет свою загрузку.

На скриншоте видно, что параметр LoadBehavior установлен в значение 3. Так, плагин будет загружаться каждый раз при запуске приложения. Таким образом, авторы вредоносного кода обеспечивают его выживаемость после перезагрузки и последующий запуск. Каждый раз, когда запускается приложение из состава Microsoft Office (напр., Word, Excel или PowerPoint), эта библиотека загружается в память как плагин. Для пользователя подобное действие является абсолютно прозрачным, то есть он его не видит. INPEn.dll незаметно для пользователя выполняет следующие действия:

  • Скачивает с удаленного сервера файл конфигурации tools.ini (conf.kklm.n0808.com/tools.ini). Файл содержит различные параметры, например, список имен различных системных инструментов, который закодирован алгоритмом base64. Ниже представлен этот файл.
  • Проверяет запущен ли какой-либо процесс из списка, который представлен в файле конфигурации. Если запущен, библиотека прекращает свою работу. Список приложений одного из файлов конфигурации приведен ниже. Видно, что он содержит имена процессов инструментов анализа и отладки (Windows task manager, Olly Debugger, MS Process Monitor, Wireshark и др.), а не названия процессов антивирусных продуктов. Таким образом, очевидно, что авторы встроили в библиотеку код, который помогает избежать анализа поведения программы или обнаружение ее активности в системе.
  • Проверяет активно ли соединение с интернет, пытаясь связаться с известными китайскими ресурсами, например, baidu.com и qq.com. В случае отсутствия подключения к сети, код переходит в цикл ожидания такого подключения.
  • Если все предыдущие проверки успешно пройдены, плагин посылает на сервер StatServer (см. файл конфигурации) различную информацию, в частности, версию Windows и имя приложения, в контексте которого была запущена dll. Затем выполняется запуск INPEnhUD.exe.
  • Далее код входит в цикл обработки различных задач, которые мы опишем далее.

Приложение INPEnhUD.exe можно описать как апдейтер (программа обновления). Он извлекает из своего кода жестко зашитый адрес xml-файла update.kklm.n0808.com/officeaddinupdate.xml, который представлен ниже.


Рис. Часть «файла обновлений», который используется для загрузки новых исполняемых файлов кодом Xunlei.

Видно, что этот xml-файл содержит список URL-адресов, указывающих на различные исполняемые файлы и их хэши MD5. Файлы из этого списка будут загружены апдейтером на компьютер и после проверки MD5 исполнены. Когда эти действия будут выполнены, код апдейтера запускает исполняемый файл INPEnhSvc.exe, который мы называем сервисом.

Этот INPEnhSvc.exe («сервис») фактически является ядром скрытного кода Xunlei и может выполнять различные удаленные команды. После выполнения тех же проверок на наличие инструментов отладки и анализа, которые мы видели в предыдущем модуле, он скачивает файл конфигурации XML, который может содержать различные команды. Они могут быть разбиты на две группы.

  • локальные команды: scanreg, scandesktop, scanfavorites
  • удаленные команды: installpcapp, installphoneapp, setdesktopshortcut, addfavorites, setiestartpage

Как следует из названия, локальные команды реализуются самим кодом сервиса без использования загрузок по сети: scanreg осуществляет поиск определенного раздела реестра и сообщает о его присутствии или отсутствии по адресу StatServer, scandesktop и scanfavorites ищут специальные файлы ярлыков .lnk и .url в директориях рабочего стола и «Избранное» соответственно.

Если сервис получает удаленную команду, то он взаимодействует с плагином Office (описан выше), который отвечает за исполнение этой возможности. Такое взаимодействие происходит через файл конфигурации, который называется tasklist.ini и содержит три различных секции: Doing, Done, DoneByData. Оба исполняемых файла содержат список идентификаторов GUID, каждый из которых ассоциируется с конкретной задачей. Процесс взаимодействия между этими модулями выглядит следующим образом:

  • Когда сервис получает удаленную команду, он записывает нужный GUID в секцию Doing с необходимыми параметрами (напр., URL адрес).
  • Библиотека, которая была зарегистрирована как плагин Office, читает этот GUID. Затем проверяет присутствие такого GUID в секциях Done и DoneByDate файла tasklist.ini. В случае, если команда еще не была исполнена, т. е. отсутствует в обоих секциях, то она подлежит исполнению.
  • Как только команда исполнена, плагин записывает значение GUID в секцию Done. Кроме этого, значения GUID для команд installpcapp и installphoneapp также записываются в секцию DoneByDate. Вероятно, это сделано для последующего повторного исполнения этих команд.

Ниже представлена наглядная схема этого процесса работы. Синие прямоугольники представляют процессы, а желтые — файлы.

Удаленные команды не нуждаются в дополнительных объяснениях, поскольку их названия говорят сами за себя. Исключение составляет команда installphoneapp, которую мы рассмотрим более подробно.

Приложения для мобильного устройства

Команда installphoneapp, как следует из названия, используется для загрузки мобильного приложения с удаленного сервера и его последующей установки на мобильное устройство под управлением Android (APK файл). Для выполнения этой задачи сервис скачивает приложение Android Debug Bridge (ADB), которое является частью Android SDK. Далее плагин загружает APK файлы чьи адреса указаны в командном XML файле (config.xml) и перечисляет устройства под управлением Android, которые подключены к компьютеру с использованием ADB. После этих операций, код устанавливает каждое из приложений на устройство.

Следует отметить, что приложение будет установлено только в том случае, если устройство под управлением Android подключено к компьютеру через USB, и в нем включена возможность отладки, которая активируется через настройки устройства. Официально она предусмотрена только для разработки приложений, но используется и некоторыми типами приложений, в том числе, в целях обновления прошивки на устройстве. В таком режиме взаимодействия приложение на устройство будет установлено в скрытном режиме и пользователь этого не заметит.

Скриншоты загружаемых приложений показаны ниже.


Рис. Скриншоты приложений, устанавливаемых Xunlei.

Согласно нашему анализу, все эти приложения предоставляют реальные возможности для пользователя. Три из них доступны для скачивания в магазинах приложений. Мы не обнаружили каких-либо вредоносных функций в этих приложениях, тем не менее, следует отметить, что код этих приложений сильно обфусцирован для усложнения анализа.

На данный момент четвертое приложение по-прежнему доступно в Google Play и позволяет пользователям совершать телефонные звонки по так называемым специальным выгодным тарифам. Тем не менее, приложение обладает некоторыми подозрительными функциями, например, регулярное взаимодействие с различными URL адресами, которые известны как распространители рекламного ПО для Android. Данное приложение обнаруживается ESET как Android/SMSreg.BT и также является потенциально нежелательным (Potentially Unwanted Application, PUA).

Мотивация установки этих приложений через скрытный код Xunlei остается неизвестной. Впрочем, не совсем понятна роль компании-разработчика Xunlei Networking Technologies. Дело в том, что файлы, содержащие этот нежелательный код, подписаны цифровым сертификатом этой компании. Кроме этого, дочерний домен kankan.com, который используется в качестве сервера сбора данных (StatServer) также используется в качестве другого сервиса этой компании. Нет сомнений в том, что сотрудники компании знали о нежелательных скрытых возможностях их ПО.

В августе прошлого года представители компании ответили на жалобы пользователей заявлением о том, что некоторые сотрудники использовали ресурсы компании для создания и распространения этого кода. В частности указывалось, что ответственность за это несет один из отделов компании, который без одобрения руководства встроил в ПО такие возможности.

Отметим, что деинсталлятор Xunlei подписан тем же цифровым сертификатом. Он загружается на компьютер пользователя благодаря компоненту апдейтера, о котором мы писали выше. Согласно нашему анализу, деинсталлятор работает корректно и удаляет все элементы программы. Начало и окончание кампании по распространению этой версии Kankan совпадает с индикаторами обнаружений этого PUA ПО в августе и сентябре этого года.

Видно, что уровень распространения этого ПО сильно снизился после пика 8-го августа (деинсталлятор был подписан 9-го августа). Ниже представлена карта активности Win32/Kankan, согласно ESET VirusRadar, на которой видно, что в Китае наблюдалась наибольшая активность.

Заключение

Использование одной из библиотек Xunlei как плагина Office для сокрытия и последующего внедрения своих нежелательных возможностей, механизм по скрытой установке приложений для Android, а также функциональность бэкдора подтверждают, что продукт Xunlei опасен для пользователей. Таким образом, это ПО было добавлено в базы ESET как Win32/Kankan.

ссылка на оригинал статьи http://habrahabr.ru/company/eset/blog/197610/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *