После более чем семи лет разработки модуль безопасности 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: обзоры и обновления
• Ubuntu предупредила о замедлении AMD в 42 раза в ядре 7.0.0-28.28
• Proton Experimental восстановил запуск Diablo IV и Marvel Rivals на Linux
• Windows 11 против Fedora KDE: в играх быстрее Windows, в рабочих задачах – Linux
• Valve выпустила SteamOS 3.8.15 Stable и 3.8.23 Beta: исправлено падение производительности Steam Deck в стабильной версии
• Торвальдс заявил, что ядро Linux не относится к анти-ИИ-проектам
• Valve добавила в Steam раздел «Отлично на Machine» для владельцев Steam Machine