LiME Forensics Kernel Module за необработени моментни снимки на паметта

Необработеният достъп до паметта е полезен при извършване на криминалистика на данни или при хакване на устройства. Понякога се нуждаете от моментна снимка на паметта, за да можете да анализирате какво се случва със заключени зареждащи програми, вземете моментна снимка на място в паметта, за да проследите грешка или просто да разберете правилното място в паметта на вашия Angry Резултат от птици. Това е мястото, където Linux Memory Extractor, a.k.a. Криминалистика на LiME, влиза. LiME е зареждаем модул на ядрото, който ви позволява достъп до пълния набор от памет на устройството. Веднага след като модулът на ядрото се зареди в паметта, той основно прави моментна снимка, което позволява много ефективно отстраняване на грешки.

Помолих Джо Силве, автора на LiME Forensics, да обясни предимствата на LiME пред традиционните инструменти като viewmem:

За да отговорят на вашите въпроси, инструментите са проектирани с различни цели. LiME е проектиран да придобие пълно изхвърляне на оформлението на физическата памет на RAM за криминалистичен анализ или изследване на сигурността. Той прави всичко в пространството на ядрото и може да изхвърли изображение или в локалната файлова система, или през TCP. Той е проектиран да ви даде възможно най-близко копие на физическата памет, като същевременно минимизира нейното взаимодействие със системата.

Изглежда, че viewmem е потребителска програма, която чете диапазон от адреси на виртуална памет от устройство с памет, като /dev/mem или /dev/kmem, и отпечатва съдържанието на stdout. Не съм сигурен, че прави повече от простото използване на dd на едно от тези устройства.

Това е по-малко приемливо в криминалистиката поради няколко причини. На първо място, /dev/mem и /dev/kmem постепенно се премахват и все повече и повече устройства не се доставят с тези устройства. Второ, /dev/mem и /dev/kmem ви ограничават до четене от първите 896MB RAM. Освен това инструментът причинява няколко контекстни превключвания между потребителска област и ядро ​​за всеки прочетен блок от паметта и презаписва RAM с нейните буфери.

Бих казал, че всеки инструмент има своята употреба. Ако просто трябва да знаете съдържанието на адрес, който е в рамките на първите 896MB RAM и вашето устройство има /dev/mem и /dev/kmem и не ви е грижа за заснемането на криминалистично добро изображение, тогава viewmem (или dd) ще бъде полезен. LiME обаче не е проектиран специално за този случай на употреба.

Най-важното нещо за вас, хакерите на паметта, е, че viewmem разчита на /dev/mem и /dev/kmem устройства. Тъй като /dev/mem и /dev/kmem устройства позволяват директен достъп до паметта на устройството, те са уязвимост. Тези устройства с Linux постепенно се премахват, тъй като напоследък са били обект на множество експлойти. LiME не само замества помощната програма viewmem, но го прави по-добре.

Производителите вземат под внимание: като заключвате функциите, които разработчиците искат, вие насърчавате разработването на по-добри инструменти.

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

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