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

Позвоните

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

ЧаВо | Форум

Ваши запросы

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

Позвоните

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

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

Профиль

Профиль

Android.Triada.231

Добавлен в вирусную базу Dr.Web: 2017-03-18

Описание добавлено:

SHA1:

  • 7ed01280dd254b063fecfdbf1da773df7738120a

Троянская программа для ОС Android, встроена в системную библиотеку libandroid_runtime.so на уровне исходного кода. В методе println_native класса android.util.Log (core/jni/android_util_Log.cpp проекта platform/frameworks/base) был добавлен дополнительный вызов:


/*
 * In class android.util.Log:
 *  public static native int println_native(int buffer, int priority, String tag, String msg)
 */
extern "C" int xlogf_java_tag_is_on(const char *name, int level);
extern "C" int xlogf_java_xtag_is_on(const char *name, int level);
static jint android_util_Log_println_native(JNIEnv* env, jobject clazz,
        jint bufID, jint priority, jstring tagObj, jstring msgObj)
{
    const char* tag = NULL;
    const char* msg = NULL;
    if (msgObj == NULL) {
        jniThrowNullPointerException(env, "println needs a message");
        return -1;
    }
    if (bufID < 0 || bufID >= LOG_ID_MAX) {
        jniThrowNullPointerException(env, "bad bufID");
        return -1;
    }
    if (tagObj != NULL)
        tag = env->GetStringUTFChars(tagObj, NULL);
    msg = env->GetStringUTFChars(msgObj, NULL);
    int res = -1;
    int flag_m = 0;
    int count = 0;
    char new_tag[50];
    if (tag != NULL && (strncmp(tag, "@M_", 3) == 0)) {
        flag_m = 1;
        while(tag[count+3]) {
            new_tag[count] = tag[count+3];
            count++;
        }
        new_tag[count] = 0;
    }
#ifdef HAVE_XLOG_FEATURE
    if (flag_m == 1) {
        if (xlogf_java_xtag_is_on(new_tag, (android_LogPriority)priority)) {
            res = __android_log_buf_write(bufID, (android_LogPriority)priority, new_tag, msg);
        }
    } else if (xlogf_java_tag_is_on(tag, (android_LogPriority)priority)) {
      res = __android_log_buf_write(bufID, (android_LogPriority)priority, tag, msg);
    }
#else
    if (flag_m == 1) {
       res = __android_log_buf_write(bufID, (android_LogPriority)priority, new_tag, msg);
    } else {
       res = __android_log_buf_write(bufID, (android_LogPriority)priority, tag, msg);
    }
#endif
    // droi.zhanglin,20160901. add leagoo custom code
 /* qy start*/
 // TODO:渠道机型号
 __config_log_println(env,priority, tag, msg, "cf89490001");
 /* qy end*/
    if (tag != NULL)
        env->ReleaseStringUTFChars(tagObj, tag);
    env->ReleaseStringUTFChars(msgObj, msg);
    return res;
}

В результате указанная функция вызывается каждый раз, когда какое-либо приложение на зараженном мобильном устройстве выполняет запись в системный журнал.

Первоначальный запуск Android.Triada.231 происходит при вызове этой функции в процессе Zygote. Троянец расшифровывает строки с данными, которые он использует для работы, а также выполняет проверку версии API операционной системы и среды исполнения, в которой он запущен. Если это виртуальная машина Dalvik, Android.Triada.231 перехватывает в оперативной памяти метод onCreate класса Application, выполняя патч структуры jmethodID, которая соответствует этому методу. Патч производится таким образом, что метод помечается как native. Затем троянец вызывает класс RegisterNatives.

С использованием метода java.lang.System.setProperty вредоносная программа изменяет следующие системные свойства:

  • os.config.ppgl.dir – название рабочего каталога троянца (/data/configppgl для виртуальной машины Dalvik и /sdcard/.SDAndroid для виртуальной машины ART);
  • os.config.ppgl.version – параметр со значением «1.3.3»;
  • os.config.ppgl.status – параметр со значением «working»;
  • os.config.ppgl.cd – параметр, переданный троянской функции (в описываемом образце имеет значение «M5 Plus Lte»).

После этого Android.Triada.231 создает свой рабочий каталог.

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

В случае если Android.Triada.231 исполняется в виртуальной машине ART, активизация троянца в процессах приложений производится не сразу после их запуска, а лишь после того, как они выполнят запись в системный журнал. Это действие осуществляется с использованием той же самой функции, которую вирусописатели встроили в метод println_native для инициализации троянца.

Android.Triada.231 проверяет в своем рабочем каталоге наличие поддиректории, имя которой содержит значение MD5 имени зараженного процесса. Если такая поддиректория находится, троянец ищет в ней зашифрованный файл с именем 32.mmd или 64.mmd (для 32- и 64-битных версий операционной системы соответственно). Найдя необходимый файл, Android.Triada.231 расшифровывает его и сохраняет под именем libcnfgp.so, после чего загружает в оперативную память с использованием метода java.lang.System.load и удаляет расшифрованную копию с устройства.

При отсутствии указанного файла троянец ищет вместо него файл с именем 36.jmd, который при обнаружении также расшифровывается, сохраняется под именем mms-core.jar, запускается с использованием класса DexClassLoader, после чего удаляется.

В результате Android.Triada.231 может внедрять в процессы приложений вредоносные модули, которые способны выполнять самые разнообразные действия, например красть конфиденциальные данные или подменять отображаемую в атакуемых программах информацию.

Троянец также может извлекать из модифицированной библиотеки libandroid_runtime.so зашифрованный в ней jar-модуль (детектируется как Android.Triada.194.origin). Android.Triada.231 загружает этот модуль в процесс com.android.mms, когда он вызывает метод println_native. Это делается при условии, если параметр tag метода println_native отличен от значения «DownloadManager» и «MmsSystemEventReceiver», и троянская функция вызывается в атакуемом процессе как минимум третий раз.

Новость о троянце

Рекомендации по лечению


Android

  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light. Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт Dr.Web для Android Light и произведите полную проверку системы, выполнив рекомендации по нейтрализации обнаруженных угроз;
    • выключите устройство и включите его в обычном режиме.

Подробнее о Dr.Web для Android

Демо бесплатно на 14 дней

Выдаётся при установке