Поддержка
Круглосуточная поддержка

Позвоните

Бесплатно по России:
8-800-333-79-32

ЧаВо | Форум

Ваши запросы

  • Все: -
  • Незакрытые: -
  • Последний: -

Позвоните

Бесплатно по России:
8-800-333-79-32

Свяжитесь с нами Незакрытые запросы: 

Профиль

Профиль

Вирусная библиотека

Анализ используемых злоумышленниками технологий позволяет нам делать выводы о возможных векторах развития вирусной индустрии и еще эффективней противостоять будущим угрозам. Узнайте и вы о том, как действуют в зараженных системах те или иные вредоносные программы и как этому противостоять.

UC Browser в вирусной библиотеке:

В приложении 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-файлов:

  • \assets\dexes\imagecodec_java.jar
  • \assets\dexes\pictureviewer_java.jar
  • \assets\moduleDexes\barcode.dex
  • \assets\moduleDexes\ucmusic.dex
  • \lib\armeabi-v7a\libcore_jar_kj_uc.so (jar-модуль с переименованным расширением)
  • \lib\armeabi-v7a\libsdk_shell_jar_kj_uc.so (jar-модуль с переименованным расширением)
  • \lib\armeabi-v7a\libsgmain.so (jar-модуль с переименованным расширением)

Плагины в виде исполняемых Linux-библиотек:

  • /lib/armeabi-v7a/libBrowserShell_UC.so
  • /lib/armeabi-v7a/libbtm.so
  • /lib/armeabi-v7a/libchromaprint-jni.so
  • /lib/armeabi-v7a/libcrashsdk.so
  • /lib/armeabi-v7a/libdaemon_manager.so
  • /lib/armeabi-v7a/libdalvikhack.so
  • /lib/armeabi-v7a/libhelp.so
  • /lib/armeabi-v7a/libhomodisabler.so
  • /lib/armeabi-v7a/libicui18n_uc.so
  • /lib/armeabi-v7a/libicuuc_uc.so
  • /lib/armeabi-v7a/libimagecodec.so
  • /lib/armeabi-v7a/libimagehelper.so
  • /lib/armeabi-v7a/libjpeg_private.so
  • /lib/armeabi-v7a/libLFGlJni.so
  • /lib/armeabi-v7a/libmarsulog.so
  • /lib/armeabi-v7a/libmissile.so
  • /lib/armeabi-v7a/libpng_private.so
  • /lib/armeabi-v7a/libresm.so
  • /lib/armeabi-v7a/librism.so
  • /lib/armeabi-v7a/libstlport_shared.so
  • /lib/armeabi-v7a/libtnet-3.1.14.so
  • /lib/armeabi-v7a/libuccrypto.so
  • /lib/armeabi-v7a/libucinflator.so
  • /lib/armeabi-v7a/libunet.so
  • /lib/armeabi-v7a/libv8uc.so
  • /lib/armeabi-v7a/libwebp_private.so
  • /lib/armeabi-v7a/libwebviewuc.so
  • /lib/armeabi-v7a/libzstd.so
  • /lib/armeabi-v7a/libzxingjni.so

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

Скрытая функция обновления

Приложение содержит пакет 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() {
    }

Уязвимость к MITM-атакам

Команды на загрузку новых плагинов поступают от управляющего сервера в зашифрованном виде, однако связь с удаленным узлом в UC Browser осуществляется через незащищенный http-канал. Из-за этого злоумышленники способны выполнять MITM-атаки.

Ниже представлен анализ алгоритма общения браузера с управляющим сервером и загрузки новых модулей.

Пример ответа сервера, который программа получает при обращении к http://puds.ucweb.com/upgrade/index.xhtml?dataver=pb:

#drweb

Ответ сервера содержит зашифрованную команду с параметрами, необходимыми для загрузки плагинов. Тело команды зашифровано AES в режиме CBC (Cipher block Chaining) , информация о типе алгоритма шифрования указана по смещению 2. По смещению 0x10 указан номер ключа шифрования.

Пример зашифрованной команды представлен на изображении ниже:

#drweb

Расшифровка команды выполняется с использованием нативной библиотеки libsgmainso-6.4.36.so (SHA1 — 8b998ab3cc6c9c4f877043b5113851035625c19b).

Расшифрованная команда имеет следующий вид:

#drweb

После расшифровки UC Browser загружает по указанной в команде ссылке zip-архив с новым плагином, проверяет контрольную сумму MD5 и размер архива (он закодирован в LEB128), а также размер файла в архиве. Какая-либо проверка цифровой подписи загружаемого файла отсутствует.

Таким образом, для выполнения MITM-атаки злоумышленникам достаточно перехватить ответ сервера, поступающий с http://puds.ucweb.com/upgrade/index.xhtml?dataver=pb, подменить в нем ссылку на загружаемый плагин, а также значения проверяемых атрибутов — MD5 архива, его размер и размер самого плагина. В результате браузер обратится к вредоносному серверу, откуда скачает и запустит троянский модуль.

Новость об этой уязвимости

Уязвимости для Android

По статистике каждая пятая программа для ОС Android — с уязвимостью (или, иными словами, — с «дырой»), что позволяет злоумышленникам успешно внедрять мобильных троянцев на устройства и выполнять нужные им действия.

Аудитор безопасности в Dr.Web для Android произведет диагностику и анализ безопасности мобильного устройства, предложит решения для устранения выявленных проблем и уязвимостей.