Выпуск модуля LKRG 0.7 для защиты от эксплуатации уязвимостей в ядре Linux
Проект Openwall опубликовал выпуск модуля ядра LKRG 0.7 (Linux Kernel Runtime Guard), обеспечивающего выявление несанкционированного внесения изменений в работающее ядро (проверка целостности) или попыток изменения полномочий пользовательских процессов (определение применения эксплоитов). Модуль подходит как для организации защиты от уже известных эксплоитов для ядра Linux (например, в ситуациях когда в системе проблематично обновить ядро), так и для противостояния эксплоитам для ещё неизвестных уязвимостей. Об особенностях LKRG можно прочитать в первом анонсе проекта.
Среди изменений в новой версии:
- Проведён рефакторинг кода для обеспечения поддержки различных архитектур CPU. Добавлена начальная поддержка архитектуры ARM64;
- Обеспечена совместимость с ядрами Linux 5.1 и 5.2, а также ядрами, собранными без включения при сборке ядра опций CONFIG_DYNAMIC_DEBUG, CONFIG_ACPI и CONFIG_STACKTRACE, и с ядрами собранными с опцией CONFIG_STATIC_USERMODEHELPER. Добавлена экспериментальная поддержка ядер от проекта grsecurity;
- Значительно изменена логика инициализации;
- В подсистеме проверки целостности повторно включено самохэширование (self-hashing) и устранено состояние гонки в движке меток перехода (*_JUMP_LABEL), приводящее к взаимной блокировке при инициализации одновременно с событиями загрузки или выгрузки других модулей;
- В коде определения применения эксплоитов добавлены новые sysctl lkrg.smep_panic (по умолчанию включен) и lkrg.umh_lock (по умолчанию выключен), добавлены дополнительные проверки бита SMEP/WP, изменена логика отслеживания новых задач в системе, переработана внутренняя логика синхронизации с ресурсами задач, добавлена поддержка OverlayFS, помещён в белый список Ubuntu Apport.
© OpenNet