Проект Openwall опубликовал выпуск модуля ядра LKRG 0.9.0 (Linux Kernel Runtime Guard), предназначенного для выявления и блокирования атак и нарушений целостности структур ядра. Например, модуль может защитить от несанкционированного внесения изменений в работающее ядро и попыток изменения полномочий пользовательских процессов (определение применения эксплоитов). Модуль подходит как для организации защиты от эксплоитов уже известных уязвимостей ядра Linux (например, в ситуациях когда в системе проблематично обновить ядро), так и для противостояния эксплоитам для ещё неизвестных уязвимостей. Код проекта распространяется под лицензией GPLv2.
Среди изменений в новой версии:
- Обеспечена совместимость с ядрами Linux с 5.8 по 5.12, а также со стабильными ядрами 5.4.87 и новее (включающими нововведения из ядер 5.8 и новее) и с ядрами из версий RHEL вплоть до 8.4, с сохранением поддержки и всех ранее поддерживаемых версий ядер, таких как ядра из RHEL 7;
- Добавлена возможность сборки LKRG не только как внешнего модуля, но и в составе дерева ядра Linux, в том числе его включения в образ ядра;
- Добавлена поддержка многих дополнительных конфигураций ядра и системы;
- Исправлено несколько существенных ошибок и недоработок в LKRG;
- Существенно упрощена реализация некоторых компонентов LKRG;
- Внесены изменения для упрощения дальнейшей поддержки и отладки LKRG;
- Для тестирования LKRG, добавлена интеграция с out-of-tree и mkosi;
- Репозиторий проекта перенесен с BitBucket на GitHub и добавлена непрерывная интеграция с использованием GitHub Actions и mkosi, включая проверку сборки и загрузки LKRG в ядра релизов Ubuntu, а также в предоставляемые проектом Ubuntu ежедневные сборки свежайших mainline-ядер.
В данную версию LKRG непосредственный вклад (через pull requests на GitHub) внесло несколько разработчиков, ранее не принимавших участие в проекте. В частности, так Борисом Лукашевым была добавлена возможность сборки в составе дерева ядра Linux, а Виталием Чикуновым из ALT Linux – интеграция с mkosi и GitHub Actions.
В целом, несмотря на существенные дополнения, количество строк кода LKRG немного сокращается второй раз подряд (ранее оно также сократилось между версиями 0.8 и 0.8.1).
На данный момент, пакет с LKRG в Arch Linux уже обновлен до версии 0.9.0, а ряд других пакетов используют недавние git-версии LKRG и, вероятно, скоро также обновятся до версии 0.9.0 и далее.
Дополнительно можно отметить недавнюю публикацию от разработчиков ОС Аврора (российской модификации Sailfish OS) о возможном усилении LKRG с помощью ARM TrustZone.
Подробнее о LKRG см. в анонсе версии 0.8 и состоявшейся тогда дискуссии.