01.12.2021

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

Проект 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 и состоявшейся тогда дискуссии.

Источник.