Спецкурс (8 семестр) «Безопасность систем баз данных» Специальность «Информатика» 1 из 5 Лекция 2. Контроль доступа. 1. Базовые концепции контроля доступа. Система контроля доступа регулирует операции, которые можно выполнять над данными и ресурсами, подлежащими защите. Целью этот системы является контроль за операциями, выполняющимися на субъектах для того, чтобы предотвратить действия, могущие повредить данные и ресурсы. Система контроля доступа обычно является частью операционной системы, а также СУБД. Субъект Запрос на доступ Монитор обращений Объект Суть1 процесса контроля доступа состоит в том, что некий активный субъект запрашивает доступ к некоему пассивному объекту (объекту прикрытия, protection object) для выполнения некоторых операций доступа. Монитор обращений разрешает или запрещает доступ. Обычно функция контроля доступа реализуется на программном уровне, и очень часто такая функция является частью других систем. Механизм контроля доступа использует некоторые стратегии контроля доступа для принятия решения о том, разрешать или запрещать ли доступ к запрашиваемому ресурсу. Система контроля доступа – система, состоящая из механизма контроля доступа и всей информации, необходимой для принятия решений о доступе (например, список полномочий на доступ). Объектом прикрытия будем называть объекты, контролируемые системой контроля доступа. Объектом прикрытия может быть все, что содержит данные: базы данных, каталоги, сетевые пакеты, устройства ввода/вывода, физические носители. В то же время, не все носители данных должны находиться под прикрытием. Субъектом процесса контроля доступа является абстракция любой активной сущности, которая выполняется вычисления в системе. Субъекты классифицируются как: - пользователи – отдельные индивидуалы, подключающиеся к системе - группы – множества пользователей - роли – именованные коллекции привилегий / сущности, сгруппированные по функциональному признаку внутри организации - процессы – исполняют программы по поручению пользователей Между разными типами субъектов могут обнаруживаться различные связи. 2. Операции доступа и режимы доступа Операции доступа – это операции, которые субъект может проделывать над объектами прикрытия в системе. Каждый тип операции соответствует некоторому режиму доступа. Над каждым объектом можно выполнять несколько операций доступа; система контроля доступа должна быть в состоянии контролировать отдельные типы операций. Наиболее простыми режимами доступа являются чтение (просмотр содержимого объекта) и запись (изменение содержимого объекта), хотя в реальности таких режимов гораздо больше. Режимы доступа, поддерживаемые механизмом контроля доступа, зависят от того, какого рода ресурсы будут защищаться (чтение, запись, выполнение, выбор, 1 Lampson B. Protection. ACM Operating System Review, 8, 1974. 446987560 Спецкурс (8 семестр) «Безопасность систем баз данных» Специальность «Информатика» 2 из 5 добавление, обновление, удаление…). Часто система контроля доступа применяет одинаково названные режимы доступа по отношению к разным объектам по-разному. Например, в ОС UNIX для файлов определены такие режимы доступа: - read (читать файл) - write (записывать в файл) - execute (выполнить программный файл) А для каталогов те же режимы доступа отвечают за другие действия: - read (просмотр содержимого каталога) - write (создавать файлы или переименовывать их в каталоге) - execute (выполнять поиск по каталогу) Каким образом монитор обращений принимает решение о разрешении или запрете доступа? Для этого известны два основных решения. Во-первых, монитор обращений может использовать разрешения на доступ – типичное решение в моделях дискретного контроля доступа (discretionary access control, DAC). Во-вторых, монитор обращений может использовать значения неких атрибутов объектов прикрытия и субъектов доступа, отвечающих за уровень доступа - решение типично для моделей многоуровневого контроля доступа (multilevel access control, MAC). Существуют также инновационные подходы, в которых разрешения на доступ когут бать выражены в терминах атрибутов объектов и субъектов, а также учитывать контекст. Стратегии контроля доступа Субъект Разрешения на доступ Запрос на доступ Монитор обращений Объект Разрешения на доступ, иначе – авторизации – представляют в терминах субъектов, объектов и режимов доступа. С концептуальной точки зрения, разрешение на доступ – это кортеж <s, o, a>, где s субъект, o - объект, a - режим доступа. Говорят, что субъект s имеет разрешение на выполнение операции a над объектом o. Говорят также, что s имеет право доступа a на объект o. Например, <Bob, Read, F1> означает, что Bob имеет разрешение на чтение файла F1. Субъекты, объекты и режимы доступа можно организовывать в иерархии. Смысл такой иерархии зависит от предметной области. Использование иерархии дает два важных преимущества: - сокращается количество разрешений, которые нужно ввести с систему контроля доступа, следовательно – сократить стоимость администрирования. - в комбинировании с негативными авторизациями (запретами на доступ), возможно организовать определение исключительных ситуаций. Организовывать можно разные иерархии: 446987560 Спецкурс (8 семестр) «Безопасность систем баз данных» Специальность «Информатика» 3 из 5 Иерархия объектов Часть-целое каталог объект Объект-компонент файл Иерархия ролей Технический менеджер Более ответственная роль Менее ответственная роль программист Иерархия групп Участие в группе Университет группа Участник группы Математический факультет Например, предположим, что к группе математического факультета относится 200 сотрудников, а группа, соответствующая всему университету насчитывает 5000 сотрудников. Пусть также существует следующая стратегия безопасности: план работы факультета может прочитать любой сотрудник университета, и только сотрудники математического факультета могут редактировать этот план. Тогда соответствующие разрешения имеют вид: <университет, план работы, read> <математический факультет, план работы, write> Иерархия режимов доступа Подкласс-суперкласс write read 446987560 режим унаследованный режим Спецкурс (8 семестр) «Безопасность систем баз данных» Специальность «Информатика» 4 из 5 Группы и негативные авторизации. Группы могут быть рассмотрены как промежуточный слой между пользователями и объектами. Например, возможен «идеальный» случай, когда все разрешения на доступ модерируются группами. s2 s1 s3 s4 Users g2 g1 o1 s5 o2 o3 Groups o4 o5 o6 Objects Часто стратегии контроля доступа имеют специальные случаи, когда имеет смысл выдать пользователю разрешение на объект напрямую, либо запретить пользователю некие разрешения, обусловленные его принадлежностью к некой группе. Негативное разрешение определяет операцию, которую пользователю нельзя выполнять над объектом. Представлять негативные разрешения можно с помощью дополнительного элемента кортежа - знака разрешения. <s, o, a, sign> где sign {+, -} Например, ситуация, когда не все разрешения на доступ модерируются группами, показана на рисунке. s1 s2 s3 Users g1 o1 o2 Groups o3 o4 o5 Objects Ключевым вопросом при работе с разрешениями на доступ, является выбор ответственного лица – администратора, который определяет распределение разрешений по объектам и субъектам. Администратор, таким образом, также является субъектом процесса доступа. Как уже упоминалось выше, существуют два подхода к распределению разрешений на доступ: - дискреционный, или избирательный – владелец ресурса декларирует, каким субъектам разрешен доступ; при этом возникает вопрос – кто считается владельцем ресурса? - обязательный – стратегия, объемлющая всю систему, декларирует, каким субъектам разрешен доступ; Эти подходы широко известны, но сегодня есть требования по разработке более изощренных средств и подходов. Структуры контроля доступа. Наиболее известной структурой для DAC моделей является Матрица Контроля Доступа (Access Control Matrix). 446987560 Спецкурс (8 семестр) «Безопасность систем баз данных» Специальность «Информатика» 5 из 5 Пусть - S - множество субъектов - O - множество объектов - A - множество режимов доступа Матрица контроля доступа M на S, O, и A определяется как M = (Mso)sS, oO и Mso A Элемент Mso определяет множество операций доступа, которые субъект s может применять к объекту o. Например bill.doc edit.exe fun.dir Alice Bill {execute} {execute, read} {read, write} - {execute, read, write} Однако прямая реализация матриц контроля доступа абсолютно неэффективна, т.к. большинство элементов в ней будут пустыми. Поэтому, такие матрицы чаще реализуются с помощью списков контроля доступа (ACL, Access Control Lists), которые используются и в СУБД и в ОС. Another is Capabilities. Основными операциями в контроле доступа являются такие: - grant разрешения: добавление значений в матрицу контроля доступа - revoke: удаление значений из матрицы - check: проверка того, есть ли в матрице элемент касающийся объекта o и субъекта s с указанным режимом доступа. 446987560