Обеспечение защиты данных

advertisement
1
Информационная
базами данных
безопасность
систем
управления
План лекции
1. Критерии оценки надежных компьютерных систем
2. Механизмы проверки подлинности пользователей
3. Управление доступом
4. Аудит
5. Средства поддержания целостности и поддержания
высокой готовности
Рекомендуемая литература:
Т. Конноли. Базы данных. Проектирование, реализация и
сопровождение. Теория и практика.: Пер.с англ. – М.: Изд.дом
«Вильямс», 2006. – 1440 с.
1 Критерии оценки надежных компьютерных систем
Основы
стандартов
в
области
безопасности
информационных систем были заложены "Критериями оценки
надежных компьютерных систем". Этот документ, изданный в
США в 1983 году национальным центром компьютерной
безопасности (NCSC - National Computer Security Center), часто
называют Оранжевой Книгой.
В соответствии с требованиями Оранжевой книги безопасной
считается такая система, которая "посредством специальных
механизмов защиты контролирует доступ к информации таким
образом, что только имеющие соответствующие полномочия
лица или процессы, выполняющиеся от их имени, могут получить
доступ на чтение, запись, создание или удаление информации".
Иерархия уровней безопасности, приведенная в Оранжевой
Книге, помечает низший уровень безопасности как D, а высший как А. По мере перехода от уровня C к A к надежности систем
предъявляются все более жесткие требования. Уровни C и B
подразделяются на классы (C1, C2, B1, B2, B3) с постепенным
возрастанием надежности. Чтобы система в результате
процедуры сертификации могла быть отнесена к некоторому
классу, ее политика безопасности и гарантированность должны
удовлетворять приводимым ниже требованиям.
2
 В класс D попадают системы, оценка которых выявила их
несоответствие требованиям всех других классов.
 Основными свойствами, характерными для С-систем,
являются: наличие подсистем идентификации и аутентификации,
учета событий, связанных с безопасностью и избирательный
(произвольный) контроль доступа.
Средства
секретного
входа,
должны
обеспечить
идентификацию пользователей путем ввода уникального имени и
пароля перед тем, как им будет разрешен доступ к системе. Для
аутентификации должен использоваться какой-либо защитный
механизм, например, пароли. Аутентификационная информация
должна быть защищена от несанкционированного доступа.
Средства учета и наблюдения (auditing) - обеспечивают
возможность обнаружить и зафиксировать важные события,
связанные с безопасностью, или любые попытки создать,
получить доступ или удалить системные ресурсы.
Избирательный контроль доступа позволяет владельцу
ресурса определить, кто имеет доступ к ресурсу и что он может с
ним делать. Владелец делает это путем предоставляемых прав
доступа пользователю или группе пользователей.
Уровень С делится на 2 подуровня: уровень С1,
обеспечивающий защиту данных от ошибок пользователей, но не
от действий злоумышленников, и более строгий уровень С2. На
уровне С2 система не защищена от ошибок пользователя, но
поведение его может быть проконтролировано по записям в
журнале, оставленным средствами наблюдения и аудитинга.
 Системы уровня В делятся на три подуровня: В1, В2 и В3.
Подуровень В3 реализует избирательный контроль доступа,
дополненный списками управления доступом с указанием
разрешенных режимов. Должна быть возможность явного
указания пользователей или их групп, доступ которых к объекту
запрещен.
Подуровни В2 и В1 реализуют принудительный (мандатный)
контроль доступа. Каждому пользователю присваивается
рейтинг защиты (метка безопасности), и он может получать
доступ к данным только в соответствии с этим рейтингом. Этот
уровень в отличие от уровня С защищает систему от ошибочного
поведения пользователя. Этот уровень используется в системах
национальной безопасности.
3
В классе B2, в дополнение к B1, все ресурсы системы (в том
числе ПЗУ, устройства ввода/вывода) должны иметь метки
безопасности и служить объектами принудительного управления
доступом.
 Уровень
