E-mail:
Пароль:
Забыли пароль?

Вашу информацию защитит СУБД

«Компьютер Пресс», № 8, 1999 г.

Пономарев Геннадий

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

Обеспечить безопасность информации можно как аппаратными, так и программными средствами. Наша цель – познакомить читателей со способами защиты информации от несанкционированного доступа. В качестве примера программного комплекса, обеспечивающего безопасность информации, выбрана система управления базами данных (СУБД) ЛИНТЕР®. В 1998 году эта система была сертифицирована Гостехкомиссией при Президенте РФ по второму классу защищенности данных от несанкционированного доступа. На сегодняшний день ЛИНТЕР® – единственная СУБД, сертифицированная в России по такому высокому классу.

Система защиты информации от несанкционированного доступа (СЗИ НСД) СУБД ЛИНТЕР® реализована в виде части исполняемого кода ядра системы. Ядро системы безопасности – диспетчер доступа получает управление на ранних этапах инициализации СУБД до запуска процедур обслуживания пользовательских запросов. Дальнейшая работа СУБД происходит под контролем СЗИ НСД.

В СУБД ЛИНТЕР® информация о каждом пользователе, имеющем право подключаться к системе, находится в системных справочниках базы данных. Перед началом работы каждый пользователь проходит процедуру идентификации и аутентификации, то есть сообщает программе свое системное имя и пароль. Правом изменения системной базы данных обладает только администратор безопасности.

Для обеспечения разграничения доступа в СУБД ЛИНТЕР® реализованы дискреционный и мандатный принципы контроля.

Дискреционный принцип контроля основывается на аппарате ролей и на разделении всех пользователей системы на три категории: Connect, Resource и Dba. Connect-категория дает пользователю право на подсоединение к системе и подачу запросов к доступным ему данным. Resource-категории доступны все возможности Connect-категоии плюс возможности изменения структуры базы данных путем построения своих объектов контроля (таблиц, представлений, синонимов). Dba-категория (категория администраторов базы данных) включает возможности обеих предыдущих категорий, а также возможность водить и удалять субъекты контроля или изменять их категорию.

Любая информация, вводимая в базу данных, имеет своего владельца – пользователя, который эту информацию ввел. Для других пользователей доступ к данным возможен только с разрешения владельца информации. В больших базах данных, где много субъектов и объектов контроля, очень сложно определять права каждого субъекта при работе с каждым объектом. Для упрощения этой процедуры в ЛИНТЕР® реализован аппарат ролей. Роль – это именованный набор прав на множество объектов базы данных. Введенные роли разбивают всех пользователей базы на группы. При работе с привилегиями роль рассматривается сначала как пользователь или субъект. Владелец того или иного объекта базы данных назначает определенный вид доступа для роли как для простого пользователя.
Мандатный принцип контроля основан на использовании меток конфиденциальности или меток безопасности. Эти метки хранятся вместе с объектом защиты и играют важную роль при допуске субъектов к информации помеченного объекта.

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

Метками доступа снабжается информация всех уровней – от таблицы, до столбца, записи и даже значения полей. Как уже говорилось, все субъекты доступа также снабжаются метками.
Уровни доступа вводятся для проверки на уровне ядра СУБД ЛИНТЕР® прав на осуществление чтения (записи) информации. Для пользователей системы вводятся следующие уровни доступа:

  • RAL (Read Access Level) – уровень доступа. Пользователь может получать информацию, RAL-уровень которой не выше его собственного уровня доступа;
  • WAL (Write Access Level) – уровень доверия на понижение уровня конфиденциальности. Пользователь не может вносить информацию с уровнем доступа (RAL-уровнем) более низким, чем данный WAL-уровень пользователя. Т.е. пользователь не может сделать доступную ему информацию менее конфиденциальной, чем указано в данном параметре.

Для информации:

  • RAL – уровень чтения. Пользователь может получать информацию, RAL-уровень которой не выше его собственного RAL-уровня;
  • WAL – уровень ценности или уровень доступа на запись (модификацию, удаление). Пользователь может модифицировать (удалять) информацию, WAL-уровень которой не выше его RAL-уровня.
    При совместной работе дискреционного и мандатного принципов контроля действуют два глобальных правила:

1. Доступ к объектам, имеющим дискреционную и мандатную защиту, должен быть санкционирован ими обоими. Если хотя бы одна из них (дискреционная или мандатная) отвергает доступ, то запрос на доступ будет отвергнут по обоим правилам (принцип эквивалентности).

2. При отсутствии у субъекта доступа к какому-либо объекту по одному из принципов (если в отношении субъекта и объекта действуют оба принципа), он не сможет ни управлять доступом к этому объекту, ни получить доступ к этому объекту. В этом отношении среди пользователей выделяется только администратор безопасности, который может изменять метки доступа пользователей (но не данных).

Все действия по проверке доступа производятся ядром ЛИНТЕР® прозрачно для пользователя. Выполняя поисковые операции, ядро СУБД будет принимать во внимание только доступные (видимые) пользователю данные. Вследствие этого у каждого пользователя будет свое представление об информации, содержащейся не только во всей базе данных, но даже в той или иной ее таблице. Субъекты, обличенные большим доверием, будут видеть больше информации там, где другие пользователи найдут лишь небольшую часть данных (доступных им).

Здесь исключены все возможные, даже косвенные, лазейки, так как правило, видимости касается и таких конструкций как агрегатные функции. Так, например, информация о минимальном значении данных какого-то столбца будет выдана исходя из доступного множества значений этого столбца.
В связи с тем, что ЛИНТЕР® – многопользовательская система, для предотвращения доступа к данным с незарегистрированной рабочей станции в системной базе хранятся не только данные о пользователях, но сетевые адреса станций, которым разрешен доступ к информации. Это позволяет не только запретить подключение незарегистрированной рабочей станции, но и предотвратить вход «легального» пользователя с «чужой» рабочей станции. Право на доступ с конкретной сетевой станции может быть предоставлено администратором безопасности. При предоставлении прав могут быть установлены временные ограничения для доступа данного пользователя с предоставляемой сетевой станции.

Как и другие системы, ЛИНТЕР® использует внешние устройства постоянного хранения информации для размещения таблиц данных и временных рабочих файлов. Расположение конкретного объекта базы данных внутри системы однозначно идентифицируется ЛИНТЕР-именем устройства. ЛИНТЕР-имя используется при создании новых таблиц, или изменении расположения файлов старых. Соответствие ЛИНТЕР-имен физическим устройствам описывается специальной системной таблицей. Данная таблица создается на уровне администратора безопасности БД и доступна только ему. Таким образом, система контролирует вывод данных на внешние устройства, запрещая несанкционированное копирование информации.

Для затруднения доступа к данным базы средствами, отличными от средств СУБД ЛИНТЕР®, в момент, когда ядро системы не работает (не загружено), данные любой таблицы подлежат преобразованию. При загруженном ядре системы файлы таблиц монопольно блокируются и доступны только ядру ЛИНТЕР®.

В файлах индексов шифрация не требуется, ибо сжатие, которому подвергаются ключи таблицы, настолько серьезно, что может потребовать многих месяцев упорного труда для получения реальной информации. Кроме того, страницы всех файлов таблицы снабжены проверочной информацией, не позволяющей незаметно изменить данные, а пароли пользователей прежде, чем записываться в базу данных, подвергаются необратимому преобразованию.
Для предотвращения возможности получения какой-либо информации из оперативной памяти компьютера после завершения сеанса работы в СУБД ЛИНТЕР® предусмотрена система очистки оперативной и внешней памяти.

Перераспределение внешней памяти возможно в двух случаях: при удалении/модификации таблицы (все/некоторые ее файлы удаляются), и при выгрузке системы (усекаются ее рабочие файлы). В обоих случаях освободившееся дисковое пространство очищается с помощью трехкратной записи маскирующей информации. Во время работы система ЛИНТЕР® отслеживает занятое ей место в оперативной памяти. При выгрузке СУБД обнуляет весь отрезок оперативной памяти, который она занимала.

Для контроля за доступом пользователей к данным и для ликвидации ошибок или противоречий в структуре защиты базы данных служит подсистема регистрации событий. Данная подсистема является неотъемлемой частью СЗИ НСД СУБД ЛИНТЕР®. Она позволяет регистрировать следующие события: включение механизмов идентификации и аутентификации, запросы на доступ к ресурсам базы данных, создание и уничтожение объектов, действия по изменению правил разграничения доступа, все попытки доступа к данным и действия администратора базы данных.
Целостность СЗИ НСД в ЛИНТЕР® эквивалентна целостности программного кода ядра системы. Для проверки целостности системы применяется утилита подсчета контрольных сумм, которая создает на выходе файл, содержащий контрольные суммы проверяемых файлов. Целостность системы считается подтвержденной в том случае, когда результирующие контрольные суммы совпали с контрольными суммами, приведенными в документации. Такая проверка выполняется перед каждым запуском ядра СУБД.

Чтобы исключить любую возможность случайной потери данных (возможно, накопленных в БД за многие годы) технологический процесс эксплуатации информационной системы должен предусматривать регулярное создание резервных копий полных или наиболее важных частей баз данных, по крайней мере, в двух экземплярах на отдельных магнитных носителях. Для этих целей в СУБД ЛИНТЕР® предусмотрена программа архивации и восстановления БД, предназначенная для полного или выборочного сохранения данных с целью последующего восстановления информации, потерянной в результате технических отказов информационной системы (например, после сбоев электропитания или оборудования).

К сожалению, в рамках журнальной статьи невозможно познакомить читателей со всеми возможностями СУБД ЛИНТЕР®. Желающим подробнее познакомиться с системой могу посоветовать обратиться к ее разработчикам – воронежской фирме РЕЛЭКС.

В заключение хочется еще раз напомнить, что единого и универсального средства защиты информации не существует. Следовательно, решение этой проблемы – весьма сложная задача, и решение ее следует доверить профессионалам в этой области. Главное – помнить о том, какие последствия для Вас будет иметь потеря или разглашение конфиденциальной информации.


Возврат к списку

ѕрокрутить вверх