For a security theoretical analysis of database management systems, a DP-model of themis suggested. Sufficient conditions for stealing access rights in it are formulated.
Sufficient conditions for access rights stealing in DP-model of database management systems.pdf Для обеспечения возможности теоретического анализа безопасности СУБД на ос-нове РОСЛ ДП-модели [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_ca//er, as_owner} - функция, задающая режим вы-полнения кода сущности-процедуры или сущности-триггера o субъект-сессией s; еслиexecute_as(o) = as_ca//er, то код сущности 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, de/ete} ^ 2Ot - функция, задающая для таблицы мно-жество сущностей-триггеров, активизирующихся при реализации к ней права доступасоответствующего вида;OP - множество де-юре правил преобразования состояний, включающее прави-ла: создания новой субъект-сессии create_session(u, s); предоставления права до-ступа grant_right(s, u, e, a r ) ; изменения и создания сущностей-процедур и сущно-стей-триггеров a/ter_procedure и a/ter_trigger; выполнения указанной процедурыexecute_procedure(s, op), а также для вставки access_insert(s, t, od1, od2), обновленияaccess_update(s, t, od1, od2) и удаления записей access_de/ete(s, t, od);operations: Op U Ot ^ OP * - функция, задающая для каждой сущности-процедурыи сущности-триггера реализуемые ими последовательности де-юре правил преобразо-вания состояний.Определение 1. Пусть Go - состояние системы E(G*,OP), u . U, e . C U Op,ar . Rr , U' = {u' . U0 : (u',e,ar ) . Gr0}. Определим предикат can_stea/_right(u, e,ar,G0 ) , истинный тогда и только тогда, когда существуют состояния G1, . . . , GN иде-юре правила преобразования состояний op1,...,opN, такие, что G0 hopi G1 Ь^. . . GN, где N ^ 0; (u, e, a r ) . RN; op^ для всех i = 1 , . . . , N не является правиломвида grant_right(s, u, e, a r ) , a/ter_procedure(s,...), a/ter_trigger(s,...), где user0(s) == owner0([s]0) . U'.Справедливо следующее утверждение о достаточных условиях истинности преди-ката can_stea/_right(u, e, a r , G0).Утверждение 1. Пусть G0 - состояние системы E(G*,OP), u . U, e . C U Op,ar . Rr . Если существует u' . U0, такой, что (u',e,ar ) . Gr0 и выполняется одно изусловий 1-2, то предикат can_stea/_right(u, e, a r , G0) истинен.У с л о в и е 1. 3u'' . U0 3op . Op0 (operations0(op) = (op1 , . . . , opN) и 3i . { 1 , . . . , N}3s . S0 (op = grant_right(s, u, e, a r ) и или owner0(op) = u', (u'', op, execute) . R0,execute_as0(op) = as_owner, или (u', op, execute) . R0, execute_as0(op) = as_ca//er)).У с л о в и е 2. 3u'' . U0 3t . T 3a^ . {append, write, de/ete} 3ot . triggers(t, a^,)(operations0(ot) = (op1 , . . . , opN) и 3i . { 1 , . . . , N} 3s . S0 (op^ = grant_right(s, u, e, a r )и или (u'',ot,ar) . R0, execute_as0(ot ) = as_owner, или (u',ot,a(.) . R0, execute_as0(ot ) = as_ca//er)).Следствие 1. Пусть G0 - состояние системы E(G*,OP), u . U, e . C U Op,ar . Rr . Если существуют c' . C, u' . {u'' . U0 : (u'',e,ar ) . Gr0}, такие, что(u', c', a/ter) . R, то предикат can_stea/_right(u, e, ar , G0) истинен.В дальнейшем планируется развитие СУБД ДП-модели по следующим направле-ниям: расширение модели набором де-факто правил и определение необходимых идостаточных условий реализации информационных потоков в случаях наличия илиотсутствия кооперации субъект-сессий.