А
является
самым
высоким
уровнем
безопасности, он требует в дополнение ко всем требованиям
уровня
В
выполнения
формального,
математически
обоснованного
доказательства
соответствия
системы
требованиям безопасности. Этот уровень используется в
системах управления ядерными устройствами. А-уровень
безопасности занимает своими управляющими механизмами до
90% процессорного времени.
Общая идея защиты баз данных состоит в следовании
рекомендациям, сформулированным для класса безопасности
C2 в "Критериях оценки надежных компьютерных систем". Для
СУБД важны все три основных аспекта информационной
безопасности - конфиденциальность, целостность и доступность.
2 Механизмы проверки подлинности пользователей
Пользователей СУБД можно разбить на три категории:
 администратор сервера баз данных. Он ведает установкой,
конфигурированием сервера, регистрацией пользователей,
групп, ролей и т.п. Прямо или косвенно он обладает всеми
привилегиями, которые имеют или могут иметь другие
пользователи.
 администраторы базы данных. К этой категории относится
любой пользователь, создавший базу данных, и, следовательно,
являющийся ее владельцем. Он может предоставлять другим
пользователям доступ к базе и к содержащимся в ней объектам.
Администратор
базы
отвечает
за
ее
сохранение
и
восстановление. В принципе в организации может быть много
администраторов баз данных.
 привилегированные пользователи, обладающие правом
создания собственных объектов в базе данных (таблиц,
представлений,
синонимов,
хранимых
процедур).
Пользователь — владелец объекта обладает полным набором
привилегий для управления данным объектом;
 прочие (конечные) пользователи. По умолчанию им
4
разрешено только соединение с базой данных и выполнение
запросов к данным, все их действия регламентированы
выданными им привилегиями.
Каждый пользователь, прежде чем получить право совершать
какие-либо действия в системе, должен идентифицировать
себя. Обычный способ идентификации — ввод имени
пользователя при входе в систему. В свою очередь, система
должна проверить подлинность личности пользователя, то есть
что он является именно тем, за кого себя выдает. Стандартное
средство проверки подлинности (аутентификация) — пароль,
хотя в принципе могут использоваться также разного рода
личные карточки, биометрические устройства (сканирование
роговицы или отпечатков пальцев) или их комбинация.
Идентификация и аутентификация — первый и важнейший
программно-технический рубеж информационной безопасности.
За предоставление пользователям доступа к компьютерной
системе обычно отвечает системный администратор, в
обязанности которого входит создание учетных записей
пользователей.
Каждому
пользователю
присваивается
уникальный идентификатор. С каждым идентификатором
связывается определенный пароль, выбираемый пользователем
и известный системе. В момент начала сеанса работы с
сервером баз данных, пользователь идентифицируется своим
именем, а средством аутентификации служит пароль.
Детали
этого
процесса
определяются
реализацией
клиентской части приложения. Приложение, работающее с базой
данных, как правило, имеет привилегии, значительно
превосходящие
привилегии
обычных
пользователей.
Естественно, что при этом приложение предоставляет тщательно
продуманный, строго фиксированный набор возможностей. Если
пользователь сумеет тем или иным способом завершить
приложение, но сохранить подключение к серверу баз данных,
ему станут доступны по существу любые действия с данными.
Информация о зарегистрированных пользователях базы
данных хранится в ее системном каталоге.
3 Управление доступом
С традиционной точки зрения средства управления доступом
5
позволяют специфицировать и контролировать действия,
которые субъекты (пользователи и процессы) могут выполнять
над объектами (информацией и другими компьютерными
ресурсами).
Авторизация предоставление прав (или привилегий),
позволяющих их владельцу иметь законный доступ к системе или
к ее объектам.
Средства авторизации пользователей могут быть встроены
непосредственно в программное обеспечение и управлять не
только предоставленными пользователям правами доступа к
системе или объектам, но и набором операций, которые
пользователи могут выполнять с каждым доступным ему
объектом. По этой причине механизм авторизации часто
называют средствами управления доступом. Термин "владелец"
в приведенном выше определении может обозначать
пользователя - человека или программу. Термин "объект" может
обозначать таблицу данных, представление, приложение,
процедуру, триггер или любой другой объект, который может
быть создан в рамках системы.
Управление доступом может быть реализовано в виде:
 Дискреционной (избирательной, произвольной, ролевой)
