Статья Stalkerware обнаружение на Android: технические отличия от коммерческого spyware и индикаторы компрометации

Распечатанная таблица сравнения на плотной бумаге с двумя колонками и строками разрешений, выделенными синим. Перьевая ручка лежит поперёк листа в мягком рассеянном свете.


На форензике Android-устройства жертвы домашнего насилия я обнаружил три APK без иконок в launcher. Два маскировались под системные сервисы, третий прятался за именем, похожим на стандартный провайдер телефонии. Все три - stalkerware разных семейств, установленные с интервалом в несколько месяцев. В adb logcat каждый оставлял характерный след: обращения к RECORD_AUDIO, аномальные wake lock'и каждые 15 минут, HTTP-запросы к дешёвым shared-хостингам. Ни одного kernel-эксплойта, ни sophisticated evasion - примитивный sideload через физический доступ к разблокированному телефону. При этом коммерческий spyware класса Pegasus на другом кейсе не оставлял ничего подобного - его артефакты пришлось вытягивать через MVT и анализ бэкапов. Разница между этими двумя классами шпионского ПО определяет весь подход к детектированию.

Stalkerware и коммерческий spyware Android: разница на уровне kill chain​

Stalkerware - коммерческое ПО для слежки, которое продаётся открыто как "родительский контроль" или "мониторинг сотрудников". По данным отчёта Kaspersky "State of Stalkerware 2023" (securelist.com, март 2024), за год 31 031 уникальный пользователь стал жертвой stalkerware. Россия лидирует - 9 890 случаев, далее Бразилия (4 186) и Индия (2 492). Самое популярное приложение - TrackView с 4 049 затронутыми пользователями. Оператор stalkerware - абьюзивный партнёр, ревнивый супруг или параноидный родитель. Подписка стоит $10–70 в месяц.

Коммерческий spyware (Pegasus от NSO Group, Predator от Intellexa, FinFisher) - государственный инструмент наблюдения с ценником от десятков тысяч долларов за одну цель. Покупатели - спецслужбы и правоохранительные органы. Разница в attack surface фундаментальна: stalkerware требует физического доступа к разблокированному устройству, коммерческий spyware эксплуатирует zero-click уязвимости или one-click через фишинговые ссылки.

Для пентестера и форензика эта классификация критична на этапе определения модели угроз. Stalkerware на устройстве клиента - индикатор physical access compromise с конкретным подозреваемым из ближнего круга. Коммерческий spyware - индикатор целенаправленной государственной атаки. Kill chain отличается кардинально:

Stalkerware kill chain: физический доступ к разблокированному устройству -> отключение Google Play Protect -> sideload APK -> настройка через installer-wizard -> скрытие иконки -> сбор данных -> exfiltration на vendor-панель.

Коммерческий spyware kill chain: доставка эксплойта (zero-click через мессенджер или one-click через фишинг) -> выполнение exploit chain -> privilege escalation через kernel-уязвимость -> установка implant -> persistence на уровне ядра -> зашифрованная exfiltration через proxy chain.

КритерийStalkerwareКоммерческий spyware
Вектор установкиФизический доступ, sideload APKZero-click / one-click эксплойт
Стоимость атаки$10–70/мес подпискаот сотен тысяч долларов за цель (лицензии - от $500K до нескольких млн/год)
Root/JailbreakОбычно не требуетKernel exploit для получения root
PersistenceDeviceAdminReceiver, Accessibility ServicesKernel implant, модификация загрузчика
Маскировка (T1036, Masquerading)Скрытие иконки, имя «System Service»Инъекция в легитимные процессы
Обфускация (T1027, Obfuscated Files)Минимальная или ProGuardМногослойная: шифрование строк, VM-упаковщик
C2 (T1041, Exfiltration Over C2)HTTPS к vendor-панели на shared-хостингеЗашифрованные каналы, domain fronting
Детектируемость AVСредняя - часть AV детектирует как PUAКрайне низкая - zero-day + anti-analysis

[Применимо: мобильная форензика, аудит безопасности сотрудников, внутренний пентест]

Persistence-механизмы и маскировка: признаки stalkerware на смартфоне​

1781772610160.webp

Stalkerware: DeviceAdmin и Accessibility Services​

Типичный stalkerware на Android цепляется за две точки:

DeviceAdminReceiver - приложение запрашивает права администратора устройства при установке. Это защищает его от деинсталляции: пользователь не может удалить приложение, пока не отзовёт права admin. В выводе adb shell dumpsys device_policy такие приложения видны явно - даже если иконка скрыта, device admin никуда не денется. Любой пакет в списке admin, не относящийся к Google Find My Device или корпоративному MDM - красный флаг.

Accessibility Services - stalkerware запрашивает доступ к Accessibility API для перехвата экранных событий, чтения переписок в мессенджерах (T1056.001, Keylogging) и снятия скриншотов (T1113, Screen Capture). Проверяется через adb shell settings get secure enabled_accessibility_services. Легитимных accessibility-сервисов у обычного пользователя один-два (TalkBack, Select to Speak) - появление неизвестного имени пакета в этом списке заслуживает расследования.

