2.4.5 Контроль доступа

За аутентификацией в системе следует контроль доступа. Контроль доступа обозначает, к каким
системный ресурсам пользователь имеет право доступа и на каком уровне право
доступа разрешено. Компьютерная система содержит разные объекты, нуждающиеся в
защите. Этими объектами могут быть аппаратура, например процессор, основная
память, массовая память, принтеры, или это может программное обеспечение,
например процесс, файл, база данных или семафор.
У каждого объекта есть имя, по которому к нему обращаются, о набор операций,
которые процесс может с объектом совершать. Например у файла есть права на
чтение и запись. Понятно, что требуются средства, позволяющие ограничить
процессам доступ к объектам, права доступа к которым отсутствуют. Помимо этого,
этот механизм должен позволять ограничивать права процесса на набор операций,
которые можно с объектом совершать.
С механизмом защиты связано понятие домена
безопасности. Это структура, обозначающая для каждого процесса (или в общем
каждой активной единице, которой может быть и пользователь) комплект прав
защиты. Каждое право защиты представлено парой (ресурс, комплект прав) и
содержит ресурс, к которому у процесса есть доступ, и на комплект разрешённых
операций, которые процесс может выполнять с этим ресурсом.
Важным вопросом является то, как представить в системе, к какому домены
безопасности какой объект относится. В принципе, домен безопасности можно
организовать помощью матрицы безопасности. Ряды этой матрицы представляют
домены безопасности, а колонки представляют ресурсы. В каждой клетке содержится
набор прав, которые данный домен безопасности может совершать с конкретным
объектом.
Домен |
Файл A |
Файл B |
Файл C |
Принтер D |
Домен 1 |
Домен 2 |
Домен 3 |
1 |
Чтение |
|
Чтение Исполнение |
Запись |
|
Переключение |
|
2 |
|
Чтение |
|
|
Переключение |
|
|
3 |
Чтение Запись |
|
|
Запись |
|
|
|
Рисунок 2‑15. Матрица безопасности (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))
Домен безопасности сам может быть объектом матрицы безопасности, благодаря чему у процессов появляется возможность изменить свои собственные права и переключиться в другой домен. В приведённом примере процесс, входящий в домен безопасности 1, может переключиться в домен безопасности 2.
В реальной системе матрица безопасности в таком виде не используется, поскольку она была бы слишком большой. У большинства доменов безопасности нет прав на большинство объектов, поэтому нет смысла хранить большую и преимущественно пустую матрицу. На практике матрицу сохраняют по рядам или колонкам и сохраняя лишь cодержащие информацию элементы. Если сохранять по колонкам, то для каждого объекта получим список, все домены безопасности, у которых есть права доступа к этому объекту. Такой список называется списком контроля доступа (ACL - Access Control List). Он содержит перечисление всех процессов (или в общем активных единиц), которым разрешён доступ к ресурсу, и для каждого процесса список операций, которые этому процессу можно совершать.
Рисунок 2‑16. Применение списка контроля доступа к ресурсам (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))
На рисунке приведены 3 процесса, относящиеся к разным доменом безопасности. У каждого ресурса есть свой список контроля доступа. список контроля доступа ресурса R1 говорит, что процесс Р1 может читать и писать этот ресурс, а процесс Р2 только читать, итд.
Если сохранить матрицу безопасности по рядам, то получим список процессов вместе с перечислением объектов, к которым у них есть доступ, и какие операции разрешены. Такой список называется списком возможностей (Capability List), а записями его являются возможности (Capabilities).
Рисунок 2‑17. Примемение списка возможностей к процессам (Источник: Learning Materials for Information Technology Professionals (EUCIP-Mat))
Список возможностей связан с процессом (или в общем с активной единицей), и в нём перечислены процессы, к которым процессам разрешён доступ, у каждого ресурса перечислен список операций, которые этому процессу можно совершать.
Следует отметить, что список контроля доступа и список возможностей управляются в режиме ядра операционной системы.
Ниже перечислены распространённые политики назначения прав доступа:
- Избирательное управление доступом (Discretionary Access Control) - управление доступом субъектов к объектам на основе списков управления доступом или матрицы доступа. Позволяет объектам назначать определённым личностям права доступа к некоторым ресурсам.
- Мандатное управление доступом (Mandatory Access Control) - назначаемые операционной системой набор прав доступа субъектов, которыми на практике как правило выступают процесс или поток. Субъект не может назначать права.
- Управление доступом на основе ролей (Role-based Access Control) - права доступа в системе назначаются пользователю на основании его роли.