В настоящее время наиболее часто используется три основных подхода к разграничению доступа: избирательный, обязательный и ролевой. Избирательный подход описывается дискреционной моделью разграничения доступа, Discretionary Access Control (DAC), обязательный или полномочный - мандатной моделью разграничения доступа, Mandatory Access Control (MAC). Оба обеспечивают создание системы безопасности как для БД в целом, так и для отдельных её объектов - таблиц, представлений, кортежей и т.д. вплоть до конкретного значения некоторого атрибута в определенном кортеже определенного отношения. Ролевая модель разграничения доступа, Role Based Access Control (RBAC) является в некотором смысле комбинацией вышеуказанных моделей. Следует упомянуть также и модель Китайской стены, заключающаяся в возведении физического барьера между БД и группой авторизованных лиц, и остальным миром.
1.3 Дискреционное разграничение доступа
Избирательный подход, описываемый дискреционной моделью разграничения доступа, является наиболее простым одноуровневым подходом к обеспечению безопасности. Основными его понятиями являются:
· субъект - системный идентификатор, от имени которого СУБД выполняет определенные действия над определенными объектами. Понятие субъекта отличается от понятия пользователь компьютерной системы, поскольку инициировать изменение информации могут также и системные процессы;
· объект защиты - часть БД, на которую распространяется действие конкретного правила безопасности; это может быть группа отношений, отдельное отношение, подмножества атрибутов и т.д.;
· привилегия - действие над объектом защиты, которое может быть совершено от имени конкретного идентификатора.
Информация о привилегиях сохраняется в системном каталоге. Она используется системой для принятия решения о выполнении запрошенных субъектом операций над данными. При этом действует принцип: запрещено всё, что не разрешено явно. Выделяют два типа привилегий:
1. Системные привилегии - права на создание и модификацию объектов БД (пользователей, именованных отношений, правил и т.п.);
2. Объектные привилегии - права на использование объектов в операциях манипулирования данными.
Дискреционная модель разграничения доступа основывается на следующих основных положениях:
1. Все субъекты и объекты должны быть однозначно идентифицированы;
2. Для любого объекта должен быть определен пользователь- владелец;
3. Владелец объекта обладает правом определения прав доступа к объекту со стороны любых субъектов;
4. В системе существует привилегированный пользователь, обладающий правом полного доступа к любому объекту (или правом становиться владельцем любого объекта).
Последнее свойство определяет невозможность существования в системе потенциально недоступных объектов, владелец которых отсутствует. Но реализация этого положения не означает, что привилегированный пользователь может использовать свои полномочия незаметно для реального владельца объекта.
Чаще всего владельцем базы данных является Администратор БД. Ему предоставлены все системные и объектные привилегии. В частности, он имеет право регистрации новых пользователей и предоставления им привилегий, как системных, так и объектных. Пользователь, имеющий системные привилегии, является владельцем всех созданных им объектов, имеет по отношению к ним все привилегии и может предоставлять их полностью или частично другим пользователям. Минимальной системной привилегией является право подключения к СУБД - привилегия входа. Она должна быть предоставлена каждому служащему, который в силу своих служебных обязанностей имеет такое право.
Дискреционное разграничение доступа реализуется на основе множества разрешенных отношений доступа в виде троек - «субъект доступа - тип доступа - объект доступа». Наглядным и распространенным способом формализованного представления дискреционного доступа является матрица доступа, устанавливающая перечень пользователей и перечень разрешенных операций (процессов) по отношению к каждому объекту базы данных (таблицы, запросы, формы, отчеты). В таблице 1 приведен пример, иллюстрирующий матрицу доступа. Данное представление является схематичным, поскольку в реляционных БД вследствие требования первой нормальной формы для каждого типа доступа некоторого субъекта к некоторому объекту отводится отдельная запись.
Таблица 1. Модель безопасности на основе матрицы доступа
|
Объекты Субъекты |
Клиенты |
Товары |
Заказы |
|
|
Хурсинов |
чтение, вставка, модификация |
чтение, вставка, модификация |
чтение, вставка, модификация |
|
|
Барсагов |
чтение, вставка |
чтение |
чтение |
|
|
Кештов |
чтение |
чтение |
В рамках дискреционной модели существует два подхода управления доступом:
· добровольное управление доступом;
· принудительное управление доступом.
При добровольном управлении доступом вводится так называемое владение объектами. Как правило, владельцами объектов являются те субъекты базы данных, процессы которых создали соответствующие объекты. Добровольное управление доступом заключается в том, что права на доступ к объектам определяют их владельцы. Иначе говоря, соответствующие ячейки матрицы доступа заполняются теми субъектами (пользователями), которым принадлежат права владения над соответствующими объектами базы данных. Владение некоторым объектом предоставляет его владельцу весь возможный набор привилегий в отношении этого объекта. Это правило применяется ко всем авторизированным пользователям, получающим права владения определенными объектами. Любой вновь созданный объект автоматически передается во владение его создателю, который и получает весь возможный набор привилегий для данного объекта. Принадлежащие владельцу привилегии могут быть переданы им другим авторизированным пользователям. При предоставлении пользователю некоторой привилегии дополнительно можно указывать, передается ли ему право предоставлять эту привилегию другим пользователям (уже от имени этого пользователя). Естественно, что в этом случае СУБД должна контролировать всю цепочку предоставления привилегий пользователям с указанием того, кто именно ее предоставил, что позволит поддерживать корректность всего набора установленных в системе привилегий. В частности, эта информация будет необходима в случае отмены предоставленных ранее привилегий для организации каскадного распространения вносимых изменений среди цепочки пользователей. В результате при добровольном управлении доступом реализуется полностью децентрализованный принцип организации и управления процессом разграничения доступа. Такой подход обеспечивает гибкость настраивания системы разграничения доступа в базе данных на конкретную совокупность пользователей и ресурсов, но затрудняет общий контроль и аудит состояния безопасности данных в системе.
Принудительный подход к управлению доступом предусматривает введение единого централизованного администрирования доступом. В базе данных выделяется специальный доверенный субъект (администратор), который, собственно, и определяет разрешения на доступ всех остальных субъектов к объектам базы данных. Иначе говоря, заполнять и изменять ячейки матрицы доступа может только администратор системы. Принудительный способ обеспечивает более жесткое централизованное управление доступом. Вместе с тем он является менее гибким и менее точным в плане настройки системы разграничения доступа на потребности и полномочия пользователей, так как наиболее полное представление о содержимом и конфиденциальности объектов (ресурсов) имеют, соответственно, их владельцы.
На практике может применяться комбинированный способ управления доступом, когда определенная часть полномочий на доступ к объектам устанавливается администратором, а другая часть владельцами объектов.
Некоторыми объектами в среде СУБД владеет сама СУБД. Обычно это владение организуется посредством использования специального идентификатора особого суперпользователя - например, с именем system administrator (sa).
Пользователи могут быть объединены в специальные группы пользователей. Один пользователь может входить в несколько групп. Для пользователей с минимальным стандартным набором прав вводится понятие группы PUBLIC. По умолчанию предполагается, что каждый вновь создаваемый пользователь, если специально не указано иное, относится к группе PUBLIC. Если СУБД поддерживает использование идентификаторов как отдельных пользователей, так и их групп, то, как правило, идентификатор пользователя будет иметь более высокий приоритет, чем идентификатор группы.
Привилегии конкретному пользователю могут быть назначены администратором явно и неявно, например, через роль. Роль - это еще один возможный именованный носитель привилегий. Существует ряд стандартных ролей, которые проектируются при разработке СУБД. Также имеется возможность создавать новые роли, группируя в них произвольные полномочия. Введение ролей позволяет упростить управление привилегиями пользователей, структурировать этот процесс. Кроме того, введение ролей не связано с конкретными пользователями, поэтому роли могут быть определены и сконфигурированы до того, как определены пользователи системы. Роли удобно использовать, когда тот или иной набор привилегий необходимо предоставить или отнять сразу для группы пользователей. С одной стороны, это облегчает администратору управление привилегиями, с другой - вносит определенный порядок в случае необходимости изменить набор привилегий для группы пользователей сразу. Более подробно с ролевой моделью разграничения доступа познакомимся позже.
Модель Харрисона-Руззо-Ульмана:
Математической формализацией дискреционной модели является разработанная в 1971 г. модель Харрисона-Руззо-Ульмана. В данной модели дополнительно к субъектам S, объектам O (причем для того, чтобы включить в область действия модели и отношения между субъектами, принято считать, что все субъекты одновременно являются и объектами, S ? O ) и правами доступа R, определяющим матрицу доступа M, вводится также пространство состояний системы Q. Пространство состояний системы образуется декартовым произведением множеств составляющих ее объектов, субъектов и прав S ґ O ґ R. Любая ячейка матрицы M содержит набор прав субъекта S к объекту O, принадлежащих множеству прав доступа R. Поведение системы во времени моделируется переходами между различными её состояниями. Для заданной системы начальное состояние Q0 = {S0, O0, M0}, где M0 - текущее состояние матрицы доступа, называется безопасным относительно права r, если не существует применимой к Q0 последовательности команд, в результате выполнения которых право r будет занесено в ячейку матрицы M, в которой оно отсутствовало в состоянии Q0. Другими словами это означает, что субъект никогда не получит право доступа r к объекту, если он не имел его изначально. Если же право r оказалось в ячейке матрицы M, в которой оно изначально отсутствовало, то говорят, что произошла утечка права r.
Очевидно, что для каждого субъекта S, активизированного в момент времени t, существует единственный субъект S', который активировал (создал) некоторое право доступа r для субъекта S. Поэтому посредством анализа графа отношений между субъектами и объектами можно выявить единственного пользователя, от имени которого активизировано исследуемое право субъекта S. Соответственно, для любого объекта существует единственный пользователь, создавший данный объект и сформировавший для него список прав доступа. В этом случае схематичное изображение канала утечки в виде разрешенного доступа от имени разных пользователей к одному и тому же объекту будет выглядеть следующим образом: Si -> (Запись в момент времени t1) -> O и Sj -> (Чтение в момент времени t2) -> O, где i?j и t1 < t2. Фактически это означает, что ничто не мешает легальному пользователю (например, вследствие программной ошибки) перебросить секретную информацию во вновь созданный объект, доступ к которому открыт всем желающим, или организовать скрытый канал утечки при помощи «троянского» коня. Главным недостатком модели является то, что в ней контролируются только операции доступа субъектов к объектам, а не потоки информации между ними. Поэтому, когда «троянская» программа переносит информацию из доступного некоторому пользователю объекта в объект, доступный нарушителю, то формально никакое правило дискреционной политики безопасности не нарушается, но утечка информации происходит.
Рассмотрим еще один пример утечки права. Пусть в начальном состоянии в системе имеются объект O и два субъекта: S и T; S не обладает никаким правом по отношению к O, а T обладает некоторым правом a по отношению к O. Сформулируем последовательность шагов, показывающих, как субъект S может получить право доступа a по отношению к субъекту O:
1) Начальное состояние;
2) Субъект S создаёт новый объект X, по отношению к которому автоматически получает права чтения и записи (потому что при создании объекта он становиться владельцем объекта);
3) Субъект S передаёт субъекту T права чтения и записи по отношению к X;
4) Субъект T копирует часть или все записи объекта O в объект X;
5) Субъект S, имея полные права доступа к X, получает право доступа к скопированным данным, что означает фактический перенос права a по отношению к O от субъекта T к субъекту S.
Классическая модель Харриона-Руззо-Ульмана широко используется при проведении формальной верификации корректности построения систем разграничения доступа в высоко защищённых автоматизированных системах. Проблему безопасности можно сформулировать в следующем общем виде: существует ли какое-либо достижимое состояние Q, при ко тором некоторый субъект будет обладать правами доступа к определен- ному объекту. В рамках решения данной проблемы сформулированы и доказаны две теоремы: