Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Базы данных. Лекции по курсу. В 4 частях. Ч.4. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
4. УПРАВЛЕНИЕ ДОСТУПОМ К ДАННЫМ
Защита данных является одной из главных функций СУБД. Защита данных может рассматриваться с нескольких точек зрения.
1.  Защита для обеспечения секретности, связанная с разрешением использования данных, хранящихся в базе данных, только тем пользо­вателям, которые имеют на это право. Решение этой задачи обеспечива­ется применением Login-процедур, а также использованием представле­ний.
В отдельных случаях для повышения уровня секретности исполь­зуются собственные форматы хранения данных и сырое дисковое про­странство.
2.  Защита от несанкционированного доступа определяет права на выполнение только разрешенных пользователю операций с базой данных. В современных СУБД эта задача решается в рамках дискреци­онной, ролевой или мандатной модели безопасности. Решение первых двух задач помогает решать и функция аудита.
3.  Защита от разрушения базы данных при сбоях оборудования. Для решения этой задачи используются функция резервного копирова­ния, журнализации и восстановления данных.
Получение доступа к ресурсам Информационной системы преду­сматривает выполнение трех процедур: идентификации, аутентифика­ции и авторизации.
4.1. LOGIN-ПРОЦЕДУРЫ
Процедуры идентификации и аутентификации являются
обязатель-
ными процедурами, обеспечивающими первую линию защиты любой автоматизированной системы, в том числе Информационной системы баз данных. Часто процедуры идентификации и аутентификации в авто­матизированных системах называют Login-процедурами.
31
Сущность процедуры идентификации состоит в присвоении субъек- там и объектам доступа уникального идентификатора.
Сущность процедуры аутентификации состоит в подтверждении подлинности пользователя, представившего идентификатор. Проце­дура позволяет проверить, тот ли это человек (или устройство), за ко­торого он себя выдает. Если некто, идентифицирующий себя как Вася, переводит со счета на счет 5 тыс
. долларов, то неплохо было бы иметь способ установить, что это действительно Вася, а не его брат-близнец Петя.
Процедуры идентификации и аутентификации позволяют выпол-
нять следующие функции:
установление подлинности субъекта при его допуске в систему;  контролирование установленных полномочий в процессе сеанса
работы;
регистрацию действий и др. Различные
СУБД позволяют по-разному задавать и хранить инфор­мацию об уникальном идентификаторе пользователя. Подсистема без­опасности Oracle позволяет создавать пользователей базы данных по­средством предложения:
CREATE USER IDENTIFIED пользователь BY пароль
Подсистема безопасности IBM DB2 может использовать идентифи­каторы пользователей ОС; ее синтаксис SQL не содержит предложения, аналогичного предложению CREATE USER. СУБД Microsoft SQL Server может использовать аутентификацию как пользователей баз данных, так и пользователей ОС.
СУБД PostgreSQL использует концепцию ролей для управления раз­решениями на доступ к базе данных. Концепция ролей включает в себя концепцию пользователей (users) и групп (groups). Роль можно рассмат­ривать как пользователя базы данных или как группу пользователей в зависимости от того, как роль настроена. Роли могут владеть объектами базы данных
(например, таблицами и функциями) и выдавать другим
ролям разрешения на доступ к этим объектам.
Для создания роли используется команда SQL CREATE ROLE:
CREATE ROLE имя [ [ WITH ] параметр [...]]
32
Существует также команда CREATE USER, которая является сино­нимом команды CREATE ROLE:
CREATE USER имя [[WITH ] параметр [...]]
У каждого подхода есть достоинства и недостатки, но все они поз­воляют строить корректные схемы определения подлинности пользова­телей.
В любой СУБД есть пользователь, который имеет неограниченные привилегии. В PostgreSQL – это пользователь «postgres», в других СУБД это может быть пользователь
«root». Учетные данные этих пользовате­лей должны быть известны только администраторам сервера баз дан­ных, защищены надежными паролями и использоваться исключительно в задачах администрирования сервера баз данных.
Сущность процедуры авторизации состоит в определении перечня конкретных информационных ресурсов, с которыми аутентифициро­ванному пользователю разрешена работа.
Процедуры идентификации, аутентификации и авторизации обяза­тельны
для любой защищенной Информационной системы.
Существует три типа схем, лежащих в основе конкретных процедур аутентификации:
аутентификация, основанная на знании (пользователь обладает некоторым конфиденциальным знанием);
аутентификация, основанная на наличии (пользователь обладает некоторым конфиденциальным предметом);
аутентификация, основанная на проверке характеристик (пользо- ватель предъявляет некоторые уникальные характеристики).
I. Аутентификация, основанная на
знании
Этот метод предполагает парольную защиту. При этом идентифика­тор пользователя выступает как заявка на идентификацию, а пароль – подтверждение этой заявки.
Соответствующие процедуры с давних пор применялись в неавто­матизированном контуре. Например, это взаимное опознавание с помо­щью пароля и отзыва в военных и пограничных караулах. Достоинство – простота, но она же
является и недостатком: пароль может быть не
только украден, подсмотрен, перехвачен, но и угадан.
33
Простейшей атакой противника на систему с фиксированными па­ролями является перебор всех возможных вариантов до тех пор, пока истинный пароль не будет найден. Ниже перечислены методы, умень­шающие угрозу компрометации паролей.
1.  Ограничение срока действия пароля
Как правило, максимальный срок действия пароля 30…60 дней; ми­нимальный срока действия пароля – один-два дня,
после чего доступ за-
крывается.
2.  Ограничение на содержание пароля: ограничение на длину па-
роля, наличие определенных видов символов и пр.
3.  Блокирование терминала
В случае превышения максимально допустимого числа неудачных попыток с одного терминала терминал блокируется.
4.  Блокирование пользователя
Метод отличается от предыдущего тем, что блокируется не терми­нал, а учетная
запись.
5.  Разовый пароль
Пароль автоматически меняется после каждого успешного входа в систему.
II. Аутентификация, основанная на наличии
Предметами, аутентифицирующими владельца, могут быть смарт­карты, электронные ключи, e-токены и пр.
Основная проблема при такой схеме в том, что аутентифицирующий предмет может быть похищен или потерян. Поэтому обычно в Инфор­мационной системе
используется комплексная процедура, состоящая из двух этапов. На первом этапе пользователь системы предъявляет пред­мет: электронный ключ, смарт-карту или e-токен, которые вводятся в соответствующее устройство считывания. На втором этапе пользова­тель вводит свой персональный идентификационный номер (PIN) для доказательства того, что он действительно владеет предметом и имеет право доступа
к определенным информационным ресурсам.
III. Аутентификация, основанная на биометрических
характеристиках
Аутентификация, основанная на проверке биометрических характе-
ристик человека, предполагает использование отпечатков пальцев,
34
рисунка радужной оболочки глаза, почерка, которые уникальны. Пре­имущество технологии – аутентифицирующий предмет не может быть потерян. В то же время, несмотря на многочисленные заявления о ши­роком использовании этой методики, эйфория, связанная с нахожде­нием «философского камня» аутентификации, представляется неоправ­данной. Основания для этого:
пользователем может быть и устройство, у
которого нет биологи-
ческих характеристик;
при двух последовательных входах биологические характери-
стики человека в точности никогда не совпадают;
большинство биологических характеристик человека меняется со
временем;
биологические характеристики могут испытывать кратковремен-
ные изменения (порезал палец);
требуется дорогостоящая аппаратура. Не стоит впадать и в другую крайность, полностью отвергая
исполь­зование биометрических технологий для аутентификации пользовате­лей Информационной системы. Эффективная система аутентификации пользователей Информационной системы должна строиться на эконо­мически оправданной комбинации всех трех основных схем.
4.2. МОДЕЛИ УПРАВЛЕНИЯ ДОСТУПОМ
Модель управления доступом определяет правила, по которым объ­екты базы данных доступны пользователям. В основу управления до­ступом могут быть
положены следующие принципы:
принцип минимальных привилегий: в соответствии с этим прин- ципом каждый процесс, пользователь или программа должны иметь до­ступ к такой информации, которая минимально необходима для успеш­ного выполнения его задач;
принцип открытой или закрытой системы: в открытой системе разрешен доступ к тем объектам, для которых явно
нет запрета, в закры­той системе доступ к объекту разрешен только при наличии явного раз­решения;
принцип централизованного и децентрализованного администри-
рования, отвечающий на вопрос, кто управляет привилегиями в модели
35
управления доступом: в случае централизованного администрирования привилегий доступа один-единственный субъект контролирует доступ ко всем объектам, в децентрализованной системе различные субъекты контролируют доступ к различным объектам.
В современных системах баз данных разграничение доступа в СУБД
выполняется в рамках одной из трех моделей безопасности: дискреци-
онной (избирательной, Discretionary Access Control, DAC), ролевой (Role Based Access Control, RBAC)
и мандатнай (Mandatory Access Control,
МАС). Возможны также комбинации этих политик.
4.2.1. ДИСКРЕЦИОННАЯ МОДЕЛЬ БЕЗОПАСНОСТИ
Дискреционная модель является простейшей одноуровневой моде­лью безопасности данных, которая строится на основе дискреционного (избирательного) принципа разграничения доступа. Доступ к объектам осуществляется на основе множества разрешенных отношений доступа в виде троек: «субъект доступа – тип доступа – объект доступа».
Объектом защиты может быть таблица, представление, хранимая процедура и т. д. (подробный список
объектов защиты имеется в доку-
ментации к используемой СУБД).
Субъектом защиты может быть пользователь, группа пользовате­лей, роль, а также хранимая процедура. При этом хранимая процедура имеет «двойной статус», поскольку она может быть и объектом защиты, и субъектом защиты, и нужно очень внимательно рассмотреть возмож­ные модели нарушителей разграничения прав доступа
.
Наглядным способом формализованного представления дискреци­онного доступа является матрица доступа, устанавливающая перечень пользователей (субъектов) и перечень разрешенных операций (процес­сов) по отношению к каждому объекту базы данных (таблицы, запросы, формы, отчеты).
В приведенной ниже таблице субъект доступа «Иванов» имеет право читать объект доступа «Объект1» и право на создание, чтение, измене­ние и удаление объектов доступа «Объект2» и «Объект4».
36
Субъект
доступа
Иванов Ч ЧМСУ ЧМСУ Ч – чтение
Петров ЧСМ ЧМСУ ЧСМ М – модифи-
Сидоров ЧМСУ С – создание
Попов ЧМСУ ЧМСУ ЧМСУ ЧМ У – удаление
……….
Объект1
(продажи)
Объект2
(выплаты)
Объект3 Объект4 Объект5 Операция
кация
К объектам доступа «Объект3» и «Объект5» этот субъект доступа прав не имеет. Субъект доступа «Сидоров» имеет право доступа на со­здание, чтение, изменение и удаление только к объекту доступа «Объ­ект1».
4.2.2. РОЛЕВАЯ МОДЕЛЬ БЕЗОПАСНОСТИ
При работе c базой данных сотни пользователей могут проводить над базой данных одни и те же операции. Каждому зарегистрирован­ному пользователю группы могут быть заданы одни и те же привилегии доступа к требуемым объектам базы данных. Однако схема авторизации доступа при этом становится очень сложной (рис. 4.1).
Ролевая модель определяет особый тип политики
, основанный на компромиссе между гибкостью управления доступом, характерным для дискреционной модели, и жесткостью правил контроля доступа, присущей мандатной модели. В ролевой модели классическое понятие «субъект» разделяется на две части: пользователь и роль.
Пользователь – субъект, работающий с системой и выполняющий определенные служебные обязанности. Роль идентифицирует динами­чески образуемую группу пользователей, каждый
из которых обладает, во-первых, привилегией на исполнение этой роли и, во-вторых, всеми привилегиями данной роли для доступа к объектам базы данных.
37
Рис. 4.1. Определение привилегий пользователей
В отличие от дискреционной модели привилегии доступа определя­ются не для субъектов, а для ролей, а субъекты могут принадлежать раз­личным ролям. Множества субъектов, ролей и привилегий связаны по типу «многие ко многим», что позволяет сформулировать следующие утверждения, характеризующие ролевую модель:
один субъект может иметь несколько ролей;
одну роль
могут иметь несколько субъектов;
одна роль может иметь несколько привилегий;
одна привилегия может принадлежать нескольким ролям.
Как отмечалось выше, создание роли может быть выполнено поль­зователем, имеющим системную привилегию CREATE ROLE.
CREATE ROLE идентификатор_роли IDENTIFIED BY пароль_роли
Параметр IDENTIFIED BY пароль_роли указывает на то, что при ис­пользовании роли проводится аутентификация
4.2.3. УПРАВЛЕНИЕ ПРИВИЛЕГИЯМИ В ДИСКРЕЦИОННОЙ И РОЛЕВОЙ МОДЕЛИ БЕЗОПАСНОСТИ
при помощи пароля.
Привилегиями доступа называют разрешение на использование определенной услуги управления данными для доступа к объекту дан­ных (создание, чтение, запись, исполнение, удаление), предоставляемое
38
идентифицированному пользователю. Предоставление и изъятие прав
р
на защищаемый объект зарегистрированному пользователю или создан­ной роли осуществляется с помощью SQL-операторов GRANT и REVOKE:
GRANT привилегия [ON объект] TO субъект [WITH GRANT OPTION]
REVOKE привилегия [ON объект] FROM субъект
Различают два подхода к управлению доступом:
добровольное управление доступом;
принудительное управление доступом.
Добровольное управление доступом заключается в том, что права
на
доступ к объектам определяют их владельцы. Права владения объек­тами могут передаваться. В результате добровольный способ реализует полностью децентрализованный принцип организации и управления процессом разграничения доступа. Такой подход обеспечивает гибкость настраивания системы разграничения доступа к базе данных, но делает довольно сложным общий контроль и аудит состояния безопасности данных в
системе.
При принудительном подходе к управлению доступом в базе данных выделяется специальный доверенный субъект (администратор), который определяет привилегии на доступ всех остальных субъектов к объектам базы данных. Принудительный способ обеспечивает более жесткое цен­трализованное управление доступом, вместе с тем он менее гибкий.
На практике в большинстве случаев применяется комбинированный способ
управления доступом, когда определенная часть полномочий на доступ к объектам устанавливается администратором, а другая часть – владельцами объектов.
Все привилегии разделяются на две группы: системные привилегии, используемые в случае принудительного способа управления доступом, и привилегии доступа к объекту, используемые в случае добровольного способа управления доступом.
Системные п
Create [any] table Drop/Alter/ any table Insert/Update/Select any table Lock any table
ивилегии Привилегии доступа к объекту
Insert ON объект Update ON объект Delete ON объект Execute ON объект
39
Create [any] view Create/Drop/Execute/Alter any procedure Create/Drop/Execute/Alter any trigger
Index ON объект ………………………………
Create/Drop/Alter user Create/Drop/Execute/Alter any index …………………………………….
С помощью системных привилегий (принудительное управление до­ступом) администратор дает разрешение пользователям выполнять те или иные операции (право создавать таблицы, выполнять операции с ними (I, U, D), создавать и уничтожать процедуры, триггеры, any – в любой схеме), с помощью привилегий доступа к объекту владелец объекта может передавать права на выполнение
операции с объектом (on объект) другому пользователю (добровольное управление досту­пом).
Неотъемлемое право удалять объект имеет только его владелец.
Объекту можно назначить нового владельца с помощью команды
ALTER для соответствующего типа объекта, например:
ALTER TABLE имя_таблицы OWNER ТО новый_владелец
В общем случае набор привилегий и правила работы с ними зависят
от
реализации СУБД и определяются производителем.
Ниже приведено несколько примеров, написанных в диалекте СУБД
Oracle, иллюстрирующих принцип минимальных привилегий.
Пример 1. Работа с системными привилегиями
Созданы два пользователя u1 и u2. Пользователю u1 предоставлена системная привилегия CREATE TABLE. Команда создания таблицы Tab1 в собственной схеме проходит успешно, но создать таблицу в схеме пользователя u2
не удается.
SQL> CONNECT adm/admpsw;
Соединено.
SQL> create user u1 identified by ulpsw default tablespace users;
Пользователь создан.
SQL> grant connect to u1;
Привилегии предоставлены.
40