🟩 Инженерная методология поиска шпионских программ и ПО
От низкоуровневого анализа памяти до аппаратной форензики и судебной квалификации
Доброго дня, коллеги! 👨💻🔧 Сегодня мы с вами разбираем тему, которая требует не просто поверхностного знания антивирусов, а настоящего инженерного подхода, граничащего с криминалистикой, реверс-инжинирингом и системным программированием. Речь пойдет о системном, глубоком и методически выверенном поиске шпионских программ и ПО — от бытовых сталкерских приложений до промышленных имплантов уровня ядра ОС и аппаратных закладок в прошивке UEFI. 🧠🔬
Инженерная постановка задачи требует четкого понимания архитектуры современных шпионских инструментов, протоколов их коммуникации с командными серверами (C&C), методов обфускации и сокрытия в системе. Без этого любой поиск шпионских программ и ПО превращается в гадание, а не в воспроизводимую научно-техническую процедуру. Мы — команда судебных IT-экспертов, и наша методология базируется на стандартах ISO/IEC 27043 и лучших практиках SANS DFIR. Физический доступ к оборудованию — это краеугольный камень методически верного поиска шпионских программ и ПО, особенно когда речь идет о серверных стойках, RAID-массивах и промышленных контроллерах, отключение которых недопустимо. 🚁🖥️
- Архитектура шпионского ПО: инженерная классификация по принципам работы 🏗️🕷️
Инженерно обоснованный поиск шпионских программ и ПО требует понимания архитектуры и принципов функционирования целевых объектов. На основе анализа сотен образцов Spyware, прошедших через нашу лабораторию, предлагаем следующую классификацию по механизмам работы.
1.1. Кейлоггеры (клавиатурные перехватчики) ⌨️📋
- Механизм перехвата (Windows): Установка глобальных хуков через SetWindowsHookEx с параметром WH_KEYBOARD_LL (уровень низкоуровневой клавиатуры) или фильтр-драйвер класса KBDCLASS. Альтернативный путь — перехват буфера обмена через GetClipboardData.
- Механизм перехвата (Linux): Перехват событий через библиотеку evdev или модуль ядра, перехватывающий /dev/input/event*.
- Хранение данных: Локальный файл (часто в скрытой директории или альтернативных потоках данных ADS NTFS), шифрование (XOR, RC4), периодическая отправка на C2-сервер.
- Инженерные признаки: Наличие в памяти процессов с импортами GetAsyncKeyState, SetWindowsHookEx, GetClipboardData.
Исследователи Санкт-Петербургского Федерального исследовательского центра РАН разработали подход, который ищет следы кейлоггеров в сетевом трафике на основе методов искусственного интеллекта. Это позволяет детектировать работу клавиатурных шпионов даже в шифрованном трафике по поведенческим паттернам. В ходе поиска шпионских программ и ПО мы используем комбинацию сигнатурного анализа и поведенческого мониторинга, что дает максимальную полноту покрытия угроз.
1.2. Трояны удаленного доступа (RAT — Remote Access Trojan) 🐀🌐
- Механизм связи: TCP/HTTP/HTTPS reverse shell, периодический beaconing (heartbeat) с интервалом от 30 до 300 секунд.
- Сокрытие: Маскировка под системные процессы (exe, lsass.exe), использование легитимных облачных API (Telegram, Google Drive, WebDAV) для эксфильтрации.
- Инженерные признаки: Наличие в дампе RAM сокетов в состоянии ESTABLISHED без соответствующего GUI-процесса, нестандартные порты (4444, 5555, 8080, 31337).
- Пример: В кейсе с зараженной бухгалтерией (Нижний Новгород) поиск шпионских программ и ПО выявил загрузчик в автозагрузке exe, который подтягивал PowerShell-скрипт с IP 185.xxx.xx.12 (Германия). Скрипт каждую ночь архивировал базы 1С и отправлял через WebDAV.
1.3. Руткиты уровня ядра и буткиты 👻⚙️
- Механизм: Внедрение драйвера (файл.sys), перехват системных вызовов (SSDT — System Service Descriptor Table), модификация IDT (Interrupt Descriptor Table) или IRP (I/O Request Packet) таблиц. Буткиты заражают загрузочные секторы (MBR, UEFI) и активируются до загрузки ОС (T1542.001 — Pre-OS Boot: System Firmware).
- Сокрытие: Подмена результатов NtQuerySystemInformation для исключения своего процесса из списка. Фильтрация вызовов ZwQueryDirectoryFile для сокрытия файлов. Использование прямого манипулирования объектами ядра (DKOM — Direct Kernel Object Manipulation).
- Инженерные признаки: Несоответствие списков процессов в Volatility (pslist vs psscan). Функция NtReadFile по адресу, не принадлежащему exe или win32k.sys. В кейсе с медицинским центром в Москве поиск шпионских программ и ПО на дисках ничего не дал. Мы извлекли прошивку EFI через SPI-программатор — внутри была внедрена DLL, которая при загрузке ОС инжектировалась в процесс lsass.exe и перехватывала учетные записи врачей.
1.4. Шпионское ПО для мобильных платформ (iOS/Android) 📱
- iOS (класс Pegasus): Использование zero-click эксплойтов (например, FORCEDENTRY), работа в userspace без jailbreak. Обнаружение через MVT (Mobile Verification Toolkit) по артефактам в резервной копии.
- Android: Стандартные разрешения READ_SMS, RECORD_AUDIO, CAMERA, ACCESS_FINE_LOCATION. Установка из сторонних источников или через поддельные обновления. Приложения с разрешением BIND_ACCESSIBILITY_SERVICE (ридер экрана) могут перехватывать всё, что отображается на экране.
- Инженерный протокол многоуровневой детекции 🔧📝
Профессиональный поиск шпионских программ и ПО базируется на строгих принципах криминалистики, исключающих повреждение исходных данных и гарантирующих воспроизводимость результатов. На основе стандартов ISO/IEC 27043 разработан следующий протокол.
2.1. Уровень 0: Организационные мероприятия и изъятие объектов 🏢🔒
Требования к инженеру на месте изъятия:
❌ Не выключать компьютер! Выключение уничтожает оперативную память, содержащую следы fileless-вредоносов.
✅ Отключить сетевые интерфейсы (физическое отсоединение Ethernet, отключение Wi-Fi в BIOS).
✅ Подключить аппаратный блокиратор записи (write-blocker) между носителем и компьютером эксперта.
✅ Создать посекторную копию (образ) диска в формате E01 или RAW с параллельным вычислением хэша SHA-256.
✅ Выполнить дамп оперативной памяти:
- Windows: exe /accepteula /output memdump.raw или WinPMEM.
- Linux: dd if=/dev/mem of=/mnt/forensics/mem.lime bs=1024.
- macOS: osxpmem -o mem.dump.
✅ Упаковать и опломбировать оригинальный носитель и образы.
2.2. Уровень 1: Анализ оперативной памяти (RAM Forensics) 🧠💾
Многие современные импланты работают бесфайлово — они загружаются прямо в память через уязвимости или легитимные средства администрирования (PowerShell, WMI, PsExec). Такие угрозы невозможно обнаружить при сканировании диска, поэтому поиск шпионских программ и ПО обязательно включает RAM-форензик.
Инструментарий: Volatility 3 (Python framework), плагины: windows.psscan, windows.pslist, windows.malfind, windows.netscan, windows.yarascan.
Инженерный протокол:
bash
# 1. Идентификация профиля ОС
volatility3 -f memdump.raw windows.info
# 2. Сканирование скрытых процессов (разница psscan vs pslist)
volatility3 -f memdump.raw windows.psscan > psscan.txt
volatility3 -f memdump.raw windows.pslist > pslist.txt
diff pslist.txt psscan.txt | grep «>» # Процессы, видимые только в скане
# 3. Поиск инжектов кода (malfind)
volatility3 -f memdump.raw windows.malfind —dump —pid <PID>
# 4. Анализ сетевых подключений
volatility3 -f memdump.raw windows.netscan | grep -E «ESTABLISHED|CLOSE_WAIT»
# 5. YARA-охота по памяти
volatility3 -f memdump.raw windows.yarascan —yara-file rules.yara —output yara_hits.txt
Критерии принятия (какой результат считать аномалией):
🚨 Процесс присутствует в psscan, но отсутствует в pslist — скрытый процесс (руткит).
🚨 Регион памяти с флагами PAGE_EXECUTE_READWRITE и наличием MZ-заголовка — инжект кода.
🚨 Сокет ESTABLISHED с портом 4444, 5555, 8080, 31337 без легитимного приложения — RAT.
В кейсе с журналистом из Санкт-Петербурга поиск шпионских программ и ПО через анализ RAM выявил процесс, скрытый от диспетчера задач с использованием DKOM. В дампе нашли строки с IP-адресом 85.xx.xx.44 (сервер в Финляндии) и логином observer2.
2.3. Уровень 2: Анализ файловой системы и журналов 🗂️📜
Инструментарий: The Sleuth Kit (TSK), Autopsy, analyzeMFT, PECmd, Registry Explorer.
Инженерный протокол:
Анализ MFT (Master File Table): Поиск файлов в C:\ProgramData, %AppData%, %Temp% с атрибутами H (Hidden) и S (System), созданных в период подозрительной активности. Анализ временных меток может показать аномалии — файл якобы создан в 2019 году, но реально записан поверх старых кластеров в 2024-м.
Prefetch анализ: PECmd.exe -d C:\Windows\Prefetch —csv prefetch_report. Ищем запуски программ с именами, не соответствующими системным (klog.exe, spyagent.exe).
Анализ реестра (автозагрузка):
bash
reg export HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run run.reg
reg export HKCU\Software\Microsoft\Windows\CurrentVersion\Run run_user.reg
Ищем нестандартные записи, указывающие на исполняемые файлы в скрытых директориях.
Анализ точек персистентности: Планировщик задач (schtasks), WMI-подписки на события, драйверы ядра (особенно неподписанные), DLL-инжект через AppInit_DLLs или DLL Search Order Hijacking (T1574.001).
2.4. Уровень 3: Динамический анализ в изолированной среде (Sandboxing) 🏜️
Если статический анализ не дал результатов, переходим к запуску подозрительных файлов в песочнице. Поиск шпионских программ и ПО динамическим методом позволяет увидеть поведение, которое не видно в статике.
Инструменты: Cuckoo Sandbox, CAPE (современный форк Cuckoo с поддержкой Android), ANY.RUN, Joe Sandbox.
Индикаторы заражения в динамике:
🔹 Попытки доступа к $MFT, SAM, SYSTEM (реестр).
🔹 Вызов SetWindowsHookEx (клавиатурный шпион).
🔹 Чтение буфера обмена (GetClipboardData).
🔹 Отправка данных на неизвестные IP (особенно в нестандартные порты: 5555, 6666, 31337).
🔹 Создание скрытых окон (с параметром WS_EX_TOOLWINDOW).
2.5. Уровень 4: Ручной реверс-инжиниринг — для самых сложных случаев 🧬
Когда автоматические методы бессильны (например, кастомное ПО, написанное под конкретную жертву, или обфусцированный код), применяется reverse engineering. Это требует высокой квалификации и времени, но иногда только так возможен поиск шпионских программ и ПО нулевого дня (zero-day).
Инструментарий:
- Ghidra (от АНБ — бесплатный дизассемблер с декомпиляцией).
- IDA Pro (промышленный стандарт, особенно для x86/x64).
- x64dbg, OllyDbg (отладчики пользовательского режима).
- Сетевой форензик и выявление C&C-серверов 🌐
Любая шпионская программа нуждается в управляющем сервере (C&C, C2) и канале эксфильтрации данных. Поиск шпионских программ и ПО включает анализ сетевых логов:
- Источники: PCAP-логи сетевого оборудования, логи DNS-сервера, логи прокси и межсетевых экранов.
- Индикаторы компрометации (IoC): Подозрительные домены (DGA — Domain Generation Algorithm), нестандартные порты, регулярные heartbeat-запросы к C&C-серверам (например, каждые 60 секунд).
- Инструменты: Wireshark, NetworkMiner, Suricata с правилами ET PRO, Zeek (Bro), JA3/JA3S — отпечатки TLS-рукопожатий.
Пример: В кампании с троянцем Batavia, описанной «Лабораторией Касперского», злоумышленники использовали домены oblast-ru[.]com и ru-exchange[.]com для управления и эксфильтрации. VBS-скрипт-загрузчик получал по прописанному URL сформированную строку из 12 параметров, включая версию ОС, и скачивал основные модули.
- Криминалистический анализ: инженерные кейсы из экспертной практики 🗂️
Профессиональный поиск шпионских программ и ПО подтверждает свою состоятельность в ходе работы по конкретным уголовным делам. Рассмотрим несколько показательных кейсов, демонстрирующих разнообразие векторов проникновения и инженерных методов их выявления.
Кейс №1: Промышленный шпионаж на оборонном предприятии (Московская область) 🏭
Сценарий: На нескольких АРМ технологов наблюдались подозрительные сетевые всплески в 2 часа ночи. Стандартный поиск шпионских программ и ПО антивирусом ничего не дал.
Вектор проникновения: Физический доступ через зараженную USB-флешку. В памяти процесса svchost.exe был инжектирован DLL-модуль с функцией SetWindowsHookEx — классический клавиатурный шпион. Модуль сам себя расшифровывал только при наличии файла-триггера на USB-флешке. Сотрудник пронес флешку с маркировкой «фото с отпуска».
Анализ: В ходе выездной экспертизы (г. Королев) был проведен live-анализ работающей системы с использованием winpmem для дампа RAM, volatility3 для анализа снимков памяти и autoruns для проверки точек автозагрузки. Обнаружен инжектированный DLL-модуль с нестандартной цифровой подписью.
Результат: Поиск шпионских программ и ПО позволил выявить механизм активации и определить временные метки заражения. Заключение легло в основу уголовного дела о коммерческом шпионаже (ст. 183 УК РФ).
Кейс №2: Скрытая установка через EFI (Москва, медицинский центр) 🏥
Сценарий: В частной клинике пропали записи VIP-пациентов. Стандартный поиск шпионских программ и ПО на дисках ничего не дал.
Вектор проникновения: Аппаратный уровень. Вредонос был прошит в EFI-системный раздел (буткит).
Анализ: Эксперты извлекли прошивку EFI через SPI-программатор с использованием flashrom. Внутри была обнаружена внедренная DLL, которая при загрузке ОС инжектировалась в процесс lsass.exe и перехватывала учетные записи врачей. Анализ в IDA Pro подтвердил функционал перехвата.
Результат: Это уникальный случай в российской практике, демонстрирующий необходимость применения специализированного оборудования для анализа низкоуровневых компонентов.
Кейс №3: Целевая атака с использованием шпионского ПО Dante (операция «Форумный тролль») 🌍
Сценарий: В марте 2025 года «Лаборатория Касперского» обнаружила сложную целевую кампанию против сотрудников СМИ, государственных и финансовых учреждений в России с предложением поучаствовать в форуме «Примаковские чтения».
Вектор проникновения: Эксплойт нулевого дня в браузере Chrome (CVE-2025-2783). Если жертва переходила по ссылке, устройство заражалось без каких-либо действий. Использовалось шпионское ПО LeetAgent с командами на языке Leet, а также коммерческое ПО Dante от Memento Labs (бывшая Hacking Team).
Анализ: Поиск шпионских программ и ПО в данном случае потребовал глубокого реверс-инжиниринга для установления происхождения кода. Анализ показал, что Dante использует уникальный метод анализа среды перед выполнением функций, чтобы избежать детекции.
Результат: Данный случай подтверждает, что даже самые современные антивирусные решения могут быть бессильны перед целевыми атаками с использованием уязвимостей нулевого дня. Только глубокая криминалистическая экспертиза позволяет выявить такие импланты.
Кейс №4: Корпоративный шпионаж через Batavia (Россия, 2024-2025) 📧
Сценарий: С июля 2024 года неустановленная группа рассылала российским предприятиям вредоносные письма с троянцем Batavia. Цели — судостроительные, авиационные, нефтегазовые предприятия и КБ.
Вектор проникновения: Фишинговая рассылка с вредоносными ссылками под предлогом подписания договора. Трехэтапное заражение: VBE-скрипт → WebView.exe (сбор документов и скриншотов) → javav.exe (расширенный сбор, смена C2).
Анализ: Поиск шпионских программ и ПО выявил сложную цепочку заражения с использованием шифрованных каналов и контроля хэшей для предотвращения повторной отправки файлов. Вредонос собирал офисные документы (*.doc, *.xls, *.pdf), изображения, архивы и системные журналы.
Результат: Заключение эксперта позволило восстановить полную цепочку атаки, идентифицировать домены злоумышленников и сформировать доказательную базу для возбуждения уголовного дела по ст. 183 УК РФ.
- Инструментальный стек и технологический стенд 🛠️
Эффективность поиска шпионских программ и ПО напрямую зависит от используемого инструментария. Ниже представлена систематизация инструментов по этапам анализа.
| Этап анализа | Категория инструментов | Конкретные примеры | Назначение и выходные данные |
| Сбор артефактов | Криминалистические сборщики | FTK Imager, Magnet AXIOM, Belkasoft Live RAM Capturer, Tableau TD3 | Создание посекторной копии диска (dd-образ), дампа оперативной памяти, извлечение ключей реестра. Сохранение целостности и хэш-сумм |
| Статический анализ | Анализаторы памяти | Volatility Framework, Rekall | Парсинг структур данных ОС в дампе памяти для поиска аномалий |
| Анализаторы файловых систем | Autopsy, The Sleuth Kit, analyzeMFT | Построение временной шкалы событий, поиск удаленных файлов, анализ метаданных, MFT-анализ | |
| Анализаторы реестра | Registry Explorer, PECmd | Анализ точек автозагрузки, поиск аномальных записей | |
| Динамический анализ | Системы песочниц | Cuckoo Sandbox, ANY.RUN, Joe Sandbox | Автоматизированный отчет о поведении образца: вызовы API, созданные файлы, сетевые подключения |
| Отладчики и дизассемблеры | IDA Pro, Ghidra, x64dbg, OllyDbg | Графы вызовов функций, строковые константы, алгоритмы обфускации | |
| Сетевой анализ | Снифферы и анализаторы | Wireshark, NetworkMiner, Zeek | PCAP-файлы трафика, выделенные файлы, реконструированные сессии, статистика, JA3-отпечатки |
| Вспомогательные | Платформы разведки угроз | VirusTotal, MalwareBazaar, MITRE ATT&CK Navigator | Контекст по образцам (хэши, поведение), сопоставление тактик и техник |
- Выводы и практические рекомендации 📑
Проведенное инженерное исследование показывает, что угрозы, исходящие от шпионского ПО и программ хищения денежных средств, носят системный и высокотехнологичный характер. Противодействие данным угрозам невозможно без применения сложных криминалистических методов, объединенных в рамках профессионального поиска шпионских программ и ПО. Только комплексный подход, включающий статический анализ, исследование оперативной памяти, динамическое тестирование в песочнице и анализ низкоуровневых компонентов прошивки, способен гарантировать обнаружение и документирование следов ВПО.
Практические рекомендации для заказчика при подозрении на слежку: 👣
- Не выключайте компьютер — поставьте на паузу работу, отключите сеть (выдернуть патч-корд или включить режим «в самолете»).
- Не запускайте антивирус — он может уничтожить активные трояны и их логи.
- Не копируйте файлы вручную — измените атрибуты last access time.
- Зафиксируйте всё на фото/видео (экраны, системное время, горящие лампочки на сетевой карте).
- Обратитесь к экспертамдля проведения профессионального поиска шпионских программ и ПО с созданием криминалистически корректных образов и формированием доказательной базы.
Более подробная информация о методологии и примерах экспертных заключений представлена на специализированном ресурсе: https://фсэ.рф

Задать вопрос экспертам