Ведущий: Ольга Зиненко
Уральский центр систем безопасности проводит независимое тестирование мобильных антивирусов, разработанных для платформы Android (в том числе Dr.Web, Kaspersky, Norton, ESET). Доклад посвящен результатам исследования. Показатели, которые оцениваются в первую очередь: выполнение заявленных функций, уровень защиты, возможности обхода, наличие уязвимостей, полезность и значимость дополнительных функций.
6. (cat.apk)
ПерехватывающаяАктивная Фоновая
1. Ждет, когда придет
сообщение
2. Парсит на нужные
поля
3. Отправляет в
командный центр
Запускает фоновую часть Выполняет одну из
функций:
o Чтение всех смс
o Отправка смс
o Удалить смс
o Зашифровать
o Расшифровать
o Заблокировать
телефон
o Разблокировать
телефон
11. 2 из 19 обнаружили
угрозу в cat.apk
17 из 19 не выявили
угроз в cat.apk
12. 6 из 19 обнаружили
угрозу в cat.apk
13 из 19 не выявили
угроз в cat.apk
13.
14. Переименовывает имена
методов и некоторых классов
Удаляет всю отладочную
информацию
Не трогает
AndroidManifest.xml
Шифрует строки
Переименовывает имена
свойств, методов и некоторых
классов
Частично удаляет отладочную
информацию
Не трогает
AndroidManifest.xml
16. Добавление в код
каждого класса
дополнительного
метода
Код метода1
.method public SparkLog(Ljava/lang/String;)V
const-string v0, "SparkLog"
invoke-static {v0, p0}, Lcom/lohan/lohanLog;-
>Log(Ljava/lang/String;Ljava/lang/String;)V
.end method
Код метода2
Изменение имен
методов классов
.method private
capitalize(Ljava/lang/String;)Ljava/lang/String;
.method private
capitalizeabc123(Ljava/lang/String;)Ljava/lang/String;
.method private
capitalize(Ljava/lang/String;)Ljava/lang/String;
goto :CFGGoto2
:CFGGoto1
Код метода
:CFGGoto2
goto :CFGGoto1
.end method
Изменение потока
выполнения
.method private
capitalize(Ljava/lang/String;)Ljava/lang/String;
Код метода
.end method
Шифрование строк
кода
const-string v5, "http.protocol.content-charset" const-string v5, "rddz.zbydymyv.myxdoxd-mrkbcod"
invoke-static {v5}, Lcom/mzhengDS;-
>DecryptString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
ADAM и его методы обфускации
До После
Код метода1
Код метода2
18. ② Шифрует имена пакетов и
классов
④ Удаляет отладочную
информацию
① Работает с байт-кодом
Фрагмент AndroidManifest.xml после обфускации
⑤ Создает новую структуру
папок (пакетов)
и новый AndroidManifest.xml
③ Шифрует строки