Научная статья на тему 'Подходы к построению ДП-модели файловых систем'

Подходы к построению ДП-модели файловых систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
399
86
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОМПЬЮТЕРНАЯ БЕЗОПАСНОСТЬ / ФАЙЛОВЫЕ СИСТЕМЫ / ДП-МОДЕЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Буренин Павел Валерьевич

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

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

Approaches to the construction of the DP-model of file systems

Approaches to the creation of the DP-model of file systems are listed in the article. DP-model family of computer systems with discretionary management of access is the basis of this approach. Specific conditions of subject's functioning, rights transfer conditions and realization of information streams are considered in the article on the basis of DP-model. Also sufficient conditions for realization of forbidden information memory streams in file systems are proved.

Текст научной работы на тему «Подходы к построению ДП-модели файловых систем»

ПРИКЛАДНАЯ ДИСКРЕТНАЯ МАТЕМАТИКА

2009 Математические основы компьютерной безопасности №1(3)

МАТЕМАТИЧЕСКИЕ ОСНОВЫ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ

УДК 004.94

ПОДХОДЫ К ПОСТРОЕНИЮ ДП-МОДЕЛИ ФАЙЛОВЫХ СИСТЕМ

П. В. Буренин

ООО «Твест», г. Тверь E-mail: [email protected]

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

Ключевые слова: компьютерная безопасность, файловые системы, ДП-модель.

С целью обеспечения возможности анализа условий получения недоверенными субъектами контроля над доверенными субъектами, реализующими механизмы защиты файловых систем (ФС), или условий создания недоверенными субъектами информационных потоков по памяти в обход механизмов защиты ФС построим на основе ДП-модели с функционально-ассоциированными с субъектами сущностями (ФАС ДП-модели, [1]) и разработанной Д. Н. Колеговым модели с функционально- и парамет-рически-ассоциированными с субъектами сущностями с дискреционным управлением доступом (ФПАС ДП-модели) ДП-модель файловых систем (или, сокращенно, ФС ДП -модель).

При этом для построения ФС ДП-модели в ФАС и ФПАС ДП-модели внесены изменения, позволяющие учитывать существенные особенности реализации механизмов защиты современных ФС. Таким образом, в дальнейшем используем следующее предположение.

Предположение 1. В рамках ФС ДП-модели выполняются следующие условия.

Условие 1. Во множестве сущностей выделено подмножество сущностей, защищенных ФС и не являющихся субъектами.

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

Условие 3. Доверенные или недоверенные субъекты, не реализующие доступ к сущностям, защищенным ФС, не обладают правами доступа и не могут получать доступ к этим сущностям. При этом они могут обладать правами доступа или получать доступ к сущностям-образам сущностей, защищенных ФС.

Условие 4. В каждом состоянии системы кроме множества субъектов анализируется множество потенциальных доверенных субъектов (доверенных субъектов, которые могут быть созданы в процессе функционирования системы для реализации доступа к сущностям, защищенным ФС).

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

Условие 6. Каждый доверенный субъект не обладает правами доступа ко всем сущностям.

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

Условие 8. Не рассматриваются информационные потоки по времени, право доступа и доступ на запись в конец сущности.

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

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

В рамках предположения 1 используем следующие обозначения и определения ФАС и ФПАС ДП-моделей:

— E = O U C —множество сущностей, где O—множество объектов, C —множество контейнеров и O П C = 0;

— S С E —множество субъектов;

— [s] С E — множество всех сущностей, функционально ассоциированных с субъектом s (при этом по определению выполняется условие s Е [s], и для каждого субъекта множество сущностей, функционально с ним ассоциированных, не изменяется в процессе функционирования системы);

