Специалисты компании «Доктор Веб» предупредили, что 42 модели бюджетных Android-смартфонов заражены банкером Triada (Android.Triada.231) прямо «из коробки».
Еще в июле 2017 года исследователи «Доктор Веб» сообщили о том, что банковский троян семейства Triada был обнаружен в прошивках смартфонов Leagoo M5 Plus, Leagoo M8, Nomu S10 и Nomu S20. Малварь Android.Triada встраивается в системный процесс Zygote, который отвечает за старт программ на мобильных устройствах. За счет заражения Zygote вредонос внедряется в процессы всех работающих приложений вообще, получает их полномочия и функционирует с ними как единое целое.
Хотя другие образчики данного семейства, ранее обнаруженные исследователями, пытались получить root-привилегии для выполнения вредоносных операций, троян Android.Triada.231 встроен в системную библиотеку libandroid_runtime.so на уровне исходного кода. В результате вредоносное приложение «поселяется» непосредственно в прошивке инфицированных мобильных устройств уже на этапе производства, то есть пользователи становятся обладателями зараженных смартфонов «из коробки».
Теперь эксперты сообщили, что с момента обнаружения вредоносной программы перечень моделей зараженных устройств пополнился и в настоящий момент насчитывает более 40 наименований. Стоит сказать, что компания «Доктор Веб» уведомила о проблеме производителей зараженных устройств еще летом прошлого года, но малварь по-прежнему попадает на новые модели смартфонов. Например, теперь она была найдена на смартфоне Leagoo M9, который был анонсирован в декабре 2017 года.
Проведенное расследование показало, что троян попал в прошивку по просьбе партнера Leagoo, неназванной компании-разработчика из Шанхая. Эта организация предоставила одно из своих приложений для включения в образ операционной системы мобильных устройств, а также дала инструкции по внесению стороннего кода в системные библиотеки перед их компиляцией. К сожалению, эта сомнительная просьба не вызвала у производителя подозрений, и троян беспрепятственно проник на смартфоны.
Анализ приложения, которое компания-партнер предложила добавить в прошивку Leagoo M9, показал, что оно подписано тем же сертификатом, что и троян Android.MulDrop.924, обнаруженный специалистами в 2016 году. Теперь эксперты полагают, что разработчик, попросивший внести дополнительную программу в образ операционной системы, может быть прямо или косвенно причастен к распространению Android.Triada.231.
В настоящее время банкер был обнаружен в прошивке следующих смартфонов:
Leagoo M5
Leagoo M5 Plus
Leagoo M5 Edge
Leagoo M8
Leagoo M8 Pro
Leagoo Z5C
Leagoo T1 Plus
Leagoo Z3C
Leagoo Z1C
Leagoo M9
ARK Benefit M8
Zopo Speed 7 Plus
UHANS A101
Doogee X5 Max
Doogee X5 Max Pro
Doogee Shoot 1
Doogee Shoot 2
Tecno W2
Homtom HT16
Umi London
Kiano Elegance 5.1
iLife Fivo Lite
Mito A39
Vertex Impress InTouch 4G
Vertex Impress Genius
myPhone Hammer Energy
Advan S5E NXT
Advan S4Z
Advan i5E
STF AERIAL PLUS
STF JOY PRO
Tesla SP6.2
Cubot Rainbow
EXTREME 7
Haier T51
Cherry Mobile Flare S5
Cherry Mobile Flare J2S
Cherry Mobile Flare P1
NOA H6
Pelitt T1 PLUS
Prestigio Grace M5 LTE
BQ 5510
При этом эксперты предупреждают, что этот список не является окончательным, и перечень инфицированных моделей смартфонов может оказаться гораздо шире. Зараженные банкером устройства продают в России, Польше, Индонезии, Китае, Мексике, Казахстане, Сербии.
Исследователи резюмируют, что такое широкое распространение трояна говорит о том, что многие производители Android-устройств уделяют слишком мало внимания вопросам безопасности, и внедрение троянского кода в системные компоненты из-за ошибок или злого умысла может быть весьма распространенной практикой.
Вот такие загогулины от недобросовестных производителей. Будьте бдительны при выборе аппарата.
Источник
ТУТ
С сайта самого ДР.Вэб
ТУТ
О самом вирусе:
Android.Triada.231
Добавлен в вирусную базу Dr.Web: 2017-03-18
Описание добавлено: 2017-07-27
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», и троянская функция вызывается в атакуемом процессе как минимум третий раз.
Отсюда
Рекомендации по лечению есть на сайте Др.Вэб. Так же поможет установка «кастомной» прошивки.