Недавно нам на глаза попался APK-файл с интригующим и внушающим доверие названием «Антивирус ФСБ.apk».

Установив его, мы обнаружили, что при запуске пользователя встречает интерфейс известной программы для управления звонками на Android — Right Dialer от разработчика Goodwy.

Вероятнее всего, выбор злоумышленников пал именно на это приложение, так как оно запрашивает большое количество разрешений: работа с контактами, выполнение звонков, доступ к камере и так далее.

Фрагмент AndroidManifest приложения Goodwy
Фрагмент AndroidManifest приложения Goodwy
Запрашиваемые разрешения
Запрашиваемые разрешения

При открытии AndroidManifest.xml, нетрудно увидеть, что основной пакет — com.syscore.toolsuite, а не com.goodwy.dialer. Это означает, что код Goodwy был встроен в чужое приложение — уже известный Android-шпион LunaSpy, более ранняя версия которого была рассмотрена в этой статье.

Goodwy в activity-alias
Goodwy в activity-alias

Перед статическим исследованием образца мы запустили его в нашей песочнице, чтобы получить общее представление о работе ВПО:

Запуск приложения в PT Sandbox
Запуск приложения в PT Sandbox

Ключевые наблюдения из динамического анализа:

  • Коммуникация с управляющими серверами.

  • Получение привилегий.

  • Создание скрытых файлов.

Перейдя к анализу приложения, мы обнаружили ряд обновление в LunaSpy:

Начнем с того, что ряд строк (например, все IP-адреса, названия некоторых команд) шифруется алгоритмом XOR для усложнения анализа.

Шифрование строк
Шифрование строк

Злоумышленники расширили свой шпион рядом новых команд (как говорится, если используешь Accessibility Service, используй его по полной):

GET_CALL_RECORDINGS — отправляет на управляющий сервер список имен файлов, перебирая файлы с расширением .wav, чей размер больше 44 байтов (размер заголовка WAV), в директории getFilesDir()/call_recordings;
Сами же звонки записываются фоновым сервисом CallService, наследуемым от системного InCallService. Файлы с содержанием звонка сохраняют в формате:

rec_<yyyyMMdd_HHmmss>_<calltype>_<call_number>.wav

Где calltype это строки incoming\outcoming или строка формата voip_<number>` для звонков по интернет протоколу.

Реализация команды DOWNLOAD_CALL_RECORDING
Реализация команды DOWNLOAD_CALL_RECORDING

DOWNLOAD_CALL_RECORDING — команда-дополнение к GET_CALL_RECORDINGS . Она отправляет на управляющий сервер запись звонка с указанным id, закодированную в Base64;

Злоумышленники также имеют возможность перенаправлять вызовы. Команды SET_REDIRECT_RULES, GET_REDIRECT_RULES устанавливают и присылают правила для подмены исходящих звонков. Правила приходят в форматe json:

{
   “real”: “”, // исходный номер
   “display”: “”, //отображаемый номер
   “direction”: “<both/outgoing/incoming>”, // направление вызова
   “active”: <true/false>
}

Для удобства злоумышленники добавили больше команд для управления логированием устройства: REQUEST_LOGS, CLEAR_LOGS, LOGGING_ENABLE, LOGGING_DISABLE. А так же ряд команд - RESET_SOFT, RESET_DEEP, RESET_GLOBAL — осуществляют перезапуск части или всех вспомогательных сервисов шпиона;

Реализация команды RESET_REBOOT
Реализация команды RESET_REBOOT

RESET_REBOOT — имитируют перезагрузку устройства (при получении — останавливает свои сервисы, отменяет задачи WorkManager, имитирует задержку при загрузке системы (8 секунд), после чего перезапускает сервисы);

Реализация команды GET_SCREEN_TREE
Реализация команды GET_SCREEN_TREE

GET_SCREEN_TREE — позволяет получить параметры текущего экрана: width, height, объекты на экране, их позиции, текст и свойства. В случае, если у графического элемента есть дочернии объекты, то рекурсивно собирает о них ту же информацию.

Пример реализации PERFORM_SWIPE
Пример реализации PERFORM_SWIPE

Сложные команды с параметрами для управления устройством (имитация действий пользователя): PERFORM_TAP (выполнить нажатие на экран), PERFORM_SWIPE (провести по экрану), PERFORM_INPUT_TEXT (выполнить вставку текста), PERFORM_PATH_GESTURE (выполнить жест по заданным позициям с определенной длительностью нажатия), PERFORM_PATTERN_UNLOCK (команда похожа на PERFORM_PATH_GESTURE, однако предназначена для адаптивных паттернов, например, разблокировка по рисунку), PERFORM_BACK (выполнить действие «назад»), PERFORM_HOME (выполнить переход на домашний экран), PERFORM_RECENTS (просмотреть список недавних приложений) — команды, активно использующие функции PerformGlobalAction и механизм GestureDescription;

Реализация команды REVIVE_PERMISSIONS
Реализация команды REVIVE_PERMISSIONS

REVIVE_PERMISSIONS — команда, которая показывает пользователю уведомление поверх всех окон с целью получения прав android.permission.CAMERA и android.permission.RECORD_AUDIO; 

Реализация команды DISABLE_PLAY_PROTECT
Реализация команды DISABLE_PLAY_PROTECT

DISABLE_PLAY_PROTECT — отключить глобальную настройку в Android (Settings.Global.PACKAGE_VERIFIER_ENABLE), которая управляет проверкой приложений перед их установкой.

Вредоносное ПО демонстрирует устойчивую тенденцию к развитию: от простого шпионажа к комплексному контролю устройства с элементами антиобнаружения, масштабируемой инфраструктурой и усовершенствованными методами социальной инженерии. Это требует от пользователей и специалистов по безопасности постоянного повышения уровня защиты и бдительности.

Меры предосторожности

  • Не стоит скачивать приложения с открытым исходным кодом из неизвестных источников, так как их легко видоизменить. Лучше скачивать их из Google Play или брать последний релиз со страницы разработчика.

  • Не предоставляйте приложениям разрешения, которые им не потребуются (особенно разрешения Accessibility Service).

  • При подозрении на заражение ВПО проверьте список установленных приложений или воспользуйтесь средствами для отслеживания активности.

Индикаторы компрометации

Файловые индикаторы

Имя

Хеш

PT Fusion

Антивирус ФСБ.apk

5c2cbb7cad7d8d4e6dc36c9a35a1c589

Открыть ↗

Сетевые индикаторы

IP

PT Fusion

2.56.179.190

Открыть ↗

2.59.183.215

Открыть ↗

5.45.93.167

Открыть ↗

5.101.88.37

Открыть ↗

5.101.88.39

Открыть ↗

5.101.88.41

Открыть ↗

31.172.75.46

Открыть ↗

31.192.237.132

Открыть ↗

31.214.157.53

Открыть ↗

37.10.71.100

Открыть ↗

38.180.3.187

Открыть ↗

38.180.87.241

Открыть ↗

38.180.144.105

Открыть ↗

38.244.208.134

Открыть ↗

45.8.145.60

Открыть ↗

45.8.228.204

Открыть ↗

45.8.230.157

Открыть ↗

45.10.246.197

Открыть ↗

45.12.111.27

Открыть ↗

45.15.126.252

Открыть ↗

45.67.35.58

Открыть ↗

45.67.231.139

Открыть ↗

45.67.231.215

Открыть ↗

45.82.255.173

Открыть ↗

45.85.93.206

Открыть ↗

45.89.52.163

Открыть ↗

45.89.111.233

Открыть ↗

45.129.242.236

Открыть ↗

45.135.164.207

Открыть ↗

45.142.36.207

Открыть ↗

45.150.64.118

Открыть ↗

45.150.64.131

Открыть ↗

45.155.249.165

Открыть ↗

45.159.248.127

Открыть ↗

45.159.248.251

Открыть ↗

45.197.133.82

Открыть ↗

46.28.70.26

Открыть ↗

46.28.70.244

Открыть ↗

62.192.174.25

Открыть ↗

62.192.174.33

Открыть ↗

62.192.174.74

Открыть ↗

62.192.174.87

Открыть ↗

62.192.174.151

Открыть ↗

62.192.174.189

Открыть ↗

62.192.174.219

Открыть ↗

62.233.57.162

Открыть ↗

79.132.130.73

Открыть ↗

81.22.132.87

Открыть ↗

83.217.210.129

Открыть ↗

83.217.210.163

Открыть ↗

85.208.110.57

Открыть ↗

85.208.208.123

Открыть ↗

85.209.153.229

Открыть ↗

85.239.53.5

Открыть ↗

86.104.75.160

Открыть ↗

88.218.93.20

Открыть ↗

89.42.142.240

Открыть ↗

89.124.114.178

Открыть ↗

89.127.206.241

Открыть ↗

92.118.230.34

Открыть ↗

93.183.92.96

Открыть ↗

94.130.255.130

Открыть ↗

94.130.255.132

Открыть ↗

94.130.255.151

Открыть ↗

94.131.100.138

Открыть ↗

94.131.111.91

Открыть ↗

94.131.118.221

Открыть ↗

94.131.120.179

Открыть ↗

94.131.122.189

Открыть ↗

95.164.86.41

Открыть ↗

95.216.232.141

Открыть ↗

103.213.249.128

Открыть ↗

109.172.31.68

Открыть ↗

135.181.14.151

Открыть ↗

136.243.118.134

Открыть ↗

144.76.48.41

Открыть ↗

148.251.240.89

Открыть ↗

157.90.14.184

Открыть ↗

157.90.14.191

Открыть ↗

159.69.228.231

Открыть ↗

170.168.15.160

Открыть ↗

176.120.67.190

Открыть ↗

176.124.222.67

Открыть ↗

176.124.222.69

Открыть ↗

185.68.21.191

Открыть ↗

185.113.139.34

Открыть ↗

185.113.139.67

Открыть ↗

185.113.139.143

Открыть ↗

185.240.103.235

Открыть ↗

185.246.220.35

Открыть ↗

185.255.178.18

Открыть ↗

185.255.178.223

Открыть ↗

188.40.171.83

Открыть ↗

193.108.114.13

Открыть ↗

193.124.118.189

Открыть ↗

193.233.88.253

Открыть ↗

194.87.210.125

Открыть ↗

194.154.24.88

Открыть ↗

194.154.25.188

Открыть ↗

195.63.134.89

Открыть ↗

213.218.212.19

Открыть ↗

213.218.212.23

Открыть ↗

213.218.212.25

Открыть ↗

213.218.212.39

Открыть ↗

213.218.212.43

Открыть ↗

213.218.212.55

Открыть ↗

213.218.212.65

Открыть ↗

213.218.212.70

Открыть ↗

213.218.212.200

Открыть ↗

Комментарии (0)