Аналіз оперативної пам’яті: Комплексний технічний посібник (Частина 1)

5 березня 2025 2 хвилин Автор: Cyber Witcher

Дізнайтеся про методи та інструменти аналізу оперативної пам’яті в нашому детальному технічному посібнику. Ця стаття охоплює структуру пам’яті, процеси, ядро, мережеві та реєстрові структури, а також надає команди для аналізу з використанням Volatility. Поглибте свої знання в галузі цифрової криміналістики з нашим комплексним керівництвом.

Вступ до судової експертизи пам’яті

Криміналістичний аналіз пам’яті – це окремий напрям цифрової криміналістики, що займається дослідженням оперативної пам’яті (RAM) з метою виявлення слідів активності системи, запущених програм, мережевих підключень та інших важливих даних, які зникають після вимкнення пристрою. На відміну від класичних методів аналізу накопичувачів, які орієнтуються на статичні дані, збережені на жорстких дисках, криміналістика пам’яті дозволяє досліджувати динамічну інформацію, що існує лише під час роботи системи.

Структура пам’яті

Структури процесів

EPROCESS – Блок середовища процесу:

  • Розташування: Простір ядра

  • Судово-аналітичне значення: Деталі процесу, потоки, дескриптори

  • Команда аналізу : sh vol.py -f mem.raw windows.pslist

PEB – Блок середовища процесу:

  • Розташування: Користувацький простір

  • Судово-аналітичне значення: DLL, змінні середовища, командний рядок

  • Команда аналізу: sh vol.py -f mem.raw windows.dlllist

VAD – Дескриптор віртуальних адрес:

  • Розташування: Простір процесів

  • Судово-аналітичне значення: Відображення пам’яті, впроваджений код

  • Команда аналізу : sh vol.py -f mem.raw windows.vadinfo

Структури ядра

SSDT – Таблиця дескрипторів системних сервісів:

  • Розташування: Простір ядра

  • Судово-аналітичне значення: Хуки, виявлення руткітів

  • Команда аналізу: sh vol.py -f mem.raw windows.ssdt

IDT – Таблиця дескрипторів переривань:

  • Розташування: Простір ядра

  • Судово-аналітичне значення: Обробники переривань, хуки

  • Команда аналізу: sh vol.py -f mem.raw windows.idt

KPCR – Контрольний регіон процесора:

  • Розташування: На кожному процесорі

  • Судово-аналітичне значення: Стан процесора, інформація про потоки

  • Команда аналізу: sh vol.py -f mem.raw windows.kpcr

Регіони пам’яті

Пул пам’яті – Виділення пулу ядра:

  • Розташування: Системний простір

  • Криміналістична вартість: Водії, об’єкти

  • Команда аналізу: sh vol.py -f mem.raw windows.poolscanner

Купа – Процес розподілу купи:

  • Розташування: Простір користувача

  • Криміналістична вартість: Дані виконання, рядки

  • Команда аналізу: sh vol.py -f mem.raw windows.heaps

Стек – Стеки ниток:

  • Розташування: Простір потоку

  • Криміналістична вартість: Сліди викликів, локальні змінні

  • Команда аналізу: sh vol.py -f mem.raw windows.threads

Файлові структури

FILE_OBJECT – Інформація про дескриптор файлу:

  • Розташування: Простір ядра

  • Криміналістична вартість: Відкриті файли, ручки

  • Команда аналізу: sh vol.py -f mem.raw windows.handles

VACB – Керування кешем:

  • Розташування: Системний простір

  • Криміналістична вартість: Дані кешованого файлу

  • Команда аналізу: sh vol.py -f mem.raw windows.cachedump

MFT – Головна таблиця файлів:

  • Розташування: Файлова система

  • Криміналістична вартість: Метадані файлу

  • Команда аналізу: sh vol.py -f mem.raw windows.mftparser

Мережеві структури

TCPT_OBJECT – TCP з’єднання

  • Розташування: Простір ядра

  • Криміналістична вартість: Мережеві підключення

  • Команда аналізу: sh vol.py -f mem.raw windows.netscan

UDP_ENDPOINT – Кінцеві точки UDP

  • Розташування: Простір ядра

  • Криміналістична вартість: Слухає мережі

  • Команда аналізу: sh vol.py -f mem.raw windows.netscan

ETHREAD – Мережні потоки

  • Розташування: Простір процесу

  • Криміналістична вартість: Обробники з’єднань

  • Команда аналізу: sh vol.py -f mem.raw windows.handles

Структури реєстру

CM_KEY_BODY – Ключі реєстру

  • Розташування: Простір реєстру

  • Криміналістична вартість: Конфігурація системи, автозапуск

  • Команда аналізу: sh vol.py -f mem.raw windows.registry.printkey

CM_KEY_VALUE – Значення реєстру

  • Розташування: Простір реєстру

  • Криміналістична вартість: Налаштування, дані

  • Команда аналізу: sh vol.py -f mem.raw windows.registry.dumpkey

Вулик – Кущ реєстру

  • Розташування: Файлова система

  • Криміналістична вартість: Повний реєстр

  • Команда аналізу: shvol.py -f mem.raw windows.hivelist

Загальні діапазони пам’яті

  • Простір користувача : 0x00000000 – 0x7FFFFFFF

  • Простір ядра : 0x80000000 – 0xFFFFFFFF

  • Системний простір : 0xC0000000 – 0xFFFFFFFF

Визначення та важливість судової експертизи пам’яті

Криміналістика пам’яті стосується процесу захоплення та аналізу вмісту енергонезалежної пам’яті (RAM) системи для виявлення доказів кіберзлочинів, атак та інших системних дій. Це дозволяє слідчим переглядати процеси, мережеві з’єднання, ключі шифрування, облікові дані для входу, зловмисне програмне забезпечення та інші приховані докази, які можуть не зберігатися на жорсткому диску.

Важливість

  1. Отримання постійних даних : оперативна пам’ять зберігає тимчасову інформацію, таку як активні процеси, облікові дані та дані, що використовуються, яка втрачається після вимкнення живлення машини. Криміналістика пам’яті дозволяє слідчим отримувати ці дані до того, як вони зникнуть, що є критично важливим для реагування на інциденти та криміналістики.

  2. Виявлення зловмисного програмного забезпечення та руткітів : криміналістика пам’яті особливо корисна для виявлення складних шкідливих програм і руткітів, які можуть ховатися в пам’яті, щоб уникнути традиційних методів виявлення на основі диска.

  3. Аналіз мережевого трафіку : він може допомогти виявити мережеві з’єднання, відкриті порти та навіть зловмисне мережеве спілкування в реальному часі.

  4. Відновлення ключа шифрування : іноді критично важливі ключі шифрування або паролі зберігаються в пам’яті, і експертиза пам’яті може допомогти їх відновити.

  5. Живі докази : криміналістика пам’яті часто дозволяє слідчим отримувати докази, поки система все ще працює, запобігаючи втраті важливої ​​інформації, яка може бути перезаписана під час нормальної роботи системи.

Ключові відмінності між криміналістикою дисків і криміналістикою пам’яті

Основи волатильності

  • Архітектура каркаса. Volatility Framework — це потужний інструмент аналізу пам’яті, призначений для аналізу дампів пам’яті. Його модульна конструкція дозволяє розширювати його за допомогою плагінів, що дозволяє користувачам досліджувати широкий спектр артефактів пам’яті.

  • Встановлення та налаштування. Volatility можна встановити на Windows, Linux і macOS. Для ефективного аналізу потрібні такі залежності, як Python і профілі пам’яті.

  • Кросплатформна підтримка. Фреймворк підтримує дампи пам’яті з різних операційних систем, включаючи Windows, Linux і macOS, пропонуючи універсальність у міжплатформних дослідженнях.

  • Екосистема плагінів. Функціональність Volatility значно розширена завдяки екосистемі плагінів, які спеціалізуються на таких завданнях, як: процес перерахування, аналіз реєстру, виявлення шкідливих програм.

  • Вибір профілю пам’яті. Точний вибір профілю пам’яті гарантує, що структура зможе правильно інтерпретувати дамп пам’яті, зіставляючи його з ядром і конфігураціями цільової системи.

vol.exe -f cridex.vmem imageinfo

Основні плагіни дослідження

Плагіни, такі як pslistpsscan, і dlllistскладають основу судово-медичних розслідувань. Ці інструменти надають детальну інформацію про:

  • Активні та приховані процеси.

  • Завантажені бібліотеки.

  • Критичні компоненти системи.

Ключові переваги:

  1. Відстеження виконання програми : дозволяє аналітикам відображати життєвий цикл процесів і виявляти аномалії.

  2. Виявлення підозрілої активності : допомагає виявити приховані або зловмисні процеси.

  3. Операційне відображення стану : надає знімок активного стану системи для комплексного криміналістичного аналізу.

Приклад команди:

vol.exe -f cridex.vmem --profile=WinXPSP3x86 pslist

Ця команда використовує Volatility для аналізу дампа пам’яті ( cridex.vmem) для системи з указаним профілем ( WinXPSP3x86) і містить список активних процесів за допомогою pslistплагіна.

Розширені робочі процеси аналізу пам’яті

Розширені робочі процеси аналізу пам’яті використовують спеціалізовані методи для виявлення прихованих аномалій і прихованих загроз. Ці робочі процеси призначені для:

  • Виявлення підозрілих ін’єкцій процесів : виявлення шкідливого коду, впровадженого в законні процеси.

  • Trace Memory-Resident Malware : Знайдіть зловмисне програмне забезпечення, яке зберігається лише в пам’яті, уникаючи методів виявлення на основі диска.

  • Виявлення аномально відображених розділів пам’яті : виявлення невирівняних або незвичних відображень пам’яті, які можуть вказувати на зловмисну ​​діяльність.

Систематично аналізуючи структуру пам’яті та поведінку, слідчі можуть реконструювати зловмисні дії та покращити свої можливості виявлення загроз.

Спеціальна розробка плагінів

Відкрита та гнучка архітектура Volatility дозволяє слідчим розробляти спеціальні плагіни для вирішення конкретних потреб криміналістики, таких як:

  • Націлювання на спеціалізовані структури пам’яті.

  • Аналіз поведінки запатентованого шкідливого програмного забезпечення.

  • Дослідження нетрадиційних артефактів даних.

Переваги спеціальної розробки плагінів:

  1. Розширте основну функціональність Volatility.

  2. Адаптація до нових викликів розслідування.

  3. Зосередьтеся на унікальних і спеціалізованих судово-медичних вимогах.

Ресурс для розробки плагінів:

Зверніться до офіційної документації, щоб отримати вказівки щодо створення спеціальних плагінів: Volatility Plugin Development

Робочі процеси практичного аналізу пам’яті

Виявлення шкідливих процесів

Використовуючи такі інструменти, як pslistі pstree, слідчі можуть:

  1. Перелічувати та аналізувати процеси, що виконуються в пам’яті.

  2. Вивчіть ієрархії процесів, щоб виявити аномалії.

  3. Виявляти такі розбіжності, як:

    • Незвичайні стосунки батьків і дітей.

    • Процеси, що ховаються під законними іменами.

    • Невідомі або підозрілі процеси, які демонструють ненормальну поведінку.

Приклад робочого процесу:

1. запуститиpslist:

vol.exe -f memory_dump.vmem --profile=Win7SP1x64 pslist

Список активних процесів для аналізу.

2. запуститиpstree:

vol.exe -f memory_dump.vmem --profile=Win7SP1x64 pstree

Відображає ієрархічні зв’язки між процесами, допомагаючи виявити зловмисну ​​активність.

Дослідження запущених процесів

Дослідження запущених процесів є важливим кроком у криміналістиці пам’яті, особливо під час аналізу потенційних шкідливих програм, таких як Cridex . У цьому розділі описано підхід до виявлення підозрілих процесів за допомогою Volatility .

Кроки для дослідження запущених процесів

  1. Перевірка підозрілих імен процесів. Зловмисне програмне забезпечення часто маскується під законними назвами процесів. Детальна перевірка списку процесів може допомогти виявити аномалії.

  2. Перевірка процесів з різними ідентифікаторами батьківських процесів (PPID). Процеси з неочікуваними або незвичайними ідентифікаторами батьківського процесу можуть вказувати на втручання або впровадження зловмисниками. Аналіз зв’язків PPID дає важливі підказки.

Приклад випадку: Ідентифікаціяreader_sl.exe

У цьому розслідуванні зловмисне програмне забезпечення маскується під назвою процесу reader_sl.exe.

Команда для аналізу

Щоб перевірити запущені процеси та виявити підозрілі записи, такі як reader_sl.exe, використовуйте таку команду Volatility:

vol.exe -f cridex.vmem --profile=WinXPSP3x86 pslist
  • -f cridex.vmem: вказує файл дампа пам’яті для аналізу.

  • --profile=WinXPSP3x86: Визначає профіль пам’яті, що відповідає цільовій системі (Windows XP SP3 x86).

  • pslist: перераховує всі запущені процеси та їхні батьківсько-начірні відносини.

Під час вибору назви підозрілого процесу нам потрібно буде знати, яка функція процесу, а також яка мета цього підозрілого процесу.

Виходячи з результатів пошуку, існує підозра, що інфікована хост-машина могла бути скомпрометована шкідливими документами, такими як .pdfабо .docx.

Відстеження Творцяreader_sl.exe

Інший плагін від Volatility, pstree, можна використовувати, щоб визначити, який процес або програма створила reader_sl.exe. Цей аналіз може надати додаткові показники для дослідження.

vol.exe -f cridex.vmem --profile=WinXPSP3x86 pstree

Аналіз за допомогою pstreeплагіна

На основі деталей, наданих pstreeплагіном, ми маємо підказку, яка explorer.exeстворює reader_sl.exe. Це потенційно вказує на те, що заражена хост-машина відкрила шкідливі документи, наприклад отримані від зловмисника.

Дослідження підключення процесу до Інтернету

Дослідження підключення процесу до Інтернету в криміналістиці пам’яті має вирішальне значення для виявлення потенційних зловмисних дій, таких як зв’язок із серверами командування та контролю (C&C).

Процеси з віддаленими підключеннями

Під час аналізу було виявлено два процеси, які підключилися до віддалених адрес:

  1. explorer.exe

  2. Підозрюваний процес: reader_sl.exe

Логічний аналіз

Виникає логічне запитання: навіщо reader_sl.exeвстановлювати інтернет-з’єднання?

Для подальшого дослідження важливо перевірити віддалену IP-адресу, пов’язану з цим з’єднанням, на VirusTotal або подібних платформах аналізу загроз на предмет можливої ​​шкідливої ​​діяльності.

  • Ідентифікатор батьківського процесу (PPID): 1484 (це PPID для reader_sl.exe.)

Висновок

Судова експертиза пам’яті є важливим напрямом цифрової криміналістики, що дозволяє отримувати критичні докази, які можуть бути втрачені після вимкнення системи. На відміну від традиційного аналізу дисків, криміналістика пам’яті фокусується на динамічних даних, таких як запущені процеси, мережеві з’єднання, ключі шифрування та інші тимчасові артефакти.

Читайте продовження у другій частині, де будуть розглянуті передові методи аналізу пам’яті, автоматизація криміналістичних процесів, виявлення складних загроз, використання ШІ у цифровій криміналістиці та розширений аналіз пам’яті мобільних пристроїв.

Інші статті по темі
КібервійнаСоціальна інженерія
Читати далі
Аналіз оперативної пам’яті: Комплексний технічний посібник (Частина 2)
У другій частині статті ви дізнаєтесь, як аналізувати пам’ять комп’ютерів та мобільних пристроїв для виявлення прихованих загроз, відновлення видалених даних та ідентифікації слідів кіберзлочинів.
134
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.