Дискреционная модель управления доступом
Дискреционная модель управления доступом (англ. Discretionary Access Control, DAC) — это метод разграничения доступа к объектам информационной системы, основанный на субъективных решениях владельца объекта или администратора. В рамках данной модели каждый субъект (пользователь, процесс) может по своему усмотрению предоставлять или отзывать права доступа (чтение, запись, выполнение) у других субъектов к принадлежащим ему объектам (файлам, папкам, устройствам, базам данных). Ключевой характеристикой является то, что владелец объекта обладает полным контролем над его защитой, а полномочия передаются по принципу «дискреции» (усмотрения).
История возникновения и развития
Концепция дискреционного управления доступом возникла в 1960-х — 1970-х годах в рамках развития многопользовательских операционных систем. Ранние реализации, такие как система Multics (1965), ввели понятие «списков управления доступом» (ACL — Access Control Lists), позволяющих владельцам файлов задавать права для отдельных пользователей или групп. В 1983 году Министерство обороны США опубликовало «Оранжевую книгу» (Trusted Computer System Evaluation Criteria, TCSEC), где DAC была определена как один из базовых механизмов защиты для систем класса C (произвольный доступ). С тех пор модель стала стандартом де-факто для большинства коммерческих операционных систем (Unix, Linux, Windows, macOS) и прикладных приложений.
Основные принципы и терминология
В основе дискреционной модели лежат следующие понятия:
- Субъект — активная сущность (пользователь, процесс, программа), инициирующая запрос на доступ к объекту.
- Объект — пассивная сущность (файл, каталог, принтер, раздел реестра), к которой осуществляется доступ.
- Владелец — субъект, создавший объект или назначенный таковым системой. Владелец обладает неотъемлемым правом управления доступом к объекту.
- Право доступа — разрешение на выполнение определённого действия (например, чтение, запись, выполнение, удаление, изменение атрибутов).
- Матрица доступа — теоретическая модель, представляющая собой таблицу, где строки соответствуют субъектам, столбцы — объектам, а на пересечении указываются права доступа.
- Список управления доступом (ACL) — практическая реализация части матрицы доступа, прикреплённая к объекту и содержащая записи вида «субъект — права».
Механизмы реализации
На практике дискреционное управление доступом реализуется через несколько основных механизмов:
Списки управления доступом (ACL)
Наиболее распространённый механизм. Каждый объект содержит список, в котором перечислены субъекты (пользователи, группы) и соответствующие им права. Пример: в файловой системе NTFS (Windows) для каждого файла можно задать права для конкретного пользователя «Иванов» (чтение и запись) и для группы «Бухгалтерия» (только чтение).
Классическая модель Unix (битовая маска)
В Unix-подобных системах права доступа к файлу задаются тремя триадами битов (rwx) для владельца, группы и остальных пользователей. Дополнительно используются биты SUID, SGID и sticky bit. Эта модель является упрощённой формой DAC, где владелец может установить только три уровня прав для трёх категорий субъектов.
Модель с передачей прав (Delegation)
В некоторых системах владелец может делегировать часть своих полномочий по управлению доступом другому субъекту (например, назначить администратора подразделения). При этом исходный владелец сохраняет за собой контроль.
Классификация дискреционных моделей
В теории и на практике выделяют несколько разновидностей DAC:
- Произвольное управление (Pure DAC) — владелец объекта может произвольно назначать любые права любому субъекту, включая передачу права управления. Характерно для ранних систем.
- Управление на основе групп (Group-based DAC) — права назначаются не отдельным субъектам, а группам. Субъект получает доступ, если входит в группу, имеющую соответствующие права. Это упрощает администрирование.
- Управление с ограничениями (Restricted DAC) — накладываются дополнительные ограничения на действия владельца. Например, владелец не может передать право управления другому субъекту, или права могут быть только унаследованы от родительского объекта.
- Мандатно-дискреционная гибридная модель — сочетает элементы DAC и мандатного управления (MAC). Владелец может управлять доступом, но только в рамках заданных мандатных меток безопасности.
Достоинства и недостатки
Преимущества
- Гибкость и простота — владелец объекта может быстро и интуитивно настроить доступ для конкретных пользователей без необходимости вмешательства администратора.
- Децентрализация — распределение ответственности за защиту данных между владельцами снижает нагрузку на централизованную службу безопасности.
- Прозрачность — пользователи понимают, кто и как управляет доступом к их файлам.
- Широкая распространённость — поддержка DAC есть во всех современных операционных системах, что делает её универсальным стандартом.
Недостатки
- Уязвимость к атакам — владелец может по ошибке или под давлением предоставить доступ злоумышленнику. Отсутствует централизованный контроль над потоками информации.
- Проблема «троянского коня» — вредоносная программа, запущенная от имени владельца, может получить доступ ко всем его объектам и передать их другому субъекту. DAC не защищает от атак, изменяющих права доступа.
- Сложность аудита — в крупных системах с тысячами владельцев трудно отследить, кто и кому предоставил доступ. Возникает «разрастание прав» (privilege creep).
- Отсутствие гарантий конфиденциальности — модель не гарантирует, что информация не будет передана субъекту с более низким уровнем допуска (если такой уровень определён).
Применение в современных системах
Дискреционная модель управления доступом является основой для:
- Операционных систем — файловые системы NTFS, ext4, APFS, а также управление доступом к реестру Windows и процессам в Linux.
- Систем управления базами данных (СУБД) — назначение прав на таблицы, представления, процедуры в PostgreSQL, MySQL, Oracle.
- Облачных сервисов — управление доступом к объектам в хранилищах (Amazon S3, Google Cloud Storage, Яндекс.Облако) через политики IAM (Identity and Access Management).
- Веб-приложений — разграничение доступа к страницам и API на основе ролей пользователей (RBAC — Role-Based Access Control, часто реализуемый поверх DAC).
- Корпоративных информационных систем — управление доступом к документам в системах электронного документооборота (например, 1С:Документооборот, Directum).
Сравнение с другими моделями
| Характеристика | Дискреционная (DAC) | Мандатная (MAC) | Ролевая (RBAC) |
|---|---|---|---|
| Управление | Владелец объекта | Центральный администратор | Администратор ролей |
| Гибкость | Высокая | Низкая | Средняя |
| Безопасность | Низкая (зависит от субъекта) | Высокая (принудительная) | Средняя |
| Масштабируемость | Плохая (для больших систем) | Хорошая | Хорошая |
| Пример | Файловая система Linux | SELinux, FreeBSD | Microsoft Active Directory |
Критика и ограничения
Основная критика дискреционной модели связана с её неспособностью обеспечить строгую многоуровневую защиту, требуемую в государственных и военных системах. В таких средах предпочтительнее мандатное управление (MAC), где решения принимаются на основе меток безопасности, а не воли владельца. Кроме того, DAC подвержена ошибкам человеческого фактора (случайное раскрытие доступа) и неэффективна против атак, использующих социальную инженерию. В современных системах (например, Windows с UAC или Linux с AppArmor) DAC часто дополняется другими механизмами для повышения безопасности.
Интересные факты
- В ранних версиях Unix (1970-е) права доступа были только для трёх категорий (владелец, группа, остальные), что делало модель очень простой, но негибкой. Появление ACL в Windows NT (1993) и затем в Linux (2002, расширение POSIX ACL) значительно расширило возможности DAC.
- Модель DAC лежит в основе концепции «суверенитета пользователя» в облачных вычислениях: владелец аккаунта может самостоятельно управлять доступом к своим ресурсам.
- В некоторых системах (например, в macOS до версии 10.14) владелец мог по ошибке предоставить доступ к системным файлам, что приводило к уязвимостям. Современные версии используют комбинацию DAC и мандатного контроля (System Integrity Protection).
Источники
- Trusted Computer System Evaluation Criteria (Оранжевая книга). Министерство обороны США, 1985.
- Security in Computing (5-е издание). Charles P. Pfleeger, Shari Lawrence Pfleeger, Jonathan Margulies. Prentice Hall, 2015.
- Operating System Concepts (10-е издание). Abraham Silberschatz, Peter Baer Galvin, Greg Gagne. Wiley, 2018.
- Access Control Systems: Security, Identity Management and Trust Models. Messaoud Benantar. Springer, 2006.
- Документация Microsoft: «Access Control Lists» (ACL) и «Security Descriptors».
- Документация Linux Foundation: «POSIX Access Control Lists on Linux».
- The Protection of Information in Computer Systems. Jerome H. Saltzer, Michael D. Schroeder. Proceedings of the IEEE, 1975.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →