Научная статья на тему 'Анализ безопасности информационных потоков по памяти в ком пьютерных системах с функционально и параметрически ассоциированными сущностями'

Анализ безопасности информационных потоков по памяти в ком пьютерных системах с функционально и параметрически ассоциированными сущностями Текст научной статьи по специальности «Компьютерные и информационные науки»

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Колегов Денис Николаевич

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

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

Security analysis of the information flows by memory in the computer systems with functional and parametric associated entities

The definition of the parametric associated entities with computer systems subjects is proposed. The DP-model extension included this entities is built.

Текст научной работы на тему «Анализ безопасности информационных потоков по памяти в ком пьютерных системах с функционально и параметрически ассоциированными сущностями»

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

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

УДК 681.322

АНАЛИЗ БЕЗОПАСНОСТИ ИНФОРМАЦИОННЫХ ПОТОКОВ ПО ПАМЯТИ В КОМПЬЮТЕРНЫХ СИСТЕМАХ С ФУНКЦИОНАЛЬНО И ПАРАМЕТРИЧЕСКИ АССОЦИИРОВАННЫМИ СУЩНОСТЯМИ

Д. Н. Колегов Томский государственный университет, г. Томск E-mail: d.n.kolegov@gmail.com

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

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

Введение

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

В то же время в современных КС возможна реализация информационного потока по памяти от сущности, позволяющая получить права доступа различных субъектов, в том числе и доверенных. Такие сущности являются параметрически-ассоциироваными с субъектами КС. Например, получение субъектом-нарушителем доступа на чтение к конфигурационному файлу или реестру, в котором хранится пароль или хэш-значение пароля субъекта КС, позволяет субъекту-нарушителю получить право доступа владения к последнему субъекту. Кроме того, в настоящее время дополнительно к классическим угрозам нарушения конфиденциальности, целостности и доступности информации рассматривают угрозу раскрытия параметров КС — возможность идентификации параметров, функций безопасности и свойств КС, знание которых позволяет реализовать нарушение безопасности [2]. Например, чтение сообщения, выдаваемого субъектом-процессом при подключении к нему, позволяет нарушителю идентифицировать программное обеспечение (ПО), реализующее данный субъект-процесс КС, и получить права доступа последнего, используя известные уязвимости в ПО.

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

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

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

с субъектами сущностями

Определение 1. Пусть G = (S,E,R U A U F, H) — состояние КС S(G*,OP). Сущность e E E будем называть параметрически-ассоциированной с субъектом s Е S в состоянии G, если чтение данных в сущности e субъектом z Е S позволяет ему получить право владения к субъекту s в этом или последующих состояниях КС.

Замечание 1. Сущность e Е E, параметрически-ассоциированная с субъектом s Е S, содержит аргументы операций преобразования данных, выполняемого субъектом s в этом или последующих состояниях КС.

Замечание 2. В множество сущностей, параметрически-ассоциированных с субъектом s Е S, могут входить сущности, на которые субъект s не имеет прав доступа. Например, сущность-пароль, параметрически-ассоциированная с недоверенным субъектом-пользователем в ОС семейства UNIX, хранится в файле /etc/shadow, правами доступа к которому могут обладать только доверенные субъекты-процессы данной ОС [3]. Кроме того, возможно создание субъектов ОС, которые препятствовали бы доступу субъектов к некоторым критичным сущностям КС, несмотря на наличие необходимых прав доступа данных субъектов к этим сущностям [4].

Замечание 3. Существуют сущности, параметрически-ассоциированные с субъектом, которые не являются функционально-ассоциированными с ним. Примером такой сущности является раздел реестра ОС семейства Windows, содержащий информацию об установленных обновлениях ОС узла. Также существуют сущности, параметрически-ассоциированные с субъектом, которые являются функциональноассоциированными с ним. Так, зная идентификатор сессии пользователя web-приложения, возможно получить его права доступа; с другой стороны, удаление данного идентификатора приводит к закрытию сессии пользователя.

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

Предположение 1. Информационный поток по времени от сущности, параметрически-ассоциированной с субъектом, не приводит к получению другим субъ-

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

Через ]s[c E обозначим множество всех сущностей, параметрически-ассоциирован-ных с субъектом s. При этом будем считать, что s є]s[.

В соответствии с данным предположением модифицируем определение ФАС ДП-модели для возможности анализа условий получения субъектом права доступа владения к другому субъекту с использованием реализации информационного потока по памяти от сущности, параметрически-ассоциированной с последним субъектом. Модифицированную ФАС ДП-модель будем называть ДП-моделью с функционально-и параметрически-ассоциированными с субъектами сущностями, или ФПАС ДП-моделью. Модификация состоит в добавлении к правилам преобразования состояний ФАС ДП-модели правила know(x,y, z), определенного в таблице: аргументом операции является состояние G, значением — состояние G', параметрами — сущности x, y, z.

Условия и результаты применения правила know(x, y, z)

ФПАС ДП-модели

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

know(x, y, z) x,y Є S,z Є E,z Є ]y[ и или x = z, или (z, x, writem) Є F S' = S, E' = E, A' = A, H' = H,F' = F,R' = R U (x, y, ownr)

Замечание 4. Правило know(x,y,z) является монотонным, то есть применение данного правила не приводит к удалению ребер или вершин из графа доступа.

Замечание 5. Как и правило control (x, y, z) ФАС ДП-модели, правило know(x,y, z) отражает возможность одним субъектом получить право доступа владения к другому субъекту путем реализации информационного потока.

Рассмотрим условия получения недоверенным субъектом права доступа владения ownr к другому субъекту без кооперации с ним для случая, когда в КС T,(G*,OP) используются правила преобразования состояний know(x,y,z) и control(x,y,z).

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

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

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

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

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

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

Таким образом, в КС T.(G*,OP) на траекториях без кооперации доверенных и недоверенных субъектов для передачи прав доступа доверенные субъекты:

— не инициируют выполнения следующих правил преобразования состояний: take_right(ar,u,x,e), grant_right(ar,u,x,e), control(u, y, z), know(u,y, z);

— доверенные субъекты могут выполнять монотонные правила преобразования состояний: own_take(ar,u,e), create_entity(u,e,e'), create_subject(u,e,e'), rename_entity(u,e,e'), access_read(u,e), access_write(u,e), access_append(u,e), find(u,e,e'), post(u, e, e'), pass(u, e, e') с условиями и результатами применения в соответствии с правилами преобразования БК ДП-модели,

где u Є Ls — доверенный субъект, x Є Ns — недоверенный субъект, y — субъект, что z є]у[ или z Є [y], z, e, e' — сущности, ar Є Rr — право доступа.

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

— 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), rename_entity(x, y, z), flow(x, y, y', z), find(x,y, z), post(x,y,z), pass(x,y,z), access_read(x,y), access_write(x,y), access_append(x,y) с условиями и результатами применения в соответствии с правилами преобразования БК ДП-модели;

— control(x, y, z), know(x, y, z) с условиями и результатами применения в соответствии с правилами преобразования ФАС ДП-модели и таблицей.

Определение 4. Пусть имеются G0 = (S0, E0,R0 U A0 U F0, H0) — состояние КС Tj(G*, OP), недоверенный субъект x Є NsП S0 и y Є S0, где x = y. Определим предикат can_steal_own(x,y, G0, Ls), который будет истинным тогда и только тогда, когда существуют состояния G1,... , Gn = (Sn , En, Rn U An U Fn, Hn) и правила преобразования состояний op1,... , opN такие, что G0 \~op1 G1 \~op2 ... \~opN Gn является траекторией без кооперации доверенных и недоверенных субъектов для передачи прав доступа и реализации информационных потоков и (x, y, ownr) Є Rn , где N ^ 0. При этом в последовательности правил op1,... , opN отсутствуют правила вида grant_right(ar, y, s, e), take_right(ar,y,s,e), control(y, s,e'), know(y, s,e'), где ar Є Rr, s Є Ns П S0, e,e' Є E0

и e' Є [s] или e' Є^[ (субъект y не передает другим субъектам любые имеющиеся у него права доступа к любым сущностям и не получает с использованием правил control(x, y, z) и know(x,y, z) право доступа владения ownr к другим субъектам).

Определение 5. Пусть имеются G0 = (S0, E0,R0 U A0 U F0, H0) — состояние КС T.(G*, OP), недоверенный субъект x Є NsП S0 и y Є S0, где x = y. Определим предикат directly_can_share_own(x, y, G0, Ls), который будет истинным тогда и только тогда, когда существует последовательность субъектов s1,... ,sm Є S0, где s1 = x, sm = уи m ^ 2, таких, что для каждого i = І, ...,m — І выполняется одно из условий:

1) si Є Ns П S0, si Є [si+1] или si Є^і+![;

2) истинен предикат can_share(ownr, si, si+1, G0, Ls);

3) существует сущность e Є [si+1], что предикат can_write_memory(si,e,G0, Ls) является истинным;

