Гид по технологиям

Судебный анализ оперативной памяти (RAM) с помощью Volatility

8 min read Кибербезопасность Обновлено 16 Sep 2025
Forensic RAM анализ с Volatility
Forensic 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

Подпись: Скриншот установки 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

Результат imageinfo

Вывод: Volatility предложил два профиля: Win7SP0x86 и Win7SP1x86. Выбирайте профиль, который наиболее корректно соответствует образу; иногда требуется попробовать оба для сопоставления результатов.

Список процессов

Просмотр всех процессов (похож на ps в Unix):

"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pslist -f memdump3.raw

Список процессов — часть 1

Часть вывода:

Анализируйте имена процессов, PID и время запуска. Обратите внимание на неожиданно похожие имена (например, iexplore.exe vs iexplorer/iexplorer — часто индикатор подмены).

Дерево процессов

Для понимания родительских связей:

"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pstree -f memdump3.raw

Дерево процессов — часть 1

Дерево помогает определить, какой процесс породил подозрительный дочерний процесс. Например, если подозрительный 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 PID 1120

В этом запуске 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

malfind PID 1788

Для 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 2104 — дампы

Вывод 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

malfind PID 2240

Результаты для нескольких PID (2840, 2364, 3728) также показали дампы, указывающие на подозрительную активность. Скриншоты дампов:

Обратите внимание: malfind извлекает фрагменты кода и выгружает их как бинарные файлы; дальнейшая статическая и динамическая проверка этих файлов необходима для квалифицированного вывода.

Валидация извлечённых артефактов

После извлечения дампов следует верифицировать и классифицировать файлы.

Windows Defender

Примеры сканирования показали обнаружение как Trojan:Win32/EyeStye.N и Trojan:Win32/EyeStye.plugin.

Windows Defender — результат

Описание семейства (из общедоступной базы): троян регистрирует нажатия клавиш, мониторит интернет-активность, может похищать учётные данные и отправлять их на удалённый сервер. Часто использует инъекции в процессы (например, cmd.exe, explorer.exe) для сокрытия активности.

Наша интерпретация: обнаруженная зависимость указывает на внедрение вредоносного кода в explorer.exe и на запуск дочерних процессов с именем iexplore.exe, что свидетельствует о компрометации.

MalwareBytes

MalwareBytes распознал извлечённые DLL как Trojan.Grabber.

MalwareBytes — результат

Важно: различные движки могут давать разные имена семействам; сопоставляйте сигнатуры, IOC, сетевые индикаторы и поведение.

История команд (cmdscan)

Плагин cmdscan извлекает буфер истории команд консоли Windows (если он присутствует в памяти).

E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 cmdscan -f memdump3.raw

cmdscan — история команд

Вывод показал, что злоумышленник запускал исполняемые файлы с именами iexplorer.exe и ieplore.exe, а также встречается строка «_lt112.spn» — индивидуальная артефактная метка. Поиск этой строки в публичных репозиториях показал соответствия с образцами вредоносного ПО.

Источники обнаружения для _lt112.spn:

malwr пример

hybrid-analysis пример

Сетевые соединения (netscan)

Сетевые сокеты и соединения можно найти с помощью netscan. В нашем примере iexplore создаёт соединения, в том числе на порт 80.

E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 netscan -f memdump3.raw

netscan — часть 1

Используйте адреса и порты из netscan как IOC для последующего анализа сетевого трафика и блокировки на perimeter-оборудовании.

Выводы по примеру

  • Образ содержит признаки инъекции и выполнения вредоносного ПО, связанного с семейством, обнаруженным как EyeStye/Trojan.Grabber.
  • Вредоносный код инжектировался в explorer.exe и запускал дочерние процессы с именами, похожими на legit-имена (iexplore.exe), что усложняет обнаружение.
  • История команд и сетевые соединения дают дополнительные IOC: имена файлов, строки параметров и удалённые адреса/порты.

Важно: судить о полной функциональности и возможностях вредоносного ПО следует после динамического анализа извлечённых модулей в изолированной среде либо с помощью песочниц (sandbox) и статического реверса.

Методология быстрой проверки памяти — шаги

  1. Документирование: метаданные, хеши, способ захвата.
  2. imageinfo → выбор профиля(ей).
  3. pslist/pstree → инвентаризация процессов и связей.
  4. malfind,ldrmodules,modules → поиск инъекций и модулей.
  5. cmdscan/ consolescan → поиск следов командной активности.
  6. netscan → сетевые сокеты/подключения.
  7. Dump/извлечение найденных бинарников → статическая/динамическая проверка.
  8. Сопоставление с внешними источниками: VirusTotal, Hybrid Analysis, Malwr.
  9. Документирование и создание отчёта с 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)

  1. Захват и хеширование образа памяти.
  2. Быстрый triage: imageinfo, pslist, netscan.
  3. Экстракция подозрительных фрагментов malfind.
  4. Верификация извлечений через VT/MB/Defender.
  5. Подготовка отчёта и мер по containment: блокировка IP/доменов, отключение скомпрометированных учетных записей, очистка или восстановление образа.
  6. Долгосрочные меры: патчинг уязвимостей, пересмотр политики 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.

Полезные ссылки:

Сводка действий для быстрого старта:

  1. Получите дамп, снимите хеши.
  2. Запустите imageinfo → pslist → pstree.
  3. Если есть подозрения — malfind, netscan, cmdscan.
  4. Извлеките артефакты, проверьте VirusTotal/Hybrid/MalwareBytes/Defender.
  5. Сформируйте отчёт и примите меры по локализации инцидента.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

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

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

Защита от clickjacking: руководство
Кибербезопасность

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

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

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

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

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

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

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

Мониторинг и управление Apache Tomcat
Мониторинг.

Мониторинг и управление Apache Tomcat