Открыть сервис

Матрица доступа

Матрица доступа — это формальная модель управления доступом, реализованная в виде двумерной таблицы (матрицы), строки которой соответствуют субъектам доступа (пользователям, процессам, группам), а столбцы — объектам доступа (файлам, каталогам, устройствам, сетевым ресурсам). В ячейках на пересечении строки и столбца указываются права доступа, которые субъект имеет к данному объекту. Матрица доступа является фундаментальной концепцией в области информационной безопасности и операционных систем, лежащей в основе дискреционного (избирательного) управления доступом.

История возникновения и развития

Концепция матрицы доступа была впервые формально описана в 1971 году американскими учёными Батлером Лэмпсоном (Butler Lampson) и Дэвидом Беллом (David Bell) в контексте разработки модели безопасности для операционной системы Multics. Идея заключалась в создании универсального и наглядного способа описания всех возможных взаимодействий между субъектами и объектами в вычислительной системе. В 1972 году Лэмпсон опубликовал работу «Protection», где детально изложил математическую основу матрицы доступа.

Дальнейшее развитие модель получила в работах Грэма (Graham) и Деннинга (Denning), которые в 1972 году предложили расширенную версию с учётом динамического изменения прав и аудита. В 1974 году Дороти Деннинг (Dorothy Denning) и Питер Деннинг (Peter Denning) применили матричную модель к защите баз данных. В 1980-х годах матрица доступа стала основой для разработки систем мандатного управления доступом (MAC) и ролевого управления доступом (RBAC), хотя в чистом виде она чаще используется именно для дискреционного управления.

Математическая модель

Формально матрица доступа определяется как тройка: M = (S, O, A), где:

  • S — множество субъектов (пользователи, процессы, потоки).
  • O — множество объектов (файлы, каталоги, устройства, семафоры, сегменты памяти).
  • A — множество прав доступа (операций), которые субъект может выполнять над объектом.

Матрица M имеет размерность |S| × |O|. Элемент M[s, o] представляет собой подмножество прав из множества A, разрешённых субъекту s для объекта o. Если элемент пуст (∅), субъект не имеет никаких прав на данный объект.

Типовые права доступа

В большинстве реализаций матрицы доступа используются следующие базовые права:

  • read (r) — чтение данных из объекта.
  • write (w)запись данных в объект.
  • execute (x) — выполнение объекта (для исполняемых файлов или программ).
  • delete (d)удаление объекта.
  • own (o) — право владения, позволяющее изменять права доступа других субъектов к объекту.
  • append (a) — добавление данных в конец объекта (без возможности чтения или перезаписи).

Реализация в операционных системах

Дискреционное управление доступом (DAC)

Матрица доступа является теоретической основой дискреционного управления доступом, где владелец объекта может произвольно назначать права другим субъектам. На практике матрица редко хранится в виде двумерной таблицы из-за её разреженности (большинство ячеек пусты). Вместо этого используются два основных подхода:

  1. Списки управления доступом (ACL) — каждому объекту ставится в соответствие список субъектов с их правами. Это столбцы матрицы. ACL широко применяются в файловых системах Windows (NTFS), Linux (ext4, XFS) и в сетевых устройствах.
  2. Капабилити (capabilities) — каждому субъекту ставится в соответствие список объектов с правами. Это строки матрицы. Капабилити используются в некоторых микроядерных ОС (например, в Amoeba, EROS, seL4) и в системах с мандатной защитой.

Пример реализации в Linux

В файловых системах Linux матрица доступа реализуется через битовые маски прав для трёх категорий субъектов: владелец (owner), группа (group) и остальные (others). Каждый объект (файл или каталог) хранит 12 бит: 9 бит для прав rwx (read, write, execute) для каждой категории и 3 дополнительных бита (setuid, setgid, sticky bit). Это можно рассматривать как компактную форму матрицы, где столбцы — файлы, а строки — категории субъектов.

Применение в системах управления базами данных (СУБД)

В реляционных СУБД матрица доступа используется для разграничения прав пользователей на таблицы, представления, хранимые процедуры и другие объекты. Например, в PostgreSQL права задаются командами GRANT и REVOKE, формирующими ACL для каждого объекта. Матрица доступа позволяет гибко настраивать, кто может выполнять SELECT, INSERT, UPDATE, DELETE, REFERENCES, TRIGGER и другие операции.

Ролевое управление доступом (RBAC) как развитие модели

Матрица доступа стала основой для более сложных моделей, в частности RBAC (Role-Based Access Control). В RBAC вместо прямого назначения прав каждому субъекту вводятся роли, которые объединяют наборы прав. Матрица в этом случае становится трёхмерной: субъект — роль — объект. Это упрощает администрирование в крупных организациях, где количество пользователей может достигать десятков тысяч.

Критика и ограничения

Несмотря на теоретическую прозрачность, матрица доступа имеет ряд практических недостатков:

  • Разреженность — в реальных системах большинство субъектов не имеют прав к большинству объектов, что делает хранение полной матрицы неэффективным.
  • Сложность администрирования — при большом количестве субъектов и объектов ручное управление правами становится трудоёмким и подверженным ошибкам.
  • Отсутствие учёта контекста — классическая матрица не учитывает временные ограничения, местоположение субъекта, тип соединения или другие динамические факторы.
  • Проблема «злонамеренного владельца» — владелец объекта может предоставить себе неограниченные права, что делает модель уязвимой для внутренних угроз.

Современное состояние и альтернативы

В современных операционных системах и приложениях матрица доступа в чистом виде используется редко. На смену ей пришли более совершенные модели:

  • Мандатное управление доступом (MAC) — права назначаются централизованно на основе меток безопасности (например, в SELinux, AppArmor, Windows Mandatory Integrity Control).
  • Атрибутное управление доступом (ABAC) — права вычисляются динамически на основе атрибутов субъекта, объекта, среды и действия.
  • Политики на основе правил — доступ определяется набором условий и правил, а не статической таблицей.

Тем не менее, матрица доступа остаётся важным педагогическим инструментом для обучения основам безопасности и используется как формальная модель при анализе и проектировании систем защиты информации.

Источники

  • Lampson, B. W. (1971). «Protection». Proceedings of the 5th Princeton Conference on Information Sciences and Systems.
  • Graham, G. S., & Denning, P. J. (1972). «Protection — Principles and Practice». AFIPS '72 (Spring).
  • Denning, D. E. (1982). «Cryptography and Data Security». Addison-Wesley.
  • Sandhu, R., Coyne, E. J., Feinstein, H. L., & Youman, C. E. (1996). «Role-Based Access Control Models». IEEE Computer, 29(2).
  • Bishop, M. (2003). «Computer Security: Art and Science». Addison-Wesley.
  • Tanenbaum, A. S., & Woodhull, A. S. (2006). «Operating Systems: Design and Implementation» (3rd ed.). Pearson.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →