Анализ сжатой памяти в Windows 10

Анализ памяти в Windows 10 сильно отличается от предыдущих версий Windows: новая функция, называемая сжатием памяти, делает необходимым инструмент судебной экспертизы, способный считывать сжатые страницы памяти.

Сжатие памяти в Windows 10

Последние выпуски Windows 10 включают функцию сжатия памяти, которая способна уменьшить использование памяти путем сжатия некоторых страниц памяти с использованием алгоритма Xpress и сохранения их в так называемом хранилище сжатия (эти страницы распаковываются обратно в исходную форму, когда они нужны)

Сжатие памяти в Windows 10 представляет собой существенное развитие в дизайне менеджера памяти: оно повышает производительность системы за счет более эффективного использования физической памяти, но является более сложным, чем предыдущие системы Windows, и в настоящее время публично не документировано.

Анализ дампов памяти Windows 10

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

К счастью, команда FireEye FLARE создала пользовательскую версию волатильности с конкретными изменениями для чтения сжатой памяти Windows 10:

Чтобы обеспечить более полный анализ памяти в Windows 10, команда FLARE в FireEye проанализировала диспетчер памяти операционной системы, а также алгоритмы и структуры, используемые для извлечения сжатой памяти. Память, которую мы ищем, хранится в виртуальном хранилище, созданном компонентом ядра Store Manager. Менеджер магазина отвечает за управление данными, участвующими в системах оптимизации производительности, включая SuperFetch, ReadyBoost и ReadyDrive. В этом случае виртуальное хранилище — это объект с поддержкой оперативной памяти, использующий пространство памяти в MemCompression.exe для сжатых данных процессов. Результаты этого исследования были перенесены как в Volatility, так и в Rekall, чтобы принести пользу сообществу безопасности.

Для того, чтобы иметь дело с отсутствующими данными из — за сжатые страницы, FLARE команда FireEye создала несколько дополнений к Волатильность и Rekall для поддержки сжатия памяти для Windows 10. В первую очередь мы добавили необходимые оверлеи


Оверлей описывает внутренние структуры данных, используемые алгоритмом сжатия памяти Windows 10, и делает их доступными в Python. Например, наложения определяют макет структуры SMKM_STORE и деревья B +, используемые для поиска сжатых страниц.

Недокументированные структуры Windows, определенные в наложениях, основаны на информации, полученной нами при анализе различных версий Windows 10. Будучи недокументированными, эти структуры подвержены изменениям во всех сборках Windows и даже в ревизиях. В настоящее время мы поддерживаем версии 1607, 1703, 1709, 1803 и 1809 как для 32-разрядных, так и для 64-разрядных архитектур. Для поддержки дополнительных версий необходимо проанализировать структуру структур и соответствующим образом обновить наложения.

https://www.fireeye.com/blog/threat-research/2019/07/finding-evil-in-windows-ten-compressed-memory-part-one.html

Скачать Volatility можно здесь: https://github.com/fireeye/win10_volatility

По мотивам