Релиз LKRG 1.0.0 (Linux Kernel Runtime Guard) для защиты от эксплуатации уязвимостей в ядре Linux
Состоялся первый мажорный выпуск модуля ядра LKRG 1.0.0 (Linux Kernel Runtime Guard). Проект предназначен для проверки целостности структур ядра Linux и выявления попыток эксплуатации уязвимостей в ядре Linux. Команда Openwall, которая занимается разработкой решения, пояснила, что присвоение номера версии 1.0.0 ознаменовало достижение проектом зрелого состояния. Исходный код проекта написан на C и опубликован на GitHub под лицензией GPLv2.
По информации OpenNET, модуль LKRG подходит как для защиты от атак, манипулирующих уже известными уязвимостями в ядре Linux, так и для противостояния эксплоитам, использующим ещё неизвестные уязвимости, если в них не применяются специальные меры для обхода LKRG. Защита основывается на выявлении несанкционированного внесения изменений в работающее ядро (проверка целостности) и отслеживании изменения полномочий пользовательских процессов (определение применения эксплоитов).
Проверка целостности в LKRG выполняется на основе сравнения хэшей, вычисляемых для наиболее важных областей памяти и структур данных ядра, таких как IDT (Interrupt Descriptor Table), MSR, таблицы системных вызовов, все процедуры и функции, обработчики прерываний, списки загруженных модулей, содержимое секции «.text» модулей и атрибуты процессов. Процедура проверки активируется периодически по таймеру или при наступлении определённых событий в ядре, например, при выполнении системных вызовов setuid, setreuid, fork, exit, execve и do_init_module.
Определение возможного применения эксплоитов и блокирование атак в LKRG производится на стадии до предоставления ядром доступа к ресурсам (например, до открытия файла), но после получения процессом несанкционированных полномочий (например, смена UID). При выявлении
Читать на habr.com