модели
либо
 Мандатной (принудительной, основанной на метке
безопасности) модели.
1)
Обычно
в
СУБД
применяется
произвольное
(дискреционное)
управление
доступом.
Произвольное
управление доступом — это метод ограничения доступа к
объектам, основанный на учете личности субъекта или группы, в
которую субъект входит. Произвольность управления состоит в
том, что некоторое лицо (обычно владелец объекта) может по
своему усмотрению давать другим субъектам или отбирать у них
права доступа к объекту.
В дискреционной (избирательной) модели используется
матрица, устанавливающая связь между каждым пользователем,
разрешенной операцией и объектом базы данных. Главное его
достоинство
—
гибкость,
главные
недостатки
—
рассредоточенность управления и сложность централизованного
контроля, а также оторванность прав доступа от данных, что
6
позволяет копировать секретную информацию в общедоступные
файлы. Системы с дискреционным контролем доступа
разрешают пользователям полностью определять доступность
их ресурсов, что означает, что они могут случайно или
преднамеренно
передать
доступ
неавторизованным
пользователям.
Управление доступом на основе ролей — развитие политики
избирательного управления доступом, при этом права доступа
субъектов системы на объекты группируются с учетом специфики
их применения, образуя роли.
Формирование ролей призвано определить четкие и
понятные для пользователей компьютерной системы правила
разграничения доступа.
В ролевой модели каждому пользователю и процессу
назначается роль, имеющая те или иные права доступа, причем
у одного пользователя может быть несколько ролей. Этот подход
по жёсткости представляет собой нечто среднее между
дискреционной и мандатной моделями. Ролевой подход часто
используется в системах, для пользователей которых четко
определен круг их должностных полномочий и обязанностей.
После того, как легальный пользователь вошел в систему
необходимо
осуществить
авторизацию
(authorization)предоставление субъекту прав на доступ к объекту. Средства
авторизации контролируют доступ легальных пользователей к
ресурсам системы, предоставляя каждому из них именно те
права, которые были определены администратором, а также
осуществляют
контроль
возможности
выполнения
пользователем различных системных функций.
Привилегии могут передаваться субъектам (отдельным
пользователям), группам, ролям или всем пользователям.
Группа - это именованная совокупность пользователей.
Объединение субъектов в группы облегчает администрирование
баз данных и, как правило, строится на основе формальной или
фактической структуры организации. Каждый пользователь
может входить в несколько групп. Когда пользователь тем или
иным способом инициирует сеанс работы с базой данных, он
может указать, от имени какой из своих групп он выступает.
Роль - это еще один возможный именованный носитель
привилегий - совокупность привилегий, предоставляемых
7
пользователю. В момент начала сеанса с базой данных можно
специфицировать используемую роль (обычно с помощью
флагов или эквивалентного механизма) и ее пароль, если
таковой имеется.
Такой подход позволяет предоставить
конкретному пользователю определённую роль или соотнести
его определённой группе пользователей, обладающей набором
прав в соответствии с задачами, которые на неё возложены.
Привилегии роли имеют приоритет над привилегиями
пользователей и групп. Иными словами, пользователю как
субъекту не обязательно иметь права доступа к объектам,
обрабатываемым приложениям с определенной ролью.
Иерархия авторизации выглядит для СУБД следующим
образом:
 роль (высший приоритет)
 пользователь
 группа
 PUBLIC (низший приоритет)
2) Средства произвольного управления доступом не могут
помешать авторизованному пользователю законным образом
получить секретную информацию и затем сделать ее доступной
для других, неавторизованных пользователей, так как при
произвольном управлении доступом привилегии существуют
отдельно от данных.
Для реализации принудительного управления доступом с
субъектами и объектами ассоциируются метки безопасности.
Метка субъекта описывает его благонадежность, метка объекта
— степень закрытости содержащейся в нем информации.
Субъектам и объектам ИС должны быть присвоены метки
безопасности, являющиеся комбинацией упорядоченных уровней
секретности, категорий и иногда областей.
Согласно "Оранжевой книге", метки безопасности данных
состоит из:
уровня секретности. Смысл этого компонента зависит от
приложения. Уровни секретности, поддерживаемые системой,
образуют упорядоченное множество, которое может выглядеть,
например, так:
 совершенно секретно;
 секретно;
8
 конфиденциально;
 несекретно.
категории образуют неупорядоченный набор. Их назначение
- описать предметную область, к которой относятся данные, как
бы разделить данные на "отсеки" и тем самым повысить
надежность системы безопасности. В военной области каждая
категория может соответствовать, например, определенному
виду вооружений. В коммерческих приложениях категориями
могут служить "финансы", "кадры", "материальные ценности" и
т.п. Субъект не может получить доступ к "чужим" категориям,
Области являются дополнительным средством деления
информации на отсеки. На практике компонент "область" может
действительно иметь географический смысл, обозначая,
например, страну, к которой относятся данные.
Каждый
пользователь
СУБД
также
характеризуется
(наделяется) степенью благонадежности, которая определяется
меткой безопасности, присвоенной данному пользователю.
Метки безопасности, ассоциируемые с субъектами, более
подвижны, чем метки объектов. Субъект может в течение сеанса
работы с системой изменять свою метку, естественно, не выходя
за предопределенные для него рамки. Иными словами, он может
сознательно занижать свой уровень благонадежности, чтобы
уменьшить вероятность непреднамеренной ошибки.
Субъект может читать информацию из объекта, если уровень
секретности субъекта не ниже, чем у объекта, а все категории,
перечисленные в метке безопасности объекта, присутствуют в
метке субъекта. В таком случае говорят, что метка субъекта
доминирует над меткой объекта. Смысл сформулированного
правила понятен — читать можно только то, что положено.
Субъект может записывать информацию в объект, если метка
безопасности объекта доминирует над меткой субъекта.
Метки должны адекватно отражать уровни секретности
субъектов и объектов. При экспорте информации метки должны
преобразовываться в точное и однозначно трактуемое внешнее
представление, сопровождающее данные.
Описанный способ управления доступом называется
принудительным, поскольку он не зависит от воли субъектов
(даже
системных
администраторов).
После
того,
как
зафиксированы метки безопасности субъектов и объектов,
9
оказываются зафиксированными и права доступа.
Рассмотрим пример. Пусть данные имеют уровень
секретности "конфиденциально", принадлежат категории
"финансы" и относятся к областям "Россия" и "СНГ". Далее,
пусть
степень
благонадежности
пользователя
характеризуется
меткой
безопасности
с
уровнем
секретности "совершенно секретно", категориями "финансы"
и "кадры", а также областью "Казахстан".
Данные
Пользователь
Конфиденциально Ур.секретности Совершенно секретно
Финансы
Категория
Финансы, Кадры
Казахстан, СНГ
Области
Казахстан
Получит
доступ,
т.к.
сов.секр доминирует над
секретно, все категории
данных (финансы) входят
в
категории
польз-ля,
набор областей поль-ля
(Казахстан)
целиком
содержится в области
объекта
Если бы, однако, в метке пользователя была указана
только категории "кадры", в доступе к данным ему было бы
отказано, несмотря на его "совершенно секретный" уровень.
Когда пользователь производит выборку данных из таблицы,
он получает только те строки, меткам безопасности
которых удовлетворяет степень его благонадежности.
Главная проблема, которую необходимо решать в связи с
метками, это обеспечение их целостности. Во-первых, не должно
быть непомеченных субъектов и объектов, иначе в меточной
безопасности появятся легко используемые бреши. Во-вторых,
при любых операциях с данными метки должны оставаться
правильными.
Привилегии в СУБД можно подразделить на две категории:
привилегии безопасности и привилегии доступа.
Привилегии доступа
10
Привилегии доступа можно подразделить в соответствии с
видами объектов, к которым они относятся:
 таблицы и представления
 процедуры
 базы данных
 сервер баз данных
 события
Применительно к таблицам и представлениям можно
управлять следующими правами доступа:
SELECT
- право на выборку данных
INSERT
- право на добавление данных
DELETE
- право на удаление данных
- право на обновление данных (можно указать
UPDATE
определенные столбцы, разрешенные для
обновления)
- право на использование внешних ключей,
REFERENCES ссылающихся на данную таблицу (можно
указать определенные столбцы)
Привилегии безопасности.
Привилегии
безопасности
позволяют
выполнять
административные действия и всегда выделяются конкретному
пользователю (а не группе, роли или всем) во время его
создания или изменения характеристик. Таких привилегий пять:
 security - право управлять безопасностью СУБД и
