The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск LKRG 1.0.0 для защиты от эксплуатации уязвимостей в ядре Linux

05.09.2025 08:20

Проект Openwall опубликовал модуль ядра LKRG 1.0.0 (Linux Kernel Runtime Guard), предназначенный для проверки целостности структур ядра и выявления попыток эксплуатации уязвимостей в ядре. Отмечается, что присвоение номера версии 1.0.0 ознаменовало достижение проектом зрелого состояния. Код проекта распространяется под лицензией GPLv2.

Модуль подходит как для защиты от атак, манипулирующих уже известными узявимостями в ядре Linux, так для противостояния эксплоитам, использующим ещё неизвестные уязвимости, если в них не применяются специальные меры для обхода LKRG. Защита основывается на выявлении несанкционированного внесения изменений в работающее ядро (проверка целостности) и отслеживании изменения полномочий пользовательских процессов (определение применения эксплоитов).

Проверка целостности выполняется на основе сравнения хэшей, вычисляемых для наиболее важных областей памяти и структур данных ядра, таких как IDT (Interrupt Descriptor Table), MSR, таблицы системных вызовов, все процедуры и функции, обработчики прерываний, списки загруженных модулей, содержимое секции ".text" модулей и атрибуты процессов. Процедура проверки активируется периодически по таймеру или при наступлении определённых событий в ядре, например, при выполнении системных вызовов setuid, setreuid, fork, exit, execve и do_init_module.

Определение возможного применения эксплоитов и блокирование атак производится на стадии до предоставления ядром доступа к ресурсам (например, до открытия файла), но после получения процессом несанкционированных полномочий (например, смена UID). При выявлении несанкционированного поведения процессов выполняется их принудительное завершение, чего достаточно для блокирования многих эксплоитов. Накладные расходы от работы модуля оцениваются в 2-2.5%.

Поддерживается работа на системах с архитектурами x86-64, AArch64 (ARM64), ARM32 и x86. Работа LKRG 1.0.0 протестирована с ядрами из различных дистрибутивов, начиная с ядра 3.10 из RHEL/CentOS 7 и заканчивая 6.17-rc4 из репозитория, в котором ведётся подготовка релиза Fedora 44. Пакеты доступны для дистрибутивов ALT Linux, Arch Linux, Astra Linux, Gentoo, Guix, NixOS, Rocky Linux, Whonix, Yocto и OpenBMC. Собранные для Rocky Linux пакеты можно использовать в RHEL 8/9 и производных дистрибутивах, таких как AlmaLinux 8/9, а пакеты для Whonix в Debian и Ubuntu.

Среди изменений в новой версии:

  • Обеспечена совместимость с ядрами Linux вплоть до выпуска 6.17-rc4.
  • При использовании с ядрами начиная с 6.13 прекращён перехват удалённых вызовов override_creds() и revert_creds(), что ограничило выявление атак, переопределяющих указатель cred. Ограничения попытались компенсировать через добавления проверок перезаписи указателя cred в других местах ядра.
  • Прекращено излишнее отслеживание учётных данных для которых не производится проверка целостности. Изменение позволило сократить кодовую базу примерно на 1500 строк.
  • Добавлена поддержка появившегося в ядре Linux 6.10 механизма для создания в ФС OverlayFS временных файлов, используя опцию O_TMPFILE (ovl_tmpfile). Указанная поддержка необходима для предотвращения ложных срабатываний, проявляющихся при использовании изолированных контейнеров на системах с ядрами 6.10-6.12.
  • Для систем x86_64 добавлена поддержка технологии Intel CET (Control-flow Enforcement Technology) для защиты исполняемого кода с использованием инструкций IBT (indirect branch tracking), а также программной защиты kCFI (kernel Control Flow Integrity) для блокирования нарушения нормального порядка выполнения (control flow) в результате применения эксплоитов, изменяющих хранимые в памяти указатели на функции.
  • Для подключения многих обработчиков вместо kretprobes задействован механизм kprobes, упрощающий код установки hook-ов и позволяющий добиться более высокой производительности.
  • Переработана работа с блокировками (lock) данных в ядре, специфичных для процесса (per-task shadow data). За счёт исключения лишних блокировок удалось повысить производительность обращения к подобным данным.
  • Устранены ошибки, приводившие к состоянию гонки, проблемам с проверкой целостности и ложным срабатываниям.
  • Улучшена поддержка сборки с использованием Clang.


  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Выпуск модуля LKRG 0.9.7 для защиты от эксплуатации уязвимостей в ядре Linux
  3. OpenNews: Проект Openwall подготовил модуль для защиты от эксплуатации уязвимостей в ядре Linux
  4. OpenNews: Проект OpenPaX развивает аналог механизмов защиты Grsecurity/PaX для ядра Linux
  5. OpenNews: Проект по продвижению в ядро Linux новых технологий активной защиты
  6. OpenNews: Проект grsecurity опубликовал реализацию механизма защиты RAP для ядра Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63827-lkrg
Ключевые слова: lkrg, kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (18) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:07, 05/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    сертификат фстек есть?
     
  • 1.2, Аноним (2), 09:12, 05/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Идея бредовая. Чтобы защитить квартиру, надо ставить железную дверь, а не датчик прохода через пустой дверной проем. Тем более, что датчик работает не всегда, а только по событиям вроде "слышу чей-то топот, напоминающий топот воров".
     
     
  • 2.4, Жироватт (ok), 09:26, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Бытовые аналогии тем и плохи, что не описывают ничего.
     
     
  • 3.5, Аноним (2), 09:46, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В новости все описано: сабж не защищает, а только фиксирует взлом. И работает он не всегда, а только по некоторым событиям. Это самый бредовый способ из всех. Навеяло вантузом и его антивирусами, которые с "проактивной усиленной защитой".
     
     
  • 4.9, Аноним (9), 10:19, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В новости все описано: сабж не защищает, а только фиксирует взлом.

    В новости все описано - эксплойт прибивается при попытке получения повышенных привилегий.
    То есть сабж защищает. Не на 100%, конечно, но так и не бывает.

     
     
  • 5.16, Аноним (2), 11:36, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > эксплойт прибивается при попытке получения повышенных привилегий

    Эксплоит НЕ прибивается, читай внимательнее: аффтар сабжа посчитал, что эксплоит ВСЕГДА пользуется сисколами вроде fork, exit etc. Это не так. Далее, допустим эксплоит вызвал такой сискол и изменил память ядра. Сабж просто _зафиксирует_, что такое изменение произошло, залогирует куда-нибудь пост-фактум и попытается завершить ОДИН ИЗ пидов эксплоита. Тот самый пид, который и вызвал сискол. Другие остаются в целости и сохранности! Я ж говорю: вантузомышление. Буду удивлен, если сабж сумеет предотвратить хотя бы 0.1% от всех атак на ядро. Правильная защита -- не пассивное наблюдение за памятью (за пустым дверным проемом без двери), а активная изоляция всего подряд (собственно установка двери).

    Вот серьезно. Поди к своему завцеха и скажи: "а давайте вместо того, чтобы не пускать в здание по неверному ключу -- мы просто ВПУСТИМ и залогируем ошибочность ключа. Но ВПУСТИМ.".

     
  • 3.6, Аноним (6), 09:46, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    И хороши тем, что можно не разбираться в вопросе, но выглядеть экспертом.
     
  • 2.7, 60260 (?), 09:52, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    тоже бредовая идея, не дверь а пулемет максима ставить на вход и перед всеми окнами. сто процентов гарантия!
     
     
  • 3.12, mfa (?), 11:07, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "сто процентов гарантия"
    Не против ручной гранаты, домашнего огнемёта, бодрящих газов...
     

  • 1.3, Аноним (3), 09:24, 05/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Жалко у rsbac супер хреново с документацией. Кажется, что самая лучшая модель защиты на стероидных плагинах. Особенно, на фоне selinux, которым поговаривают легко прострелить себе же ногу кривой настройкой.
    Если кто знает хорошую доку по rsbac - киньте пожалуйста.
     
  • 1.8, Аноним (8), 10:14, 05/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Убунта обновится не может.
     
  • 1.10, jura12 (ok), 10:24, 05/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ставил его предыдущие версии. после срабатывания компьютер загрузиться не может.
     
  • 1.11, Аноним (-), 11:02, 05/09/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Вот что бывает когда ядро дырявое by design.
    Приходится писать костылики, чтобы узнать что тебя взломали.
    Которые так не хило жрут проц.
     
     
  • 2.14, Аноним (14), 11:12, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот что бывает когда ядро дырявое by design

    А недырявых ядер у нас нет, сори.

     
     
  • 3.17, Аноним (17), 11:42, 05/09/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Зато микроядра есть, у QNX например.
     
  • 3.18, Аноним (-), 11:48, 05/09/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.13, Аноним (-), 11:08, 05/09/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру