Информационная безопасность в современных системах управления базами данных

Автор: Пользователь скрыл имя, 24 Декабря 2011 в 10:44, реферат

Краткое описание

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

Оглавление

Некоторые термины

Пользователи СУБД

Дискреционная защита

Мандатная защита

Файлы: 1 файл

Информационная безопасность в современных системах управления базами данных.docx

— 37.92 Кб (Скачать)

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

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

     CREATE USER IDENTIFIED пользователь BY пароль

     Подсистема  безопасности IBM DB2 может использовать идентификаторы пользователей операционной системы; ее синтаксис SQL не содержит предложения, аналогичного предложению CREATE USER. Microsoft SQL Server может использовать аутентификацию как базы данных, так и операционной системы. Но мы не станем здесь обсуждать достоинства и недостатки выбранных производителями способов аутентификации — все они позволяют строить корректные схемы определения подлинности пользователей. Использование дополнительных средств аутентификации в рамках информационной системы не запрещается. 

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

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

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

     Предложения управления привилегиями: 

     назначение  привилегии:

     GRANT привилегия [ON объект] TO субъект [WITH GRANT OPTION]

     отмена  привилегии:

     REVOKE привилегия [ON объект] FROM субъект

     Если  субъект=пользователь, то привилегия назначается ему явно. Если субъект=роль, то для управления привилегиями используются соответственно: 

     GRANT ROLE имя_роли [ON объект] TO субъект [WITH GRANT OPTION]

     REVOKE ROLE имя_роли [ON объект] FROM субъект

     Назначение  привилегии всем пользователям системы  осуществляется следующим образом: 

     GRANT привилегия [ON объект] TO PUBLIC

     В этом случае каждый новый созданный  пользователь автоматически получит  такую привилегию. Отмена привилегии осуществляется так: 

     REVOKE привилегия [ON объект] FROM PUBLIC

     Необходимо  иметь в виду, что некоторые  реализации, например IBM DB2, используют группы пользователей, определенные в операционной системе. Поэтому следует обращать внимание на особенности реализации аналогов ролей в СУБД. Нужно выяснить, содержит ли реализация SQL-предложения вида: 

     CREATE ROLE имя_роли

     DROP ROLE имя_роли

     При управлении доступом к таблицам и  представлениям набор привилегий в  реализации СУБД определяется производителем. 

     Привилегии  выборки и модификации данных: 

     SELECT — привилегия на выборку данных;

     INSERT — привилегия на добавление данных;

     DELETE — привилегия на удаление данных;

     UPDATE — привилегия на обновление данных (можно указать определенные столбцы, разрешенные для обновления). 

     Привилегии  изменения структуры таблиц: 

     ALTER — изменение физической/логической структуры базовой таблицы (изменение размеров и числа файлов таблицы, введение дополнительного столбца и т.п.);

     INDEX — создание/удаление индексов на столбцы базовой таблицы;

     ALL — все возможные действия над таблицей. 

     В реализациях могут присутствовать другие разновидности привилегий, например: 

     CONTROL (IBM DB2) — комплексная привилегия управления структурой таблицы,

     REFERENCES — привилегия создания внешних ключей,

     RUNSTAT — выполнение сбора статистической информации по таблице и другие. 

     Однако  дискреционная защита является довольно слабой, так как доступ ограничивается только к именованным объектам, а  не собственно к хранящимся данным. В случае реализации информационной системы с использованием реляционной  СУБД объектом будет, например, именованное  отношение (то есть таблица), а субъектом  — зарегистрированный пользователь. В этом случае нельзя в полном объеме ограничить доступ только к части  информации, хранящейся в таблице. Частично проблему ограничения доступа к  информации решают представления и  использование хранимых процедур, которые  реализуют тот или иной набор  бизнес-действий. 

     Представление (view) — это сформированная выборка кортежей, хранящихся в таблице (таблицах). К представлению можно обращаться точно так же, как и к таблицам, за исключением операций модификации данных, поскольку некоторые типы представлений являются немодифицируемыми. Часто в реализациях view хранится как текст, описывающий запрос выборки, а не собственно выборка данных; выборка же создается динамически на момент выполнения предложения SQL, использующего view. Но разграничить доступ, например, к двум документам, которые удовлетворяют одному и тому же условию выборки, уже нельзя. Это связано с тем, что даже если ввести отдельный атрибут, который будет хранить информацию о метке конфиденциальности документа, то средствами SQL можно будет получить выборку данных без учета атрибута данной метки. Фактически это означает, что либо сам сервер баз данных должен предоставить более высокий уровень защиты информации, либо придется реализовать данный уровень защиты информации с помощью жесткого ограничения операций, которые пользователь может выполнить посредством SQL. На некотором уровне такое разграничение можно реализовать с помощью хранимых процедур, но не полностью — в том смысле, что само ядро СУБД позволяет разорвать связь «защищаемый объект Ц метка конфиденциальности». 

     Мандатная защита 

     Средства  мандатной защиты предоставляются  специальными (trusted) версиями СУБД. 

     Мандатное управление доступом (mandatory access control) — это разграничение доступа субъектов к объектам данных, основанное на характеризуемой меткой конфиденциальности информации, которая содержится в объектах, и на официальном разрешении (допуске) субъектов обращаться к информации такого уровня конфиденциальности. 

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

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

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

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

     За  исключением атрибута собственности (логическая защита), разбивающего данные (таблицы) на собственные (принадлежащие  данному субъекту) и чужие, физическая защита разбивает данные более тонко. Но можно ли обойтись без физической защиты или, по крайней мере, попытаться, реализовав, например, сложный набор  хранимых процедур. В общем-то некоторое подобие такой защиты реализуемо в случае, когда метки добавляются в таблицу в качестве дополнительного атрибута, доступ к таблицам запрещается вообще и ни одно приложение не может выполнить интерактивный SQL-запрос, а только хранимую процедуру и т.п. Ряд реализаций подобного уровня защиты использует вызов набора хранимых процедур с весьма абстрактными (что очень желательно) именами. Система реализации защиты информации в данном случае достаточно сложна и предполагает определенный уровень доверия к администратору безопасности, так как он имеет право изменять структуру базы данных, а значит, и хранимые процедуры, представления. Физически же администратор безопасности в данном случае не изолирован от управления секретными данными. 

     Кроме того, защищенные СУБД позволяют разграничить доступ к информационной системе  с тех или иных рабочих станций  для тех или иных зарегистрированных пользователей, определить режимы работы, наложить ограничения по времени  работы тех или иных пользователей  с тех или иных рабочих станций. В случае реализации данных опций  на прикладном уровне задача, как правило, сводится к созданию сервера приложений, который занимается отслеживанием, «кто и откуда пришел». Отдельный  комплекс серверных приложений (обычно — хранимых процедур, если в СУБД отсутствует мандатная защита) обеспечивает аудит. 

     Рассмотрим  мандатную защиту подробнее. В качестве примера возьмем мандатную защиту СУБД «Линтер», которая получила признание  в весьма специфическом секторе  — силовых структурах, как единственная СУБД, имеющая сертификат по второму  классу защиты от несанкционированного доступа, что соответствует классу B3 по американскому национальному стандарту. 

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

Информация о работе Информационная безопасность в современных системах управления базами данных