От «сырой» памяти к спасению данных
В предыдущих частях мы предотвратили выключение зараженного компьютера и успешно сняли дамп оперативной памяти. Теперь перед нами лежит файл размером 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 >>>