На сто­ле экспер­та по циф­ровой форен­зике час­то ока­зыва­ются арте­фак­ты с пос­тра­дав­ших машин. Один из наибо­лее важ­ных арте­фак­тов — это дамп опе­ратив­ной памяти. Он помога­ет выс­тро­ить тай­млайн ата­ки и получить допол­нитель­ные опор­ные точ­ки. Сегод­ня порабо­таем с таким дам­пом при помощи нового удоб­ного инс­тру­мен­та — VolWeb.

Опе­ратив­ная память — это «мгно­вен­ный сни­мок» работы сис­темы. В ней хра­нит­ся то, что про­исхо­дит пря­мо сей­час:

  • запущен­ные про­цес­сы;
  • откры­тые сетевые соеди­нения;
  • пароли в откры­том виде;
  • содер­жимое откры­тых фай­лов;
  • клю­чи шиф­рования;
  • сле­ды деятель­нос­ти зло­умыш­ленни­ка, которые никог­да не сох­раня­ются на диск.

Ана­лиз дам­пов памяти — одна из клю­чевых задач в циф­ровой кри­мина­лис­тике и при реаги­рова­нии на инци­ден­ты. Для извле­чения и ана­лиза дам­па памяти исполь­зуют фрей­мворк Volatility 3.

Да­вай прой­дем­ся по основным целям, которые помога­ет дос­тичь Volatility 3.

1. Обнаружение вредоносного ПО и руткитов

  • Скры­тые про­цес­сы: вре­донос­ные прог­раммы час­то мас­киру­ются под легитим­ные про­цес­сы или внед­ряют­ся в них (DLL injection, code injection). Volatility 3 может показать спи­сок всех про­цес­сов, вклю­чая те, что скры­ты от стан­дар­тных дис­петче­ров задач.
  • Се­тевые соеди­нения: мож­но уви­деть, с какими IP-адре­сами и пор­тами уста­нав­ливали соеди­нения вре­донос­ные про­цес­сы, даже если они уже завер­шены (если информа­ция еще не переза­писа­на).
  • Внед­ренный код: поз­воля­ет заг­лянуть в память кон­крет­ного про­цес­са и най­ти фраг­менты вре­донос­ного кода, который был внед­рен.

2. Расследование инцидентов безопасности

  • Вос­ста­нов­ление хро­ноло­гии событий: что про­исхо­дило в сис­теме перед инци­ден­том? Какие прог­раммы запус­кались? Какие коман­ды выпол­нялись?
  • По­иск арте­фак­тов: поиск в памяти сле­дов фишин­говых атак, выпол­ненных команд, вве­ден­ных паролей, откры­тых бра­узер­ных сес­сий, исто­рии чатов и так далее.
  • Оп­ределе­ние ущер­ба: какие дан­ные были похище­ны или зашиф­рованы? Какие сис­темы были зат­ронуты?

3. Анализ действий злоумышленника

  • Кра­жа учет­ных дан­ных: Volatility 3 может извле­кать хеши паролей, билеты Kerberos и даже пароли в чис­том тек­сте из памяти про­цес­сов, таких как LSASS.exe (что кри­тич­но для атак pass the hash).
  • По­иск сле­дов экс­плу­ата­ции: обна­руже­ние сле­дов экс­пло­итов (нап­ример, шелл‑кодов в памяти) или приз­наков при­мене­ния тех­ник living off the land (LoLBins), ког­да зло­умыш­ленник исполь­зует легитим­ные сис­темные ути­литы.

4. Обход техник противостояния форензике

Сов­ремен­ные вре­донос­ные прог­раммы и прод­винутые зло­умыш­ленни­ки (APT) исполь­зуют тех­ники, которые не оставля­ют сле­дов на дис­ке. Они сущес­тву­ют исклю­читель­но в опе­ратив­ной памяти (fileless malware). Единс­твен­ный спо­соб их обна­ружить — про­вес­ти ана­лиз RAM.

5. Криминалистический анализ

  • До­каза­тель­ство наличия умыс­ла: нап­ример, най­ти доказа­тель­ства того, что поль­зователь знал о незакон­ности сво­их дей­ствий (откры­тые докумен­ты, чаты, перепис­ки в мес­сен­дже­рах).
  • Вос­ста­нов­ление уда­лен­ных дан­ных: в опе­ратив­ной памяти могут вре­мен­но хра­нить­ся дан­ные с зашиф­рован­ных дис­ков или уда­лен­ные фай­лы, к которым сис­тема еще не обра­щалась для их пол­ного сти­рания.

В «Хакере» раз­ные авто­ры неод­нократ­но рас­ска­зыва­ли о дос­тоинс­твах и недос­татках фрей­мвор­ка Volatility 3, замечу, что дос­тоинств все же боль­ше. Одна­ко Volatility 3 тре­бует тон­кой нас­трой­ки, а так­же зна­ния син­такси­са и понима­ния сути вывода команд в тер­минале.

Не­кото­рые популяр­ные инс­тру­мен­ты форен­зики поз­воля­ют не толь­ко получать информа­цию в коман­дной стро­ке интер­пре­тато­ра, но и в виде гра­фов показать информа­цию о дей­стви­ях зло­дея.

VolWeb — инс­тру­мент с откры­тым исходным кодом, поз­воля­ющий ана­лизи­ровать сним­ки опе­ратив­ной памяти, не тро­гая коман­дную стро­ку.

VolWeb мож­но раз­вернуть в любой сис­теме в виде кон­тей­нера Docker. Он уже будет содер­жать все нас­трой­ки, которые поз­волят нам ком­фор­тно работать через бра­узер.

Итак, идем в ре­пози­торий, ска­чива­ем через Git фай­лы про­екта и перехо­дим в каталог инс­тру­мен­та.

Пе­реиме­нуем .env.example в .env. Это файл рабоче­го окру­жения с учет­ными дан­ными для СУБД и бэкен­да, а так­же номера­ми рабочих пор­тов.

Пра­вить файл с при­мера­ми нас­тро­ек необя­затель­но. Инс­тру­мент готов к запус­ку, но учти, что сам запуск будет небыс­трым. При­дет­ся подож­дать, пока заг­рузят­ся и смон­тиру­ются нуж­ные обра­зы.

Те­перь мы видим новый стек кон­тей­неров. Для управле­ния кон­тей­нерами Docker очень удо­бен Portainer.

Как видишь, нуж­ные инс­тру­мен­ту пор­ты на моем хос­те сво­бод­ны и кон­тей­неры кор­рек­тно запуще­ны. Если необ­ходимые пор­ты по умол­чанию заняты, при запус­ке Docker ука­жет на это.

Для дос­тупа к веб‑интерфей­су и работы в нем нам понадо­бит­ся порт 3000. Откро­ем через бра­узер стра­ницу инс­тру­мен­та.

На этом эта­пе нас встре­чает стра­ница вхо­да в интерфейс, стан­дар­тные кре­ды — admin:password.

Для иссле­дова­ния дам­па нуж­но соз­дать кейс и файл ана­лиза для него. Соот­ветс­тву­ющие кноп­ки и вклад­ки находят­ся сле­ва. При перехо­де к нуж­ному раз­делу сущ­ности добав­ляют­ся через зна­чок + в пра­вом ниж­нем углу экра­на. Если его нажать, появ­ляет­ся диало­говая фор­ма с полями для вво­да, выбора дан­ных и инте­рак­тивны­ми кноп­ками.

Где взять матери­ал для ана­лиза, если нуж­ный файл нам не выдали? Рекомен­дую ресурс cyberdefenders.org. Пос­ле регис­тра­ции там дос­тупны арте­фак­ты для иссле­дова­ния, а в лабора­тор­ных работах — воп­росы с фор­мами отве­та (иног­да даже с под­сказ­ками). В качес­тве при­мера поп­робу­ем разоб­рать задач­ку RedLine Lab.

Нам пред­лага­ют заг­рузить архив с фай­лом и исполь­зовать Volatility 3. Мы же про­тес­тиру­ем работу VolWeb. Соз­даем кейс и под­гру­жаем в него файл.

И сно­ва заг­рузка идет небыс­тро. Пос­ле заг­рузки и ана­лиза дам­па в стро­ке с фай­лом появит­ся ста­тус success. Если есть еще дан­ные, прос­то запус­каем сле­дующую заг­рузку.

Спра­ва появи­лись кноп­ки Investigate (рас­сле­довать), Reanalyze (про­ана­лизи­ровать заново) и Delete (уда­лить). Мы теперь можем перей­ти к ана­лизу заг­ружен­ного дам­па и искать отве­ты на воп­росы из лабора­тор­ной работы. Парал­лель­но я буду обра­баты­вать дамп клас­сичес­ким Volatility 3 и срав­нивать резуль­таты, что­бы понять, не вво­дит ли веб‑интерфейс в заб­лужде­ние.

Пе­рехо­дим к ана­лизу. Жми кноп­ку с мик­роско­пом.

Пер­вая вклад­ка с домиком — об­щий обзор. Сле­ва показа­ны пла­гины инс­тру­мен­та, которые отра­бота­ли успешно и выдали резуль­тат для изу­чения, а по цен­тру и спра­ва схе­матич­но отра­жен тот же резуль­тат для понима­ния общей кар­тины. Вид­но, что сра­бота­ли пла­гины для Windows. Про­верим клас­сикой: файл дам­па я положил в тот же каталог с Volatility 3, в тер­минале выпол­няю коман­ду

python3 vol.py -f MemoryDump.mem windows.info

Идем даль­ше.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    3 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии