После более чем семи лет разработки модуль безопасности Linux Kernel Runtime Guard (LKRG), поддерживаемый проектом Openwall, официально достиг версии 1.0. Первоначальный релиз состоялся в 2018 году, и с тех пор LKRG прошёл значительный путь развития.
Что такое Linux Kernel Runtime Guard (LKRG)
LKRG предназначен для обнаружения попыток эксплуатации уязвимостей ядра. К примеру, если злоумышленник пытается изменить учетные данные ядра или переписать его память, LKRG способен обнаружить такую активность. При обнаружении аномалий модуль может регистрировать событие, завершать процесс-нарушитель или применять иные защитные меры в соответствии с настройками. Важно отметить, что LKRG не заменяет существующие средства безопасности, такие как SELinux или AppArmor, а дополняет их, вводя дополнительные проверки на уровне ядра.
Основные изменения между версиями 0.9.9 и 1.0
Стабильный релиз включает поддержку последних версий основного ядра Linux, протестированных до 6.17-rc4. Внесены изменения для совместимости с ядрами начиная с версии 6.13, включая удаление хуков override_creds() и revert_creds(), а также расширение проверок перезаписи указателей на учетные данные в других участках кода для более старых версий ядра.
Улучшена совместимость с OverlayFS, что позволило избежать ложных срабатываний при работе контейнеров на ядрах 6.10–6.12. Кодовая база была оптимизирована — удалено около 2400 строк, что повысило читаемость и упростило сопровождение.
Повышение производительности и надёжности
В новой версии реализованы безблокировочные запросы теневых данных задач, а механизм блокировки теневых данных переработан с использованием более тонкой грануляции. Значительное число хуков было переведено с kretprobes на kprobes, что улучшило стабильность и скорость работы, а также сократило дублирование кода. Проверки целостности теперь обёрнуты в unlikely(), что позволило избежать загрязнения кэша в горячих участках.
Исправления ошибок и расширение совместимости
LKRG 1.0 устраняет ряд гонок, включая проблемы с фильтрами SECCOMP, проверкой пространств имён и изменениями sysctl. Устранены ложные срабатывания, связанные с повреждением режима seccomp на новых ядрах. Повышена совместимость с Intel CET IBT и Clang KCFI на архитектуре x86_64, при этом GCC остаётся официально поддерживаемым компилятором.
Дополнительные улучшения
Обновлены инструменты логирования в пользовательском пространстве — сборки стали более защищёнными. Улучшена система отчётности об ошибках и внесены изменения в CI-тестирование. По словам разработчиков, тестирование теперь охватывает Fedora с последними версиями ядра, Ubuntu 24.04 LTS до 25.10, а также устаревший CentOS 7, несмотря на завершение его жизненного цикла.
Доступность пакетов
Обновлённые пакеты уже размещены в репозитории Rocky Linux SIG/Security. В ближайшее время ожидается выпуск сборок для Rocky Linux 9.6 и 8.10. Пакеты совместимы с другими корпоративными дистрибутивами Linux, включая AlmaLinux и RHEL 8/9.
Linux: обзоры и обновления
• Вышел LKRG 1.0: модуль безопасности ядра Linux получил стабильную версию и обновленные пакеты
• Linux Desktop: фрагментация угрожает росту популярности
• Debian 13.1: Обновление стабильной версии Trixie с исправлениями безопасности
• KDE Linux: альфа-релиз официального дистрибутива с Plasma и Arch Linux
• В Linux 6.17 улучшена производительность EXT4: первые результаты тестирования
• SteamOS 3.7.15 Beta: исправления проблем, обновления безопасности и улучшения для Asus ROG Ally и Lenovo Legion Go