Linux Kernel Runtime Guard v0.6

Linux Kernel Runtime Guard (LKRG) ― это экспериментальный модуль ядра, обеспечивающий контроль целостности и обнаружение работы эксплоитов, направленных на пространство ядра.

Изменения с предыдущей версии:

  • [CI] Защита изменения бита SMEP в регистре CR4 и бита WP в регистре CR0 на архитектуре x86.
  • [CI] Переработана поддержка *_JUMP_LABEL: теперь реализация значительно проще и использует меньше оперативной памяти.
  • [CI] При неуспешном завершении kzalloc () теперь будет ошибка.
  • [ED] Изначальная реализация pCFI (poor man«s Control Flow Integrity aka «защита потока исполнения для бедных») для защиты от перехода на удобные для использования в эксплуатации функции.
  • [ED] Белые списки для интерфейса usermodehelper (вызов утилит пользовательского пространства из ядра).
  • [ED] Исправлены ошибки первого рода на неуспешном завершении seccomp (SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC, …), где должен был происходить возврат всех изменений в структурах потоков, но этого не было сделано (но делается теперь).
  • [ED] Во избежание ошибок первого рода во время инициализации теперь замораживаются все пользовательские процессы.
  • [ED] Небольшие изменения в работе SIGKILL для задач с нарушенной целостностью.
  • Исправлены ошибки сборки на Linux 4.17+ без опции CONFIG_ARCH_HAS_SYSCALL_WRAPPER.
  • Добавлен конфигурационный файл для загрузки LKRG на этапе старта системы.
  • В Makefile добавлены опции для установки/удаления, которые дообавляют/убирают сервис для загрузки на старте системы.

Легенда:

  • [CI] — Целостность исполняемого кода.
  • [ED] — Обнаружение эксплоитов.

Как и ранее, этот релиз разработан Адамом «pi3» Заброцки.

Почти традиционно, после релиза @i82 помог найти некоторые недостатки LKRG посредством адаптации эксплоитов от Андрея Коновалова, за что Адам «pi3» Заброцки и @solardiz его в очередной раз поблагодарили. Подробности обсуждения читайте в списке рассылке проекта.

>>> Wiki

>>> Страница проекта на Openwall

>>> Подробности

©  Linux.org.ru