отслеживать действия пользователей. Пользователь с этой
привилегией может подключаться к любой базе данных,
создавать, удалять и изменять характеристики пользователей,
групп и ролей, передавать права на доступ к базам данным
другим пользователям, управлять записью регистрационной
информации, отслеживать запросы других пользователей и,
наконец, запускать команды от имени других пользователей.
Привилегия security необходима администратору сервера баз
данных, а также лицу, персонально отвечающему за
информационную безопасность.
 createdb - право на создание и удаление баз данных. Этой
привилегией, помимо администратора сервера, должны
обладать
пользователи,
которым
отводится
роль
администраторов отдельных баз данных.
11
 operator - право на выполнение действий, которые
традиционно относят к компетенции оператора. Имеются в виду
запуск и остановка сервера, сохранение и восстановление
информации. Помимо администраторов сервера и баз данных
этой
привилегией
целесообразно
наделить
также
администратора операционной системы.
 maintain_locations - право на управление расположением
баз данных и операционной системы.
 trace - право на изменение состояния флагов отладочной
трассировки. Данная привилегия полезна администратору
сервера баз данных и другим знающим пользователям при
анализе сложных, непонятных ситуаций.
4 Аудит
Аудит имеет дело с действиями (событиями), так или иначе
затрагивающими безопасность системы. К числу таких событий
относятся:
 Вход в систему (успешный или нет);
 Выход из системы;
 Обращение к удаленной системе;
 Операции с файлами (открыть, закрыть, переименовать,
удалить);
 Смена
привилегий или иных атрибутов безопасности
(режима доступа, уровня благонадежности пользователя и т.п.).
Полный перечень событий, потенциально подлежащих
регистрации, зависит от избранной политики безопасности и от
специфики системы.
Если фиксировать все события, объем регистрационной
информации, скорее всего, будет расти слишком быстро, а ее
эффективный анализ станет невозможным. "Оранжевая книга"
предусматривает
наличие
средств
выборочного
протоколирования, как в отношении пользователей (внимательно
следить только за подозрительными), так и в отношении
событий.
Протоколирование помогает следить за пользователями и
реконструировать прошедшие события. Слежка важна в первую
очередь как профилактическое средство. Можно надеяться, что
многие воздержатся от нарушений безопасности, зная, что их
12
действия фиксируются. Реконструкция событий позволяет
проанализировать случаи нарушений, понять, почему они стали
возможны, оценить размеры ущерба и принять меры по
недопущению подобных нарушений в будущем.
При протоколировании события записывается по крайней
мере следующая информация:
 Дата и время события;
 Уникальный идентификатор пользователя — инициатора
действия;
 Тип события;
 Результат действия (успех или неудача);
 Источник запроса (например, имя терминала);
 Имена затронутых объектов (например, открываемых или
удаляемых файлов);
 Описание изменений, внесенных в базы данных защиты
(например, новая метка безопасности объекта);
 Метки безопасности субъектов и объектов события.
