Выпуск модуля LKRG 0.2 для защиты от эксплуатации уязвимостей в ядре Linux

Проект Openwall представил выпуск модуля ядра LKRG 0.2 (Linux Kernel Runtime Guard), нацеленного на выявление несанкционированного внесения изменений в работающее ядро (проверка целостности) или попыток изменения полномочий пользовательских процессов (определение применения эксплоитов). Об особенностях LKRG можно прочитать в первом анонсе проекта.

Основные изменения:

  • Добавлена возможность загрузки на ранних стадиях (например, из initramfs);
  • Добавлен sysctl lkrg.random_events для включения выполнения проверок целостности кода при наступлении случайных событий (если установлено значение 0, то проверка выполняется через регулярные интервалы времени, заданные в sysctl lkrg.timestamp);
  • Снижены накладные расходы. При полном запуске в полном режиме падение производительности составляет 2.5%, а при запуске без проверки целостности по случайным событиям — 0.7%. Для сравнения, в первом выпуске накладные расходы оценивались в 6.5%;
  • В коде проверки целостности устранена взаимная блокировка в функции get_online_cpus (), проявляющаяся при сборке ядра с опцией CONFIG_PREEMPT_VOLUNTARY=y;
  • Устранено ложное срабатывание проверки целостности, возникающая при определённом стечении обстоятельств из-за механизма *_JUMP_LABEL;
  • Устранено ложное срабатывание определения эксплоитов в ситуации, когда ядро запускает вспомогательные исполняемые файлы в пользовательском режиме.

© OpenNet