Stalkerware скрывает иконку из launcher (T1564.001, Hidden Files and Directories), но остаётся видимым в Settings -> Apps -> Show all apps и в выводе adb shell pm list packages -3 (только сторонние пакеты). Многие семейства маскируются под системные имена: "System Update Service", "Battery Optimizer", "Wi-Fi Manager". По данным тестов AV-Comparatives (серия Android Anti-Stalkerware Tests), stalkerware-приложения устанавливаются через sideloading, и вендоры stalkerware в инструкциях явно требуют отключить Google Play Protect и сторонние антивирусы.

Коммерческий spyware: kernel-level persistence​

Spyware класса Pegasus работает на другом уровне. После эксплуатации zero-click уязвимости он получает root через kernel exploit, ставит implant на уровне ядра и зачищает следы. В стандартном logcat следов нет, DeviceAdmin не используется, в списке pm list packages отдельного пакета может не быть вообще - код инжектируется в легитимные системные процессы.

Обнаружить коммерческий spyware через adb shell без специализированных инструментов - практически нереально. MVT (Mobile Verification Toolkit) от Amnesty International Security Lab (активно поддерживается) анализирует резервные копии и артефакты файловой системы, сверяя их с базой известных IoC в формате STIX2.

Индикаторы компрометации мобильного устройства: IoC-таблица для шпионского ПО​

MITRE ATT&CK маппинг

Обе категории шпионского ПО используют схожий набор техник MITRE ATT&CK для сбора данных, но уровень реализации - небо и земля:

MITRE ATT&CKТехникаStalkerwareКоммерческий spyware
T1056.001KeyloggingAccessibility API - перехват вводаKernel-level input hooking
T1113Screen CaptureMediaProjection API (с разрешением пользователя)Прямой доступ к framebuffer через root
T1123Audio CaptureСтандартное permission RECORD_AUDIOKernel-module для скрытой записи
T1125Video CaptureСтандартное permission CAMERAДоступ к camera HAL через root
T1036MasqueradingИконка скрыта, имя «System Service»Маскировка под system_server
T1027Obfuscated FilesМинимально: ProGuardШифрование строк, anti-debug, VM-упаковка
T1041Exfiltration Over C2HTTPS к vendor dashboard (shared хостинг)Encrypted channel, proxy chain, domain fronting
T1564.001Hidden FilesСкрытая иконка, dot-директорииEncrypted storage в /data, wipe after reboot

Сетевые и поведенческие IoC​

SpyGuard (github.com/SpyGuard/SpyGuard, основан на проекте TinyCheck от Kaspersky) детектит stalkerware через анализ сетевого трафика по таким правилам:
  • HTTP/HTTPS-обращения на нестандартных портах
  • Коммуникация с TOR-нодами
  • Обращения к доменам возрастом менее одного года
  • Трафик к сетевым диапазонам, ассоциированным с вредоносной активностью
С коммерческим spyware сетевые IoC сложнее: C2-трафик прячется за легитимными облачными провайдерами (AWS, Azure, GCP), domain fronting через CDN и certificate pinning.

Поведенческие индикаторы на устройстве:

ИндикаторStalkerwareКоммерческий spyware
Battery drainЗаметный - постоянный wake lockМинимальный - оптимизированный расход
Data usageПики при выгрузке фото/видеоСтабильный низкий трафик, сжатие
Неизвестный device adminДа - виден в SettingsНет - persistence ниже уровня ОС
Accessibility serviceДа - виден в SettingsНет - прямой доступ через root
В pm list packages -3ДаЧасто нет - инжектируется в системные пакеты
Logcat артефактыЕсть - wakeup alarms, location requestsМинимум или отсутствуют

Как обнаружить слежку на Android: практический workflow детектирования​

1781772645601.webp

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Кстати, код внутри обычно примитивный. Никакой серьёзной обфускации - максимум ProGuard с дефолтными настройками. Строки в открытом виде, URL панели управления можно найти grep'ом за минуту. Сравните с Pegasus, где каждая строка зашифрована, а код упакован в VM-контейнер.

Шаг 3: Сетевой анализ через SpyGuard​

SpyGuard разворачивается на Raspberry Pi или GNU/Linux-хосте и создаёт Wi-Fi точку доступа. Устройство подключается к этой точке, SpyGuard перехватывает и анализирует исходящий трафик на совпадение с IoC: обращения к известным C2-доменам stalkerware-вендоров, нестандартные порты, TOR-трафик, молодые домены.

Главное преимущество SpyGuard - анализ без модификации устройства и без предупреждения оператора stalkerware. В ситуациях домашнего насилия это критично: по рекомендациям Coalition Against Stalkerware, удаление stalkerware может предупредить абьюзера и обострить угрозу для жертвы.

Шаг 4: MVT для поиска коммерческого spyware​