4) существует сущность e е]Si+i[, что предикат can_write_memory(e, si,G0, Ls) является истинным.

Лемма 1. Пусть имеются G0 = (S0,E0,R0 U A0 U F0,H0) — состояние КС Tj(G*,OP), недоверенный субъект x E Ns П S0 и y E So, где x = y, и истинен предикат directly_can_share_own(x,y,G0, Ls). Тогда истинен предикат can_share_own(x, y, G0, Ls).

Доказательство. Пусть истинен предикат directly_can_share_own(x, y, G0, Ls), тогда по определению 5 существует последовательность субъектов s1,... ,sm в S0, где s1 = x, sm = y и m ^ 2, таких, что для каждого i = 1, ...,m — 1 выполняется одно из условий 1-4 определения 5. Докажем, что для такой последовательности s1,... ,sm предикат can_share_own(x,y,G0,Ls) является истинным. Проведем доказательство этого утверждения индукцией по длине m.

Пусть m = 2, тогда возможно четыре случая.

Первый случай: x Е Ns П S0, x Е [y] или x E]y[. Если x Е [y], то пусть op1 = control(x,y,x). Тогда G0 —op1 G1, (x,y,ownr) E R1 и предикат can_share_own(x,y,G0,Ls) истинен. Если x E]y[, то пусть op1 = know(x,y,x). Тогда G0 \~op1 G1 и (x,y,ownr) E R1 и предикат can_share_own(x,y,G0,Ls) также истинен.

Во втором случае истинен предикат can_share(x,y,G0,Ls). Следовательно, истинен предикат can_share_own(x, y, G0, Ls).

В третьем случае имеется x Е Ns П S0, существует сущность e Е [y] и истинен предикат can_write_memory(x,e,G0,Ls). Пусть op1 = control(x,y,e), тогда G0 \-op1 G1, (x,y,ownr) E R1 и предикат can_share_own(x,y,G0,Ls) истинен.

В четвертом случае имеется x Е Ns П S0, существует сущность e E]y[ и истинен предикат can_write_memory(e,x,G0,Ls). Пусть op1 = know(x,y,e), тогда G0 -op1 G1, (x,y,ownr) E R1 и предикат can_share_own(x,y,G0,Ls) истинен.

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

Рассмотрим последовательность субъектов s1,...,sm в S0, где s1 = x, s2 = = z и sm = y. Пусть z E Ns П S0. Тогда по предположению индукции существуют правила преобразования состояний op1,...,opN, такие, что G0 -op1

G1 — op2 ... -opN GN, и верно, что (x,z,ownr), (z,y,ownr) E RN , где

N ^ 0. Положим opN+1 = take_right(ownr,x,z,y). Тогда GN —op(N+1) GN+1 = = (SN+1, EN+1 ,RN+1 U AN+1 U FN+1, HN+1) и (x,y,ownr) E RN+1, следовательно, предикат can_share_own(x, y, G0, Ls) истинен.

Если z E Ls П S0, то (z,y,ownr) E R0, и по предположению индукции предикат can_share_own(x, z, G0, Ls) истинен. Следовательно, существуют правила преобразования состояний op1,...,opN, такие, что G0 — op1 G1 —op2 ... —opN Gn,

и (x,z,ownr) E Rn, где N ^ 0. Аналогично получаем истинность предиката can_share_own(x, y, G0, Ls). Лемма доказана. ■

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

Теорема 1. Пусть имеется G0 = (S0,E0,R0 U A0 U F0,H0) — состояние КС Yj(G*,OP), и (x,y,ownr) E Nr, где x E Ns П S0, y E S0 и x = y. Тогда предикат can_steal_own(x, y, G0, Ls) является истинным, если и только если существует по-

следовательность субъектов s1,... ,sm в S0, где s1 = x, sm = y и m ^ 2, таких, что

выполняется одно из условий.

Условие 1. m = 2 и истинен предикат directly_can_share_own(x,y,G0, Ls). Условие 2. m > 2 и для каждого i = 1, ...,m — 2 выполняется одно из условий:

— si,si+1 Е Ns П S0, si = y и предикаты directly_can_share_own(si, si+1,G0, Ls), directly_can_share_own(si+1,si+2,G0,Ls) являются истинными;

— i < m — 2, si, si+2 E NsПS0, si, si+2 = y и являются истинными предикаты directly_-can_share_own(si, si+1, G0, Ls) и directly_can_share_own(si+2, si+1, G0, Ls);

— i < m — 2, si+1,si+2 E Ns П S0, si+1 = y, si+2 = y и являются истинными предикаты directly _can_share_own(si+1, si ,G0 ,Ls), directly _can_share_-

own(si+2, si+b Go, Ls);

— si+1 E Ns П S0, si+1 = y и являются истинными предикаты directly_can_share_-own(si+1, si, G0, Ls), directly _can_share_own(si+1, si+2, G0, Ls).

Доказательство. Докажем достаточность выполнения условий теоремы для истинности предиката can_steal_own(x,y,G0, Ls). Если выполнено первое условие теоремы, то в соответствии с леммой истинен предикат can_share_own(x,y,G0, Ls). Следовательно, предикат can_steal_own(x, y, G0, Ls) также является истинным. Если выполнено второе условие теоремы, то тогда существует последовательность субъектов s^ ..., sm в S0, где s1 = x, sm = y, x = y и m > 2.

Проведем доказательство индукцией по длине m последовательности субъектов. Пусть m = 3. Возможны два случая. Первый случай: x, s2 Е NsПS0 и истинны предикаты directly_can_share_own(x, s2,G0, Ls), directly_can_share_own(s2,y,G0,Ls). Тогда в соответствии с леммой существуют состояния G1,...,Gn = (Sn ,En , Rn U An U Fn,Hn) и правила преобразования состояний op1,... , opN, такие, что G0 — op1 G1 —op2 ... —opN Gn и (x,s2,ownr), (s2,y,own) E Rn , где N ^ 0. Пусть opN+1 = = take_right(ownr,x,s2,y) и Gn —op(N+1) Gn+1, где Gn+1 = (Sn+1,En+1,Rn+1 U AN+1 U Fn+1,HN+1). Тогда (x,y,ownr) E RN+1 и предикат can_steal_own(x,y,G0,Ls) является истинным. Второй случай: s2 Е Ns П S0 и истинны предикаты

directly_can_share_own(s2, x, G0, Ls), directly_can_share_own(s2, y, G0, Ls). Тогда в соответствии с леммой существуют состояния G1,...,Gn = (Sn ,En , Rn U An U Fn, Hn) и правила преобразования состояний op1,... , opN, такие, что G0 — op1 G1 —op2 ... —opN Gn и (s2,x,ownr), (s2,y,ownr) E Rn, где N ^ 0. Пусть opN+1 = = grant_right(ownr,s2,x,y) и Gn —op(N+1) Gn+1, где Gn+1 = (Sn+1,En+1,Rn+1 U AN+1 U Fn+1,HN+1). Тогда (x,y,ownr) E RN+1 и предикат can_steal_own(x,y,G0,Ls) является истинным.

Докажем индуктивный шаг. Пусть m > 4 и утверждение теоремы верно для всех последовательностей субъектов длины k < m. Докажем, что утверждение теоремы верно для всех таких последовательностей длины m. Пусть имеется последовательность субъектов s1,... ,sm в S0, где s1 = x, s2 = z, s3 = w и sm = y. Возможно четыре случая.

Первый случай: x,z Е Ns П S0 и истинны предикаты directly_can_share_-own(x, z,G0,Ls), directly_can_share_own(z,w,G0,Ls). Тогда в соответствии с леммой существуют состояния G1,... , Gn = (Sn , En , Rn U An U Fn, Hn) и правила преобразования состояний op1,...,opN, такие, что G0 — op1 G1 — op2 ... —opN Gn и (x,z,ownr), (z,w,ownr) E Rn, где N ^ 0. По предположению индукции существуют состояния Gn+1, ... , Gn+k = (Sn+k, En+k, Rn+k U An+k U Fn+k , Hn+k) и правила преобразования состояний opN+1,... ,opN+K, такие, что GN+1 —op(N+^ GN+2 —op(N+2)

... —op(N+K) Gn+k и (w,y,ownr) E Rn+k , где K ^ 0. Положим opN+K+1 = = take _right(ownr ,x,z,w), opN+K+2 = take _right(ownr ,x,w,y), тогда

GN+K — op(N+K+1) GN+K+1 — op(N+K+2) GN+K+2 = (SN+K+2,EN+K+2,RN+K+2 U

An+k+2 U Fn+k+2,Hn+k+2) и (x,y,ownr) E Rn+k+2. Следовательно, предикат can_share_own(x, y, G0, Ls) истинен.

Второй случай: x, w E Ns П S0 и истинны предикаты directly_can_share_-own(x,z,G0,Ls), directly _can_share_own(w,z,G0,Ls). Тогда в соответствии с леммой существуют состояния G1,... , Gn = (Sn , En , Rn U An U Fn, Hn) и правила преобразования состояний op1,...,opN, такие, что G0 — op1 G1 — op2 ... —opN Gn и (x,z,ownr), (w,z,ownr) E Rn, где N ^ 0. По предположению индукции существуют состояния Gn+1, ... , Gn+k = (Sn+k, En+k, Rn+k U An+k U Fn+k , Hn+k) и правила преобразования состояний opN+1,... ,opN+K, такие, что GN+1 —op(N+^ GN+2 —op(N+2) ... —op(N+K) Gn+k и (w,y,ownr) E Rn+k , где K ^ 0. Положим opN+K+1 = = grant _right(ownr ,w,z,y), opN+K+2 = take _right(ownr ,x,z,y), тогда

GN+K — op(N+K+1) GN+K+1 — op(N+K+2) GN+K+2 = (SN+K+2,EN+K+2,RN+K+2 U

An+k+2 U Fn+k+2,Hn+k+2) и (x,y,ownr) E Rn+k+2. Следовательно, предикат can_share_own(x, y, G0, Ls) истинен.

Третий случай: w, z E Ns П S0, z = y и истинны предикаты directly_can_-share_own(z, x, G0, Ls), directly_can_share_own(w,z,G0,Ls). Тогда в соответствии с леммой существуют состояния G1,... ,Gn = (Sn,En,Rn U An U Fn,Hn) и пра-

вила преобразования состояний op1 ,...,opN, такие, что G0 — op1 G1 — op2 ... — opN Gn и (z,x,ownr), (w,z,ownr) E Rn, где N ^ 0. По предположению индукции существуют состояния Gn+1, . . . , GN+K = (SN+K, EN+K, RN+K U AN+K U FN+K, HN+K) и правила преобразования состояний opN+1,...,opN+k, такие, что Gn+1 —op(n+1) Gn+2 —op(N+2) ... — op(N+k) Gn+k и (w,y,own) E Rn+k, где K ^ 0. Поло-

жим opN+K+1 = grant_right(ownr,w,z,y), opN+K+2 = grant_right(ownr,z,x,y), тогда GN+K — op(N+K+1) GN+K+1 — op(N+K+2) GN+K+2 = (SN+K+2,EN+K+2, RN+K+2 U

An+k+2 U Fn+K+2, Hn+k+2) и (x,y,own) E Rn+k+2. Следовательно, предикат can_share_own(x, y, G0, Ls) истинен.

Четвертый случай: z Е Ns П S0, z = y и истинны предикаты directly_can_-share_own(z, x, G0, Ls), directly_can_share_own(z,w,G0, Ls). Тогда в соответствии с леммой существуют состояния G1,... , Gn = (Sn, En , Rn U An U Fn, Hn) и правила преобразования состояний op1,...,opN, такие, что G0 — op1 G1 —op2 ... —opN Gn и (z,x,ownr), (z,w,ownr) E Rn, где N ^ 0. По предположению индукции существуют состояния Gn+1, ..., Gn+k = (Sn+k, En+k, Rn+k U An+k U Fn+k , Hn+k) и правила преобразования состояний opN+1,...,opN+K, такие, что GN+1 —op(N+^ GN+2 —op(N+2) ... —op(N+K) Gn+k и (w,y,ownr) E Rn+k , где K ^ 0. Положим opN+K+1 = = take _right(ownr ,z,w,y), opN+K+2 = grant _right(ownr ,z,x,y), тогда

GN+K — op(N+K+1) GN+K+1 — op(N+K+2) GN+K+2 = (SN+K+2,EN+K+2,RN+K+2 U

An+k+2 U Fn+k+2, Hn+k+2) и (x,y,own) E Rn+k+2. Следовательно, предикат can_share_own(x, y, G0, Ls) истинен.

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

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

Пусть истинен предикат can_steal_own(x,y, G0, Ls). Тогда по определению существуют состояния G1,... , Gn = (Sn , En, Rn U An U Fn, Hn) и правила преобразования состояний op1,... , opN, такие, что G0 — op1 G1 —op2 ... — opN GN, и (x, y, ownr) E RN,

где N ^ 0. Выберем среди последовательностей правил преобразований ту, у которой длина N является минимальной. Следовательно, (x,y,ownr) Е Rn-1. При этом в последовательности правил op1,... , opN отсутствуют правила вида grant_right(a, y, s, e), take_right(a, y, s, e), control(y, s, e'), know(y, s, e'), где alpha E Rr, s E NsПS0, e, e' E E0 и e' E [s] или e' e]s[. Проведем доказательство индукцией по числу N.

Пусть N = 0, тогда (x,y, ownr) Е R0 и условие 1 теоремы выполнено. Пусть N = 1, тогда x Е Ns П S0, y Е S0, (x,y,ownr) Е R0 и существует правило преобразования состояний op1, такое, что G0 — op1 G1 и (x,y,ownr) Е R1. Из определения правил преобразования состояний следует, что возможны шесть случаев:

— x Е [y] и op1 = control(x,y,x);

— x E]y[ и op1 = know(x,y,x);

— существует сущность e E [y], такая, что (x,e,writem) E F0 и op1 = control(x,y,e);

— существует сущность e E]y[, такая, что (e,x,writem) E F0 и op1 = know(x,y,e);

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

— существует субъект z E Ns П S0, такой, что (x,z,ownr), (x,z,ownr) E R0 и op1 = take_right(ownr ,x,z,y);

— существует субъект z E Ns П S0, такой, что (z,x,ownr), (x,z,ownr) E R0 и op1 = grant_right(ownr,z, x, y).

Все шесть случаев соответствуют условиям 1 и 2 теоремы.

Пусть N > 2 и утверждение теоремы верно для всех последовательностей преобразований состояний длины l < N. Тогда x Е Ns П S0, y Е S0, (x,y,ownr) Е RN-1 и существует правило преобразования состояний opN, такое, что Gn-1 —apN Gn и (x, y, ownr) E Rn.

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

— существует сущность e E [y], такая, что (x, e, writem) E FN-1 и opN = control(x, y, e);

— существует сущность e E ]y[, такая, что (e,x,writem) E FN-1 и opN = know(x,y,e);

— существует субъект z E Ns П S0, такой, что (x,z,ownr), (z,y,ownr) E RN-1 и opN = take _right(ownr ,x,z,y);

— существует субъект z E Ns П S0, такой, что (z,x,ownr), (z,y,ownr) E RN-1 и opN = grant_right(ownr, z, x, y).

Если выполнено первое или второе условие, то выполнено первое условие теоремы. Рассмотрим случай выполнения третьего условия, когда (x,z,ownr), (z,y,ownr) Е Rn-1 и opN = take_right(a,x, z,y). Доказательство для случая выполнения четвертого условия проводится аналогично доказательству для случая выполнения третьего условия.

Так как длина N минимальна, то в последовательности преобразований состояний не использовались правила вида create_entity(x,y, z) и create_subject(x,y, z). Следовательно, z E S0 и истинны предикаты can_steal_own(x,z,G0,Ls) и can_steal_-own(z, y, G0, Ls) с длинами последовательностей преобразований состояний меньше N. По предположению индукции возможны четыре случая. Первый случай: истинны предикаты directly_can_share_own(x, z, G0, Ls) и directly_can_share_own(z, y, G0, Ls). Следовательно, второе условие теоремы выполнено.

Второй случай: истинен предикат directly_can_share_own(x, z,G0, Ls) и существует последовательность субъектов s1,... ,sm в S0, где s1 = z,sm = y и m ^ 2, таких, что выполняется условие 2. Следовательно, существует последовательность субъектов s1,... , sm, sm+1 в S0, где s1 = x, s2 = z, sm+1 = y, таких, что выполняется условие 2 теоремы.

Третий случай: истинен предикат directly_can_share_own(z, y, G0, Ls) и существует последовательность субъектов s1,... ,sm в S0, где s1 = x,sm = z и m ^ 2, таких, что выполняется условие 2. Следовательно, существует последовательность субъектов s1,... , sm, sm+1 в S0, где s1 = x, sm = z, sm+1 = y, таких, что выполняется условие 2 теоремы.

Четвертый случай: существуют последовательности субъектов s1, . . . , sm и

s1, ... ,s!n в S0, где s1 = x,sm = s1 = z, s'n = y и m,n ^ 2, для которых выполняется

условие 2. Следовательно, существует последовательность субъектов s",... ,s'm+n-1 в S0, где s'1 = x, s"m+n_ 1 = y, таких, что выполняется условие 2 теоремы.

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

ЛИТЕРАТУРА

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

2. Девянин П. Н. Модели безопасности компьютерных систем: Учеб. пособие для студ. высш. учеб. заведений. М.: Издательский центр «Академия», 2005. 144 с.

3. Робачевский А. Операционная система UNIX. СПб.: БХВ-Петербург, 2000. 528 с.

4. Качанов М. А., Колегов Д. Н. Расширение функциональности системы безопасности ядра Linux на основе подмены системных вызовов // Прикладная дискретная математика. 2008. № 2. С. 76 - 80.

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