Модуль многоуровневой безопасности MAC (MLS)
Имя модуля: mac_mls.ko
Строка конфигурации ядра: options MAC_MLS
Параметр загрузки: mac_mls_load="YES"
Политика контролирует взаимодействие субъектов и объектов системы путем применения строгой политики к потоку информации.
В среде MLS, для каждого субъекта или объекта внутри отдела (compartment) устанавливается ``уровень допуска''. Поскольку количество уровней допуска может превышать шесть тысяч, для любого системного администратора задача настройки каждого субъекта или объекта может быть слишком сложной. К счастью, существуют ``постоянные'' метки, которые уже включены в эту политику.
Эти метки mls/low, mls/equal и mls/high. Поскольку эти метки подробно описываются в справочнике, здесь мы дадим только краткое описание:
Метка mls/low содержит минимальную настройку, что позволяет доминирование над ней всех других объектов. Все, что помечено с mls/low, находится на низком уровне доступа и доступ к более высоким уровням будет запрещен. Кроме того, эта метка предотвратит запись или передачу информации объектам с более высоким уровнем доступа.
Метка mls/equal должна быть помещена на объекты, являющиеся исключением из политики.
Метка mls/high это наибольший возможный уровень доступа. Объекты с этой меткой будут доминировать над всеми другими объектами системы; однако, утечка информации от них к объектам более низкого класса невозможна.
MLS представляет собой:
Иерархические уровни безопасности с набором не иерархических категорий;
Фиксированные правила: нет чтения сверху, нет записи вниз (субъект может иметь доступ на чтение объектов собственного уровня или ниже, но не выше. Аналогично, субъект может иметь доступ на запись в объекты своего уровня или выше, но не наоборот.);
Секретность (предотвращение неавторизованного раскрытия данных);
Основа для разработки систем, одновременно работающих с данными на нескольких уровнях секретности (без утечки информации).
Для настройки специальных сервисов и интерфейсов доступны следующие переменные sysctl:
security.mac.mls.enabled используется для включения/отключения политики MLS.
security.mac.mls.ptys_equal пометит все устройства pty(4) как mls/equal во время создания.
security.mac.mls. revocation_enabled используется для запрета доступа к объектам после того, как их метка изменится в меньшую сторону.
security.mac.mls.max_compartments используется для установки максимального количества уровней отделов на объекты; обычно это максимальное количество отделов, разрешенных в системе.
Для управления метками MLS существует команда setfmac(8). Для присвоения метки объекту, выполните следующую команду:
# setfmac mls/5 test
Для получения метки MLS файла test, выполните следующую команду:
# getfmac test
Выше представлен краткий обзор возможностей политики MLS. Существует метод, связанный с созданием основного файла политики в каталоге /etc, где будет определена необходимая для политики MLS информация, которая будет передана команде setfmac. Этот метод будет описан после рассмотрения всех политик.
Итоги: объект с низким уровнем доступа не может прочесть данные объекта с высоким уровнем доступа. Базовая политика должна устанавливать mls/high на всем, что не должно быть прочитано, даже если туда необходимо записывать. На всем, куда нельзя писать, должна быть установлена метка mls/low, даже если это необходимо читать. Наконец, на всем остальном установите mls/equal. Все пользователи, помеченные как insecure, должны иметь метку mls/low.