Научная статья на тему 'О достаточных условиях похищения прав доступа в СУБД ДП-модели'

О достаточных условиях похищения прав доступа в СУБД ДП-модели Текст научной статьи по специальности «Математика»

CC BY
150
42
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Смольянинов Владимир Юрьевич

For a security theoretical analysis of database management systems, a DP-model of them is suggested. Sufficient conditions for stealing access rights in it are formulated.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Sufficient conditions for access rights stealing in DP-model of database management systems

For a security theoretical analysis of database management systems, a DP-model of them is suggested. Sufficient conditions for stealing access rights in it are formulated.

Текст научной работы на тему «О достаточных условиях похищения прав доступа в СУБД ДП-модели»

УДК 004.94

О ДОСТАТОЧНЫХ УСЛОВИЯХ ПОХИЩЕНИЯ ПРАВ ДОСТУПА

В СУБД ДП-МОДЕЛИ

В. Ю. Смольянинов

Для обеспечения возможности теоретического анализа безопасности СУБД на основе РОСЛ ДП-модели [1] построена формальная модель (кратко, СУБД ДП-модель), а также сформулированы достаточные условия похищения прав доступа.

По сравнению с РОСЛ ДП-моделью, в модель внесены следущие изменения.

Множество объектов делится на множество сущностей-данных Od, соответствующих записям таблиц, множество сущностей-процедур Op и множество сущностей-триг-герров Ot, активизирующихся при выполнении операций над связанными с ними таблицами. Сущности-триггеры и сущности-процедуры содержат SQL-код, выполнение которого субъект-сессиями приводит к реализации преобразований системы, задаваемыми де-юре правилами модели.

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

В отличие от РОСЛ ДП-модели, элементы множества субъект-сессий S не считаются сущностями. При этом считается, что субъект-сущности соответствуют сессиям пользователей с СУБД. С помощью функции user задается соответствие между субъект-сессиями и элементами множества учётных записей пользователей U. Следует отметить, что при переходе системы из состояния в состояние допустимо изменение функции user. Это связано с особенностями выполнения кода хранимых процедур и триггеров в реальных СУБД, где код может выполняться с правами, отличными от прав активизировавшего их пользователя.

В модели считается, что множество функционально-ассоциированных с субъектом-сессией s сущностей [s] в каждый момент содержит ровно одну сущность-триггер или сущность-процедуру, т. е. [s] £ Op U Ot.

Для учёта специфики реальных СУБД в модель введены следующие элементы:

owner: E ^ U — функция, задающая для каждой сущности учётную запись её владельца и удовлетворяющая условию Vt £ T Vo £ H(t) (owner (o) = owner(t));

execute_as: Op U Ot ^ {as_caller,as_owner} — функция, задающая режим выполнения кода сущности-процедуры или сущности-триггера o субъект-сессией s; если execute_as(o) = as_caller, то код сущности o выполняется от имени учётной записи user(s), иначе код сущности o выполняется субъект-сессией s от имени owner(o);

Rr = {read, write, append, delete, alter, execute, create} —множество видов прав доступа к сущностям-контейнерам и сущностям-процедурам, где alter соответствует праву доступа, позволяющему задавать SQL-код сущностей-процедур и сущностей-триггеров, а create — праву, позволяющему создавать дочерние контейнеры;

R С U х (C U Op) х Rr —множество прав учётных записей пользователей на контейнеры и сущности-процедуры, при этом де-юре правила модели обеспечивают выполнение следующего ограничения: если пользователь обладает правом на контейнер, то он обладает соответствующим правом доступа и на любой его дочерний элемент;

Gr С U х (C U Op) х Rr —множество, задающее учётные записи пользователей, а также права на контейнеры и сущности-процедуры, которые они могут предоставить на них другим учётным записям пользователей, при этом Gr С R, т. е. права

доступа могут быть предоставлены только в случае обладания ими учётной записью пользователя — инициатора предоставления прав;

triggers: T х {write, append, delete} ^ 2Ot —функция, задающая для таблицы множество сущностей-триггеров, активизирующихся при реализации к ней права доступа соответствующего вида;

OP — множество де-юре правил преобразования состояний, включающее правила: создания новой субъект-сессии create _session(u,s); предоставления права доступа grant_right(s,u,e,ar); изменения и создания сущностей-процедур и сущностей-триггеров alter_procedure и alter_trigger; выполнения указанной процедуры execute_procedure(s,op), а также для вставки access_insert(s, t, odi, od2), обновления access_update(s,t,Odi,Od2) и удаления записей access _delete(s,t,od);

operations: Op U Ot ^ OP * — функция, задающая для каждой сущности-процедуры и сущности-триггера реализуемые ими последовательности де-юре правил преобразования состояний.

Определение 1. Пусть G0 — состояние системы Tj(G*,OP), u Є U, e Є C U Op, ar Є Rr, U' = {u' Є U0 : (u',e,ar) Є Gr0}. Определим предикат can_steal_right(u,e, ar,G0), истинный тогда и только тогда, когда существуют состояния Gi, ..., Gn и де-юре правила преобразования состояний opi,..., opN, такие, что G0 hopi Gi hop2 ... ^~oPN Gn, где N ^ 0; (u, e, ar) Є Rn; opi для всех i = 1,... , N не является правилом вида grant_right(s, u, e, ar), alter_procedure(s,...), alter_trigger(s,...), где user0(s) = = owner0([s}0) Є U'.

Справедливо следующее утверждение о достаточных условиях истинности предиката can_steal_right(u, e, ar, G0).

Утверждение 1. Пусть G0 — состояние системы Tj(G*,OP), u Є U, e Є C U Op, ar Є Rr. Если существует u' Є U0, такой, что (u',e,ar) Є Gr0 и выполняется одно из условий 1-2, то предикат can_steal_right(u,e,ar,G0) истинен.

Условие 1. 3u'' Є U0 3op Є Op0 (operations0(op) = (opi,..., opN) и 3i Є {1,..., N} 3s Є S0 (opi = grant_right(s,u,e,ar) и или owner0(op) = u', (u'',op, execute) Є R0, execute_as0(op) = as_owner, или (u',op, execute) Є R0, execute_as0(op) = as_caller)).

Условие 2. 3u'' Є U0 3t Є T 3a'r Є {append, write, delete} 3ot Є triggers(t,a’r) (operations0(ot) = (opi,..., opN) и 3i Є {1,..., N} 3s Є S0 (opi = grant_right(s, u, e, ar) и или (u",ot,a'r) Є R0, execute_as0(ot) = as_owner, или (u',ot,a'r) Є R0, execute _as0(ot) = as _caller)).

Следствие 1. Пусть G0 — состояние системы Tj(G*,OP), u Є U, e Є C U Op, ar Є Rr. Если существуют c' Є C, u' Є {u'' Є U0 : (u'',e,ar) Є Gr0}, такие, что (u', c', alter) Є R, то предикат can_steal_right(u,e, ar ,G0) истинен.

В дальнейшем планируется развитие СУБД ДП-модели по следующим направлениям: расширение модели набором де-факто правил и определение необходимых и достаточных условий реализации информационных потоков в случаях наличия или отсутствия кооперации субъект-сессий.

ЛИТЕРАТУРА

1. Девянин П. Н. Ролевая ДП-модель управления доступом и информационными потоками

в операционных системах семейства Linux // Прикладная дискретная математика. 2012.

№1(15). С. 69-90.

i Надоели баннеры? Вы всегда можете отключить рекламу.