Корпоративные базы данных - статьи

       

Метки безопасности и принудительный контроль доступа



Выше были описаны средства произвольного управления доступом, характерные для уровня
безопасности C. Как уже указывалось, они в принципе достаточны для подавляющего
большинства коммерческих приложений. Тем не менее, они не решают одной весьма важной
задачи - задачи слежения за передачей информации. Средства произвольного управления доступом
не могут помешать авторизованному пользователю законным образом получить секретную
информацию и затем сделать ее доступной для других, неавторизованных пользователей.
Нетрудно понять, почему это так. При произвольном управлении доступом привилегии
существуют отдельно от данных (в случае реляционных СУБД - отдельно от строк реляционных
таблиц). В результате данные оказываются "обезличенными", и ничто не мешает передать их кому
угодно даже средствами самой СУБД.

В "Критериях оценки надежных компьютерных систем", применительно к системам уровня
безопасности B, описан механизм меток безопасности, реализованный в версии INGRES/Enhanced
Security (INGRES с повышенной безопасностью). Применять эту версию на практике имеет смысл
только в сочетании с операционной системой и другими программными компонентами того же
уровня безопасности. Тем не менее, рассмотрение реализации меточной безопасности в СУБД




INGRES интересно с познавательной точки зрения, а сам подход, основанный на разделении
данных по уровням секретности и категориям доступа, может оказаться полезным при
проектировании системы привилегий многочисленных пользователей по отношению к большим
массивам данных.

В СУБД INGRES/Enhanced Security к каждой реляционной таблице неявно добавляется столбец,
содержащий метки безопасности строк таблицы. Метка безопасности состоит из трех
компонентов:


  • Уровень секретности. Смысл этого компонента зависит от
    приложения. В частности, возможен традиционный спектр уровней от
    "совершенно секретно" до "несекретно".
  • Категории. Понятие категории позволяет разделить данные на
    "отсеки" и тем самым повысить надежность системы безопасности.
    В
    коммерческих приложениях категориями могут служить "финансы", "кадры",
    "материальные ценности" и т.п. Ниже назначение категорий разъясняется
    более подробно.
  • Области. Является дополнительным средством деления
    информации на отсеки. На практике компонент "область" может действительно
    иметь географический смысл, обозначая, например, страну, к которой
    относятся данные.

Каждый пользователь СУБД INGRES/Enhanced Security характеризуется степенью
благонадежности, которая также определяется меткой безопасности, присвоенной данному
пользователю. Пользователь может получить доступ к данным, если степень его благонадежности
удовлетворяет требованиям соответствующей метки безопасности. Более точно:


  • уровень секретности пользователя должен быть не ниже уровня
    секретности данных;
  • набор категорий, заданных в метке безопасности данных, должен целиком
    содержаться в метке безопасности пользователя;
  • набор областей, заданных в метке безопасности пользователя, должен
    целиком содержаться в метке безопасности данных.

Рассмотрим пример. Пусть данные имеют уровень секретности "конфиденциально", принадлежат
категории "финансы" и относятся к областям "Россия" и "СНГ". Далее, пусть степень
благонадежности пользователя характеризуется меткой безопасности с уровнем секретности
"совершенно секретно", категориями "финансы" и "кадры", а также областью "Россия". Такой
пользователь получит доступ к данным. Если бы, однако, в метке пользователя была указана
только категории "кадры", в доступе к данным ему было бы отказано, несмотря на его
"совершенно секретный" уровень.

Когда пользователь производит выборку данных из таблицы, он получает только те строки,
меткам безопасности которых удовлетворяет степень его благонадежности. Для совместимости с
обычными версиями СУБД, столбец с метками безопасности не включается в результирующую
информацию.



Отметим, что механизм меток безопасности не отменяет, а дополняет произвольное управление
доступом. Пользователи по-прежнему могут оперировать с таблицами только в рамках своих
привилегий, но даже при наличии привилегии SELECT им доступна, вообще говоря, только часть
данных.

При добавлении или изменении строк они, как правило, наследуют метки безопасности
пользователя, инициировавшего операцию. Таким образом, даже если авторизованный
пользователь перепишет секретную информацию в общедоступную таблицу, менее благонадежные
пользователи не смогут ее прочитать.

Специальная привилегия, DOWNGRADE, позволяет изменять метки безопасности,
ассоциированные с данными. Подобная возможность необходима, например, для коррекции
меток, по тем или иным причинам оказавшихся неправильными.

Представляется естественным, что СУБД INGRES/Enhanced Security допускает не только скрытое,
но и явное включение меток безопасности в реляционные таблицы. Появился новый тип данных,
security label, поддерживающий соответствующие операции сравнения.

INGRES/Enhanced Security - первая СУБД, получившая сертификат, эквивалентный аттестации на
класс безопасности B1. Вероятно, метки безопасности постепенно войдут в стандартный репертуар
систем управления базами данных.

Содержание раздела