— ]s[ С E —множество всех сущностей, параметрически ассоциированных с субъектом и потенциальным субъектом s (при этом по определению для каждого субъекта множество сущностей, параметрически с ним ассоциированных, не изменяется в процессе функционирования системы);

— Ls — множество доверенных субъектов;

— Ns — множество недоверенных субъектов, при этом по определению выполняется равенство Ls П Ns = 0;

— Rr = {readr, writer, executer, ownr} — множество видов прав доступа;

— Ra = {reada, writea} — множество видов доступа;

— Rf = {writem}—множество видов информационных потоков, где writem — информационный поток по памяти на запись в сущность.

Определение 1. Иерархией сущностей называется заданное на множестве сущностей E отношение частичного порядка «^», удовлетворяющее условию:

если для сущности е Е Е существуют сущности е 1, е2 Е Е, такие, что е ^ е2, е ^ 61, то е1 ^ е2 или е2 ^ е1.

В случае, когда для двух сущностей е1, е2 Е Е выполняются условия е1 ^ е2 и е1 = е2, будем говорить, что сущность е1 содержится в сущности-контейнере е2, и будем использовать обозначение е1 < е2.

Определение 2. Определим Н : Е ^ 2е — функцию иерархии сущностей, сопоставляющую каждой сущности с Е Е множество сущностей Н(с) С Е и удовлетворяющую следующим условиям:

Условие 1. Если сущность е Е Н(с), то е < с и не существует сущности-контейнера d Е С, такой, что е < й, й < с.

Условие 2. Для любых сущностей е1, е2 Е Е, е1 = е2, по определению выполняются равенство Н(е1) П Н(е2) = 0 и условия:

— если о Е О, то выполняется равенство Н(о) = 0;

— если е1 < е2, то или е1, е2 Е Е \ Б, или е1, е2 Е Б;

— если е Е Е \ Б, то Н(е) С Е \ Б;

— если ^ Е 5, то Н(в) С 5.

В рамках предположения 1 в ФС ДП-модели дополнительно используем следующие обозначения:

— FSE С Е \ Б — множество сущностей, защищенных ФС;

— /з: FSE ^ Е \ Б — инъективная функция, которая ставит в соответствие каждой сущности, защищенной ФС, соответствующую ей сущность-образ;

— PS — множество потенциальных доверенных субъектов, реализующих доступ к сущностям из множества FSE;

— FSS С П Б — множество доверенных субъектов, реализующих доступ к сущностям из множества FSE.

Будем считать, что в дальнейшем выполняется следующее предположение.

Предположение 2. В рамках ФС ДП-модели выполняются следующие условия.

Условие 1. Каждый доверенный субъект из множества FSS является функционально корректным, корректным относительно любой сущности и может обладать только правами доступа на чтение и запись к сущностям из множества FSE и соответствующим им сущностям-образам.

Условие 2. Каждый потенциальный доверенный субъект из множества PS может обладать только правами доступа на чтение и запись к сущностям из множества FSE и соответствующим им сущностям-образам и не может реализовать доступы к любым сущностям или информационные потоки.

Условие 3. Из потенциального доверенного субъекта из множества PS может быть создан только доверенный субъект из множества FSS. При этом множество PS не изменяется в процессе функционирования системы.

Условие 4. Для каждого доверенного субъекта из множества FSS или потенциального доверенного субъекта из множества PS множество параметрически ассоциированных с ним сущностей не пусто (для каждого в Е FSS и PS справедливо неравенство ]в[ = 0). Для каждого доверенного субъекта из множества FSS множество функционально ассоциированных с ним сущностей состоит только из самого субъекта (для каждого в Е FSS справедливо равенство [в] = {в}), и невозможно получение к нему права доступа владения с использованием реализованного к нему информационного потока по памяти.

Условие 5. Для каждой сущности из множества ЕБЕ существует доверенный субъект из множества ЕББ или потенциальный доверенный субъект из множества РБ, обладающий правами доступа на чтение и запись к сущности и к соответствующей ей сущности-образу (для каждой е Є ЕБЕ существует субъект в Є ЕББ и РБ, обладающий правами доступа (в, е, твайг), (в, е, тгИвг), (в, /в(е), твайг), (в, /в(е), и!гИвг)).

Условие 6. Каждый доверенный субъект, не входящий во множество ЕББ, обладает всеми правами доступа ко всем сущностям, не входящим во множества ЕБЕ, ЕББ и {е Є Е: существует в Є Б и е Є ]в[} (множество сущностей, параметрически ассоциированных с субъектами).

В рамках предположений 1 и 2 дадим определение состояния системы. Определение 3. Пусть определены множества Б, РБ, Е, К С (Б и РБ) х Е х Кг, А С Б х Е х Ка, Е С Е х Е х К/ и функция иерархии сущностей Н. Определим С= (Б, Е, К и А и Е, Н) — конечный помеченный ориентированный граф, без петель, где элементы множеств Б, РБ, Е являются вершинами графа, элементы множества К и А и Е — ребрами графа. Назовем С= (Б, Е, К и А и Е, Н) графом прав доступа, доступов и информационных потоков или, сокращенно, графом доступов. При этом в графе доступов будем использовать следующие обозначения:

— вершины из множества Б (соответствующие субъектам) в графе доступов будут обозначаться «•»;

— вершины из множества РБ (соответствующие потенциальным субъектам) в графе доступов будут обозначаться «о»;

— вершины из множества Е \ Б (соответствующие сущностям, не являющимся субъектами) в графе доступов будут обозначаться «®»,

— каждое ребро графа доступов помечено одним из элементов множества Кг и Ка и К/;

— каждое ребро из множества К будет обозначаться стрелкой вида, представленного на рис. 1,а;

— каждое ребро из множества А будет обозначаться стрелкой вида, представленного на рис. 1,б;

— каждое ребро из множества Е, помеченное иігйвт, будет обозначаться стрелкой вида, представленного на рис. 1,в.

Рис. І. Обозначения ребер графа доступов: а — ребро из множества R, помеченное ar Є Rr; б —ребро из множества A, помеченное aa Є Ra; в — ребро из множества F, помеченное writeт

Используем также обозначения:

E(G*, OP) — система, при этом:

— каждое состояние системы представляется графом доступов;

— G* — множество всех возможных состояний;

— OP — множество правил преобразования состояний, определенных в таблице.

G hop G' — переход системы E(G*, OP) из состояния G в состояние G' с использованием правила преобразования состояний op Є OP.

Если для системы E(G*, OP) определено начальное состояние, то будем использовать обозначение:

E(G*, OP, G0) — система E(G*, OP) с начальным состоянием G0.

При анализе правил преобразования состояний и траекторий функционирования системы, в результате реализации которых возникают запрещенные информационные потоки по памяти, применим подход, аналогичный использованному в рамках ФАС ДП-модели и ФПАС ДП-модели. Кроме того, в соответствии с условием Т предположения 1 доверенные субъекты, не входящие во множество FSS, в процессе функционирования системы не реализуют новые доступы к сущностям. В противном случае, любой недоверенный субъект с помощью доверенных субъектов мог бы реализовать к себе информационный поток по памяти от любой сущности, защищенной ФС, для которой в системе существует соответствующий ей доверенный субъект из множества FSS. Таким образом, будем считать, что в дальнейшем выполняется следующее предположение.

Предположение 3. В процессе функционирования системы доверенные субъекты:

— не дают недоверенным субъектам права доступа к сущностям;

— не берут у недоверенных субъектов права доступа к сущностям;

— не получают прав доступа владения к другим субъектам;

— не создают доверенных субъектов из потенциальных доверенных субъектов.

Кроме того, доверенные субъекты, не входящие во множество FSS, не реализуют новые доступы к сущностям.

На основе предположения 3 дадим определение.

Определение 4. Назовем траекторию функционирования системы E(G*, OP) траекторией без кооперации доверенных и недоверенных субъектов для передачи прав доступа и реализации информационных потоков по памяти, если при ее реализации используются монотонные правила преобразования состояний, и:

— доверенные субъекты не инициируют выполнения следующих правил преобразо-

вания состояний: take_right(ar, u, x, e), grant_right(ar, u, x, e), create_entity(x, y, z), create_subject(x, y, z), potential_subject(u, ps, y), control(u, y, e), know(u, y),

access_read(u, e), access_write(u, e);

— доверенные субъекты могут инициировать выполнение правил преобразования состояний: own_take(ar, u,e), create_entity(x, y, z), create_subject(x, y, z), /ind(u, e, e'), post(u, e, e'), pass(u, e, e'),

где u, y Є Ls — доверенные субъекты, x Є Ns — недоверенный субъект, ps Є PS — потенциальный доверенный субъект, e, e' — сущности, ar Є Rr —право доступа.

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

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

appendr и доступа appenda условия и результаты применения монотонных правил преобразования состояний: take_right(ar, x, y, z), grant_right(ar, x, y, z), own_take(ar, x, y), create_entity(x, y, z), create_subject(x, y, z), control(x, y, z),

know(x, y), access_read(x, y), access_write(x, y), find(x, y, z), post(x, y, z), pass(x,

y, z);

— для обеспечения возможности создания доверенными субъектами информационных потоков по памяти при наличии у них доступов к сущностям изменены условия применения правил find(x, y, z), post(x, y, z), pass(x, y, z);

— не рассматриваются правила flow(x, y, y', z) и rename_entity(x, y, z), так как в результате их применения только информационные потоки по времени;

— не рассматривается правило access_append(x, y), так как оно используется для получения к сущности доступа appendа с применением права доступа appendr;

— добавлено новое правило potential_subject(x, y, z), позволяющее недоверенному субъекту создать доверенного субъекта из потенциального доверенного субъекта.

Правила преобразования состояний ФС ДП-модели

Правило Исходное состояние G= (S, E, R U A U F, H) Результирующее состояние С' = (У, Е', Р' иА' иР', Я')

1 2 3

take right(ar, x, y, z) x £ П S, y £ S, z £ E \ PSP, x = z, ar £ Rr, (x, y, ownr) £ R, (y, z, ar) £ R 5' = S, Е' = Е, А' = А, Я' = =Я, Р' = Р, Р' = Р и {(х, г, аг ) }

grant right (ar, x, y, z) x £ П S, y £ S, z £ E \ PSP, y = z, ar £ Rr, (x, y, ownr) £ R, (x, z, ar) £ R 5' = 5, Е' = Е, А' = А, Я' = = Я, Р' = Р, Р' = Р и {(у, г, а)}

y) ,x ,r e( k a t і n w o x £ S, y £ E, ar £ Rr, (x, y, ownr) £ R 5' = 5, Е' = Е, А' = А, Я' = = Я, Р' = Р, Р' = Р и {(х, у, ) }

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

create entity(x, y, z) x £ S, y£E, z £ E \S, (x, z, writer) £ R 5' = 5, Е' = Е и {у}, А' = = А, Р' = Р, Я'(г) = Я (г) и {у}, Я '(у) = 0, для е £ Е \ {г} выполняется равенство Я'(е) = Я(е), Р' = Р и {(х, у, оюп г )}

create subject(x, y, z) x £ S, y £ E, z £ E, (x, y, executer) £ R 5' = 5 и {г}, Е' = Е и {г}, А' = А, Р' = Р, Я'(х) = Я(х) и {г}, Я'(г) = 0, для е £ Е \ {х} выполняется равенство Я'(е) = Я(е), Р' = Р и {(х, г, оюп г )}

potential_subject(x, y, z) x £ П S, y £ PS, z £ E, и для каждой e £ E такой, что e £ ]y[, существует (e, x, writem) £ F 5' = 5 и {г}, ЕЯЯ’ = Евв и {г}, Е' = Е и {г}, А' = = А, Р' = Р, Я'(х) = Я(х) и {г}, Я'(г) = 0, для е £ Е \ {х} выполняется равенство Я'(е) = Я(е), Р' = Р и {(х, г, ои>пг)} и {(г, е, аг): (у, е, аг) £ Р}

Продолжение таблицы

1 2 3

know (x, y) x £ NS П S, y £ S, x = y, и для каждой e £ E такой, что e £ ]y[, существует (e, x, writem) £ F S' = S, E' = E, A' = A, H' = =H, F' = F, R' = R U {(x, у, own r )}

control(x, y, z) x £ NS П S, y £ S, x = y, z £ E, z £ [y] и или x = z, или (x, z, writem) £ F S' = S, E' = E, A' = A, H' = =H, F' = F, R' = R U {(x, у, ownr)}

access write (x, y) x £ FSS U (NS П S), y £ E, (x, y, writer) £ R S' = S, E' = E, R' = R, H' = =H, A' = A U {(x, у, writea)}, F' = F U {(x, у, writem)}

access read (x, y) x £ FSS U (NS П S), y £ E, (x, y, readr) £ R ,R rea })т ,e II ^ ' , ri ' R (x w =' A {(у ,' E = U ,S ' A F =' ,H =' ' S = F

control(x, y, z) x £ NS П S, y £ S, x = y, z £ E, z £ [y] и или x = z, или (x, z, writem) £ F S' = S, E' = E, A' = A, H' = =H, F' = F, R' = R U {(x, у, ownr)}

find(x, y, z) x, y £ S, z £ E, x = z, и либо x = y, x £ LS П S и (x, z, writea) £ A, либо x = y и {(x y, a), (y, z, в)} С R U A U F, где если x £ LS П S, то a £ {writea, writem}, если x £ NS П S, то a £ {writer, writem}, если y £ LS П S, то в = {writea, writem}, если y £ NS П S, то в £ {writer, writem} S' = S, E' = E, R' = R, A' = =A, H' = H, F' = F U {(x, z, write m)}

post(x, y, z) x, z £ S, y £ E, x = z, {(x У, a) (z y, в)} С R U A U F, где если x £ LS П S, то a £ {writea, writem}, если x £ NS П S, то a £ {writer, writem}, если z £ LS П S, то в = = reada, если z £ NS П S, то в = readr S' = S, E' = E, R' = R, A' = =A, H' = H, F' = F U {(x, z, write m)}

Окончание таблицы

1 2 3

pass(x, y, z) y £ S, x, z £ E, x = z, и либо y = z, y £ LS П S и (y, x, reada) £ A, либо y = z и {(y, x, в), (y, z, a)} С R U A U F, где если y £ LS П S, то a £ {writea, writem}, в = = reada, если y £ NS П S, то a £ {writer, writem}, в = read r S' = S, E' = E, R' = R, A' = =A, H' = H, F' = F U {(x, z, write m)}

Правило преобразования состояний potential_subject(x, y, z) позволяет недоверенному субъекту x, реализовавшему к себе информационные потоки по памяти от всех сущностей, параметрически ассоциированных с потенциальным доверенным субъектом y, создать соответствующего y доверенного субъекта z (рис. 2). При этом субъект z получает все права доступа субъекта y, субъект x получает доступ владения ownr к субъекту z.

При анализе условий реализации запрещенных информационных потоков по памяти будем использовать следующие определения.

Определение 5. Пусть G0 = (So, E0, R0 U A0 U F0, H0) —начальное состояние

системы E(G*, OP, G0). Запрещенным информационным потоком по памяти является информационный поток от сущности e £ FSE, защищенной ФС, к недоверенному субъекту x £ Ns П S0 в случае, когда в начальном состоянии G0 субъект x не имеет прав доступа readr или ownr к сущности-образу fs(e) £ E, соответствующей сущности e.

Определение 6. В рамках ФС ДП-модели будем говорить, что система E(G*, OP, G0) является безопасной в случае, когда невозможен переход системы в состояние, в котором реализуется запрещенный информационный поток по памяти, удовлетворяющий условиям определения 5.

Определение 7. Нарушитель в рамках ФС ДП-модели — любой недоверенный субъект системы.

Примеры разрешенных и запрещенных информационных потоков по памяти приведены на рис. 3.

Анализ траекторий системы без получения недоверенными субъектами прав доступа владения к доверенным субъектам.

Рассмотрим частный случай, когда при реализации запрещенных информационных потоков по памяти недоверенные субъекты не применяют правила вида control (x, y, z), know(x, y) или potential_subject(x, y, z) для получения прав доступа владения к доверенным субъектам системы. Дадим определение.

Определение 8. Назовем траекторию функционирования системы E(G*, OP) траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам, если она является траекторией без кооперации доверенных и недоверенных субъектов для передачи прав доступа и реализации информационных

G ЄЄ FSE

J ©

' м у ' 'y/readr, writer

x

Рис. 2. Пример применения правила potential_subject(ж, y, z)

потоков по памяти, и при ее реализации недоверенные субъекты не инициируют выполнение правил вида control(x, y, z), know(x, y) и potential_subject(x, y, z).

Определение 9. Назовем состояние G системы E(G*, OP) безопасным относительно прав доступа, когда в нем недоверенные субъекты не обладают правами доступа к доверенным субъектам.

Определение 10. Пусть Go = (S0, E0, R0 U A0 U F0, H0) —состояние системы E(G*, OP) и сущности x, y G E0, где x = y. Определим предикат simple_can_write_memory(x, y, G0), который будет истинным тогда и только тогда, когда существуют состояния Gi, ... , Gn = (Sn, En, Rn U An U Fn, Hn) и правила преобразования состояний op 1, ..., opn, где N ^ 0, такие, что траектория G0 hopi G1 hop2 ... \~opN Gn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (x, y, writem) G Fn.

В рамках ФС ДП-модели с учетом предположений 1-3 воспользуемся определенными и обоснованными в БК ДП-модели и классической модели Take-Grant необходимыми и достаточными условиями истинности предиката can_share(a, x, y, G0). При этом доверенные субъекты с учетом предположения 3 могут рассматриваться как объекты модели Take-Grant.

Рис. 3. Примеры информационных потоков по памяти: (e 1, x, writem) —разрешенный информационный поток; (e2, x, writem) — запрещенный информационный поток

Определение 11. Пусть Go = (So, E0, R0 U A0 U F0, H0) —состояние системы E(G*, OP), в котором существуют субъект x Е S0 и сущность у Е E0, где х = у, и пусть право доступа а Е Rr. Определим предикат simple_can_share(а, х, у, G0), который будет истинным тогда и только тогда, когда существуют состояния G1, ... , Gn = = (Sn , En, Rn U An U Fn , Hn) и правила преобразования состояний op 1, ..., opn , где N ^ 0, такие, что G0 h opi G1 h op2 ... h opN Gn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам, и (x, у, а) Е Rn.

Определение 12. Мостом в состоянии G между двумя недоверенными субъектами называется путь в графе-состоянии, удовлетворяющий одному из условий:

— субъекты соединены ребром, без учета направления помеченным правом доступа own r;

— субъекты соединены путем, проходящим через доверенных субъектов, словарная запись которого имеет вид: ownr* ownr*, где символ «<*» означает многократное, в том числе нулевое, повторение.

Определение 13. Пролетом моста в состоянии G называется путь с началом в недоверенном субъекте и концом в доверенном субъекте, проходящий через доверенных субъектов, словарная запись которого имеет вид: ownr*, где символ ««*» означает многократное повторение.

Определение 14. Два недоверенных субъекта х и у в состоянии G являются own-связанными, когда существует последовательность недоверенных субъектов s1, ... , sn, где n ^ 2, таких, что s1 = х, sn = у, и каждая пара Si, si+1 соединена мостом, где 1 ^ i < n.

Утверждение 8. Пусть G0 = (S0, E0, R0 U A0 U F0, H0) —состояние системы £(G*, OP), в котором существуют субъект x Е S0, сущность у Е E0, где x = у, и пусть право доступа а Е Rr. Предикат simple_can_share(а, x, у, G0) является истинным тогда и только тогда, когда выполняются условия.

Условие 1. Существует субъект s Е S0 такой, что или (s, у, а) Е R0, или (s, у, ownr) Е R0.

Условие 2. Существуют недоверенные субъекты x', s' Е Ns П S0 такие, что выполняются условия:

— или x = x', или x' соединен с x пролетом моста;

— или s = s', или s' соединен с s пролетом моста;

— x' и s' являются own-связанными.

Доказательство. Справедливость данного утверждения обосновывается в рамках классической модели Take-Grant. ■

Определим и обоснуем алгоритмически проверяемые необходимые и достаточные условия истинности предиката simple_can_write_memory(x, у, G0).

Теорема 1. Пусть G0 = (S0, E0, R0 U A0 U F0, H0) — состояние системы £(G*, OP) и сущности x, у Е E0, где x = у. Предикат simple_can_write_memory(x, у, G0) является истинным тогда и только тогда, когда существует последовательность сущностей e1,... , em Е E0, где e1 = x, em = у и m ^ 2, таких, что для каждого i =1, ..., m — 1 выполняется одно из условий.

Условие 1. ei Е Ls П S0 и или (ei, ei+1, writem) Е F0, или (ei, ei+1, writeа) Е A0.

Условие 2. ei Е FSS0 U (Ns П S0) и или (ei, ei+1, writem) Е F0, или истинен предикат

simple_can_share(writer, ei, ei+1, G0).

Условие 3. ei+1 Е LS П S0 и (ei+1, ei, readа) Е A0.

Условие 4. ei+1 Е FSS0 U (Ns П S0) и истинен предикат simple_can_share(readr, ei+b ei, G0).

Условие 5. ei Е NS П S0, ei+1 Е FSS0 U (NS П S0) и истинен предикат

simple_can_share(ownr, ei, ei+1, G0).

Условие 6. ei+1 Е NS П S0, ei Е FSS0 U (NS П S0) и истинен предикат

simple_can_share(ownr, ei+1, ei, G0).

Доказательство. Докажем достаточность выполнения условий теоремы для истинности предиката simple_can_write_memory(x, у, G0).

Пусть существует последовательность сущностей e1, ..., em Е E0, где e1 = x, em = у и m ^ 2, таких, что выполняются условия теоремы. Выполним доказательство индукцией по длине m последовательности сущностей.

Пусть m= 2. Возможны шесть случаев.

Первый случай: x Е LS П S0 и или (x, у, writem) Е F0, или (x, у, writeа) Е A0. Если

(x, у, writem) Е F0, то предикат simple_can_write_memory(x, у, G0) истинен. Если (x^, writea) Е A0, то положим op 1 = find(x, x, у), G0 h opiG1. Тогда (x, у, writem) Е F1 и предикат simple_can_write_memory(x, у, G0) истинен.

Второй случай: x Е FSS0 U (NS П S0) и или (x, у, writem) Е F0, или истинен предикат simple_can_share(writer, x, у, G0). Если (x, у, writem) Е F0, то предикат simple_can_write_memory(x, у, G0) истинен. Если истинен предикат simple_can_share(writer, x, у, G0), то по определению 11 существуют состояния G1, ..., Gn и правила преобразования состояний op 1, ..., opn, где N ^ 0, такие, что

G0 hopi G1 hop2 ... h opN Gn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (x, у, writer) Е Rn. Пусть opn+1 = access_write(x, у) и GN h opN+i Gn+1. Тогда (x, у, writem) Е FN+1 и предикат simple_can_write_memory(x, у, G0) истинен.

Третий случай: у Е LS П S0 и (у, x, reada) Е A0. Положим op 1 = pass(x, у, у), G0 h opiG1. Тогда (x, у, writem) Е F1 и предикат simple_can_write_memory(x, у, G0) истинен.

Четвертый случай: у Е FSS0 U (NS П S0) и истинен предикат simp/e_can_ _share(readr, у, x, G0). Тогда по определению 11 существуют состояния G1, ..., Gn и правила преобразования состояний op1,...,opN, где N ^ 0, такие, что G0 hopi G1 hop2 ... hopN Gn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (y,x,readr) Е Rn. Пусть opN+1 = access_read(y, x) и GN hopN+i GN+1. Тогда (x,y,writem) Е FN+1 и предикат simp/e_can_write_memory(x, у, G0) истинен.

Пятый случай: x Е NS П S0, у Е FSS0 U (NS П S0) и истинен предикат simp/e_can_share(ownr,x,y,G0). По определению 11 существуют состояния G1,... , Gn и правила преобразования состояний op1,... , opN, где N ^ 0, такие, что G0 hopi G1 hop2 ... hopN Gn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (x,y,ownr) Е Rn. Воспользуемся предположением базовой ДП-модели, согласно которому для любого субъекта в любом состоянии системы существует сущность-контейнер, в составе которой он может создать новую сущность. Следовательно, существует сущность-контейнер e Е En , в составе которой субъект x может создать новую сущность. Пусть opN+1 = = create_entity(x, z, e), opN+2 = own_take(writer, x,z), opN+3 = own_take(readr, x,z), opN+4 = grant_right(readr, x,y,z), opN+5 = access_read(y, z), opN+6 = post(x,z,y), и Gn hopN+i Gn+1 h^+2 ... h^+6 Gn+6. Тогда (x,y,writem) Е Fn+6 и предикат simp/e_can_write_memory(x, у, G0) истинен. На рис. 4 приведена последовательность преобразований состояний, при этом показаны только ребра графов-состояний, которые необходимы для применения правил.

Шестой случай: у Е NS П S0, x Е FSS0 U (NS П S0) и истинен предикат simple_can_share(ownr, у, x, G0). Доказательство для шестого случая осуществляется аналогично доказательству для пятого случая.

Докажем индуктивный шаг. Пусть m > 2 и утверждение теоремы верно для всех последовательностей сущностей длины k < m. Докажем, что утверждение теоремы верно для всех последовательностей сущностей длины m.

Пусть e1 , . . . , em Е E0 — последовательность сущностей, где e1 = x, em = у. Возможны два случая: x Е S0 или x Е E0 \ S0.

Первый случай: x Е S0. Положим em-1 = z. Тогда по предположению индукции существуют состояния G1, ... , Gn и правила преобразования состояний op 1, ..., opn , где N ^ 0, такие, что G0 h opi G1 h op2 ... h opN Gn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (x, z, writem) Е Fn .

Если z Е S0, то по предположению индукции существуют состояния Gn+1,... , Gn+k и правила преобразования состояний opN+1,..., oPn+k, где K ^ 0, такие, что Gn hopN+i Gn+1 hopN+2 ... hopN+K Gn+k является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (z, у, writem) Е Fn+k. Пусть opn+k+1 = find(x, z, у), тогда Gn+k h opN+K+iGn+k+1 и (x,y, writem) Е Fn+k+1, следовательно, предикат simple_can_write_memory(x, y, G0) истинен.

Рис. 4. Случай x G NS П So, y G FSS0 U (NS П S0) и истинен предикат can_share(ownr, x, y, Go)

Если z G E0\S0, то выполняется одно из следующих условий:

— y G Ls П So и (y, z, reada) G Ao;

— y G FSS0 U (Ns П S0) и истинен предикат simple_can_share(readr, y, z, G0).

Если y G LS П S0 и (y, z, reada) G A0, то пусть M = N.

Если y G FSS0 U (Ns П S0) и истинен предикат simple_can_share(readr, y, z, G0),

то по определению 11 существуют состояния Gn+i, ... , Gn+k и правила преобразования состояний opN+i, . . . , opn+k, где K ^ 0, такие, что GN h opN+1 GN+1 h opN+2 . . . h opN+K Gn+k является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (y, z, readr) G Rn+k. Пусть opn+k+i = = access_read(y, z) и M = N + K + 1.

Положим opM+i = post(x, z, y), Gm h opM+1 Gm+i. Тогда (x, y, writem) G Fm+i и

предикат simple_can_write_memory(x, y, G0) истинен.

Второй случай: x G E0\S0. Положим e2 = z. Тогда по условию теоремы z G S0 и по предположению индукции существуют состояния G1, . . . , Gn и правила преобразования состояний op 1, ..., opn, где N ^ 0, такие, что G0 hopi G1 hop2

... hopN Gn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (z, y, wr^item) G Fn. При этом выполняется одно из следующих условий:

— z G LS П S0 и (z, x, reada) G A0;

— z G FSS0 U (Ns П S0) и истинен предикат simple_can_share(readr, z, x, G0).

Если z G LS П S0 и (z, x, reada) G A0, то пусть M = N.

Если z G FSS0 U (Ns П S0) и истинен предикат simple_can_share(readr, z, x, G0),

то по определению 11 существуют состояния Gn+i, ..., Gn+k и правила преобразования состояний opn+1, ..., opn+k, где K ^ 0, такие, что GN hopN+1 GN+1 hopN+2 ... hopN+K Gn+k является траекторией без получения недоверенными субъектами прав

доступа владения к доверенным субъектам и (z, x, readr) G Rn+k. Пусть opn+k+1 = = access_read(z, x) и M = N + K + 1.

Положим opm+1 = pass(x, z, y), GM h oPM+1 GM+1. Тогда (x, y, writem) G FM+1 и

предикат simple_can_write_memory(x, y, G0) истинен.

Индуктивный шаг доказан. Доказательство достаточности выполнения условий теоремы для истинности предиката simple_can_write_memory(x, y, G0) выполнено.

Докажем необходимость выполнения условия теоремы для истинности предиката simple_can_write_memory(x, y, G0).

Пусть истинен предикат simple_can_write_memory(x, y, G0), при этом по определению 10 существуют состояния G1, ... , Gn и правила преобразования состояний op 1, ..., opn, где N ^ 0, такие, что траектория G0 h oP1 G1 h oP2 ... h oPNGn является траекторией без получения недоверенными субъектами прав доступа владения к доверенным субъектам и (x, y, writem) G Fn . Среди всех этих последовательностей выберем ту, у которой длина N является минимальной. Проведем доказательство индукцией по длине N последовательности преобразований состояний.

Пусть N = 0, тогда (x, y, writem) G F0, m= 2 и условие 1 или 2 теоремы выполнено. Пусть N > 0 и утверждение теоремы верно для всех последовательностей преобразований состояний длины l < N. Тогда (x, y, writem) G Fn-1 и существует правило преобразования состояний opn такое, что Gn-1 h opNGn и (x, y, writem) G Fn.

Из определения правил преобразования состояний следует, что возможны семь случаев:

— x G FSS0 U (Ns П S0), (x,y,writer) G Rn-1, opN = access_write(x, y);

— y G FSS0 U (Ns П S0), (y,x,readr) G Rn-1 и opN = access_read(y, x);

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

— x G LS П S0, (x, y, writea) G An-1, opN = find(x, x, y);

— x G S0 и существует субъект z G SN-1 такой, что opN = find(x,z,y),

{(x,z, a), (z,y,e)} С Rn-1 U An-1 U Fn-1, где если x G LS П S0, то

a G {writea, writem}, если x G Ns П S0, то a G {writer, writem}, если z G LS П SN-1, то в = {writea, writem}, если z G Ns П SN-1, то в G {writer, writem};

— x,y G S0 и существует сущность z G En-1 такая, что opN = post(x,z,y),

{(x,z, a), (y,z,e)} С Rn-1 U An-1 U Fn-1, где если x G LS П S0, то

a G {writea, writem}, если x G Ns П S0, то a G {writer, writem}, если y G LS П S0, то в = reada, если y G Ns П S0, то в = readr;

— y G Ls П S0, (y, x, reada) G An-1, opN = pass(x,y,y);

— x,y G E0 и существует субъект z G SN-1, opN = pass(x,z,y), {(z,x,в), (z,y,a)} С Rn-1 U An-1 U Fn-1, где если z G LS П SN-1, то a G {writea, writem}, в = reada, если z G Ns П SN-1, то a G {writer, writem}, в = readr.

В первом случае истинен предикат simple_can_share(writer, x, y, G0), и условие 2 теоремы выполнено.

Во втором первом случае истинен предикат simple_can_share(readr, y, x, G0), и условие 4 теоремы выполнено.

Третий случай: x G LS П S0, (x, y, writea) G AN-1, opN = find(x, x, y). Предположим (x, y, writea) G A0, тогда по предположению 3 доверенный субъект x G FSS0 и существует 0 ^ M < N такое, что opm = access_write(x, y). Следовательно, выполняется условие (x, y, writem) G Fm, противоречие с минимальностью N. Значит, (x, y, writea) G A0, и условие 1 теоремы выполнено.

В четвертом случае opN = find(x, z, y), {(x, z, a), (z, y, в)} С Rn-1 U AN-1 U FN-1,

из минимальности N следует, что z G S0, и выполняются условия:

— если x G LS П S0, то a G {writea, writem};

— если x G Ns П S0, то a G {writer, writem};

— если z G LS П S0, то в = {writea, writem};

— если z G Ns П S0, то в G {writer, writem}.

Пусть x G Ls П S0. Если (x, z, writea) G An-1, то по аналогии с третьим случаем получаем, что (x, z, writea) G A0. Если x G LS П S0 и (x, z, writem) G FN-1, то истинен предикат simple_can_write_memory(x, z, G0) с длиной последовательности преобразований состояний меньше N. Следовательно, по предположению индукции существует последовательность сущностей, удовлетворяющая условиям теоремы.

Пусть x G Ns П S0. Если (x, z, writer) G Rn-1, то истинен предикат simple_can_share(writer, x, z, G0). Если (x, z, writem) G FN-1, то истинен предикат simple_can_write_memory(x, z, G0) с длиной последовательности преобразований состояний меньше N. Следовательно, по предположению индукции существует последовательность сущностей, удовлетворяющая условиям теоремы.

Аналогично рассматриваются условия z G Ls П S0 и z G Ns П S0. Таким образом, объединяя последовательности сущностей для каждого из возможных сочетаний пар условий, получаем, что в четвертом случае выполняются условия теоремы.

В пятом случае существует сущность z G En-1 такая, что opN = post(x,z,y), {(x,z,a), (y,z^)} С Rn-1 U An-1 U Fn-1, и выполняются условия:

— если x G LS П S0, то a G {writea, writem};

— если x G Ns П S0, то a G {writer, writem};

— если y G LS П S0, то в = reada;

— если y G Ns П S0, то в = readr.

Если z G Е0, то шаг индукции обосновывается аналогично четвертому случаю. Если z G E0, то существуют 1 ^ M < N, субъект s G Sm-1, сущность-контейнер e G Em-1 такие, что opм = create_entity(s, z, e). Из минимальности N следует, что выполняются условия s G S0 и сущность-контейнер e G Е0. Из всех последовательностей преобразований выберем ту, в которой M =1. Рассмотрим состояние G1, где G0 hop1 G1, S1 = S0, Е1 = Е0 U {z}, R1 = R0 U {(s, z, ownr)}, A1 = A0, F1 = F0. Так как (x, z, a) G Rn-1 U An-1 U Fn-1, то истинен предикат simple_can_write_memory(x, z, G1) с длиной последовательности состояний меньше N. Таким образом, получаем, что существуют сущности e1, ... , efc, где e1 = x, efc = s и k ^ 2, удовлетворяющие условиям теоремы в состоянии G1, а следовательно, в состоянии G0. Аналогично получаем, что существуют сущности efc, ..., e^+m, где efc = s, e^+m = y и m ^ 1, удовлетворяющие условиям теоремы в состоянии G0. Значит, в пятом случае условия теоремы выполнены.

Седьмой случай рассматривается аналогично третьему случаю.

Восьмой случай рассматривается аналогично четвертому и пятому случаям. Индуктивный шаг доказан. Обоснована необходимость выполнения условий теоремы для истинности предиката simple_can_write_memory(x, y, G0). ■

Рассмотрим условия истинности предиката simple_can_write_memory(e, x, G0) для случая, когда сущность x является недоверенным субъектом и сущность e защищена ФС.

Следствие 1. Пусть G0 = (S0,E0,R0 U A0 U F0,H0) —начальное состояние системы £(G*, OP, G0), безопасное относительно прав доступа, в котором существуют сущность e G FSE0, недоверенный субъект x G Ns П S0. Предикат simple_can_

_write_memory(e, x, G0) (недоверенный субъект x пытается реализовать запрещенный информационный поток по памяти от сущности e) является истинным тогда и только тогда, когда существует доверенный субъект s G FSS0 такой, что он обладает правами доступа на чтение и запись к сущностям e и fs (e), и существует последовательность сущностей e1, ... , em G Е0, где e1 = x, em = fs(e) и m ^ 2, таких, что для каждого i =1, ..., m — 1 выполняется одно из условий.

Условие 1. ej G LS П S0, ei+1 G Е0 \ Ns и или (e^, ei+1, writem) G F0, или (e^, ei+1, writea) G A0.

Условие 2. ej G Ns П S0, ei+1 G E0 \ LS и истинен предикат simple_can_share (writer, ej, ei+1, G0).

Условие 3. ei+1 G LS П S0, ej G E0 \ Ns и (ej+1, ej, reada) G A0.

Условие 4. ej+1 G Ns П S0, ej G E0 \ LS и истинен предикат simple_can_share(readr, ei+b ej, G0).

Условие 5. ej, ej+1 G NsПS0 и истинен предикат simple_can_share(ownr, ej, ej+1, G0).

Условие 6. ej, ej+1 G NsПS0 и истинен предикат simple_can_share(ownr, ej+1, ej, G0).

Доказательство. В соответствии с предположениями 1 и 2 только доверенные субъекты из множества FSS0 могут обладать правами доступа к сущностям, защищенным ФС. Значит, субъекты, не входящие во множество FSS0, могут обладать правами доступа, реализовывать информационные потоки или доступы только к сущностям-образам из множества fs (FSE0). При этом для каждой сущности из множества FSE0 всегда существует доверенный субъект из множества FSS0 или потенциальный доверенный субъект из множества PS0, обладающий правами доступа на чтение и запись к сущности и к соответствующей ей сущности-образу (для каждой e G FSE0 существует субъект s G FSS0 U PS0, обладающий правами доступа (s,e,readr), (s,e,writer), (s, fs(e), readr), (s, fs(e), writer)).

В соответствии с предположением 1 в начальном состоянии отсутствуют доступы к недоверенным субъектам и информационные потоки с участием недоверенных субъектов.

Так как начальное состояние безопасно относительно прав доступа, то для любых доверенного субъекта s1 G FSS0 и субъекта s2 G FSS0 U (Ns П S0) предикаты simple_can_share(writer, s1, s2, G0), simple_can_share(writer, s2, s1, G0), simple_can_share(readr, s1, s2, G0), simple_can_share(readr, s2, s1, G0), simple_can_ _share(ownr, s1, s2, G0) и simple_can_share(ownr, s2, s1, G0) являются ложными.

Таким образом, утверждение следствия следует из теоремы 1. ■

В соответствия с утверждением следствия 1, если начальное состояние системы безопасное относительно прав доступа, то необходимым условием истинности предиката simple_can_write_memory(e, x, G0), где сущность e G FSE0, недоверенный субъект x G Ns П S0, является наличие доверенного субъекта s G FSS0 такого, что он обладает правами доступа на чтение и запись к сущностям e и fs (e).

Следствие 2. Пусть G0 = (S0,E0,R0 U A0 U F0,H0) —начальное состояние системы £(G*, OP, G0), безопасное относительно прав доступа, в котором отсутствуют доступы или информационные потоки к или от доверенных субъектов, не существует недоверенных субъектов x G Ns П S0 и сущностей e G FSE0 таких, что выполняются условия или (x, fs(e), readr) G R0, или (x, fs(e), ownr) G R0. Пусть также в системе могут реализовываться только траектории без получения недоверенными субъектами прав доступа владения к доверенным субъектам. Тогда система является безопасной.

Доказательство. Утверждение следует из теоремы 1 и следствия 1. ■

Таким образом, в следствии 2 обоснованы достаточные условия безопасности системы для случая, когда в ней могут реализовываться только траектории без получения недоверенными субъектами прав доступа владения к доверенным субъектам.

Анализ траекторий системы с возможным получением недоверенными субъектами прав доступа владения к доверенным субъектам.

Рассмотрим общий случай, когда при реализации запрещенных информационных потоков по памяти недоверенные субъекты могут применять правила вида control(x, y, z), know(x, y) или potential_subject(x, y, z) для получения прав доступа владения к доверенным субъектам системы. Дадим определение.

Определение 15. Пусть G0 = (S0,E0,R0 U A0 U F0,H0) — состояние систе-

мы £(G*, OP) и сущности x,y G Е0, где x = y. Определим предикат can_write_memory(x, y, G0), который будет истинным тогда и только тогда, когда существуют состояния G1,... , Gn = (Sn , En , Rn U An U Fn , Hn ) и правила преобразования состояний op1,... , opN, где N ^ 0, такие, что траектория G0 hop1 G1 hop2 ... hoPN Gn является траекторией без кооперации доверенных и недоверенных субъектов для передачи прав доступа и реализации информационных потоков по памяти и (x,y,writem) G Fn.

Так как при использовании правил вида control(x, y, z), know(x,y) или potential_ _su6ject(x, y, z) права доступа используются для реализации информационных потоков по памяти, а информационные потоки по памяти могут быть использованы для получения прав доступа, то необходимые условия реализации запрещенных информационных потоков по памяти должны быть определены рекурсивно, что является труднореализуемой задачей. Таким образом, определим и обоснуем достаточные условия реализации запрещенных информационных потоков по памяти. Дадим определения.

Определение 16. Пусть G0 = (S0, Е0, R0 U A0 U F0, H0) —состояние системы £(G*, OP) и недоверенный субъект x G Ns П S0, субъект y G S0, где x = y. Определим предикат can_share_own(x, y, G0, Ls), который будет истинным тогда и только тогда, когда существуют состояния G1, ... , Gn = (Sn , En, Rn U An U Fn, Hn) и правила преобразования состояний op 1, .. . , opn, где N ^ 0, такие, что траектория G0 h op1 G1 h op2 ... h opN Gn является траекторией без кооперации доверенных и недоверенных субъектов для передачи прав доступа и реализации информационных потоков по памяти и (x, y, ownr) G Rn.

Определение 17. Пусть G0 = (S0,E0,R0 U A0 U F0,H0) — состояние систе-

мы £(G*, OP) и недоверенный субъект x G Ns П S0, субъект или потенциальный доверенный субъект y S0 U PS, где x = y. Определим предикат directly_can_share_own(x, y, G0), который будет истинным тогда и только тогда, когда существует последовательность субъектов s1, . . . , sm S0 U PS, где s1 = x, sm = y и m ^ 2, таких, что для каждого i = 1,... , m — 1 справедливо неравенство sj = sj+1 и выполняется одно из условий:

— sj+1 G FSS0 и sj G [sj+1] (каждый доверенный субъект из множества FSS0 по предположению 2 является функционально корректным);

— истинен предикат simple_can_share(ownr, sj, sj+1, G0);

— sj+1 G FSS0 и существует сущность e G [sj+1] такая, что истинен предикат

simple_can_write_memory(sj, e, G0) (по предположению 2 невозможно получение

к доверенному субъекту из множества FSS0 права доступа владения с использованием реализованного к нему информационного потока по памяти);

— для каждой сущности e Є ]si+1[ истинен предикат simple_can_write_memory(si, e, Go).

Определим и обоснуем достаточные условия истинности предиката can_share_ _own(x, y, Go).

Утверждение 9. Пусть Go = (So, Eo, Ro U Ao U Fo, Ho) —состояние систе-

мы £(G*, OP), пусть также существуют недоверенный субъект x Є Ns n So, субъект или потенциальный доверенный субъект y Є So U PS, где x = y. Предикат can_share_own(x, y, Go) является истинным в случае, когда существует последовательность субъектов s1, ... , sm Є So U PS, где s1 = x, sm = y и m ^ 2, таких, что выполняется одно из условий.

Условие l. m = 2 и истинен предикат directly_can_share_own(x, y, Go).

Условие 2. m > 2 и для каждого i =l, ..., m — 2 выполняется одно из условий:

— si, si+1 Є Ns n So и истинны предикаты directly_can_share_own(si, si+1, Go), directly_can_share_own(si+1, si+2, Go);

— i < m — 2,sj, si+2 Є Ns n So и истинны предикаты directly_can_share_own(si, si+1, Go), directly_can_share_own(si+2, si+1, Go);

— i < m — 2, si+1, si+2 Є Ns n So и истинны предикаты directly_can_share_own(si+1, si, Go), directly_can_share_own(si+2, si+1, Go);

— si+1 Є Ns n So и истинны предикаты directly_can_share_own(si+1, si, Go, Ls),

directly_can_share_own(si+1, si+2, Go, Ls).

Доказательство. Доказательство теоремы выполняется аналогично доказательству в рамках ФПАС ДП-модели достаточности условий истинности предиката can_share_own(x, y, Go). ■

Определим и обоснуем достаточные условия истинности предиката can_write_ _memory(x, y, Go).

Теорема 2. Пусть Go = (So, Eo, Ro U Ao U Fo, Ho) —состояние системы E(G*, OP) и сущности x, y Є Eo, где x = y. Предикат can_write_memory(x, y, Go) является истинным в случае, когда существует последовательность сущностей e1, ... , em Є Eo, где e1 = x, em = y и m ^ 2, таких, что для каждого i =l, ..., m — 1 выполняется одно из условий.

Условие l. ei Є Ls n So и или (ei, ei+1, writem) Є Fo, или (ei, ei+1, writea) Є Ao.

Условие 2. ei Є FSS0 U (Ns n So) и или (ei, ei+1, writem) Є Fo, или истинен предикат

can_share(writer, ei, ei+1, Go).

Условие 3. ei+1 Є Ls n So и (ei+1, ei, reada) Є Ao.

Условие 4. ei+1 Є FSS0 U (NsnSo) и истинен предикат can_share(readr, ei+1, ei, Go). Условие 5. ei Є Ns n So, ei+1 Є FSS0 U (Ns n So) и истинен предикат

can_share_own(ei, ei+1, Go).

Условие б. ei+1 Є Ns n So, ei Є FSS0 U (Ns n So) и истинен предикат

can_share_own(ei+1, ei, Go).

Доказательство. Доказательство осуществляется аналогично обоснованию достаточности условий теоремы l для истинности предиката simple_can_write_ _memory(x, y, Go). ■

Рассмотрим условия истинности предиката can_write_memory(е, х, Со) для случая, когда сущность х является недоверенным субъектом и сущность е защищена ФС.

Следствие 3. Пусть С0 = (50, Е0, Д0 и А0 и Р0, Н0) —состояние системы £(С*, ОР), в котором существуют сущность е Е ЕБЕ0, недоверенный субъект х Е N5 П 50, и выполняются условия сущность /з (е) Е ЕБЕ0, и она не является параметрически ассоциированной ни с одним субъектом. Пусть также существует доверенный субъект г Е ЕББ0 такой, что он обладает правами доступа на чтение и запись к сущностям е и /з (е), и существует доверенный субъект г Е (Дд П 50) \ ЕББ 0 такой, что истинен предикат can_зhare_own(х, г', С0). Тогда предикат can_write_memory(е, х, С0) является истинным.

Доказательство. Так как выполняется условие /з (е) Е ЕБЕ0 и ЕББ0 и {е Е Е0: существует в Е 50 и е Е ]в[}, то по предположению 2 справедливо условие (г', /з(е), readr) Е Д0. Следовательно, истинен предикат can_зhare(readr, х, /з(е), С0). Кроме того, по предположению 2 являются истинными предикаты can_зhare(readг, г, е, С0) и can_зhare^г^,, г, /з(е), С0). Таким образом, выполнены условия теоремы 2, и истинен предикат can_write_memory(е, х, С0). Следствие доказано. ■

Пример выполнения условия следствия 3 приведен на рис. 5.

Рис. 5. Пример выполнения условия следствия 3, где г Е ЕББ0, е Е ЕБЕ0

Следствие 4. Пусть С0 = (50, Е0, Д0 и А0 и Р0, Н0) — состояние системы £(С*, ОР), в котором существуют сущность е Е ЕБЕ0 и недоверенный субъект х Е N5 П 50. Пусть также существует доверенный субъект или потенциальный доверенный субъект у Е ЕББ0 и РБ такой, что он обладает правами доступа на чтение и запись к сущностям е и /з (е), и выполняется условие: для каждой сущности е' Е ]у[ истинен предикат зimple_can_write_memory(х, е', С0). Тогда предикат can_write_memory(е, х, С0) является истинным.

Доказательство. По определению 17 истинен предикат directly_can_зhare_ _own (х, у, С0). Следовательно, по утверждению 2 истинен предикат can_зhare_own (х, у, С0). Таким образом, выполнены условия теоремы 2 и истинен предикат can_write_ _memory(е, х, С0). Следствие доказано. ■

Рассмотрим достаточные условия, при выполнении которых является ложным предикат can_write_memory(е, х, С0), где сущность е защищена, ФС, и субъект х является недоверенным.

Утверждение 10. Пусть С0 = (50,Е0,Д0 и А0 и Р0,Н0) —состояние системы £(С*,ОР), в котором существуют сущность е Е Р5Е0 и недоверенный субъект х Е N5 П 50. Пусть также выполнены условия.

Условие 1. Не существует доверенных субъектов таких, что они обладает правами доступа на чтение и запись к сущностям е и /з (е).

Условие 2. Для каждого потенциального доверенного субъекта у Е РБ такого, что он обладает правами доступа на чтение и запись к сущностям е и /з (е), и для любого

субъекта х' Є 50 существует сущность еу Є ]у[ такая, что выполняются условия (еу, х', шгИет) Є Р0, (х', еу, тгИва) Є А0, (х', еу, ьгпЬег) Є Ло, (х', еу, оадпг) Є Л0-Тогда предикат сап_тгйе_тетогу(е, х, С0) является ложным.

Доказательство. Так как по условию 1 не существует доверенных субъектов таких, что они обладает правами доступа на чтение и запись к сущностям е и /в (е), то по предположениям 1 и 2 для реализации информационного потока от сущности е необходимо создание такого доверенного субъекта у' Є РББ из потенциального доверенного субъекта у Є РБ с использованием правила роЬепИа1_виЪ]есЬ(х', у, у'), где х' Є N5 П 50. По условию 2 не существует недоверенного субъекта х' Є N5 П 50, удовлетворяющего условиям применения правила роЬепИа1_виЪ]есЬ(х', у, у'). Следовательно, предикат сап_и>гйе_тетогу(е, х, С0) является ложным. Утверждение доказано. ■

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

ЛИТЕРАТУРА

1. Девянин П. Н. Анализ безопасности управления доступом и информационными потоками в компьютерных системах. М.: Радио и связь, 2006. 176 с.

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