Найти в Дзене

Анализ инцидента: Ищем иголку в стоге сена с помощью Volatility (Часть 3)

В предыдущих частях мы предотвратили выключение зараженного компьютера и успешно сняли дамп оперативной памяти. Теперь перед нами лежит файл размером 16 или 32 ГБ — цифровой слепок «места преступления». Для неподготовленного взгляда это просто гигантский массив байтов. Но для специалиста по форензике — это структурированная экосистема, где всё ещё живут процессы вируса, открытые сетевые соединения и, что самое главное, криптографические ключи, которые могут спасти ваши данные. Это поиск иголки в стоге сена, но у нас есть мощный магнит. В этой статье мы переходим к практической фазе: использованию Volatility Framework — де-факто стандарта в индустрии для анализа оперативной памяти. Мы пройдем путь от определения версии Windows до извлечения AES-ключей из процесса шифровальщика. Золотое правило: НИКОГДА не проводите анализ дампа на машине, с которой он был снят, или на любом другом компьютере в скомпрометированной сети. Вам потребуется изолированная рабочая станция, предпочтительно на ба
Оглавление
Анализ инцидента: Ищем иголку в стоге сена с помощью Volatility (Часть 3)
Анализ инцидента: Ищем иголку в стоге сена с помощью Volatility (Часть 3)

От «сырой» памяти к спасению данных

В предыдущих частях мы предотвратили выключение зараженного компьютера и успешно сняли дамп оперативной памяти. Теперь перед нами лежит файл размером 16 или 32 ГБ — цифровой слепок «места преступления».

Для неподготовленного взгляда это просто гигантский массив байтов. Но для специалиста по форензике — это структурированная экосистема, где всё ещё живут процессы вируса, открытые сетевые соединения и, что самое главное, криптографические ключи, которые могут спасти ваши данные. Это поиск иголки в стоге сена, но у нас есть мощный магнит.

В этой статье мы переходим к практической фазе: использованию Volatility Framework — де-факто стандарта в индустрии для анализа оперативной памяти. Мы пройдем путь от определения версии Windows до извлечения AES-ключей из процесса шифровальщика.

Часть I: Подготовка «Чистой комнаты» (Forensic Workstation)

Золотое правило: НИКОГДА не проводите анализ дампа на машине, с которой он был снят, или на любом другом компьютере в скомпрометированной сети.

Вам потребуется изолированная рабочая станция, предпочтительно на базе Linux (Ubuntu, Debian или специализированный дистрибутив REMnux / Kali Linux).

Почему Linux — лучший выбор для форензики?

  • Инструментарий «из коробки»: Утилиты strings, grep, xxd, hexdump являются нативными.
  • Безопасность: Вредоносные исполняемые файлы Windows (PE .exe), которые вы можете извлечь из дампа, не запустятся на Linux случайно.
  • Производительность: Linux эффективнее работает с огромными файлами, а Volatility работает быстрее и стабильнее.

Рекомендуемая конфигурация станции анализа:

  • CPU: 8+ ядер (для параллельной обработки плагинов).
  • RAM: 32 ГБ+ (Volatility потребляет много памяти для кэширования структур).
  • Storage: NVMe SSD 1 ТБ+ (скорость чтения критична при сканировании 32 ГБ файла).
  • Сетевая изоляция: Полный Air-Gap (отсутствие подключения к интернету) или отдельный VLAN без доступа к корпоративной сети.

Часть II: Volatility Framework — Знакомство с инструментом

Volatility — это модульный фреймворк на Python, который умеет «понимать» структуру сырых байтов памяти. Он знает, как Windows хранит список процессов, дескрипторы файлов и ключи реестра.

Как это работает?

Ключевая концепция — Профиль (Profile) или Symbol Table. Это карта, которая объясняет Volatility, по каким смещениям искать системные структуры (KDBG, EPROCESS) для конкретной версии ядра (например, Windows 10 Build 19041).

Установка (Ubuntu/Debian)

Мы будем использовать Volatility 3, так как он значительно быстрее второй версии и не требует ручного создания профилей.

# Обновление и установка зависимостей
sudo apt update
sudo apt install python3 python3-pip git

# Клонирование репозитория
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3

# Установка Python-зависимостей
pip3 install -r requirements.txt

# Проверка работоспособности
python3 vol.py --version

Если вы используете Kali Linux, инструмент часто предустановлен, но рекомендуется использовать свежую версию из GitHub.

Часть III: Шаг 1 — Разведка (Image Info)

Первый шаг — понять, с чем мы работаем. Если мы применим карту от Windows 7 к памяти Windows 10, мы увидим мусор.

Команда windows.info

В Volatility 3 профили определяются автоматически, но нам нужно убедиться, что фреймворк корректно определил ядро.

python3 vol.py -f /path/to/MEMORY.mem windows.info

Пример вывода:

Volatility Foundation Volatility Framework 3.x

Variable Value
Kernel Base 0xf80002c00000
DTB 0x1ad002 <-- Directory Table Base (критично для трансляции адресов)
KDBG 0xf80002c0a0a0
Number of Processors 4
Image Local Date/Time 2026/01/21 14:35:22 UTC
Suggested OS Profile Win10x64_19041

Совет: Эта операция может занять время, так как инструмент сканирует файл в поисках сигнатур ядра. Если у вас Volatility 2, используйте команду imageinfo, и это может занять до часа. Volatility 3 делает это за минуты.

Часть IV: Шаг 2 — Охота на процесс (Process Hunting)

Теперь нам нужно найти процесс зловреда. Мы ищем аномалии.

Команда pslist (Список процессов)

python3 vol.py -f MEMORY.mem windows.pslist

Анализ вывода:

PID PPID ImageFileName CreateTime ExitTime
...
1024 748 explorer.exe 2026-01-21 11:32:10 N/A
2156 1024 cmd.exe 2026-01-21 14:12:45 N/A
3148 2156 ransomware.exe 2026-01-21 14:12:50 N/A <-- АНОМАЛИЯ

Команда pstree (Дерево процессов)

Позволяет увидеть родительско-дочерние связи, что критически важно для понимания вектора атаки.

python3 vol.py -f MEMORY.mem windows.pstree

Пример цепочки атаки:
explorer.exe (PID 1024) → cmd.exe (PID 2156) → ransomware.exe (PID 3148)

Признаки вредоносного процесса:

  • Имя: Случайный набор символов (asdy78.exe) или мимикрия под системные (scvhost.exe вместо svchost.exe).
  • Родитель: cmd.exe или powershell.exe, запущенные из winword.exe (макрос) или explorer.exe.
  • Время запуска: Совпадает с началом шифрования файлов.
  • SID: Запущен от имени пользователя, но ведет себя как система.

Продолжение на сайте redsec.by >>>