MVT от Amnesty International предназначен для обнаружения коммерческого spyware. Для Android MVT анализирует ADB backup или образ файловой системы:
Bash:
# Создание backup через ADB
adb backup -all -f device_backup.ab
# Анализ через MVT (с указанием IoC)
mvt-android check-backup --iocs indicators.stix2 \
  --output results/ device_backup.ab
MVT сверяет артефакты с STIX2-индикаторами, которые поставляются отдельно - из репозитория mvt-project/mvt-indicators и разовых публикаций Amnesty Security Lab / Citizen Lab по конкретным кампаниям (Pegasus, Predator и др.). Для Android результаты менее полные, чем для iOS - iTunes-бэкапы содержат богатую телеметрию, которой нет в формате ADB backup. Но для выявления известных инфраструктурных индикаторов MVT остаётся единственным доступным инструментом.

Сравнение инструментов детектирования​

ИнструментЦелевой классМетодКогда использоватьКогда не работает
ADB manual checkStalkerwareАнализ пакетов, permissions, device adminБыстрая первичная проверкаНе видит kernel implants, требует USB debugging
SpyGuardStalkerwareСетевой трафик через Wi-Fi APНужно не предупредить оператораC2 мимикрирует под легитимный HTTPS-трафик
MVTКоммерческий spywareАнализ бэкапов, IoC matchingПодозрение на Pegasus-классТолько известные IoC, для Android ограничен
Антивирус (Kaspersky и др.)StalkerwareСигнатурный + поведенческийАвтоматическая проверка без экспертизыЧасть stalkerware = PUA, не malware; вендор рекомендует отключать AV

Ограничения: когда spyware детектирование Android не работает​

ADB-проверка не обнаружит коммерческий spyware, который инжектируется в системные процессы без создания отдельного пакета. Бесполезна на устройствах без включённой USB-отладки - а жертва может не знать, как её активировать.

SpyGuard не поможет, если stalkerware шлёт данные через стандартные HTTPS-обращения к Firebase или AWS - трафик неотличим от легитимного. Новые версии stalkerware всё чаще мимикрируют под стандартные push-уведомления.

MVT работает только против известных IoC. Свежий коммерческий spyware с новой инфраструктурой не будет обнаружен, пока IoC не попадут в базу Amnesty International. По Android MVT менее информативен, чем по iOS, из-за ограничений формата ADB-бэкапов.

Google Play Protect детектирует часть stalkerware, но вендоры stalkerware в инструкциях по установке явно требуют отключить Play Protect. По данным AV-Comparatives, всё stalkerware распространяется через sideloading - в Google Play его нет.

Антивирусы детектируют stalkerware с разной эффективностью. По результатам регулярных тестов AV-Comparatives, мобильные security-продукты показывают неодинаковый уровень обнаружения stalkerware. Часть антивирусов классифицирует stalkerware как PUA (Potentially Unwanted Application), а не как malware - это снижает приоритет детектирования и при стандартных настройках может вообще не показать предупреждение пользователю.

Все описанные методы - post-compromise detection. Они работают после установки stalkerware или spyware. Prevention для stalkerware - физическая безопасность устройства: сильный пароль или биометрия, не оставлять телефон разблокированным без присмотра. Prevention для коммерческого spyware - своевременное обновление ОС и приложений, минимизация attack surface, для iOS - Lockdown Mode.

Тема мобильного шпионского ПО находится на стыке кибербезопасности и защиты от домашнего насилия, и большинство русскоязычных материалов застревают на втором аспекте, обходя техническую сторону. В рунете нет контента, который показывал бы конкретные ADB-команды для выявления stalkerware, объяснял разницу между DeviceAdmin-persistence и kernel implant на уровне артефактов, или давал MITRE ATT&CK маппинг для мобильного шпионского ПО. При этом Россия - мировой лидер по количеству жертв stalkerware, и пентестерам всё чаще приходится проводить форензику мобильных устройств в рамках корпоративных расследований.

Неудобная правда: stalkerware технически примитивен. Любой, кто разбирал APK через jadx, увидит стандартный Android-код без серьёзной обфускации, с permissions, прописанными в манифесте открытым текстом. Но именно эта примитивность делает его массовым - не нужно покупать zero-day, достаточно получить телефон жертвы на пять минут. Индустрия кибербезопасности сфокусирована на государственных APT и nation-state spyware, а от stalkerware страдают миллионы людей в обычных отношениях. Если на форензике устройства я вижу DeviceAdmin от неизвестного пакета с permissions на SMS, звонки и камеру одновременно - мне не нужен MVT, чтобы понять, что произошло. Три команды в ADB, пять минут - картина ясна. Хуже то, что удалить stalkerware иногда опаснее, чем оставить: оператор увидит потерю контроля, и ситуация может обостриться. Поэтому первый шаг - не adb uninstall, а документирование артефактов и контакт с правоохранительными органами или Coalition Against Stalkerware. Если хочется потренировать мобильную форензику на реальных артефактах - в HackerLab.pro (https://hackerlab.pro) категории forensics дают именно такой опыт.
 
Последнее редактирование модератором:
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab