Наші представництва: 

Замовити зворотній дзвінок
btn

SuperMem: Безкоштовний інструмент CrowdStrike Incident Response для автоматизації обробки образів пам'яті

Новина

Проведення аналізу пам'яті під час розслідування інцидентів може бути виснажливою та складною справою через відсутність комерційних варіантів обробки зразків пам'яті, універсальних інструментів з відкритим вихідним кодом для виконання зазначеної функції, а також брак знань і навичок. Усвідомлюючи це, компанія CrowdStrike створила SuperMem – скрипт обробки пам'яті Windows з відкритим вихідним кодом, який допомагає експертам послідовно і швидко обробляти зразки пам'яті під час розслідувань.

SuperMem можна знайти в репозиторії CrowdStrike GitHub тут.


Що таке SuperMem?

SuperMem, або "winSuperMem.py", – це сценарій Python, який послідовно, швидко і вибірково аналізує зразки пам'яті Windows. В його основі лежить методологія сортування, яка робить інструмент простим у використанні, а отже більш доступним для криміналістичних аналітиків. Методологія сортування складається з трьох типів: Швидкий, Повний і Комплексний.

  • Швидкий: дуже обмежена обробка.
  • Повний: більш глибока обробка.
  • Комплексний: всеосяжна обробка!

Примітка: winSuperMem.py був розроблений в середовищі Linux і не тестувався для роботи на Windows. Проте конфігурація скрипту для запуску на системі Windows цілком можлива.


Чому CrowdStrike створили це?

Надихнувшись vShot, CrowdStrike написали SuperMem для підтримки криміналістичних спільнот. Цей скрипт надає допомогу в розборі зразків пам'яті Windows під час розслідування інциденту.


На що орієнтувалися розробники в процесі створення SuperMem?

  • Простота використання водночас зі збереженням функціональності. SuperMem був створений з мінімальною кількістю перемикачів командного рядка заради забезпечення простоти в експлуатації, але при цьому зі збереженням високої продуктивності. Після задоволення всіх вимог скрипту, ви можете запустити SuperMem за допомогою всього трьох командних перемикачів.
  • Аналітична доступність. SuperMem виводить дані в доступних форматах, таких як CSV і body file. Крім того, структура виведення зберігається в окремих каталогах відповідно до функції обробки.
  • Можливість розширення. У міру змін і виявлення нових артефактів, судовим аналітикам потрібен спосіб легко оновлювати свої інструменти відповідно до цього. SuperMem написаний в модульній структурі, у яку можна додавати додаткові функції обробки інструментів. Щоб здійснити це, вам потрібно просто створити і додати цю функцію до бажаного типу сортування. SuperMem також має високу конфігурованість, оскільки написаний на Python3 і структурований так, щоб забезпечити максимальні можливості для налаштування.
  • Швидкість і оновлення відомостей про хід роботи. Розробники SuperMem, будучи судовими аналітиками, хочуть, щоб інструменти CrowdStrike забезпечували оновлення відомостей про прогрес роботи і були максимально ефективними, що дозволить вам раціонально використовувати свій час. По можливості, SuperMem оновлює інформацію про хід обробки та передбачуваний час завершення кожного стеку обробки. Крім того, цей інструмент є багатопотоковим, що підвищує швидкість його роботи, причому кількість потоків може бути змінена в залежності від специфікацій вашої системи.


На що здатен SuperMem?

Наразі SuperMem складається з одного сценарію Python "winSuperMem.py", призначеного для обробки образів пам'яті Windows. Запустивши SuperMem із зазначеним типом сортування (Швидкий, Повний або Комплексний), сценарій обробить зразок пам'яті декількома способами.

Поточні функції обробки, які включає SuperMem:

Volatility 3. У залежності від обраного типу сортування, SuperMem буде запускати відібрані плагіни Volatility 3. Volatility 3 був обраний для SuperMem через його швидкість і формат виведення. Крім того, кожен плагін може бути налаштований з унікальними параметрами.

Bulk Extractor. Кожен тип сортування буде запускати Bulk Extractor на образі пам'яті з параметрами за замовчуванням.

Рядки. Кожен тип сортування буде запускати на образі пам'яті рядки Unicode, ASCII і Big-Endian. EVTXtract. Залежно від обраного типу сортування SuperMem запустить EVTXtract з параметрами за замовчуванням.

Отримання файлів. Залежно від обраного типу сортування SuperMem отримує такі файли, як завантажені бібліотеки DLL, драйвери, процеси, гілки реєстру та інші певні типи файлів і їх шляхи.

Збір IOCs. Залежно від обраного типу сортування SuperMem спробує зібрати неприватні IP-адреси з результатів Volatility 3 NetScan і додати їх у файл IOC.csv.

Plaso. Залежно від обраного типу сортування, SuperMem запустить log2timeline по всьому каталогу виведення, розбираючи файли дампу і висновок Volatility. Потім SuperMem запустить psort на виході і створить суперчасову шкалу активності.

Yara. Тільки для комплексної діагностики. SuperMem запустить Yara на основі наданого файлу Yara по всім скинутим драйверам, процесам і бібліотекам DLL. Сьогодні сканування Yara по всьому образу пам'яті не є інтегрованим, оскільки це може забрати дуже багато часу і потенційно генерувати багато шуму.

Примітка: Метою SuperMem є використання тільки Volatility 3, але, на жаль, наразі достатньої підтримки плагінів немає, а отже він все ще перебуває на стадії розробки, тому Volatility 2 досі є необхідним.


Функції обробки для кожного типу сортування

Швидкий:

  • Volatility 3
  • Рядки (strings)
  • Bulk Extractor

Повний:

  • Швидке сортування
  • Volatility 3 +
  • Volatility 2
  • EVTXtract
  • Файли dump (тільки задані файли та шляхи)
  • Dump Registry Hives
  • Plaso
  • Збір мережевих IOCs

Комплексний:

  • Повне сортування
  • Скидання завантажених DLL, процесів і драйверів Yara

Докладний список кожного плагіну Volatility, використовуваного в режимах Quick triage, Full triage і Comprehensive triage, наведено в Python-скрипті "winSuperMem.py".


Як ви можете користуватися цим інструментом?

Установка. SuperMem має кілька залежних компонентів, оскільки для обробки зразка пам'яті використовується кілька криміналістичних інструментів. Спочатку вам буде необхідно встановити або мати такі інструменти:

  • Python 3 для запуску скрипту та Volatility 3
  • Python 2 для запуску Volatility 2
  • Рядки (strings)
  • Volatility 3
  • Volatility 2 з community-плагінами
  • Bulk Extractor
  • Plaso/Log2Timeline
  • Yara

SuperMem має кілька залежних компонентів Python, які можна встановити за допомогою наступної команди:


pip3 install -r requirements.txt


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

# Globals Likely Needing Updated
THREADCOUNT = 12
EVTXTRACTPATH = "/usr/local/bin/evtxtract"
VOL3PATH = "/usr/bin/vol3"
VOL2PATH = "/usr/bin/vol.py"
VOL2EXTRAPLUGINS = "/usr/share/volatility/plugins/community/"
BULKPATH = "/usr/bin/bulk_extractor"
LOG2TIMELINEPATH = "/usr/bin/log2timeline.py"
PSORTPATH = "/usr/bin/psort.py"
YARAPATH = "/usr/bin/yara"
STRINGSPATH = "/bin/strings"
YARARULESFILE = "/path/to/yara/Yarafile.txt"


Запуск

Після налаштування сценарію із зазначенням шляхів до інструментів, ви можете запустити SuperMem за допомогою наступної наведеної нижче команди:

python3 winSuperMem.py -f memdump.mem -o output -tt 3

Ця команда виконає комплексну обробку зразка пам'яті "memdump.mem" і виведе в каталог "output". Крім того, ви можете опціонально поставити перемикач команди -profile = для прискорення обробки плагінів Volatility 2, якщо вам відомий їх профіль.

Після завершення виконання сценарію у вас буде вихідний каталог для кожної з унікальних функцій обробки.


Як зчитувати вихідні дані?

Нижче наведена структура вихідного каталогу комплексного сортування:

  • BEoutputdir: вихідний файл Bulk Extractor
  • DumpedDllsOutput: дамповані DLL, завантажені в процеси
  • DumpedFilesOutput: дамповані файли в пам'яті
  • DumpedModules: вивантаження завантажених драйверів
  • DumpedProcessOutput: вивантаження запущених процесів
  • DumpedRegistry: вивантаження завантажених гілок реєстру
  • EVTxtract: вивантаження даних за допомогою EVTxtract
  • IOCs.csv: зібрані IP-адреси, ідентифіковані в наборі вихідних даних
  • Logging.log: журнал для сценарію
  • Plaso: основна тимчасова шкала Plaso
  • Рядки: виведення рядків Unicode, Ascii, Big Endian
  • Volatility 2: виведення плагіну Volatility 2
  • Volatility3: виведення плагіну Volatility 3
  • Yara: відповідності Yara


Висновок

За допомогою SuperMem аналіз пам'яті Windows, особливо під час розслідування інцидентів, може бути послідовним і впорядкованим. Крім того, завдяки можливості вибору типів сортування, аналітики можуть зупинитися на варіанті, який найкраще підходить для їх потреб в розслідуванні, щоб скоротити час обробки.

Дізнайтеся більше про те, як служби CrowdStrike допомагають організаціям швидко і ефективно підготуватися до злому, відреагувати на нього і усунути наслідки, а також про інші рішення, які допоможуть вашій команді безпеки.


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

Назад

Mobile Marketing
+