Судебный анализ оперативной памяти (RAM) с помощью Volatility
Важно: приведённые команды и примеры выполнены для Windows-дампа и standalone-версии Volatility 2.4; для других платформ и версий синтаксис может отличаться.
О чём эта статья
В этой статье показано, как проводить судебный анализ образа оперативной памяти (RAM dump) с помощью Volatility. Разбор включает определение профиля, просмотр процессов и их связей, поиск инъекций кода, извлечение подозрительных DLL, анализ истории команд и сетевых соединений, а также практики валидации и документирования результатов. В конце — методология, чек-листы и рекомендации по инцидент-реакции.
Поддерживаемые форматы памяти
Volatility поддерживает множество форматов снимков памяти. Ниже — перевод списка форматов, поддерживаемых в актуальных выпусках:
- Raw/Padded Physical Memory (сырые дампы памяти)
- Firewire (IEEE 1394)
- Expert Witness (EWF)
- 32- и 64-битные дампы сбоев Windows (Crash Dump)
- 32- и 64-битная гибернация Windows (Hibernation)
- 32- и 64-битные MachO файлы (macOS)
- VirtualBox core dumps
- VMware Saved State (.vmss) и Snapshot (.vmsn)
- HPAK Format (FastDump)
- QEMU memory dumps
Установка
Volatility доступен для Windows, Linux и macOS. Для Windows и macOS часто доступны standalone-исполняемые файлы. В Ubuntu (включая старые версии типа 16.04) Volatility можно установить через apt:
apt-get install volatility
Подпись: Скриншот установки Volatility через пакетный менеджер (APT).
Подготовка и проверка целостности
Перед анализом всегда документируйте источник образа и проверяйте целостность. В примере MD5 для дампа выглядит так:
MD5: ee043142485a83f4d49a3a7899408500
Запишите хеш, дату и время получения образа, имя файла и способ захвата (например, winpmem, DumpIt, LiME и т.д.). Это важно для судебной цепочки хранения (chain of custody).
Обзор анализа с Volatility
Volatility помогает ответить на вопросы: какие процессы выполнялись, какие адреса и порты были задействованы, есть ли следы инъекций кода, какие команды запускал злоумышленник, какие модули/библиотеки загружены в память.
Ниже — практические примеры на основе дампа memdump3.raw и standalone-исполняемого volatility-2.4.standalone.exe.
Определение профиля образа
Команда imageinfo анализирует заголовки дампа и предлагает подходящие профили ОС/версий.
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" imageinfo -f memdump3.raw
Вывод: Volatility предложил два профиля: Win7SP0x86 и Win7SP1x86. Выбирайте профиль, который наиболее корректно соответствует образу; иногда требуется попробовать оба для сопоставления результатов.
Список процессов
Просмотр всех процессов (похож на ps в Unix):
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pslist -f memdump3.raw
Часть вывода:
Анализируйте имена процессов, PID и время запуска. Обратите внимание на неожиданно похожие имена (например, iexplore.exe vs iexplorer/iexplorer — часто индикатор подмены).
Дерево процессов
Для понимания родительских связей:
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pstree -f memdump3.raw
Дерево помогает определить, какой процесс породил подозрительный дочерний процесс. Например, если подозрительный exe запущен как дочерний процесс explorer.exe — это часто указывает на инъекцию или запуск вредоносного ПО через процесс оболочки.
Поиск инъекций и извлечение артефактов (malfind)
Плагин malfind ищет читаемо-записываемые регионы памяти, которые характерны для инъекций и вредоносных модулей, и может дампить найденные фрагменты в указанную папку.
Пример: проверка PID 1120 (svchost.exe)
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1120 -p 1120 -f memdump3.raw
В этом запуске malfind не нашёл явных DLL-инъекций для PID 1120.
Аналогично для PID 1788 (rdpclip.exe):
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1788 -p 1788 -f memdump3.raw
Для PID 2104 (explorer.exe) malfind вернул полезные дампы:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2104 -p 2104 -f memdump3.raw
Вывод malfind показывает извлечённые фрагменты, которые затем можно корректно сохранить и передать для дальнейшего анализа.
Для PID 2240 (0KqEC12.exe):
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2240 -p 2240 -f memdump3.raw
Результаты для нескольких PID (2840, 2364, 3728) также показали дампы, указывающие на подозрительную активность. Скриншоты дампов:
Обратите внимание: malfind извлекает фрагменты кода и выгружает их как бинарные файлы; дальнейшая статическая и динамическая проверка этих файлов необходима для квалифицированного вывода.
Валидация извлечённых артефактов
После извлечения дампов следует верифицировать и классифицировать файлы.
Windows Defender
Примеры сканирования показали обнаружение как Trojan:Win32/EyeStye.N и Trojan:Win32/EyeStye.plugin.
Описание семейства (из общедоступной базы): троян регистрирует нажатия клавиш, мониторит интернет-активность, может похищать учётные данные и отправлять их на удалённый сервер. Часто использует инъекции в процессы (например, cmd.exe, explorer.exe) для сокрытия активности.
Наша интерпретация: обнаруженная зависимость указывает на внедрение вредоносного кода в explorer.exe и на запуск дочерних процессов с именем iexplore.exe, что свидетельствует о компрометации.
MalwareBytes
MalwareBytes распознал извлечённые DLL как Trojan.Grabber.
Важно: различные движки могут давать разные имена семействам; сопоставляйте сигнатуры, IOC, сетевые индикаторы и поведение.
История команд (cmdscan)
Плагин cmdscan извлекает буфер истории команд консоли Windows (если он присутствует в памяти).
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 cmdscan -f memdump3.raw
Вывод показал, что злоумышленник запускал исполняемые файлы с именами iexplorer.exe и ieplore.exe, а также встречается строка «_lt112.spn» — индивидуальная артефактная метка. Поиск этой строки в публичных репозиториях показал соответствия с образцами вредоносного ПО.
Источники обнаружения для _lt112.spn:
Сетевые соединения (netscan)
Сетевые сокеты и соединения можно найти с помощью netscan. В нашем примере iexplore создаёт соединения, в том числе на порт 80.
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 netscan -f memdump3.raw
Используйте адреса и порты из netscan как IOC для последующего анализа сетевого трафика и блокировки на perimeter-оборудовании.
Выводы по примеру
- Образ содержит признаки инъекции и выполнения вредоносного ПО, связанного с семейством, обнаруженным как EyeStye/Trojan.Grabber.
- Вредоносный код инжектировался в explorer.exe и запускал дочерние процессы с именами, похожими на legit-имена (iexplore.exe), что усложняет обнаружение.
- История команд и сетевые соединения дают дополнительные IOC: имена файлов, строки параметров и удалённые адреса/порты.
Важно: судить о полной функциональности и возможностях вредоносного ПО следует после динамического анализа извлечённых модулей в изолированной среде либо с помощью песочниц (sandbox) и статического реверса.
Методология быстрой проверки памяти — шаги
- Документирование: метаданные, хеши, способ захвата.
- imageinfo → выбор профиля(ей).
- pslist/pstree → инвентаризация процессов и связей.
- malfind,ldrmodules,modules → поиск инъекций и модулей.
- cmdscan/ consolescan → поиск следов командной активности.
- netscan → сетевые сокеты/подключения.
- Dump/извлечение найденных бинарников → статическая/динамическая проверка.
- Сопоставление с внешними источниками: VirusTotal, Hybrid Analysis, Malwr.
- Документирование и создание отчёта с IOC и рекомендациями по устранению.
Чек-листы для ролей
Инцидент-реагирование
- Сохранить оригинальный образ и хеши.
- Запустить imageinfo и зафиксировать предложенные профили.
- Быстрая проверка pslist + netscan для оценки активности.
- Извлечь подозрительные дампы через malfind.
- Собрать IOC и заблокировать на perimeter.
Аналитик вредоносного ПО
- Проанализировать извлечённые DLL/EXE статически (strings, PE headers).
- Проверить поведение в песочнице/VM.
- Сравнить хеши с базами VT/Hybrid/Private.
- Подготовить технический отчёт по механике инъекции и persistence.
Судебный эксперт
- Обеспечить цепочку хранения и электронную подпись доказательств.
- Составить отчёт с хронологией событий, выводами и приложениями (дампы, лог-файлы).
Критерии приёмки
- Оригинальный файл образа имеет подтверждённый MD5/sha256, совпадающий с записанным.
- Выполнили imageinfo и подтвердили профиль(и).
- Извлечены подозрительные артефакты и сохранены бинарники с метаданными.
- Проведена первичная классификация артефактов (антивирус + онлайновые репозитории).
- Сформирован закрывающий отчёт с IOC и рекомендациями по устранению.
Тест-кейсы для проверки пайплайна анализа
- Анализ корректного чистого Windows-дампа не должен обнаруживать инъекций по malfind.
- Поддельный процесс с именем iexplore.exe должен быть обнаружен и помечен как отличающийся от legit iexplore.exe по пути и хешу.
- netscan должен вернуть хотя бы один открытый TCP-сокет при наличии сетевой активности.
- cmdscan должен вернуть содержимое истории команд, если она присутствует в дампе.
Когда Volatility может дать ложные или неполные результаты
- Профиль подобран неверно → артефакты не распознаются корректно.
- Частичное/повреждённое изображение памяти → потеря сегментов, нет полной картины.
- Использование современных rootkit-методов, которые маскируют данные в ядре, может скрыть следы.
- Дамп снят на виртуальной среде с инжектированными драйверами гипервизора — возможны артефакты.
Альтернативные и дополняющие инструменты
- Rekall (форк/альтернатива Volatility с активным развитием в некоторых ветках).
- Redline (FireEye) для анализа хостовой активности.
- WinDbg + дополнительные плагины для глубокого разбора структуры памяти.
- Для Linux/Android — инструменты специфичные для платформ: LiME для сбора, GDB для анализа.
Риск-матрица и смягчение
- Риск: Утечка извлечённых бинарников → Смягчение: хранить артефакты в зашифрованном хранилище, контроль доступа.
- Риск: Неправильная интерпретация → Смягчение: независимая проверка другим аналитиком.
- Риск: Тестовая эксплуатация вредоносного файла в прод-среде → Смягчение: запускать только в изолированной VM/petri dish.
Краткое руководство по инцидент-рутингу (playbook)
- Захват и хеширование образа памяти.
- Быстрый triage: imageinfo, pslist, netscan.
- Экстракция подозрительных фрагментов malfind.
- Верификация извлечений через VT/MB/Defender.
- Подготовка отчёта и мер по containment: блокировка IP/доменов, отключение скомпрометированных учетных записей, очистка или восстановление образа.
- Долгосрочные меры: патчинг уязвимостей, пересмотр политики EDR/AV.
1‑строчный словарь
- Volatility — фреймворк для анализа volatile memory.
- memdump/raw — файл снимка оперативной памяти.
- profile — профиль ОС/архитектуры, применяемый Volatility.
- malfind — плагин поиска инъекций/подозрительных RWX-областей.
- pslist/pstree — плагины для отображения процессов и их дерева.
- cmdscan — извлечение истории командной строки.
- netscan — сканирование таблиц сокетов в памяти.
- IOC — индикатор компрометации (IP, хеш, имя файла).
Решающее дерево: нужно ли извлекать артефакты сейчас?
flowchart TD
A[Есть дамп памяти?] -->|Нет| B[Завершить — нет данных]
A -->|Да| C[Получены хеши и метаданные?]
C -->|Нет| D[Хеширование и документирование]
D --> E[Выполнить imageinfo]
C -->|Да| E[Выполнить imageinfo]
E --> F{imageinfo вернулся с профилями}
F -->|Нет| G[Попробовать другие инструменты/профили]
F -->|Да| H[pslist и pstree]
H --> I{Есть подозрительные процессы}
I -->|Нет| J[Дальнейший мониторинг]
I -->|Да| K[Запустить malfind и netscan]
K --> L{Найдены инъекции/сокеты}
L -->|Нет| M[Сохранить лог, документировать, закрыть]
L -->|Да| N[Извлечь артефакты и проводить валидацию]
Рекомендации по безопасности при работе
- Не запускать извлечённые бинарники на рабочей машине.
- Использовать изолированные анализаторы (sandbox, VM) с отключённой сетью или с контролируемым сетевым окружением.
- Хранить артефакты и логи в защищённом репозитории с контролем версий и доступа.
Резюме
Volatility остаётся мощным инструментом для судебного анализа оперативной памяти. Совокупность pslist/pstree, malfind, cmdscan и netscan даёт широкую картину поведения вредоносного ПО: механики инъекций, сетевую активность и следы атак в командной строке. Ключевые практики — тщательное документирование, экстракция артефактов, их валидация в безопасной среде и подготовка отчёта с IOC и рекомендациями по containment и remediation.
Полезные ссылки:
- http://www.volatilityfoundation.org/24
- https://www.microsoft.com/security/portal/threat/encyclopedia/entry.aspx?Name=Trojan:Win32/EyeStye.N
Сводка действий для быстрого старта:
- Получите дамп, снимите хеши.
- Запустите imageinfo → pslist → pstree.
- Если есть подозрения — malfind, netscan, cmdscan.
- Извлеките артефакты, проверьте VirusTotal/Hybrid/MalwareBytes/Defender.
- Сформируйте отчёт и примите меры по локализации инцидента.
Похожие материалы

Мониторинг Apache Tomcat: счётчики и правила

Защита от clickjacking: руководство

Разные обои для каждого экрана Android

Удаление данных с сайтов брокеров

Разные обои для каждой домашней страницы Android
