УДК 004.94
РЕЗУЛЬТАТЫ АНАЛИЗА УСЛОВИЙ РЕАЛИЗАЦИИ ИНФОРМАЦИОННЫХ ПОТОКОВ ПО ПАМЯТИ В РАМКАХ РОСЛ ДП-МОДЕЛИ
П. Н. Девянин
В докладе в рамках ролевой ДП-модели управления доступом и информационными потоками в операционных системах семейства Linux [1] (РОСЛ ДП-модели) рассматриваются достаточные условия реализации информационного потока по памяти. Дадим определения.
Определение 1. Назовем траекторию функционирования системы S(G*,OP) траекторией без информационных потоков по времени и кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа, если при ее реализации используются только монотонные правила преобразования состояний и доверенные субъект-сессии не берут роли во множество де-факто текущих ролей; не дают другим ролям права доступа к сущностям; не изменяют атрибутов сущностей-контейнеров и не переименовывают сущности; не инициируют создание сущностей, субъект-сессий и жёстких ссылок на сущности, получение доступов к сущностям или де-факто владения к субъект-сессиями; не используют де-факто владение субъект-сессиями для выполнения от их имени правил преобразования состояний системы; не создают информационный поток по памяти к сущности i_entity в случае, когда правила преобразования состояний инициируются недоверенными субъект-сессиями; не реализуют информационные потоки по памяти к сущностям, функционально ассоциированным с доверенными субъектами, или от сущностей, параметрически ассоциированных с доверенными субъектами.
Определение 2. Пусть G0 — состояние системы T.(G*, OP), в котором существуют сущности x,y Е E, x = y. Определим предикат can_write_memory(x,y,G0), истинный тогда и только тогда, когда существуют состояния G\,... , Gn и правила преобразования состояний opi, . . . ,opN, такие, что Go l“opi Gi \~ap2 . . . \~opN Gn , где N ^ 0, является траекторией без информационных потоков по времени и кооперации доверенных и недоверенных субъект-сессий для передачи прав доступа, и выполняется условие (x,y,writem) Е Fn.
Определение 3. Пусть G — состояние системы Tj(G*,OP), в котором существуют сущности x,y Е E, x = y. Определим предикат directly_can_write_memory(x, y, G), истинный тогда и только тогда, когда существует последовательность сущностей e1,...,em Е E, где e1 = x, em = y, m ^ 2, и либо m =2 и (x,y,writem) Е F, либо для каждого i = 1,... ,m — 1 выполняется одно из условий 1-4:
1) ei Е LS П S и либо [(ei,ei+1,writem) Е F], либо [(ei,ei+1 ,writea) Е A и не существует доверенной субъект-сессии e'i+1 Е Ls П S, такой, что ei+1 Е [e'i+1\ и (ei,ei) Е Е (ei+1)f(E)].
2) ei Е Ns П S и выполняется одно из условий:
— (ei,ei+1,writem) Е F;
— существует ei Е S, такая, что ei Е de_facto_own(ei) и или (ei,ei+1,writem) Е F,
или ei+1 Е E \ S и (ei,ei+1,writea) Е A;
— ei+1 Е E \ S и существует ei Е S, такая, что ei Е de_facto_own(ei), execute_con-
tainer(ei,ei+1) = true, ie(ei+1) ^ is(ei), [если ie(ei+1) = i_high, то существует
e'[ Е S, такая, что e" Е de_facto_own(ei), (ei,i_entity,writea) Е A], и возможен один из двух случаев:
• (ei+l,writer) Е PA(roles(ei));
• существует r Е UA(user(ei)), такая, что (ei+l,writer) Е PA(r), [для e е]г[ либо (ei,e,reada) Е A, либо (ei,e,writea) Е A], ir(r) ^ is(ei), [если ir(r) = = i_high, то существует (e'¡ ,i_entity,writea) Е A], Constraints (roles') = true, где [roles'(ei) = roles(ei) U {r} и для e' = ei справедливо roles'(e') = roles(e')];
— ei+i Е E \ S и существуют ei Е S, r Е can _manage _rights(roles(ei) П AR) П Hroles(ei), такие, что ei Е de_facto_own(ei), ie(ei+l) ^ ir(r) ^ is(ei), [если ie(ei+l) = i_high, то существует e'¡ Е S, такая, что (e'¡,i_entity,writea) Е A], Constraintp(PA') = true, где [PA'(r) = PA(r) U {(ei+l,writer)} и для r' = r справедливо PA'(r') = PA(r')] и либо [(ei,ei+i,owna) Е A], либо [(ei+l,ownr) Е Е PA(roles(ei)) и execute_container(ei, ei+l) = true].
3) ei+l Е Ls П S, (ei+l,ei,reada) Е A, и либо не существует доверенной субъект-сессии e'i+l Е LsП S, такой, что ei+l Е [e'i+l\ и (ei+l,ei) Е (e'i+l)f (E), либо не существует доверенной субъект-сессии ei Е Ls П S, такой, что ei E]eJi[ и (ei+l,ei+l) Е (ei)p(E).
4) ei+l Е Ns П S, ei E E \ S и существует e'i+l E S, такая, что e'i+l E de_fac-
to_own(ei+l) и выполняется одно из следующих условий:
— (ei+l,ei,reada) Е A;
— execute_container(ei+l, ei) = true и возможен один из двух случаев:
• (ei,readr) Е PA(roles( ei+l));
• существует r Е UA(user(e'i+l)), такая, что (ei,readr) Е PA(r), [для e е]г[ либо (e'i+l,e,reada) Е A, либо (e'i+l,e,writea) Е A], ir(r) ^ is(e'i+l), [если ir(r) = = i_high, то существует (e"+l,i_entity,writea) Е A], Constraints(roles') = = true, где [roles'(e'i+l) = roles(e'i+l) U {r} и для e' = e'i+l справедливо roles'(e') = roles(e')];
— существует r E can_manage_rights(roles(e'i+l) П AR) П roles(ei+l), такая, что e'i+l E de_facto_own(ei+l), ie(ei) ^ ir(r) ^ is(e'i+l), если ie(ei) = i_high, то существует e'!'+l E S, такая, что (e"+l,i_entity,writea) E A, ConstraintP(PA') = = true, где [PA'(r) = PA(r) U {(ei, readr)} и для r' = r справедливо PA'(r') = = PA(r')], и либо [(ei+l,ei,owna) E A], либо [(ei,ownr) E PA(roles(ei+l)) и execute _container(ei+l,ei) = true].
Справедливо следующее утверждение о достаточных условиях истинности предиката can_write_memory(x, y, G0).
Утверждение 1. Пусть G0 — состояние системы Yj(G*, OP), в котором существуют сущности x,y Е Eo, x = y. Если истинен предикат directly_can_write_memory(x, y,G0), то истинен предикат can_write_memory(x,y,G0).
В дальнейшем планируется развитие РОСЛ ДП-модели по следующим направлениям: расширение достаточных условий реализации информационных потоков по памяти, анализ условий получения недоверенной субъект-сессией контроля над доверенной субъект-сессией, а также включение в модель элементов, позволяющих задать в ней мандатное управление доступом.
ЛИТЕРАТУРА
1. Девянин П. Н. Ролевая ДП-модель управления доступом и информационными потоками в операционных системах семейства Linux // Прикладная дискретная математика. 2012. №1(15). С. 69-90.