Проблема
IOC-only detection быстро стареет: файл переименовывается, архив пересобирается, инфраструктура меняется. При этом зрелый modular implant должен сохранять внутренние обязанности компонентов и способы обмена между ними, иначе разработчику приходится переписывать всю экосистему.
Исследование GTIG описывает STOCKSTAY как многокомпонентный .NET-backdoor с orchestrator, network relay, task modules, IPC и secure WebSocket. Для защитника ценность здесь не в запоминании имен, а в построении связного behavior graph.
Решение: коррелировать роли и границы
Начните с process graph: какие бинарники стартуют рядом по времени, кто является parent, какие модули загружаются и какие файлы конфигурации читаются. Затем добавьте IPC и сеть: редкие WM_COPYDATA-подобные обмены, длительные WebSocket-соединения, proxy discovery и несоответствие signer, path и заявленной функции приложения.
Каждая отдельная аномалия может быть benign. Finding появляется только после корреляции нескольких независимых слоев и сохранения artifacts, достаточных для повторной проверки.
Что проверить руками
- Сопоставить process start, module load, file access и network connect в одной timeline.
- Проверить signer, original filename, install path и parent process каждого компонента.
- Выделить WebSocket flows с редким destination, долгим lifetime и необычным client process.
- Снять memory map и список loaded assemblies до изоляции.
- Проверить environment-bound configuration на owned forensic copy, не запуская образец в production.
Безопасный пример: Sigma-кандидат для enrichment
Правило ниже не объявляет malware verdict. Оно поднимает enrichment-задачу для редкого пользовательского процесса, открывшего secure WebSocket после загрузки неподписанной библиотеки.
title: Rare User Process With WebSocket And Unsigned Module
status: experimental
logsource:
category: network_connection
product: windows
detection:
selection:
DestinationPort: 443
Initiated: true
filter_known:
Image|startswith:
- 'C:\\Program Files\\'
- 'C:\\Windows\\System32\\'
condition: selection and not filter_known
fields:
- Image
- ParentImage
- DestinationHostname
- User
falsepositives:
- Legitimate portable applications
level: medium
Типичные ошибки
- Создавать high-severity alert по одному WebSocket или одному имени файла.
- Запускать неизвестный sample на аналитической рабочей станции ради быстрой проверки.
- Изолировать host до preservation volatile evidence, когда это не требуется немедленной угрозой.
- Публиковать IOC без first seen, confidence, source и expiration policy.
Evidence и критерий ретеста
- Сохранены process tree, loaded modules, IPC evidence, network metadata и hashes artifacts.
- Detection проверена на clean baseline и известных portable applications.
- После remediation повторный hunt не находит исходную behavior chain, а не только старые hashes.
Материал написан Virusologia с нуля как авторская инженерная интерпретация. Факты сверены по первичным публикациям, формулировки и практические выводы не копируют исходные тексты.
Материал предназначен для защиты, controlled labs и аудита систем, которыми вы владеете или на проверку которых имеете явное разрешение. Он не содержит эксплуатационных payload-цепочек или инструкций для несанкционированного доступа.