<H1><b>Анализатор памяти офлайн: используем Memoryze для исследования системы и поиска малвари.</b></H1>
<H2><b><u>1. Что такое Memoryze?</H2></u></b>
<text>
Большинство утилит для поиска малвари анализируют систему в режиме live, то есть во время ее работы. Но мало кто знает о существовании программ, которые, помимо прочего, способны выполнять так называемые офлайн-исследования, позволяя отыскать зло в памяти компьютера, когда к тому нет доступа или он вообще выключен. Некоторое время назад я открыл для себя новый способ поиска малвари, которым с тех пор эффективно пользуюсь. По правде говоря, основным назначениемприменяемого инструмента является вовсе не поиск руткитов, а комплексный анализ памяти. Но так получилось, что включенные в него техники идеально подходят для того, чтобы отыскать хорошо затаившуюся в системе малварь.
Помимо основной категории продуктов, предназначенных для глубокого изучения дисковых накопителей, широко используются также решения для анализа оперативной памяти. Такие исследования выделяют в особый вид экспертиз — Memory Forensic. Некоторые из приложений (и в том числе Memoryze) умеют не только выполнять исследование "живой" системы, но и анализировать образ памяти, в который заблаговременно было помещено все содержимое оперативной памяти компьютера. Это дает большой простор для деятельности. Имея такой образ, ничто не мешает позже разобраться, какие приложения запущены в системе (на момент создания дампа, разумеется) или, например, с какими хостами взаимодействуют интересующие нас процессы. Ну и само собой, это еще и отличный способ для поиска малвари. Можно сделать дамп на проблемной машине и далее на своем собственном компьютере без каких-либо неудобств разбираться, какая ерунда загружена в памяти. Тут надо понимать, что в образ помещается все содержимое памяти, которое считывает и анализирует специальный парсер. И какими бы продвинутыми методиками для сокрытия активных процессов и драйверов не пользовалась малварь, их присутствие обязательно будет отражено в дампе.
</text>
<H2>
<b><u>
2. Что такое Memoryze?
</u></b>
</H2>
<text>
Программу Memoryze в кругах компьютерных криминалистов знают не понаслышке.
<br><br>Это мощнейшее средство анализа памяти для многих стало частью джентльменского набора, настоящей программой must have, которая не просто лежит про запас для подходящего случая, а действительно часто используется. Ее создателями являются Джэми Батлер и Питер Силбермэн, два маньяка-хардкорщика в области анализа памяти и малвари. Ты можешь прямо сейчас сказать им спасибо, потому что они не только разработали замечательный инструмент, но еще и делятся им совершенно бесплатно. Дистрибутив доступен для загрузки из раздела с фриварными программами
компании Mandiant.
Что мы можем получить, используя Memoryze:
<ul>
<li>Полныйполный образ всего диапазона системной памяти (без использования API-вызовов),сохраненный в файл для дальнейшего анализа;
<li>Дамп адресного пространства любого процесса, включая список загруженных DLL и EXE, кучу и стэк (этот дамп можно дальше исследовать в дизассемблере); образ всех загруженных драйверов или некоторых из них;
<li>полныйполный список всех процессов, включая те, что спрятаны руткитами, причем для каждого процесса есть возможность определить все хэндлы (например, используемых файлов или ключей реестра), сетевые сокеты, импортируемые и экспортируемые функции и так далее;
<li>все строковые переменные, используемые процессами;
<li>полный список всех драйверов, в том числе те, которые маскируются малварью;
<li>перечень всех модулей ядра;
перечисление всех установленных хуков (они часто используются малварью);
и многое другое.
</ul>
Вообще, когда говорят о Memoryze, чаще всего имеют в виду не одну, а две утилиты: консольную Memoryze и GUI-приложение Audit Viewer. Они тесно связаны между собой. Memoryze создает дамп и парсит различные структуры, чтобы извлечь интересующие данные. Но работать в консоли не сильно удобно, поэтому в связке используется другая утилита — Audit Viewer, которая позволяет работать с извлеченными данными через удобный интерфейс. Таким образом можно узнать все о том, что в момент создания образа было запущено в системе.
<br><br>
В некоторых ситуациях очень удобно иметь программу при себе, поэтому ее лучше всего разместить на флешку достаточного объема, чтобы туда поместился еще и сграбленный дамп памяти. К счастью, утилита из коробки является portable, и установить ее можно прямо из командной строки:
<code>>> msiexec /a MemoryzeSetup.msi /qb TARGETDIR=путь_до_флешки_и_папки_на_ней</code>
Не лишним будет записать на флешку и файлы Audit Viewer’а, чтобы сразу иметь возможность проанализировать полученный дамп или вообще выполнить "живое" исследование системы.
</text>
<h2>
<b><u>
3. Создаём образ памяти
</b></u>
</h2>
<text>
Теперь, когда все приготовления завершены, попробуем программу в деле. Как я уже говорил, Memoryze работает из командной строки. Но для большего удобства с программой поставляют несколько batch-скриптов для выполнения наиболее типичных задач.
<br><br>
Так, для получения образа с полным содержанием оперативной памяти есть
сценарий MemoryDD.bat, его-то мы и будем использовать. После запуска он генерирует конфиг c настройками и выполняет memoryze.exe с нужными параметрами:
<code>cd "C:\Program Files (x86)\MANDIANT\Memoryze"<br>
>MemoryDD.bat</code>
После выполнения команды есть два варианта: программа успешно создаст дамп с памятью или у нее ничего не выйдет. Последнее очень вероятно. Дело в том, что
для работы Memoryze использует kernel-mode драйвер, предоставляющий программе прямой доступ к памяти. Нет драйвера – нет дампа. Есть несколько причин, по которым драйвер не сможет загрузиться, но в первую очередь — из-за отсутствия прав администратора. Поэтому убедись, что запускаешь ее из рутовой командной строки. Другая распространенная причина — антивирус, который может препятствовать прямому обращению к памяти. Возможно, что на время его придется отключить. Если все пройдет успешно, полученный дамп будет сохранен в папке с выходными результатами (по умолчанию в папке с Memoryze/Audits). Структура каталога устроена таким образом, чтобы повторные выполнения процедуры не перезаписывали ранее полученные образы. Так что всегда легко определить, на каком компьютере и когда был создан образ.
<br>
Например, в файле Issues.memory мы можем посмотреть ошибки, выведенные в процессе исполнения скрипта. Скрипт вывел множество ошибок в процессе выполнения.

</text>
<h2><b><u>4. Анализируем дамп</u></b></h2>
<text>
Для анализа и просмотра образа памяти, как я уже сказал, используется другая утилита — Audit Viewer. Причем содержание оперативной памяти необязательно должно быть сдамплено с помощью Memoryze. Гораздо большее значение имеет операционная система, на которой создавался образ. Причиной тому являются структуры памяти, которые могут значительно отличаться от одной версии операционной системы к другой. В некоторых случаях даже один установленный (или, наоборот, неустановленный) патч может влиять на возможность выполнить анализ данных. Анализатор может парсить только структуры известной ему ОС. Поэтому, прежде чем говорить, что Memoryze и Audit Viewer не работают, необходимо убедиться, что ты не пытаешься выполнить анализ неподдерживаемой системы (например, Windows XP SP1). К счастью, для внушительного списка ОС все должно без проблем получиться:
<ul>
<li>Windows 2000 Service Pack 4 (32-bit);</li
<li>Windows XP Service Pack 2 and Service Pack 3 (32-bit);</li>
<li>Windows Vista Service Pack 1 and Service Pack 2 (32-bit);
</li>
<li>Windows 2003 Service Pack 2 (32-bit);
</li>
<li>Windows 2003 Service Pack 2 (64-bit);</li>
<li>Windows 7 Service Pack 0 (32-bit);
</li>
<li>Windows 7 Service Pack 0 (64-bit);
</li>
<li>Windows 2008 Service Pack 1 and Service Pack 2 (32-bit);
</li>
<li>Windows 2008 R2 Service Pack 0 (64-bit).</li>
</ul>
<br>
Для анализа дампа нам нужно использовать какой-либо интерфейс. Например, Redline от той же компании Mandiant (FireEye).
<br>
Выбираем Analyze Data From a Saved Memory File.

Выбираем Analyze Data From a Saved Memory File.
<br>

В этом окне можно задать настройки анализа

В конечном счёте мы получаем такую таблицу
Мы можем просмотреть отдельно хуки, драйверы, порты и т.п.
</text>
<h2>
<b><u>
5. Другие скрипты
</u></b>
</h2>
<text>
<ul>
<li>
Попробуем выполнить скрипт DriversSearch
</li>
</ul>
<code>> DriversSearch.bat</code>

Получаем информацию о драйверах на компьютере
<code>> HookDetection.bat
</code>

</text>