5 Средства поддержание целостности данных и высокой
готовности в СУБД
Средства поддержки целостности данных также вносят
определенный вклад в общую защищенность базы данных,
поскольку они должны предотвратить переход данных в
несогласованное состояние, а значит, исключить угрозу
получения ошибочных или неправильных результатов расчетов.
С точки зрения пользователя СУБД, основными средствами
поддержания целостности данных являются ограничения и
правила.
Ограничения могут относиться к таблицам или отдельным
столбцам. Ограничения на столбцы задаются при создании
таблицы. Ссылочные ограничения отвечают за целостность
связей между таблицами. Подобное ограничение требует, чтобы
каждому значению в столбце или группе столбцов одной таблицы
соответствовало ровно одно значение в другой таблице.
Ограничения всех видов накладываются и отменяются
владельцем таблицы и влияют на исход последующих операций
с данными. Перед завершением выполнения SQL-оператора
производится
проверка
имеющихся
ограничений.
При
13
обнаружении нарушений СУБД сигнализирует о ненормальном
завершении и аннулирует внесенные оператором изменения.
Между ограничениями могут существовать зависимости, и
отмена одного из них может потребовать ликвидации других
(ссылочных) ограничений, зависящих от первоначального.
Правила позволяют вызывать выполнение заданных
действий при определенных изменениях базы данных. Обычное
действие - это вызов процедуры. Правила ассоциируются с
таблицами и срабатывают при изменении этих таблиц.
В отличие от ограничений, которые являются лишь средством
контроля относительно простых условий, правила позволяют
проверять и поддерживать сколь угодно сложные соотношения
между элементами данных в базе. Как и в случае ограничений,
проверка правил отключается при массовых операциях
копирования.
СУБД обеспечивает автоматическое удаление правил в тех
случаях, когда удаляется соответствующая таблица. Тем самым
поддерживается целостность системы таблиц и правил.
В контексте информационной безопасности важно отметить,
что создать правило, ассоциируемое с таблицей, может
владелец этой таблицы, имеющий право на выполнение
соответствующей процедуры. Пользователь, действия которого
вызывают срабатывание правила, должен обладать лишь
необходимыми правами доступа к таблице. Тем самым правила
неявно расширяют привилегии пользователей. Подобные
расширения нуждаются в строгом административном контроле,
поскольку даже незначительное изменение правила или
ассоциированной процедуры может кардинально повлиять на
защищенность данных.
Представление - динамический результат одной или
нескольких реляционных операций с базовыми отношениями с
целью создания некоторого иного отношения. Представление
является виртуальным отношением, которое peaльно в базе
данных не существует, но создается по требованию отдельного
пользователя в момент поступления этого требования.
Механизм представлений служит мощным и гибким
инструментом организации защиты данных, позволяющим
скрывать от определенных пользователей некоторые части базы
данных. В результате пользователи не будут иметь никаких
14
сведений о существовании любых атрибутов или строк данных,
которые не доступны через представления, находящихся в их
распоряжении. Представление может быть определено на базе
нескольких
таблиц,
после
чего
пользователю
будут
предоставлены необходимые привилегии доступа к этому
представлению, но не к базовым таблицам. В данном случае
использование представления устанавливает более жесткий
механизм контроля доступа, чем обычное предоставление
пользователю или иных прав доступа к базовым таблицам.
Шифрование - преобразование данных с использованием
специального алгоритма, в результате чего данные становятся
недоступными для чтения любой программой, не имеющей ключа
дешифрования.
Если в системе с базой данных содержится весьма важная
конфиденциальная информация, то имеет смысл зашифровать
ее
с
целью
предупреждения
возможной
угрозы
несанкционированного доступа с внешней стороны (по
отношениями СУБД). Некоторые СУБД включают средства
шифрования, предназначенные для использования в подобных
целях.
Подпрограммы
таких
СУБД
обеспечивают
санкционированный доступ к данным (после их дешифрования),
хотя
это
будет
связано
с
некоторым
снижением
производительности, вызванным необходимостью данного
преобразования. Шифрование также может использоваться для
защиты данных при их передаче по линиям связи.
Применительно к СУБД средства поддержания высокой
готовности должны обеспечивать нейтрализацию аппаратных
отказов, особенно касающихся дисков, а также восстановление
после ошибок обслуживающего персонала или прикладных
программ. Подобные средства должны с самого начала
закладываться в архитектуру комплекса. Например, необходимо
использовать тот или иной вид избыточных дисковых массивов,
источников бесперебойного питания и т.д.
Резервное копирование - периодически выполняемая
процедура получения копии базы данных и ее файла журнала (а
также, возможно, программ) на носителе, хранящиеся отдельно
от системы.
Любая современная СУБД должна предоставлять средства
резервного копирования, позволяющие восстанавливать базу
15
данных в случае ее разрушения. Кроме того, рекомендуется
создавать резервные копии базы данных и ее файла журнала с
некоторой
установленной
периодичностью,
а
также
организовывать
хранение созданных копий в местах,
обеспеченных необходимой защитой. В случае аварийного
отказа, в результате которого база данных становится
непригодной для дальнейшей эксплуатации, резервная копия и
зафиксированная в файле журнала оперативная информация
используются для восстановления базы данных до последнего
согласованного состояния.
СУБД должна предоставлять средства ведения системного
журнала, в котором будут фиксироваться сведения обо всех
изменениях состояния базы данных и о ходе выполнения
текущих транзакций, что необходимо для эффективного
восстановления базы данных в случае отказа.
Download