Недавно нам на глаза попался 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)