- •Введение в безопасность баз данных
- •Аутентификация пользователей в системе Oracle
- •Внешняя аутентификация пользователей
- •Аутентификация на основе инфраструктуры сертификатов
- •Методы дискреционного разграничения доступа
- •Предоставление системных привилегий
- •Методы дискреционного разграничения доступа
- •Предоставление системных привилегий
- •Отмена привилегий
- •Обеспечение разграничения доступа к данным с помощью представлений
- •Предоставление привилегий на доступ к объекту
- •Реализация контроля доступа с помощью хранимых процедур
- •Обеспечение защиты данных с помощью триггеров
- •Системные привилегии, определяющие права по работе с пользователями
- •Разграничение доступа на основе ролей
- •Управление допустимостью использования ролей
- •Реализация мандатной модели субд Oracle
Реализация мандатной модели субд Oracle
Мандатная модель доступа характерна для случая, когда возможность конкретных действий с данными или документами определяется внешним и обычно глобальным собственником информации. Основная идея мандатной модели доступа состоит в приписывании объектам и субъектам доступа меток. Если метки объекта и субъекта соответствуют в некотором смысле, то субъект получает право на выполнение определенных действий с объектом.
В реляционной модели, в качестве структуры, обладающей меткой обычно выбирают кортеж. Это решение позволяет обеспечить достаточную избирательность доступа. Местом хранения меток может быть выбран только кортеж с данными. При этом соответствующий атрибут и домен, из которого принимают значения метки доступа должен обладать некоторыми особенностями, в частности должен быть решен вопрос о технологии заполнения и изменения этого атрибута
Реализации мандатной технологии в Oracle наложена на реализацию дискреционной модели. Возможность доступа к данным проходит проверку в 2 этапа:
Проверка возможности доступа в соответствии с дискреционной моделью
Проверка возможности доступа в соответствии со мандатной моделью
В интерпретации Oracle метка безопасности представляет собой 3-ку элементов: m = <a, b, g>
а – Элемент линейно-упорядоченного множества А
b – Подмножество элементов из множества B
g – элемент иерархически упорядоченного множества G
В терминологии Oracle множество А – уровни доступа (levels), B – отделения (compartments), G – группы (groups).
Объектами, доступ к которым регулируется мандатной политикой безопасности, являются таблицы БД. Уполномоченным пользователям предоставляются средства приписывания объектам и субъектам меток доступа.
Реализация мандатного доступа предполагает установке специального программного компонента (Oracle Lable Security).
Корректность установки компонентов OLS можно проверить: во-первых при подключении к серверу БД (она появляется в списке установленных компонентов), во-вторых нужно удостовериться в появлении нового пользователя LBACSYS с набором принадлежащих ему объектов.
>select object_type, count (*)
From dba_objects
Where owner = ‘LBACSYS’
Group by object_type;
>alter user LBACSYS identified by lbacpsw
Пользователь LBACSYS уполномочен осуществлять управление метками доступа. Управление выполняется вызовом различных процедур и спец-пакетов, собственником которых является LBACSYS. В Oracle метка доступа ассоциируется с каждой строкой таблицы, что реализуется добавлением в таблицу дополнительного столбца. Технология мандатного управления доступом рассматривается в форме некоторого абстрактного объекта в политике безопасности. Создание, изменение и уничтожение политики безопасности выполняется процедурами из пакета SA_STSDBA, а процедуры: create_policy, alter_policy, drop_policy.
При создании политики безопасности обязательным параметром является ее имя. Дополнительно можно указать имя атрибута, который будет использоваться для хранения меток и параметр видимости соответствующего столбца.
Для выполнения процедур пакета необходимо либо явно предоставленная привилегия execute для этих процедур, либо отображение на роль LBAC_DBA.
При создании политики безопасности автоматически создается роль <имя политики>_DBA
>connect LBACSYS/lbacpsw;
>exec SA_SYSDBA.CREATE_POLICY (‘ols_p1’);
>connect system/*****;
>exec SA_SYSDBA.CREATE_POLICY (‘ols_p2’);
Не смотря на то, что метка безопасности имеет 3-х компонентную структуру, обязательным является только указание уровня доступа.
Теоретически допускается до 10000 различных уровней секретности.
Уровни секретности должны образовывать строгую иерархию. Отделения должны задавать непересекающиеся множества, обычно ассоциируемые с функциональными подразделениями некоторой общей структуры. Группы могут образовывать иерархические структуры, и обычно ассоциируются с территориальным делением некоторой глобальной структуры. Не обязательно присутствующие в метке доступа параметры отделения и доступа задают более тонкую детализацию для текущего уровня секретности. Уровень секретности отделения и группа описываются тройками – число, краткое название, развернутое название. Краткое название – может содержать до 10 символов, развернутое – до 80. Число для уровней секретности позволяет определять возможность доступа. Если уровень субъекта меньше, чем уровень объекта, то доступа нет. Для отделения и группы это число не несет никакого содержательного смысла, а служит только идентификатором для определения соответствия.
