После более чем семи лет разработки модуль безопасности 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: обзоры и обновления
• Intel Ethernet Adapter Complete Driver Pack 31.2.1: поддержка Ubuntu 26.04 LTS, FreeBSD 14.4, Red Hat Enterprise Linux 10.2 и 9.8
• В этом году KDE исполняется 30 лет – и проект просит поддержки пользователей
• SteamOS 3.8.7 Beta: поддержка портативных игровых консолей на базе Intel
• Valve: Steam Machine и Steam Frame выйдут летом 2026 года
• Опрос Steam за май 2026: геймеры выбирают Windows 11, доля Linux снизилась до 3,99%
• KDE Plasma 6.8 окончательно отказывается от X11: остаётся только Wayland