Модуль ядра LiME Forensics для необработанных снимков памяти

Необработанный доступ к памяти полезен при проведении криминалистической экспертизы данных или при взломе устройств. Иногда вам нужен снимок памяти, чтобы иметь возможность проанализировать, что происходит с заблокированными загрузчиками, получить снимок ячейки памяти, чтобы отследить ошибку или просто определить правильную ячейку памяти вашего Angry Птицы забивают. Здесь находится Linux Memory Extractor, также известный как Linux Memory Extractor. LiME Криминалистика, приходит в. LiME — это загружаемый модуль ядра, который позволяет получить доступ ко всему спектру памяти устройства. Как только модуль ядра загружается в память, он по сути делает снимок, что позволяет очень эффективно проводить отладку.

Я попросил Джо Сильве, автора LiME Forensics, объяснить преимущества LiME по сравнению с традиционными инструментами, такими как viewmem:

Чтобы ответить на ваши вопросы, эти инструменты были разработаны для разных целей. LiME предназначен для получения полного дампа физической структуры оперативной памяти для судебно-медицинского анализа или исследования безопасности. Он делает все это в пространстве ядра и может сбрасывать образ либо в локальную файловую систему, либо через TCP. Он создан для того, чтобы предоставить вам как можно более точную копию физической памяти, сводя при этом к минимуму ее взаимодействие с системой.

Похоже, что viewmem — это пользовательская программа, которая считывает диапазон адресов виртуальной памяти с устройства памяти, такого как /dev/mem или /dev/kmem, и выводит содержимое на стандартный вывод. Я не уверен, что он делает больше, чем просто использование dd на одном из этих устройств.

Это менее приемлемо в криминалистике по нескольким причинам. Прежде всего, использование /dev/mem и /dev/kmem постепенно прекращается, и все больше и больше устройств не поставляются с этими устройствами. Во-вторых, /dev/mem и /dev/kmem ограничивают чтение из первых 896 МБ ОЗУ. Кроме того, этот инструмент вызывает несколько переключений контекста между пользовательской областью и областью ядра для каждого прочитанного блока памяти и перезаписывает ОЗУ своими буферами.

Я бы сказал, что каждый инструмент имеет свое применение. Если вам просто нужно знать содержимое адреса, который находится в пределах первых 896 МБ ОЗУ, и ваше устройство имеет /dev/mem и /dev/kmem, и вас не волнует захват криминалистического образа, тогда viewmem (или dd) будет полезный. Однако LiME не был разработан специально для этого варианта использования.

Самая важная вещь для хакеров памяти заключается в том, что viewmem полагается на /dev/mem и /dev/kmem устройства. Поскольку /dev/mem и /dev/kmem устройства предоставляют прямой доступ к памяти устройства, они являются уязвимостью. Эти устройства Linux постепенно выводятся из эксплуатации, поскольку в последнее время они стали объектами многочисленных эксплойтов. LiME не только заменяет утилиту viewmem, но и делает ее лучше.

Производители принимают к сведению: блокируя функции, которые нужны разработчикам, вы способствуете разработке более совершенных инструментов.

Источник: LiME Криминалистика и интервью с автором Джо Сильве

[Изображение предоставлено: Презентация ЛиМЭ Джо Сильве]