Выпущен Linux Kernel Runtime Guard 1.0

Linux Kernel Runtime Guard достигает версии 1.0 спустя 7 лет, обеспечивая поддержку ядра 6.17, исправления ошибок, улучшения производительности и очистку кода.
Linux Kernel Runtime Guard (LKRG — https://lkrg.org/), поддерживаемый в рамках проекта Openwall, официально достиг версии 1.0, спустя более семи лет после его первого публичного выпуска в 2018 году.
Если вы не знакомы с LKRG, это модуль ядра, который выполняет функцию уровня безопасности ядра Linux. Его основная задача — следить за работой ядра и выявлять всё, что выглядит подозрительным или небезопасным.
Например, если злоумышленник попытается воспользоваться уязвимостью ядра, перезаписав учётные данные ядра или изменив память ядра, LKRG может обнаружить это поведение. При обнаружении чего-либо необычного LKRG может зарегистрировать это в журнале, завершить вредоносный процесс или принять другие защитные меры в зависимости от конфигурации.
Другими словами, LKRG не заменяет другие функции безопасности, такие как SELinux или AppArmor, а дополняет их, добавляя проверки на уровне ядра. Вернёмся к теме.
Между версиями 0.9.9 и 1.0 было внесено несколько важных изменений. LKRG теперь поддерживает новейшие основные ядра Linux, протестированные до версии 6.17-rc4. Изменения были внесены для Linux 6.13 и более поздних версий, включая удаление хуков для override_creds()
и revert_creds()
, а также расширение проверок перезаписи указателей учётных данных в других местах для старых ядер.
Также была улучшена совместимость с OverlayFS, в частности, для предотвращения ложных срабатываний при запуске контейнеров в версиях 6.10–6.12. Кроме того, кодовая база стала компактнее: теперь её объём примерно на 2400 строк меньше, чем раньше.
Что касается производительности, поиск теневых данных для каждой задачи теперь не требует блокировок, а сама блокировка теневых данных была переработана с использованием более мелких блокировок. Многие хуки были перенесены с kretprobes на kprobes, что повысило надежность и скорость, а также сократило дублирование кода. Проверки нарушений целостности были перенесены в unlikely()
, что позволило очистить горячие пути от ненужного кэша.
Кроме того, LKRG 1.0 исправляет несколько состояний гонки, в том числе связанных с фильтрами SECCOMP, валидацией пространства имён и изменениями sysctl. Также были устранены ложные срабатывания, связанные с повреждением режима seccomp в новых ядрах. Кроме того, LKRG улучшил совместимость с Intel CET IBT и Clang KCFI на архитектуре x86_64, хотя официально поддерживаемым компилятором остаётся GCC.
Другие заметные обновления включают в себя улучшенные сборки для пользовательских инструментов логирования LKRG, улучшенную систему отчётности об ошибках и корректировку тестирования непрерывной интеграции. По словам разработчиков, теперь тесты охватывают Fedora с последними основными ядрами, Ubuntu с 24.04 LTS по 25.10 и устаревшую CentOS 7, несмотря на окончание её поддержки.
Обновлённые пакеты уже доступны в репозитории Rocky Linux SIG/Security, а сборки для Rocky Linux 9.6 и 8.10 будут выпущены в ближайшее время. Эти пакеты также совместимы с другими дистрибутивами Enterprise Linux, включая AlmaLinux и RHEL 8/9.
Более подробную информацию смотрите в объявлении .
Редактор: AndreyEx