«В основе принудительного контроля доступа — не доверие к пользователю, а безусловное доверие к системе. Права назначаются не на основе отношений между людьми или собственности на данные, а на основе формальных меток, привязанных к уровню секретности и «нужды знать». Это ставит системные правила выше человеческих решений, что критично там, где цена утечки исчисляется не деньгами, а национальной безопасностью.»
Мандатное управление доступом (MAC)
Mandatory Access Control (MAC) — модель безопасности, обеспечивающая наиболее строгий и централизованный контроль доступа к информации. Её применение характерно для сфер, где компрометация данных недопустима: военные системы, государственные учреждения с гостайной, объекты критической информационной инфраструктуры (КИИ). Основополагающий принцип MAC — полное изъятие у пользователей права самостоятельно определять доступ. Политика безопасности устанавливается администраторами и принудительно применяется системой ко всем без исключения субъектам и объектам.
Ключевые принципы и механизм работы
Работа модели строится на двух фундаментальных операциях: маркировке и сравнении меток.
- Маркировка объектов и субъектов. Каждому субъекту (пользователь, процесс) присваивается метка, отражающая его уровень допуска (clearance). Каждому объекту (файл, запись в БД, сетевое соединение) присваивается метка, отражающая уровень его конфиденциальности (classification).
- Проверка на доминирование. Правила доступа определяются формальной политикой, чаще всего реализующей решетчатую модель (Lattice Model). Доступ субъекта к объекту разрешается, если метка субъекта доминирует над меткой объекта. Это означает, что уровень допуска субъекта должен быть равен или выше уровня конфиденциальности объекта. Например, пользователь с допуском «Секретно» может читать документы «Секретно» и «Для служебного пользования», но не сможет получить доступ к документам «Совершенно секретно».
Ключевое ограничение для рядового пользователя в системе с MAC — невозможность произвольно распоряжаться правами. Пользователь не может:
- передать доступ другому пользователю, даже если тот имеет формально подходящий уровень допуска;
- изменить метки безопасности объектов, которые он создал или которые ему принадлежат;
- обойти правила сравнения меток, установленные политикой.
MAC против DAC: сравнение подходов
Основное концептуальное различие между мандатным (MAC) и дискреционным (DAC) управлением доступом заключается в точке принятия решения о предоставлении прав.
| Мандатное управление доступом (MAC) | Дискреционное управление доступом (DAC) |
|---|---|
| Централизованная политика, устанавливаемая администраторами безопасности. | Децентрализованное управление, право владельца объекта решать, кому предоставить доступ. |
| Основано на сравнении формальных меток (уровни секретности). | Основано на идентификаторах пользователей и групп (списки ACL, разрешения rwx). |
| Запрещает делегирование прав пользователями. | Позволяет владельцу передавать права другим. |
| Направлено в первую очередь на обеспечение конфиденциальности (запретить «утечку вниз»). | Направлено на обеспечение гибкости и удобства работы в коммерческой среде. |
| Примеры: SELinux, AppArmor, Trusted BSD, системы для работы с гостайной. | Примеры: стандартные разрешения файловой системы в Windows NTFS и Linux. |
MAC и концепция «разделения обязанностей» (SoD)
В практике применения мандатного контроля доступ часто дополняется принципом «разделения обязанностей» (Separation of Duties, SoD). Это не просто технический механизм, а организационно-техническая мера. Даже имея формальный допуск к определенному уровню секретности, пользователь получает доступ только к тем данным, которые необходимы для выполнения его конкретных служебных функций («нужда знать» — need to know).
Например, в системе обработки финансовых документов сотрудник, утверждающий платежное поручение, не может быть тем же человеком, который его инициирует. В контексте MAC это реализуется через дополнительные категории или атрибуты в метках безопасности, которые ограничивают горизонтальный доступ в рамках одного уровня секретности. Это исключает ситуации, когда один сотрудник, получив высокий допуск, может монопольно контролировать критический процесс.
Практическая реализация и актуальность
В современных операционных системах (например, Linux) MAC редко используется в «чистом» виде, как в классических системах с метками для уровней секретности. Однако его принципы лежат в основе систем принудительного контроля доступа на уровне ядра. SELinux (Security-Enhanced Linux) и AppArmor являются практическими реализациями идей MAC для мобильных и серверных ОС. В них политика безопасности, написанная администратором, определяет, какие процессы (субъекты) могут обращаться к каким файлам, сокетам, портам (объекты) и какими операциями. Пользователь или даже root не могут обойти эти правила без изменения самой политики.
Для российских организаций, подпадающих под требования 152-ФЗ о персональных данных и особенно под приказы ФСТЭК России (например, приказ № 31 для ГИС), понимание принципов MAC критически важно. Хотя стандартные СЗИ могут не требовать полноценной реализации многоуровневой модели, принцип централизованного, принудительного и необходимого управления доступом является краеугольным камнем при построении систем защиты информации 1 и 2-го классов. MAC обеспечивает предсказуемость и проверяемость политики безопасности, что прямо соотносится с требованием невозможности несанкционированного доступа.