Вы используете устаревший браузер!
Страница может отображаться некорректно.
Свяжитесь с нами Незакрытые запросы:
Анализ используемых злоумышленниками технологий позволяет нам делать выводы о возможных векторах развития вирусной индустрии и еще эффективней противостоять будущим угрозам. Узнайте и вы о том, как действуют в зараженных системах те или иные вредоносные программы и как этому противостоять.
В приложении UC Browser для Android была обнаружена скрытая возможность загрузки и запуска новых программных компонентов в обход серверов каталога Google Play. Эта функция нарушает политику корпорации Google и представляет потенциальную угрозу. Если злоумышленники получат контроль над управляющим сервером браузера, они смогут использовать встроенный механизм обновления для распространения любого исполняемого кода, в том числе и вредоносного. Кроме того, браузер подвержен MITM-атакам («человек посередине»). Уязвимость содержится в UC Browser версии 11.1.5.890 и выше, а также в UC Browser Mini версии 11.0.2 и выше.
Дальнейшее описание потенциально опасной функции браузера основано на его последней доступной версии 12.10.8.1172, которая распространяется через Google Play.
UC Browser имеет сложную модульную архитектуру. В его состав входят несколько программных компонентов (плагинов), число которых и назначение может варьироваться в зависимости от версии браузера. Список текущих доступных модулей приложения представлен ниже.
Плагины в виде dex- и jar-файлов:
Плагины в виде исполняемых Linux-библиотек:
Некоторые из этих компонентов загружаются при запуске приложения, другие — по мере необходимости в процессе работы браузера.
Приложение содержит пакет com.uc.aerie.updater, который использует библиотеку Tinker для установки обновлений без переустановки программы. За получение обновлений отвечает com.uc.deployment.UpgradeDeployService.
При тестировании приложения после запроса на обновление к серверу http://puds.ucweb.com/upgrade/index.xhtml?dataver=pb была загружена нативная библиотека libpicsel.so, которая находилась по адресу:
http://gjxz2.ucweb.com/files/OfficeSo/en-us/352/OfficeSo_V1.0.0.0_android_pf145_(Build1704181610).zip?auth_key=1543835590-0-0-3643380ec3205b86d14d33a6f4cfc4cd&vh=fc244462e5aad8ac98fc1111a2512cfa&sf=2172301&SESSID=6ef76125863cf36e2410804ae2090430
Эту библиотеку использует пакет com.picsel.tgv.lib. Она предназначена для работы с документами офисного ПО MS Office и файлами формата PDF и не является вредоносной. Изначально библиотека в составе браузера отсутствует. Таким образом, программа способна расширять свои возможности при помощи загружаемых из интернета модулей.
После скачивания libpicsel.so сохранилась в рабочий каталог /files браузера и была запущена в классе com.uc.browser.office.sdk.c:
if(this.tgv == null) {
Context context = ContextHolder.mContext;
StringBuilder sb = new StringBuilder();
sb.append(com.uc.browser.core.download.d.e.filesdir);
sb.append("libpicsel.so");
this.tgv = new TGVCore(context, sb.toString());
}
Класс com.picsel.tgv.lib.TGVCore загружает библиотеку в память и вызывает из нее методы:
public TGVCore(Object context, String path) {
super();
this.initCore(context, true, path);
}
private void initCore(Object context, boolean absolute, String path) {
if(absolute) {
System.load(path);
}
else {
System.loadLibrary(path);
}
TGVCore.initStaticData();
this.initNative(context);
}
private native void initNative(Object arg1) {
}
private static native void initStaticData() {
}
Команды на загрузку новых плагинов поступают от управляющего сервера в зашифрованном виде, однако связь с удаленным узлом в UC Browser осуществляется через незащищенный http-канал. Из-за этого злоумышленники способны выполнять MITM-атаки.
Ниже представлен анализ алгоритма общения браузера с управляющим сервером и загрузки новых модулей.
Пример ответа сервера, который программа получает при обращении к http://puds.ucweb.com/upgrade/index.xhtml?dataver=pb:
Ответ сервера содержит зашифрованную команду с параметрами, необходимыми для загрузки плагинов. Тело команды зашифровано AES в режиме CBC (Cipher block Chaining) , информация о типе алгоритма шифрования указана по смещению 2. По смещению 0x10 указан номер ключа шифрования.
Пример зашифрованной команды представлен на изображении ниже:
Расшифровка команды выполняется с использованием нативной библиотеки libsgmainso-6.4.36.so (SHA1 — 8b998ab3cc6c9c4f877043b5113851035625c19b).
Расшифрованная команда имеет следующий вид:
После расшифровки UC Browser загружает по указанной в команде ссылке zip-архив с новым плагином, проверяет контрольную сумму MD5 и размер архива (он закодирован в LEB128), а также размер файла в архиве. Какая-либо проверка цифровой подписи загружаемого файла отсутствует.
Таким образом, для выполнения MITM-атаки злоумышленникам достаточно перехватить ответ сервера, поступающий с http://puds.ucweb.com/upgrade/index.xhtml?dataver=pb, подменить в нем ссылку на загружаемый плагин, а также значения проверяемых атрибутов — MD5 архива, его размер и размер самого плагина. В результате браузер обратится к вредоносному серверу, откуда скачает и запустит троянский модуль.
По статистике каждая пятая программа для ОС Android — с уязвимостью (или, иными словами, — с «дырой»), что позволяет злоумышленникам успешно внедрять мобильных троянцев на устройства и выполнять нужные им действия.
Аудитор безопасности в Dr.Web для Android произведет диагностику и анализ безопасности мобильного устройства, предложит решения для устранения выявленных проблем и уязвимостей.