Системы разграничения доступа
Основную роль в обеспечении внутренней безопасности компьютерных систем выполняют системы управления доступом (разграничения доступа) субъектов к объектам доступа, реализующие концепцию единого диспетчера доступа (в английском варианте "reference monitor"- дословно, монитор ссылок).
Диспетчер доступа
Сущность концепции диспетчера доступа состоит в том, что некоторый абстрактный механизм является посредником при всех обращениях субъектов к объектам (Рис.3.5).
Рис. 3.5.
Диспетчер доступа должен выполнять следующие функции:
· проверять права доступа каждого субъекта к любому объекту на основании информации, содержащейся в базе данных защиты (правил разграничения доступа);
· при необходимости регистрировать факт доступа и его параметры в системном журнале.
Основными требованиями к реализации диспетчера доступа являются:
· требование полноты контролируемых операций, согласно которому проверке должны подвергаться все операции всех субъектов над всеми объектами системы. Обход диспетчера предполагается невозможным;
· требование изолированности, то есть защищенности диспетчера от возможных изменений субъектами доступа с целью влияния на процесс его функционирования;
· требование формальной проверки правильности функционирования;
· минимизация используемых диспетчером ресурсов.
В самом общем виде работа средств управления доступом субъектов к объектам основана на проверке сведений, хранимых в базе данных защиты.
Под базой данных защиты (security database) понимают базу данных, хранящую информацию о правах доступа субъектов системы к объектам и другим субъектам.
Для внесения изменений в базу данных защиты система разграничения доступа должна включать средства для привилегированного пользователя (администратора безопасности) по ведению этой базы. Такие средства управления доступом должны обеспечивать возможность выполнения следующих операций:
· добавления и удаления объектов и субъектов;
· просмотра и изменения соответствующих прав доступа субъектов к объектам.
Форма представления базы данных защиты может быть различной.
Основу базы данных защиты в общем случае составляет матрица доступа или ее представления (см. табл. 3) Каждый элемент этой матрицы представляет собой кортеж, определяющий права доступа (для всех возможных видов доступа) каждого субъекта к каждому объекту или другому субъекту.
Сложность управления доступом (ведения матрицы доступа) в реальных системах связана не только с большой размерностью матрицы (большим числом субъектов и объектов) и высоким динамизмом ее корректировки, но и с необходимостью постоянного отслеживания при таких корректировках большого числа зависимостей между значениями определенных кортежей. Наличие таких зависимостей связано с объективно существующими в предметной области ограничениями и правилами наследования полномочий в иерархии объектов и субъектов. Например, пользователь должен наследовать полномочия группы пользователей, в которую он входит; права доступа некоторого пользователя к каталогам и файлам не должны превышать соответствующие его права по доступу к диску, на котором они размещены и т.п.).
При полномочном управлении доступом (категорирование объектов и субъектов и введение ограничений по доступу установленных категорий субъектов к объектам различных категорий) на матрицу доступа накладываются дополнительные зависимости между значениями прав доступа субъектов.
Существующие ограничения и зависимости между полномочиями существенно усложняют процедуры ведения матриц доступа. Это привело к возникновению большого числа способов неявного задания матрицы (списки доступа, перечисление полномочий, атрибутная схема и т.п.).
Основные критерии оценки эффективности различных способов неявного задания следующие:
· затраты памяти на хранение образа матрицы доступа;
· время на выборку (вычисление) значений полномочий (элементов кортежей);
· удобство ведения матрицы при наличии ограничений и зависимостей между значениями ее кортежей (простота и наглядность, количество требуемых операций при добавлении/удалении субъекта или объекта, назначении/модификации полномочий и т.п.).
Рассмотрим основные способы неявного задания матрицы доступа.