На форензике 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 APK | Zero-click / one-click эксплойт |
| Стоимость атаки | $10–70/мес подписка | от сотен тысяч долларов за цель (лицензии - от $500K до нескольких млн/год) |
| Root/Jailbreak | Обычно не требует | Kernel exploit для получения root |
| Persistence | DeviceAdminReceiver, Accessibility Services | Kernel 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 на смартфоне
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.001 | Keylogging | Accessibility API - перехват ввода | Kernel-level input hooking |
| T1113 | Screen Capture | MediaProjection API (с разрешением пользователя) | Прямой доступ к framebuffer через root |
| T1123 | Audio Capture | Стандартное permission RECORD_AUDIO | Kernel-module для скрытой записи |
| T1125 | Video Capture | Стандартное permission CAMERA | Доступ к camera HAL через root |
| T1036 | Masquerading | Иконка скрыта, имя «System Service» | Маскировка под system_server |
| T1027 | Obfuscated Files | Минимально: ProGuard | Шифрование строк, anti-debug, VM-упаковка |
| T1041 | Exfiltration Over C2 | HTTPS к vendor dashboard (shared хостинг) | Encrypted channel, proxy chain, domain fronting |
| T1564.001 | Hidden Files | Скрытая иконка, dot-директории | Encrypted storage в /data, wipe after reboot |
Сетевые и поведенческие IoC
SpyGuard (github.com/SpyGuard/SpyGuard, основан на проекте TinyCheck от Kaspersky) детектит stalkerware через анализ сетевого трафика по таким правилам:- HTTP/HTTPS-обращения на нестандартных портах
- Коммуникация с TOR-нодами
- Обращения к доменам возрастом менее одного года
- Трафик к сетевым диапазонам, ассоциированным с вредоносной активностью
Поведенческие индикаторы на устройстве:
| Индикатор | 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 детектирования
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом 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
Сравнение инструментов детектирования
| Инструмент | Целевой класс | Метод | Когда использовать | Когда не работает |
|---|---|---|---|---|
| ADB manual check | Stalkerware | Анализ пакетов, permissions, device admin | Быстрая первичная проверка | Не видит kernel implants, требует USB debugging |
| SpyGuard | Stalkerware | Сетевой трафик через 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 дают именно такой опыт.
Последнее редактирование модератором: