🍗 Анализ вирусов вымогателей с помощью Volatility — Information Security Squad
🍗 Анализ вирусов вымогателей с помощью Volatility

Вступление

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

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

В этой статье мы рассмотрим две известные формы вредоносного ПО: WannaCry и Jigsaw.

Вредоносная программа, описанная в этой статье, будет находиться в изолированной среде ( песочницы ).

Краткий обзор фреймворка Volatility

Фреймворк Volatility — это инструмент криминалистической экспертизы памяти с открытым исходным кодом, который поддерживается Фондом Volatility .

Фонд Volatility — это неправительственная организация, которая также проводит семинары и конкурсы для обучения участников передовым исследованиям в области анализа памяти.

Volatility позволяет аналитикам памяти извлекать артефакты из памяти (RAM).

Это делается независимо от платформы, на которой запускается инструмент; на самом деле, поддержка предоставляется для основных операционных систем.

Исходный код можно найти здесь.

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

В системах на основе Debian просто установите его с помощью следующей команды:

sudo apt-get install volatility

Основные преимущества Volatility перед другими инструментами анализа памяти включают в себя:

Он написан на Python: многим аналитикам памяти удобно работать со скриптами Python.

Это облегчает им работу с Volatility, нежели с чем-то вроде windbg, что требует от вас изучения синтаксиса скриптов.

Он кроссплатформенный: Volatility может работать на любой платформе, поддерживающей Python, что означает, что вам не нужно тратить время на загрузку или установку .NET библиотек или DLL для поддержки функциональности.

Это с открытым исходным кодом: будучи продуктом с открытым исходным кодом, фреймворк позволяет все больше и больше аналитикам внести свой вклад в развитие Volatility.

Это также означает, что вам не нужно платить за инструмент, который даст вам в основном то же самое или даже больше того, что предлагает платный инструмент.

Он позволяет создавать скрипты: вы можете автоматизировать задачи с помощью Volatility, так как он легко позволяет использовать скрипты. Например, вы можете автоматически исследовать память ядра, используя написанные вами скрипты.

Он поддерживает множество форматов файлов: Volatility имеет возможность анализировать необработанные дампы, аварийные дампы, файлы гибернации, VMware .vmem, сохраненные файлы состояния VMware и приостановленные файлы, дампы памяти Virtual Box и многое другое.

Вы можете получить доступ к каталогу документированных учебных пособий по этому адресу, если вы хотите выйти за рамки этой статьи.

Дамп вирусов вымогателей из памяти

Мы установили Windows 7 на VirtualBox и загрузили отсюда Jigsaw Ransomware

Затем мы выполнили вредоносное ПО в рамках нашей установки Windows 7 и сбросили память после запуска вымогателя.

Команда, которую мы использовали для выгрузки памяти в файл memory.dmp, показана ниже:

Мы могли бы работать с файлом .dump, но хотели создать файл .raw на тот случай, если нам понадобится больше инструментов.

Команда, которую мы использовали для этого, показана ниже:

Прежде чем мы сможем начать работать с Volatility, нам нужно определить некоторую информацию в файле jigsaw.raw.

Например, нас особенно интересует профиль, который в соответствии с нашей установкой Windows 7 — Win7SP1x64.

Смотрите дополнительную информацию ниже:

Плагин pslist позволяет нам просматривать список процессов во время захвата памяти.

Это можно увидеть ниже:

Нам необходимо понять функциональность процесса, и мы делаем это путем определения используемых DLL-файлов.

Это можно сделать с помощью плагина dlllist и выдачи идентификатора процесса:

Теперь, после первоначальной оценки Jigsaw Ransomware, мы можем вывести файл процесса .exe и выполнить дальнейший анализ путем обратного инжиниринга файла и выполнения других тестов:

Как выполнить анализ вредоносного ПО Ransomware

В этом разделе мы проанализируем вымогателя WannaCry.

Установка включает в себя компьютер с Windows XP SP2 на VirtualBox.

