Модули безопасности Linux - Linux Security Modules

Модули безопасности Linux (LSM) это рамки что позволяет Ядро Linux для поддержки различных модели компьютерной безопасности при этом избегая фаворитизма по отношению к какой-либо отдельной реализации безопасности. Фреймворк лицензирован в соответствии с условиями Стандартная общественная лицензия GNU и является стандартной частью ядра Linux, начиная с Linux 2.6. AppArmor, SELinux, Хлопать, и TOMOYO Linux - это принятые в настоящее время модули в официальном ядре.

Дизайн

LSM был разработан для удовлетворения конкретных потребностей всего необходимого для успешной реализации принудительный контроль доступа модуль, внося минимально возможные изменения в ядро ​​Linux. LSM избегает подхода перестановка системного вызова как используется в Systrace потому что он не масштабируется до мультипроцессор ядра и подлежит ТОКТУ (расовые) атаки. Вместо этого LSM вставляет "крючки "(обратные вызовы модуля) в каждой точке ядра, где системный вызов пользовательского уровня собирается привести к доступу к важному внутреннему объекту ядра, такому как inodes и блоки управления задачами.

Проект узко направлен на решение проблемы контроль доступа чтобы избежать наложения большого и сложного патча изменения на основное ядро. Это не предназначено как общее "крюк" или же "вызов"механизм, и он не поддерживает Виртуализация на уровне операционной системы.

Цель управления доступом LSM очень тесно связана с проблемой системный аудит, но немного отличается. Аудит требует, чтобы каждая попытка доступа регистрировалась. LSM не может этого сделать, потому что для этого потребуется гораздо больше хуков, чтобы обнаруживать случаи, когда ядро ​​"короткие замыкания"сбой системных вызовов и возвращает код ошибки перед приближением к значительным объектам.

Конструкция LSM описана в статье. Модули безопасности Linux: общая поддержка безопасности ядра Linux[1] представлен на выставке USENIX Security 2002.[2] На той же конференции был доклад Использование CQUAL для статического анализа размещения хуков авторизации[3] который изучал автоматический статический анализ кода ядра, чтобы убедиться, что все необходимые хуки действительно вставлены в ядро ​​Linux.

Принятие

История

На саммите ядра Linux 2001 г. АНБ предложил, чтобы SELinux быть включенным в Linux 2.5.[4] Линус Торвальдс отверг SELinux в то время, потому что он заметил, что в разработке находится много различных проектов безопасности, и, поскольку все они различаются, сообщество специалистов по безопасности еще не пришло к консенсусу по окончательной модели безопасности. Вместо этого Линус поручил сообществу безопасности «сделать его модулем».

В ответ, Криспин Коуэн предложил[5] LSM: интерфейс для ядра Linux, который обеспечивает достаточное количество «перехватчиков» (восходящих вызовов) из ядра Linux для загружаемый модуль чтобы позволить модулю применять принудительный контроль доступа. Разработку LSM в течение следующих двух лет проводило сообщество LSM, в том числе существенный вклад Immunix Corporation, то АНБ, McAfee, IBM, Силиконовая Графика, и многие независимые участники. LSM в конечном итоге стал основным направлением ядра Linux и был включен в качестве стандартной части Linux 2.6 в декабре 2003 года.

В 2006 году некоторые разработчики ядра заметили, что SELinux был единственным широко используемым модулем LSM, включенным в основное дерево исходных текстов ядра Linux. Было рассмотрено, что если должен быть только один широко используемый модуль LSM, то косвенное обращение к LSM не нужно, и LSM следует удалить и заменить самим SELinux. Однако существуют другие модули LSM, которые поддерживаются вне основного дерева ядра (AppArmor, Система обнаружения вторжений Linux, FireFlier, CIPSO, Мульти ADM и т. д.), так что этот аргумент привел к двум результатам: 1. разработчики этих модулей начали прилагать усилия для апстриминга своих соответствующих модулей, и 2. в 2006 г. Саммит ядра, Линус еще раз заявил, что LSM останется, потому что он не хочет решать, какая модель безопасности является лучшей.

LSM, вероятно, останется, поскольку дополнительные модули безопасности Хлопать (версия 2.6.25), TOMOYO Linux (версия 2.6.30, июнь 2009 г.) и AppArmor (версия 2.6.36) были приняты в основное ядро.

Прием

Некоторым разработчикам ядра Linux не нравится LSM по разным причинам. LSM стремится к минимально возможным накладным расходам, особенно в случае, когда модуль не загружен, но эта стоимость не равна нулю, и некоторые разработчики Linux возражают против такой стоимости. LSM предназначен только для управления доступом, но на самом деле не мешает людям использовать LSM по другим причинам, поэтому некоторым разработчикам ядра Linux не нравится, что им можно "злоупотреблять", используя для других целей, особенно если цель состоит в том, чтобы обойти ядро ​​Linux GPL лицензия с проприетарным модулем для расширения функциональности ядра Linux.

Некоторым разработчикам безопасности также не нравится LSM. Автор grsecurity не любит LSM[6] из-за своей истории и того, что LSM экспортирует все свои символы, что облегчает вставку вредоносных модулей (руткиты ), а также модули безопасности. Автор RSBAC не любит LSM[7] потому что он неполный по отношению к потребностям RSBAC. В частности, автор RSBAC утверждает, что: «LSM - это только дополнительный, ограничительный контроль доступа. Однако система RSBAC предоставляет множество дополнительных функций, например перенаправление символических ссылок, secure_delete, частичное отключение Linux DAC. Все это необходимо исправить. в функции ядра в отдельном патче. ". В Дазуко проект утверждал[8] что нацеленность на LSM API является постоянно меняющейся целью, поскольку она меняется с каждым выпуском ядра, что приводит к дополнительным работам по обслуживанию. Другие разработчики хотели бы, чтобы модули LSM были сложены, например разработчик Yama LSM.[9]

Рекомендации

  1. ^ «Модули безопасности Linux: общая поддержка безопасности ядра Linux». 2002. Получено 2007-02-03.
  2. ^ «11-й симпозиум по безопасности USENIX». 2002. Получено 2007-02-03.
  3. ^ «Использование CQUAL для статического анализа размещения хуков авторизации». 2002. Получено 2007-02-03.
  4. ^ Стивен Смолли, Тимоти Фрейзер, Крис Вэнс. «Модули безопасности Linux: общие средства безопасности для Linux». Получено 2015-10-26.CS1 maint: использует параметр авторов (связь)
  5. ^ Криспин Коуэн (2001-04-11). "Интерфейс модуля безопасности Linux". список рассылки linux-kernel. Получено 2007-02-03.
  6. ^ "grsecurity". grsecurity. Получено 2007-02-03.
  7. ^ «РСБАК и LSM». RSBAC. Получено 2007-02-03.
  8. ^ "дазуко". дадзуко. Получено 2017-12-26.
  9. ^ Эдж, Джейк (23 июня 2010 г.). "Укладка LSM (снова)". www.lwn.net. Получено 28 мая 2015.

внешняя ссылка