Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Базы данных. Лекции по курсу. В 4 частях. Ч.4. Учебное пособие
.pdf
Ниже приведен пример создания структуры метки доступа для рас-
сматриваемой предметной области.
SQL> connect lbacsys/newlbacpsw
SQL> BEGIN
2 SA_COMPONENTS.CREATE_LEVEL(‘OLS_P1' ,2000,‘O’, ‘Открытая' );
3 SA_COMPONENTS.CREATE_ LEVEL(‘OLS_P1',4000,‘K’,
'Корпоративная' );
4 SA_COMPONENTS.CREATE_ LEVEL(‘OLS_P1',6000,‘A’,
'Аналитическая' );
5SA_COMPONENTS.CREATE_LEVEL(‘OLS_P1',4700,‘И’,
'Исследовательская' );
6 SA_COMPONENTS.CREATE_ LEVEL(‘OLS_P1',5600,‘П’,
'Производственная' );
7 END;
8 /
Процедура PL/SQL успешно завершена.
CREATY_ LEVEL – процедура из пакета SA COMPONENTS
Шаг 3. Собственно создание метки управления доступом
Первый параметр – идентификатор политики безопасности, второй
параметр – маркер метки – должен иметь уникальное значение для всей
БД, поэтому значение расширено (максимально – до 8 знаков), третий –
название метки. Все прозрачно. Естественно, есть Ater_Label, Drop_Label
SQL> connect lbacsys/newlbacpsw
SQL> Begin
2 SA_LABEL_ADMIN.CREATE_LABEL(‘OLS_P1' , 1002000, 'O') ;
3 SA_LABEL_ADMIN.CREATE_LABEL(‘OLS_P1' , 1004700, 'K');
4 SA_LABEL_ADMIN.CREATE_LABEL(‘OLS_P1', 1005600, 'K');
5 SA_LABEL_ADMIN.CREATE_LABEL(‘OLS_P1' , 1006000, 'A') ;
6 END;
7 /
51

Процедура PL/SQL успешно завершена.
ADMIN.CREATE_LABEL – процедура из пакета SA COMPONENTS
Здесь маркеры сформированы вручную, но имеется функция для их
автоматического формирования.
До сих пор политика безопасности и метки доступа существовали
как абстрактные объекты. Они не были привязаны ни к таблицам базы
данных, ни к ее пользователям.
Пусть пользователь u1 является владельцем таблицы Таb1, имеющей
структуру и наполнение, представленное ниже. Пользователь u1
предоставил всем пользователям право на чтение и изменение строк
таблицы, чтобы традиционные ограничения дискреционной модели не
влияли на результаты действий с данными таблицы.
SQL> connect u1/u1psw
Соединено.
SQL> desc Таb1
Имя Тип
---------------------------------
AT1 NUMBER(38)
АТ2 CHAR(3)
SQL> select * from Tab1;
AT1 AT2
---------------------------------
1 a 3 с
2 b 4 d
4 d
SQL> grant select, update, insert, delete on Tab1 to public;
Привилегии предоставлены.
Шаг 4. Применение политики безопасности к таблице
В процедуре, применяющей политику безопасности, указываются
имя политики безопасности, имя схемы, имя таблицы и не обязательный
параметр, указывающий особенности контроля доступа к данным
52

таблицы: READ_CONTROL – контроль чтения в мандатной модели –
свойство No Read Up.
SQL> connect lbacsys/newlbacpsw
SQL> exec SA_POLICY_ADMIN.APPLY_TABLE_POLICY(‘OLS_P1', 'u1',
‘Tab1’, ' READ_CONTROL') ;
Процедура PL/SQL успешно завершена.
SQL> desc u1.Tab1
Имя Тип
-------------------------------------------------
ATI NUMBER(38)
AT2 CHAR(3)
SA_LABEL NUMBER (10)
Применение политики безопасности к таблице приводит к созданию
нового, дополнительного столбца. По умолчанию имя столбца
SA_LABEL, но его можно было сделать иным. Несмотря на то что поль-
зователь u1 создал таблицу Таb1, явно изменить значение атрибута
SA_LABEL он не может. Изменение может выполнить только пользова-
тель lbacsys.
Шаг 5. Присвоение
меток субъектам доступа – пользователям
Будем считать, что пользователь u1 имеет доступ к открытой инфор-
мации, u2 – к корпоративной исследовательской, u3 – к корпоративной
производственной, u4 – к аналитической. Поэтому зададим для пользователей u1, u2, u3, u4 значения параметра “максимальная_метка_по чтению” ‘O’, ‘K:И’, ‘К:П’, ‘А’ соответственно.
SQL> connect lbacsys/newlbacpsw
SQL> BEGIN
2 SA_USER_ADMIN.SET_USER_LABELS(‘OLS_P1' , ‘u1' , ‘O’);
3 SA_USER_ADMIN.SET_USER_LABELS(‘OLS_P1' , ‘u2' , ‘K:И’);
4 SA_USER_ADMIN.SET_USER_LABELS(‘OLS_P1' , ‘u3' , ‘К:П’);
5 SA_USER_ADMIN.SET_USER_LABELS(‘OLS_P1' , ‘u4' , ‘A’);
6 END;
7 /
Процедура PL/SQL успешно завершена.
53

Шаг 6. Присвоение меток объектам доступа – строкам таблицы
SQL> connect lbacsys/newlbacpsw
SQL> update u1.Tabl set SA_LABEL= char_to_label ('OLS_P1' ,'O' ) where
AT1= 1
SQL> update u1.Tabl set SA_LABEL= char_to_label ('OLS_P1' ,' K:И ' )
where AT1= 2
SQL> update u1.Tabl set SA_LABEL= char_to_label ('OLS_P1' ,' K:П' )
where AT1= 3
SQL> update u1.Tabl set SA_LABEL= char_to_label ('OLS_P1' ,‘A ) where
AT1= 4
Результат мандатного управления доступом по чтению: пользователи видят только те строки таблицы данных, на которые они имеют
права (совпадение меток).
SQL> select * from u1.Tabl; ----- для администратора
ATI AT2 SA LABEL
1 a 1002000
2 b 1004700
3 с 1005600
4 d 1006000
SQL> connect u1/u1psw ----- для пользователя u1
Соединено.
SQL> select atl,at2 from Tab1;
ATI AT2
1 a
SQL> connect u2/u2psw ----- для пользователя u2
Соединено.
SQL> select atl,at2 from u1.Tab1;
ATI AT2
1 a
2 b
54

SQL> connect u3/u3psw ----- для пользователя u3
Соединено.
SQL> select atl,at2 from u1.Tab1;
ATI AT2
1 a
3 с
SQL> connect u4/u4psw ----- для пользователя u4
Соединено.
SQL> select atl,at2 from u1.Tab1;
ATI AT2
1 a
4 d
Некоторое недоумение может вызвать то, что пользователь u4 не видит вторую и третью строку. На самом деле так и должно быть, поскольку при определении метки доступа для u4 ему не было приписано
ни одного отделения, а метки, соответствующие уровню секретности
«Корпоративный», разделены на два отделения.
Однако в данном
решении есть изъян.
Свойство модели Белла–Лападулы No Read Up – «запрещение чтения вверх» выполняется. Действительно, пользователь, метка безопасности которого не доминирует над меткой безопасности кортежа, прочитать его не может.
Но *-свойства или No Write Down – «запрещение записи вниз» модели Белла–Лападулы не выполняется.
Следующий пример подтверждает нарушение *-свойства.
Пусть пользователь
u4 создает кортеж с минимальным уровнем секретности. Пользователь u1 может прочесть эти данные, значит, *-свойство не выполняется.
SQL> connect u4/u4psw
Соединено.
SQL> insert into u1.tab1 values (5, ‘e', char_to_label ('OLS_P1' ,'O' ) );
1 строка создана.
55

SQL> connect u1/u1psw
Соединено.
SQL> select atl,at2 from tab1;
ATI AT2
-----------------------------
1 a
5 e
Повторно применим к таблице Tab1 политику безопасности
OLS_P1, задав, помимо параметра READ_CONTROL, параметр
WRITE_CONTROL, обеспечивающий применение политики мандатного
доступа к операциям записи и модификации данных.
Пример конфигурации параметров, обеспечивающий выполнение
*-свойства:
SQL> connect lbacsys/newlbacpsw
Соединено.
SQL> exec SA_POLICY_ADMIN.REMOVE_TABLE__POLICY(‘OLS_ P1'
,'u1' ,' Tab1' ) ;
Процедура PL/SQL успешно завершена.
SQL> exec SA_POLICY_ADMIN.APPLY_TABLE_POLICY("OLS_ P1' ,'
u1' ,' Tab1‘,
‘READ_CONTROL, WRITE_CONTROL' ) ;
Процедура PL/SQL успешно завершена.
Теперь *-свойство, закрывающее канал записи
пользователя с высокой категорией допуска в объект с низкой категорией секретности, выполняется.
SQL> CONNECT u4/u4psw
Соединено.
SQL> insert into u1.tab1 values (5, ‘e', char_to_label ('OLS_P1' ,'O' ) );
SQL> insert into u1.tab1 values (5, ‘e', char_to_label ('OLS_P1' ,'O' ) );
ошибка в строке 1:
56

ORA-12406: несанкционированный оператор SQL для методики
OLS_P1
Замечание
Модель многоуровневой безопасности предполагает также, что некоторый
объект, хранящийся в базе данных, может иметь помимо «реальной» миссии
некоторую «легенду». Например, если объект – это данные о сотруднике военного ведомства, то его такая «реальная» миссия, возможно, борьба с терроризмом или разведка, а «легенда» – сведения о том, что он является, например
рядовым сотрудником (поваром) некоторого подразделения.
Реализация этой посылки основывается на идее многоэкземплярности, состоящей в том, что в рамках одного отношения может существовать множество
кортежей с одним и тем же значением первичного ключа, и в зависимости от
класса доступа субъекта ему доступен один из этих кортежей.
Введение многоэкземплярности нарушает фундаментальные
ношений и порождает проблему многоэкземплярной целостности (целая область исследований, сводящаяся к ослаблению фундаментальных свойств).
свойства от-
ВОПРОСЫ
1. Какие задачи решаются для обеспечения безопасности баз дан-
ных?
2. Охарактеризуйте действия, выполняемые в рамках Login-
процедуры.
3. Охарактеризуйте три типа схем, лежащих в основе конкретных
процедур аутентификации.
4. Какие принципы заложены в модели управления доступом?
5. В чем состоит принцип минимальных и максимальных привиле-
гий?
6. В чем состоит
принцип открытой/закрытой системы?
7. В чем состоит принцип централизованного и децентрализован-
ного администрирования?
8. Охарактеризуйте дискреционную модель безопасности.
9. Охарактеризуйте ролевую модель безопасности.
10. Что такое роль?
11. Что такое привилегии доступа?
12. Что понимается под добровольным управлением доступом?
13. Что понимается под принудительным управлением доступом?
,
57

14. Какими средствами осуществляется управление привилегиями
в дискреционной и ролевой модели безопасности?
15. В чем заключается недостаток дискреционной и ролевой модели
безопасности?
16. Какова идея мандатной модели безопасности?
17. В чем заключается модель Белла–ЛаПадула?
18. Перечислите системные привилегии.
19. Перечислите привилегии на доступ к объекту.
20. Каковы правила разграничения доступа
в мандатной модели без-
опасности?
21. Что такое класс доступа в мандатной модели безопасности?
22. Почему субъекту, которому разрешен доступ к объектам с более
высокой меткой конфиденциальности, запрещается запись информации
в объекты с более низким уровнем безопасности?
23. Что содержит метка объекта в мандатной модели безопасности?
24. Что содержит метка
субъекта в мандатной модели безопасности?
25. Что подразумевается под простым свойством секретности
(simple security property) – No Read Up в мандатной модели безопасности?
26. Что подразумевается под *-свойством: запрет записи вниз – No
Write Down в мандатной модели безопасности?
27. Каковы шаги работы с мандатной моделью безопасности
в СУБД Oracle?
28. В чем состоит идея многоэкземплярности в модели
многоуров-
невой безопасности Белла–ЛаПадула?
58

5. СРЕДСТВА И МЕТОДЫ ОБЕСПЕЧЕНИЯ
БЕЗОПАСНОСТИ БАЗ ДАННЫХ
Все средства и методы защиты можно разбить на две группы: орга-
низационно-административные и компьютерные средства защиты.
Организационно-администра-
тивные средства:
Компьютерные
средства защиты:
Правила внутреннего распорядка
Контроль за персоналом
Соблюдение требований норма-
тивных документов по работе
с ИС
Управление уровнем доступа
к документам, данным и оборудованию
Защита помещений
Повышение квалификации персо-
нала, тренинги и пр.
Идентификация и аутентификация
Авторизация пользователей
Дискреционная, ролевая и ман-
датная
модель безопасности
Использование представлений
(View)
Шифрование
Аудит
Резервное копирование и восста-
новление и пр.
5.1. ОРГАНИЗАЦИОННО-АДМИНИСТРАТИВНЫЕ СРЕДСТВА
Очень часто недооценивается роль и значение нормативных документов, а между тем это важнейшая составная часть системы безопасности, и выполнение норм и положений, заложенных в них, в значительной степени обеспечивает защиту данных Информационной системы.
59

В приложении приведены примеры нормативных документов, используемых при работе с Информационной системой НГТУ.
5.2. ПРОГРАММНО-ТЕХНИЧЕСКИЕ СРЕДСТВА И МЕТОДЫ
ОБЕСПЕЧЕНИЯ БЕЗОПАСНОСТИ БАЗ ДАННЫХ
Потеря данных в системах происходит не так уж редко. Причинами
частичной или полной потери данных могут быть поломки аппаратных
средств, сбои в электропитании, ошибки в системных и
прикладных
программах и др. Наиболее частыми причинами являются отказы носителей из-за поломок головок диска или нарушений в контроллере диска.
5.2.1. РЕЗЕРВНОЕ КОПИРОВАНИЕ
Резервное копирование (backup) базы данных и ее журнала транзак-
ций используется для восстановления базы данных в случае отказа системы, представляет собой периодически выполняемую процедуру получения копии базы данных и ее журнала транзакций на носителе, сохраняемом отдельно от системы. Хранение резервных копий вне компании позволит восстановить систему после
стихийного бедствия.
Возможны следующие варианты резервного копирования базы
данных.
Полное резервное копирование базы данных (full backup). В этом
случае создается полная копия всей базы данных.
Дифференциальное резервное копирование (differential backup),
когда заново и полностью копируются только данные (файлы), которые изменились с момента последнего полного резервного копирования. Такая
копия компактнее
и требует меньше времени и меньше памяти. Вариант
используется только в сочетании с полным резервным копированием.
Инкрементальное (добавочное) резервирование (incremental
backup) – копируются только те файлы, которые были изменены со вре-
мени последнего полного или инкрементального копирования.
Резервное копирование файлов и групп файлов. При этом копиру-
ются только определенные
файлы или группа файлов, а не база данных
целиком.
Резервное копирование журнала транзакций. Это копирование
файла журнала транзакций, в который вносятся все изменения в базе
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
