Мандатная модель управления доступом не получила столь широкого распространения в пользовательских операционных системах из-за своей сложности, а также из-за того, что в ней нет большой необходимости при решении задач, не связанных с высоким уровнем конфиденциальности. В этой статье мы попробуем разобраться с тем, что из себя представляет эта модель и как ей пользоваться.
Итак, мандатный контроль доступа (MAC) — это общая стратегия безопасности, ограничивающая возможности отдельных владельцев ресурсов предоставлять или запрещать доступ к объектам ресурсов в файловой системе. Критерии MAC определяются системным администратором, строго соблюдаются операционной системой или наложенным ядром безопасности и не могут быть изменены конечными пользователями. По сути, MAC это политика контроля доступа, предназначенная для ограничения доступа к ресурсам (также известным как объект) на основе двух ключевых факторов: конфиденциальности информации, содержащейся в этом ресурсе, и уровня авторизации пользователя, пытающегося получить доступ к этому ресурсу и его информации.
О различиях между мандатным и дискреционным контролем доступа
В большинстве операционных систем используется дискреционное управление доступом. В этой модели осуществляется доступ субъектов к объектам на основе списков управления доступом или матрицы доступа.
Дискреционный доступ в отличие от мандатного предоставляет пользователям некоторый контроль над их информационными ресурсами. Например, создатели документа могут определять, кто может получить доступ к документу и какие привилегии будут у этих пользователей. В общем случае, администратор не обязан контролировать доступ и устанавливать привилегии.
Таким образом, дискреционная модель доступа несколько проще в реализации, поскольку не требует централизованного администрирования. Однако это менее безопасный метод управления доступом к данным, поскольку он не требует присвоения меток объектам и разрешений пользователям.
МАС в Астра Линукс
Операционная система Астра Линукс имеет редакцию Common Edition и Special Edition. Мандатная модель имеется только в SE и далее в этой статье мы будем говорить только об этой редакции.
По сути, Astra Linux Special Edition это сертифицированная ОС со встроенными средствами защиты информации (СЗИ) для стабильной и безопасной работы ИТ‑инфраструктур любого масштаба и обработки информации различной степени конфиденциальности. Доступны версии для серверного, десктопного, мобильного и встраиваемого сценариев применения.
В приведенных в статье примерах мы будем рассматривать использование мандатной модели в Astra Linux Special Edition версии 1.8.
Принцип работы МАС
Представим, что у нас имеются субъекты — наши пользователи и объекты, файлы, каталоги и другие ресурсы. Эти ресурсы имеют разный уровень конфиденциальности и соответственно, необходимо разграничить доступ к ним в зависимости от того, какой уровень доступа имеет тот или иной субъект. Специалисты по безопасности должны расставить метки доступа для соответствующих ресурсов.
Можно назначить уровни безопасности «Ограниченный», «Конфиденциальный», «Секретный» или «Совершенно секретный». Также ресурсам можно присвоить категорию безопасности, такую как «Отдел разработки» или «Проект внедрения».
По сути, категории безопасности являются подмножествами уровней безопасности, позволяя дополнительно гранулировать доступ к тому, или иному ресурсу. Вместе взятые, уровень защиты и категория защищенности составляют так называемый защитный знак или метку. Администраторы ИБ также назначают уровень конфиденциальности каждому авторизованному пользователю, чтобы определить, к какому ресурсу он может получить доступ.
Уровень конфиденциальности мы указываем (или нам его присваивают в обязательном порядке) при входе пользователя в систему.
Как только метка будет применена и политика MАC будет завершена, пользователи смогут получить доступ только к тем ресурсам (или к информации в рамках ресурсов), к которым у них есть право доступа.
Например, Пользователь А может иметь право на доступ к информации, содержащейся в ресурсе с пометкой «Доступ для отдела разработки ограничен», но пользователь B может не иметь таких прав. Аналогичным образом, пользователь B может иметь право на доступ к ресурсу с пометкой «Конфиденциальный проект X», но пользователь А может быть не уполномочен на это.
MАC считается высокозащищенным способом контроля доступа к важным или конфиденциальным ресурсам и содержащейся в них информации.
Это особенно полезно для сохранения конфиденциальности данных. Поскольку администратор определяет, какой пользователь имеет доступ к какому ресурсу, пользователи также не могут вносить изменения в доступ, которые могут поставить под угрозу безопасность ресурса. Эти преимущества делают MAC подходящим для защиты конфиденциальных данных в различных учреждениях.
Особенности применения MAC
Итак, с помощью использования уровней и категорий конфиденциальности обеспечивается защита от несанкционированного доступа, в частности мы можем обеспечить защиту информации от прочтения пользователями, которые имеют нижний уровень конфиденциальности с запретом чтения информации с более высоким уровнем конфиденциальности. Также, эту информацию не смогут прочитать пользователи, которым запрещено читать информацию, на которую нет разрешенной категории конфиденциальности.
В обратную сторону МАС работает следующим образом: верхним уровням конфиденциальности запрещено записывать информацию на нижние уровни конфиденциальности.
Решение о запрете или разрешении доступа субъекта к какой‑либо сущности принимается на основе типа операции (Read/Write/Exec) мандатного контекста безопасности субъекта и мандатного контекста безопасности соответствующей сущности.
В случае, если субъекту или сущности явно не задан мандатный контекст, то ей назначается минимальный (или нулевой) мандатный контекст.
Также, в отношении используемых меток безопасности действуют определенные правила наследования. Так, если в сессии субъект создает другого субъекта, например, процесс создает другой процесс, то созданный процесс полностью наследует метку безопасности от родительского процесса.
В информационных системах с мандатным управлением доступом как правило применяются метки конфиденциальности, в которых используется только 4 уровня конфиденциальности от 0 до 3 и 64-битовая маска с различными сочетаниями категорий.
Для добавления уровней необходимо изменить значения параметра sysmaxlev в файле сценария /usr/sbin/pdp‑init‑fs.
Дополнительные атрибуты МАС
На рисунке выше, со свойствами файла мы можем наблюдать раздел со специальными атрибутами. Эти атрибуты позволяют уточнять или изменять правила для соответствующих сущностей.
Так атрибут ccnr указывает, на то, что каталог может содержать файлы и каталоги с различными классификационными метками, но не большими, чем его собственная.
Атрибут ehole указывает, что запись в файл имеющий минимальную классификационную метку, а whole указывает на запись в файл с максимальной меткой.
Также, в Astra Linux имеются специальные атрибуты контроля целостности, которые мы не рассматриваем подробно, так как это тема отдельной статьи.
Мандатные атрибуты на корне файловой системы определяют максимальный мандатный контекст безопасности сущностей. Мандатные атрибуты, устанавливаемые по умолчанию на корень файловой системы и ряд вложенных файловых объектов, определены в сценарии pdp‑init‑fs, который расположен в каталоге /usr/sbin.
О сложностях в использовании МАС
Очевидным недостатком мандатного управления доступом является сложность управления, так администраторам и специалистам по информационной безопасности необходимо самостоятельно осуществлять настройку и поддержку всех видов доступа, особенно по мере увеличения числа систем и пользователей. По той же причине MAC не подходит для приложений с большим количеством пользователей, таких как интернет‑приложения.
Также, использование МАС влечет за собой дополнительные финансовые затраты, так как сложность администрирования доступа требует привлечения большего числа специалистов для обслуживания систем в части настройки доступа.
Заключение
Итак, как мы увидели, ОС Astra Linux Special Edition позволяет использовать мандатную модель что называется «из коробки». Также, использование мандатной модели управления доступом позволяет существенно увеличить уровень защищенности данных и выполнить требования регуляторов, но при этом требует дополнительных затрат на сопровождения.
6 ноября пройдет открытый урок на тему «Управление устройствами и модулями ядра Linux», который будет полезен всем, кто планирует использовать Astra Linux. Записаться на урок можно на странице курса.
Комментарии (5)
lovermann
31.10.2024 06:14Не могу себе представить, как можно работать в русифицированном линуксе. Мне кажется, это привносит больше проблем, чем удобств.
zagoryanetz
31.10.2024 06:14Русификация приносит проблемы? Мало того, что почти все дистрибутивы Линукса русифицированы, так это еще и наименьшее из неудобств, с которыми сталкиваются пользователи Астры.
Если обычная Астра без мандатного доступа - вполне обычная и достаточно приятная сборка, то мандатная модель, кстати описанная в статье, привносит изоляцию доступов между информацией разного уровня, что заставляет разработчиков идти на крайне нетривиальные решения, либо плодить экземпляры приложений - каждый на свой уровень разграничения.
pdevyanin
31.10.2024 06:14Кому действительно необходимо разобраться с мандатным управлением доступом и мандатным контролем целостности в ОС Astra Linux, рекомендую профильную учебно-методическую и научную литературу:
https://astragroup.ru/info/reference-information/library/,
а также иные достоверные источники информации:
статья на Хабр - https://habr.com/ru/companies/astralinux/articles/670060/.
ГОСТ Р 59453.1-2021 "Защита информации. Формальная модель управления доступом. Часть 1. Общие положения" (https://rst.gov.ru:8443/file-service/file/load/1699609661497).
vesper-bot
А ещё этот ваш pdp-init-fs при ребуте забирает диск на минуты подряд и не даёт запускаться никаким сервисам, пока не отработает. Как следствие, он не годится для чего-либо, кроме файловых серверов (и те бэкапаются без меток, потому что parsecfs это кусок tmpfs и не сохраняется при перезагрузке).
NotMusk
Это не так. pdp-init-fs отрабатывает достаточно быстро.
Что касается бэкапирования, то ничего не затирается, метки не хранятся в parsecfs. Тут важно помнить о том, что метки безопасности файлов хранятся в расширенных атрибутах. Что-бы сохранить метки в бэкапе вы должны просто выполнять копирование с поддержкой расширенных атрибутов на файловые системы с поддержкой расширенных атрибутов. Или архивировать в форматы с поддержкой расширенных атрибутов (например, tar). Я не знаю, как у вас организовано бэкапирование. Для восстановления данных с метками нужно включить режим unsafe_xattr.
Короче, нормально с этим всем можно работать, и, в данном случае, нытье о том, какой отечественный линукс хреновый, только говорит о ваших кривых руках