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

Необроблений доступ до пам’яті корисний під час аналізу даних або злому пристроїв. Іноді вам потрібен знімок пам’яті, щоб мати можливість проаналізувати, що відбувається із заблокованими завантажувачами, отримайте знімок місця в пам'яті, щоб відстежити помилку або просто визначити правильне місце в пам'яті вашого Angry Оцінка птахів. Ось де Linux Memory Extractor, a.k.a. Криміналістика LiME, заходить. LiME — це завантажуваний модуль ядра, який дозволяє отримати доступ до повної пам’яті пристрою. Щойно модуль ядра завантажується в пам’ять, він, по суті, робить знімок, що забезпечує дуже ефективне налагодження.

Я попросив Джо Сільве, автора LiME Forensics, пояснити переваги LiME перед традиційними інструментами, такими як viewmem:

Щоб відповісти на ваші запитання, інструменти були розроблені для різних цілей використання. LiME розроблено для отримання повного дампа компонування фізичної пам’яті RAM для криміналістичного аналізу або дослідження безпеки. Він робить все це в просторі ядра і може скинути образ або в локальну файлову систему, або через 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 І інтерв'ю з автором Джо Сільве

[Кредит зображення: Презентація LiME від Джо Сільве]