поиск по сайту
Методы создания копии состояния оперативной памяти.

Д. В. Угаров

Методы создания копии состояния оперативной памяти.

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

Реализация данного функционала является технически сложной задачей. Необходимо быть уверенным в том, что учтены все области, связанные с процессом, и не упущены специфические (в том числе недокументированные) механизмы исполняющей среды. Например, системный вызов, изменяющий размер области отображения (при этом перемещающий ее при необходимости), или кэширование данных операционной системой. Именно поэтому недостаточно проверять выборочные области оперативной памяти, необходимо анализировать полную копию оперативной памяти используемой среды.

Рассмотрим используемые в настоящее время способы получения копии оперативной памяти:

  • Программные средства (например, дополнительный модуль ядра в испытуемой среде или live cd дистрибутив с утилитами создания копии памяти).
  • Физическое изъятие оперативной памяти (требует замораживания)
  • Непосредственный доступ к памяти. PCI или FireWire устройства использующие технологию DMA (Direct Memory Access).

К сожалению, процесс, работающий внутри системы, изменяет и состояние оперативной памяти в ней. По этой причине, несмотря на существующие пути получения прямого доступа к оперативной памяти из исполняемой среды, вариант использования программных средств не является приемлемым. Для получения корректных результатов необходимо внешнее воздействие на систему. Остальные два подхода, хотя и позволяют достичь требуемых результатов, все же требуют значительных затрат на приобретение/разработку дорогостоящих устройств. А это отталкивает львиную долю исследователей в данной области.

В результате, в настоящее время не было предложено простых методик, позволяющих получить полную копию оперативной памяти для анализа, что в свою очередь сильно тормозит прогресс в данной области. По этой причине необходим новый подход, упрощающий данную процедуру. Основой для такого подхода может выступить технология виртуализации. Внешнее воздействие по отношению к виртуальной машине (ВМ) может обеспечить гипервизор (рис.1), т.к. он осуществляет управление ее ресурсами.

Рис.1. иерархия в виртуальной инфраструктуре

При таком подходе необходимо понимать, что оперативную память для ВМ выделяет гипервизор. Поэтому возможны ситуации, в которых ВМ уже в момент старта содержит в памяти мусор, что приведет к некорректным результатам. Чтобы избежать этого, требуется проверка выбранного гипервизора на предмет предварительной очистки предоставляемой для ВМ области оперативной памяти. Такая проверка возможна благодаря функции nested virtualization, позволяющей создать конфигурацию, в которой гипервизор, работающий на физическом оборудовании, имеет в качестве ВМ такой же гипервизор. Если же требуемые очистки не выполняются, после каждого опыта необходимо будет перезагружать физическое оборудование.

Одним из гипервизоров, удовлетворяющих указанному критерию, является ESXi. При старте ВМ он предоставляет ей обезличенную область памяти, а так же перед выделением каждой дополнительной страницы памяти производит ее обнуление. Для получения полной копии оперативной памяти с использованием данного гипервизора, достаточно приостановить выполнение ВМ (перевести в состояние suspend). В таком случае ESXi сохранит состояние памяти в виде файла с расширением «vmss». Для поиска паттернов, оставленных утилитами анализа, достаточно воспользоваться встроенной утилитой гипервизора, вызвав команду cat /<путь к папке вм>/<имя_вм>.vmss | grep <паттерн для поиска>.

Учитывая простоту решения, а так же факт существования ESXi в бесплатной редакции, можно заключить, что данный подход найдет широкое применение среди разработчиков СЗИ. Также необходимо отметить, что указанный механизм может быть расширен для анализа других элементов. Например, для анализа внешней памяти.


ФорумФорум
Форум ОКБ САПР
Вопросы специалистовВопросы специалистов
Вопросы, которые нам присылают, и наши ответы на них