Давайте теперь проведем некоторое исследование вредоносного ПО.

Как мы делали выше, мы выгружаем память зараженной системы и начинаем с просмотра информации об образе:

Следующее, что мы делаем, — это идентифицируем процессы во время дампа памяти.

Это можно сделать с помощью pslist, как показано ниже:

Как видно выше, есть два очень подозрительных процесса, которые обычно не являются частью Windows.

(Идентификация может быть просто проведена путем поиска в Google процессов и определения подозрительных).

Это tasksche.exe и @WannaDecryptor@.

Чтобы мы могли определить иерархию процессов, мы используем psscan для определения задач, которые были запущены с помощью tasksche.exe (PID 1940):

Обратите внимание, на рисунке выше, PPID для пяти процессов — 1940 указывает, что они были запущены tasksche.exe.

Теперь нам нужно определить путь к папке, из которой выполняется процесс, а также используемые библиотеки.

Для этого мы используем плагин dlllist.

Смотрим дальше:

Если сделать то же самое для другого подозрительного процесса, @WannaDecryptor@ (PID 740), система покажет путь его выполнения и используемые dll.

Смотрим далее:

Показанные выше DLL-файлы говорят нам, на что способны подозрительные файлы.

Например, процесс @WannaDecryptor@ может выполнять следующие действия:

  • Создание сокета с использованием DLL-файла Ws2_32.dll.
  • Сетевое общение с использованием DLL-файла WININET.DLL.
  • Запросы в реестр с использованием DLL-файла ADVAPI32.DLL.
  • Шифрование с использованием DLL-файла SECURE32.DLL.
  • Взаимодействие браузера с использованием DLL-файла URLMON.DLL.

На данный момент, что было бы интересно сделать, это проверить дескрипторы файлов на предмет наличия новых лидов.

Мы сделаем это дальше.

Изучение файловых дескрипторов

Volatility позволяет аналитикам отображать маркеры в процессе.

Это можно сделать на всех защищаемых исполнительных объектах, таких как события, именованные каналы, ключи реестра и мьютексы. При просмотре ручек вы сможете увидеть доступ и его тип.

В приведенном выше примере вредоносного ПО WannaCry реализован мьютекс.

Цель этого мьютекса — предотвратить запуск нескольких экземпляров вредоносного ПО.

Авторы WannaCry использовали старый трюк, который создает мьютекс с именем «MsWinZonesCacheCounterMutexA».

Это можно увидеть с помощью команды, как показано ниже:

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

Следующая ключевая информация может быть полезна:

Затем мы можем извлечь значения ключей, которые используются для сохранения, с помощью плагина printkey.

Мы ищем через папки Run, Runonce, WinlogonKeys, BootExecuteKey, Startup и сервисные ключи.

В этом случае команда выглядит так:

На приведенном выше снимке экрана показано, что после запуска системы запускается файл tasksche.exe, чтобы сохранить постоянство.

Мы можем просмотреть дополнительную информацию о процессе, такую как созданный раздел реестра, используемые сетевые порты, запущенные потоки и многое другое.

Обнаружение и дамп скрытых DLL

Иногда, просматривая дескрипторы внутри процесса, вы можете обнаружить некоторые DLL-файлы, которые не будут видны с помощью плагина dlllist.

Например, kernel32.dll всегда загружается с каждым процессом, но, как видно ниже, есть нулевые дескрипторы.

В таких ситуациях, когда вы можете искать конкретные скрытые библиотеки, вы можете прибегнуть к использованию хуков API.

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

Вам нужно будет просмотреть этот код, чтобы определить местоположение скрытого DLL-файла, который вы ищете.

Дамп идентифицированной скрытой dll так же прост, как использование плагина dlldump.

Заключение

Volatility  является важным набором инструментов для аналитика безопасности.

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

Эта статья послужила базовым описанием возможностей Volatility.

Тем не менее, следует отметить, что можно сделать гораздо больше, чем показано в нашей статье.

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *