Text
                    УДК 65.012.810(075.8)
ББК 32.973.202я73
Д259
Рецензенты:
канд. техн, наук, зав. кафедрой Информационной безопасности
МИЭМ А. Б. Лось-, канд. техн, наук, доцент МИФИ А. И. Толстой’,
канд. техн, наук, доцент МИФИ В. А. Петров
Девянин П. Н.
Д259 Модели безопасности компьютерных систем: Учеб, посо-
бие для студ. высш. учеб, заведений / Петр Николаевич Девя-
нин. — М.: Издательский центр «Академия», 2005. — 144 с.
ISBN 5-7695-2053-1
Рассмотрены с полными доказательствами положения основных мо-
делей безопасности компьютерных систем: дискреционного, мандатно-
го, ролевого разграничений доступа, безопасности информационных по-
токов, изолированной программной среды. Приведен используемый в
рассматриваемых моделях математический аппарат.
Учебное пособие разработано при содействии Академии криптогра-
фии Российской Федерации.
Для студентов высших учебных заведений. Может быть полезно специ-
алистам в области защиты информации.
УДК 65.012.810(075.8)
ББК 32.973.202я73
Оригинал-макет данного издания является собственностью
Издательского центра «Академия», и его воспроизведение любым способом
без согласия правообладателя запрещается
©Девянин П.Н., 2005
© Образовательно-издательский центр «Академия», 2005
ISBN 5-7695-2053-1	© Оформление. Издательский центр «Академия», 2005

ПРЕДИСЛОВИЕ В настоящее время имеется достаточно много литературы, в том числе учебной, в которой приводятся обзоры и описания раз- личных моделей безопасности компьютерных систем. В то же вре- мя их изложение, как правило, носит фрагментарный характер. Основное внимание в имеющейся литературе уделяется лишь об- щей формулировке основных определений и результатов моделей безопасности либо краткому их перечислению обзорного характе- ра (без подробного рассмотрения, применяемого математическо- го аппарата и приведения доказательств). В то же время в книгах, где доказательства приводятся, они, как правило, даются в об- щих чертах. В данном учебном пособии рассмотрены с полными доказа- тельствами положения ряда основных моделей безопасности ком- пьютерных систем. Приведен используемый в рассматриваемых моделях математический аппарат. Учебное пособие разработано при содействии Академии крип- тографии Российской Федерации. Учебное пособие предназначено для дисциплин «Теоретиче- ские основы компьютерной безопасности», «Безопасность опе- рационных систем», «Безопасность вычислительных систем» по специальностям 075200 «Компьютерная безопасность» и 075500 «Комплексное обеспечение информационной безопасности ав- томатизированных систем» и для дисциплины «Основы компью- терной безопасности» для непрофилирующих специальностей. Учебное пособие написано на основе десятилетнего опыта пре- подавания перечисленных дисциплин в Институте криптографии, связи и информатики (ИКСИ).
ГЛАВА 1 ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ, ИСПОЛЬЗУЕМЫЕ ПРИ ОПИСАНИИ МОДЕЛЕЙ БЕЗОПАСНОСТИ КОМПЬЮТЕРНЫХ СИСТЕМ 1.1. ЭЛЕМЕНТЫ ТЕОРИИ ЗАЩИТЫ ИНФОРМАЦИИ 1.1.1. Объект, субъект, доступ Дадим основные определения на основе [2]. Используем следующие обозначения: А — конечный алфавит; А* — множество слов конечной длины в алфавите А; Я с А* — язык описания информации, являющийся множе- ством слов, выделенных по определенным правилам из А. Аксиома 1.1. Любая информация в компьютерной системе пред- ставляется словом в некотором языке Я. Определение 1.1. Объект относительно языка Я (или просто объект) — произвольное конечное множество слов языка Я. Определение 1.2. Преобразование информации — отображе- ние, заданное на множестве слов языка Я. Описание преобразования также является словом. Для выполнения преобразования информации в компьютер- ных системах требуется время, поэтому каждое преобразование может или выполняться, или храниться. В первом случае описание преобразования взаимодействует с другими ресурсами компью- терной системы. Во втором случае, как правило, речь идет о хра- нении описания преобразования в некотором файле. Определение 1.3. Субъект — объект, описывающий преобразо- вание, которое выполняется в компьютерной системе. Используем следующие обозначения: О — множество объектов системы; А — множество субъектов системы (А с О). Определение 1.4. Информационным потоком от объекта о (ис- точника) к объекту о' (приемнику) назовем преобразование ин- формации в объекте о', зависящее от информации в объекте о. Субъект для выполнения преобразования использует инфор- мацию, содержащуюся в объектах компьютерной системы, т.е. осуществляет к ним доступ. Основными видами доступа являются: • доступ субъекта к объекту на чтение (read)-, • доступ субъекта к объекту на запись (write), при этом воз- можно уничтожение информации, имевшейся в объекте; 4
• доступ субъекта к объекту на активизацию (execute), при этом инициируется выполнение (производится активизация) в компьютерной системе преобразования информации, описан- ного в объекте. Определение 1.5. В каждом состоянии компьютерной системы на множестве субъектов введем бинарное отношение а активиза- ции: выполняется Sj a s2, где sb s2 е А, если субъект sb выполняя описанное в нем преобразование информации, инициирует вы- полнение преобразования информации, описанного в субъекте 52- Определение 1.6. В каждом состоянии компьютерной системы определим ориентированный граф активизации G = (S, Е), где 5” — вершины графа; Е — ребра графа, соединяющие субъектов, связанных бинарным отношением активизации. Очевидно, что граф активизации представляет собой множе- ство деревьев, или лес (см. подразд. 1.2). Определение 1.7. Пользователи — субъекты компьютерной си- стемы, соответствующие корням деревьев графа активизации. В критериях оценки защищенности компьютерных систем TCSEC [23] («Оранжевая книга») приводится основная аксиома теории защиты информации, позволяющая выделить элементы компьютерной системы, необходимые для анализа ее безопас- ности. Аксиома 1.2 (основная аксиома теории защиты информации). Все вопросы безопасности информации описываются доступами субъектов к объектам. 1.1.2. Классификация угроз безопасности информации Определение 1.8. Угроза безопасности информации (компью- терной системы) — потенциально возможное воздействие на ин- формацию (компьютерную систему), которое прямо или косвен- но может нанести урон пользователям или владельцам информа- ции (компьютерной системы). При классификации угроз выделяют три основных свойства безопасности информации [6]. Определение 1.9. Конфиденциальность информации — субъек- тивно определяемая характеристика информации, указывающая на необходимость введения ограничений на круг субъектов, име- ющих доступ к данной информации. Определение 1.10. Целостность информации — свойство ин- формации, заключающееся в ее существовании в неискаженном виде (неизменном по отношению к некоторому фиксированному ее состоянию). Определение 1.11. Доступность информации — свойство ком- пьютерной системы (среды, средств и технологии обработки), в 5
которой циркулирует информация, характеризующееся способ- ностью обеспечивать своевременный беспрепятственный доступ субъектов к интересующей их информации и готовность соответ- ствующих автоматизированных служб к обслуживанию поступа- ющих от субъектов запросов всегда, когда в обращении к ним возникает необходимость. В соответствии с тремя основными свойствами безопасности информации различают три классические угрозы безопасности информации. Определение 1.12. Угроза конфиденциальности информации состоит в нарушении установленных ограничений на доступ к информации. Определение 1.13. Угроза целостности информации — несанк- ционированное изменение информации, случайное или предна- меренное. Определение 1.14. Угроза доступности информации осуществ- ляется, когда несанкционированно блокируется доступ к инфор- мации (блокирование может быть постоянным или на некоторое время, достаточное, чтобы информация стала бесполезной). Кроме перечисленных угроз выделяют еще одну угрозу, реали- зация которой, как правило, предшествует реализации любой из классических угроз. Определение 1.15. Угроза раскрытия параметров компьютерной системы — преодоление защиты компьютерной системы, выявле- ние параметров, функций и свойств ее системы безопасности. Осуществление угрозы конфиденциальности информации не- редко происходит с использованием неблагоприятных информа- ционных потоков (каналов утечки информации). Выделяют два основных вида неблагоприятных информационных потоков: по памяти и по времени. Информационный поток по памяти описывается схемой, пред- ставленной на рис. 1.1. Информационный поток по времени описывается схемой, пред- ставленной на рис. 1.2. Опасность неблагоприятного информационного потока по вре- мени определяется долей ценной информации, модулируемой на процесс 5]. Наиболее распространенными случаями реализации неблагоприятного информационного потока по времени являются: • перехват информации в канале связи; • побочные каналы утечки информации по излучению, сети питания или акустике. При анализе угрозы целостности информации следует иметь в виду, что язык ее описания аналогичен языку описания угрозы конфиденциальности. Используя при описании требований защи- ты информации от угрозы целостности доступы субъектов к объек- там, можно сделать выводы, аналогичные выводам, полученным 6
read read ' write read write read ' 0 ----------*- 0 -*-•-----*- ® 01 Ui 02 U2 <?3 Рис. 1.1. Информационный поток по памяти: Ui — нарушитель; и2 — пользователь, обрабатывающий ценную информа- цию; о, — объект, доступный наруши- телю на запись; о2 — общедоступный объект; о3 — ценный объект ' write read write read 4 ® -*---•-----*- • -•--•----»- ® ^1 Ji li2 0% Рис. 1.2. Информационный поток по времени: «1 — нарушитель; и2 — пользователь, обрабатывающий ценную информа- цию; — процесс, на который отра- жается по времени информация о работе пользователя и2; о, — объект, доступный нарушителю на запись; о2 — ценный объект при описании требований защиты от угрозы конфиденциально- сти; при этом следует заменить доступы на чтение информации доступами на запись, и наоборот. Угроза доступности информации, как правило, описывается с использованием параметра, называемого максимальным време- нем ожидания ответа на запрос на доступ к ресурсу (MWT — maximum wait time). Таким образом, для каждого ресурса компью- терной системы определяется время, приемлемое для ожидания его получения. Следует считать, что реализовалась угроза доступности ин- формации, если ресурс с соответствующим максимальным вре- менем ожидания, санкционировано запрашиваемый пользовате- лем в момент времени t, не предоставлен ему к моменту времени t + MWT. Можно использовать несколько подходов для определения MWT: • определив Л/#Т=ад для всех ресурсов, можно исключить рас- смотрение угрозы доступности информации при анализе безопас- ности компьютерной системы; • можно определить MWT только для некоторых доступов субъектов к ресурсам компьютерной системы, действительно кри- тичных с точки зрения ее безопасности. 1.1.3. Основные виды политик безопасности Дискреционная политика безопасности Определение 1.16. Дискреционная политика безопасности — политика безопасности, основанная на дискреционном управле- нии доступом {Discretionary Access Control), которое определяется двумя свойствами: • все субъекты и объекты идентифицированы; 7
• права доступа субъектов на объекты системы определяются на основании некоторого внешнего по отношению к системе правила. Основным элементом систем дискреционного разграничения доступа является матрица доступов. Определение 1.17. Матрица доступов — матрица размером |5| х |О|, строки которой соответствуют субъектам, а столбцы со- ответствуют объектам. При этом каждый элемент матрицы досту- пов M[s, о] с R определяет права доступа субъекта 5 на объект о, где R — множество прав доступа. К достоинствам дискреционной политики безопасности можно отнести относительно простую реализацию системы разграниче- ния доступа. Этим обусловлен тот факт, что большинство распро- страненных в настоящее время компьютерных систем обеспечи- вают выполнение требований именно данной политики безопас- ности. К недостаткам дискреционной политики безопасности отно- сится статичность определенных в ней правил разграничения до- ступа. Данная политика безопасности не учитывает динамику из- менений состояний компьютерной системы. Кроме того, при ис- пользовании дискреционной политики безопасности возникает вопрос определения правил распространения прав доступа и ана- лиза их влияния на безопасность компьютерной системы. В общем случае при использовании данной политики безопасности перед системой защиты, которая при санкционировании доступа субъек- та к объекту руководствуется некоторым набором правил, стоит алгоритмически неразрешимая задача —- проверить, приведут ли его действия к нарушению безопасности или нет. Данный факт доказывается в подразд. 2.1. В то же время имеются модели компьютерных систем, реализу- ющих дискреционную политику безопасности (например, рассмат- риваемая в подразд. 2.2 модель Take-Grant), которые предоставля- ют алгоритмы проверки безопасности. Тем не менее, в общем случае дискреционная политика разгра- ничения доступа не позволяет реализовать ясную и четкую систему защиты информации в компьютерной системе. Этим обусловлива- ется поиск других, более совершенных политик безопасности. Мандатная политика безопасности Определение 1.18. Мандатная (полномочная) политика безо- пасности — политика безопасности, основанная на мандатном разграничении доступа (Mandatory Access Control), которое опре- деляется четырьмя условиями: • все субъекты и объекты системы однозначно идентифициро- ваны; 8
• задана решетка уровней конфиденциальности информации; • каждому объекту системы присвоен уровень конфиденци- альности, определяющий ценность содержащейся в нем инфор- мации; • каждому субъекту системы присвоен уровень доступа, опре- деляющий уровень доверия к нему в компьютерной системе. Основная цель мандатной политики безопасности — предотв- ращение утечки информации от объектов с высоким уровнем до- ступа к объектам с низким уровнем доступа, т.е. противодействие возникновению в компьютерной системе неблагоприятных инфор- мационных потоков сверху вниз. Чаще всего мандатную политику безопасности описывают в терминах, понятиях и определениях свойств модели Белла—Ла- Падула, которая рассмотрена в подразд. 3.1. Для систем мандатно- го разграничения доступа задача проверки безопасности является алгоритмически разрешимой. Кроме того, по сравнению с компь- ютерными системами, построенными на основе дискреционной политики безопасности, для систем, реализующих мандатную политику, характерна более высокая степень надежности. Прави- ла мандатной политики безопасности более ясны и просты для понимания разработчиками и пользователями, что также являет- ся фактором, положительно влияющим на уровень безопасности системы. С другой стороны, реализация систем с политикой безопасно- сти данного типа довольно сложна и требует значительных ресур- сов компьютерной системы. Политика безопасности информационных потоков Политика безопасности информационных потоков основана на разделении всех возможных информационных потоков между объектами системы на два непересекающихся множества: множе- ство благоприятных информационных потоков и множество не- благоприятных информационных потоков. Цель реализации поли- тики безопасности информационных потоков состоит в том, что- бы обеспечить невозможность возникновения в компьютерной системе неблагоприятных информационных потоков. Политика безопасности информационных потоков в большин- стве случаев используется в сочетании с политикой другого вида, например с политикой дискреционного или мандатного разгра- ничения доступа. Реализация политики безопасности информа- ционных потоков, как правило, на практике является трудной для решения задачей, особенно, если необходимо обеспечить за- щиту компьютерной системы от возникновения^неблагоприятных информационных потоков по времени. 9
Некоторые из видов моделей политик безопасности информа- ционных потоков рассмотрены в гл. 4. Политика ролевого разграничения доступа Ролевое разграничение доступа является развитием политики дискреционного разграничения доступа; при этом права доступа субъектов системы на объекты группируются с учетом специфики их применения, образуя роли. Задание ролей позволяет определить более четкие и понятные для пользователей компьютерной системы правила разграниче- ния доступа. Ролевое разграничение доступа позволяет реализо- вать гибкие, изменяющиеся динамически в процессе функциони- рования компьютерной системы правила разграничения доступа. На основе ролевого разграничения доступа, в том числе, может быть реализовано мандатное разграничение доступа. Ролевое раз- граничение доступа рассмотрено в гл. 5. Политика изолированной программной среды Целью реализации политики изолированной программной сре- ды является определение порядка безопасного взаимодействия субъектов системы, обеспечивающего невозможность воздействия на систему защиты и модификации ее параметров или конфигу- рации, результатом которых могло бы стать изменение реализуе- мой системой защиты политики разграничения доступа. Политика изолированной программной среды реализуется пу- тем изоляции субъектов системы друг от друга и путем контроля порождения новых субъектов таким образом, чтобы в системе мог- ли активизироваться только субъекты из предопределенного спис- ка. При этом должна контролироваться целостность объектов сис- темы, влияющих на функциональность активизируемых субъектов. Подробно политика изолированной программной среды рас- смотрена в гл. 6. 1.2. МАТЕМАТИЧЕСКИЕ ОСНОВЫ МОДЕЛЕЙ БЕЗОПАСНОСТИ 1.2.1. Основные понятия Большая часть используемых при описании свойств моделей безопасности компьютерных систем сведений из математики рас- смотрены в тех подразделах, в которых они непосредственно ис- 10
пользуются. Особое внимание необходимо уделить следующим наиболее важным математическим понятиям, используемым в нескольких моделях безопасности: • автомат; • граф; • алгоритмически разрешимые и алгоритмически неразреши- мые проблемы; • решетка. 1.2.2. Элементы теории автоматов В математических моделях безопасности компьютерных систем понятие автомата часто используется для описания свойств сис- темы защиты, ее отдельных элементов или компьютерной систе- мы в целом. Определение 1.19. Автоматом А(Х, S, Y, h,f) называется сово- купность пяти элементов: X* 0 — конечный входной алфавит; 5 * 0 — конечное множество состояний; Y* 0 — конечный выходной алфавит; h: X* S -> 5 — функция переходов автомата; /: X х S -> Y — функция выходов автомата. При этом Ая: X* -> К* — автоматное отображение, где .s0 — начальное состояние автомата; X* и Y* — конечные последова- тельности элементов соответственно входного и выходного алфа- витов. Определение 1.20. Гомоморфизмом <р автомата Л (А-, 5, Y, h,f) в автомат А'(Х, S', Y', называется совокупность трех функ- ций <р = (а, р, у), где а: X-у X’; р: S-> S'; у: Y-> У. При этом для х е -Х, s е S, у е У справедливы равенства: Р(/г(х, 5)) = /г'(а(х), р(у)); у(Л(х, 5)) =/'(а(х), Р(у)). Таким образом, коммутатив- на диаграмма, представленная на рис. 1.3. Определение 1.21. Суммой двух автоматов Sb У1; /ц, /]) и Л2(А, S2, 1), где S( n S2 = = 0, называется автомат (Л1 + + T2)(X St u S2, Y} У2, h, f)- при этом для X e X выполняются условия (рис. 1.4): Рис. 1.3. Гомоморфизм автоматов 11
At Рис. 1.4. Сумма двух автоматов (Л1+Л2)(Х 5,и52> Y^ Г2, А,/) некие двух автоматов (Л, -э Л2)(ХЬ 5! х S2, Y2, h, /) h(x, s') = hj(x, s), если 5 e Sh для i e {1, 2}; /(x, 5) = f(x, s), если 5 e Sh для i e {1, 2}. Определение 1.22. Последовательным соединением двух авто- матов Sb Yh frh ft) и Л2(Х2, S2, Y2, h2, f2), где Y\ c X2, называется автомат (Л, -> Л2)(ХЬ х S2, Y2, h, f); при этом для х е Xlf st е 5b s2 е S2 справедливы равенства (рис. 1.5): Л(х, (sb s2)) = (/z,(x, s,), /i2(f(x, 5,), s2)); f(xt (Sb s2)) = /2(/1(*, s^, s2). 1.2.3. Элементы теории графов Элементы теории графов широко используются в математиче- ских моделях безопасности компьютерных систем, например для представления траекторий состояний функционирования системы, матрицы доступов систем дискреционного разграничения доступа. Определение 1.23. Графом G=(V, Е) называется совокупность двух элементов: V — конечное множество вершин графа; Е с К х V — множество ребер графа. При этом, если ребра (vt, v2) и (v2, V\) считаются одинаковы- ми, то граф называется неориентированным, в противном случае граф называется ориентированным. Определение 1.24. Вершины v, v' е ^соединены путем в графе G=(V, Е), если существует последовательность ребер (vb v2), ..., (.vn - 1, е Е, где -V, vn = v' и п> 1. Если v= v', то такой путь называется циклом. Определение 1.25. Подграфом G' = (V, Е') графа G= (Е, Е) называется граф, где Е' с Ей V' с V— множество вершин, явля- ющихся концами ребер из Е'. 12
Определение 1.26. Вершины v, v' g Кявляются связными в гра- фе G~ (V, Е), если v соединена путем с v' или v' соединена путем С V. Определение 1.27. Вершины v, v' е Кявляются сильно связны- ми в графе G= (V, Е), если v соединена путем с v' и v' соединена путем с V. Определение 1.28. Подграф, состоящий из связных (сильно связных) между собой вершин, называется компонентой связно- сти (сильной связности) графа. Сильно связные вершины являются связными. В неориентиро- ванном графе связные вершины являются сильно связными. Определение 1.29. Ориентированный граф G = (Е, Е) называ- ется деревом, если: • в графе не содержатся циклы; • существует единственная вершина (корень дерева), в кото- рую не входит ни одно ребро; • из корня в любую другую вершину графа существует един- ственный путь; с в любую вершину, кроме корня, входит только одно ребро. Определение 1.30. Граф, состоящий из совокупности деревь- ев, называется лесом. Наиболее часто в математических моделях безопасности ком- пьютерных систем используются следующие близкие по идее реа- лизации алгоритмы на графах [4]; • алгоритм обхода вершин графа; • алгоритм поиска кратчайшего пути между вершинами графа; • алгоритм поиска компонент связности; • алгоритм обхода вершин дерева. 1.2.4. Алгоритмически разрешимые и алгоритмически неразрешимые проблемы Понятие алгоритмически неразрешимой проблемы рассмотрим на основе [5]. Рассмотрим так называемые массовые проблемы. Массовая про- блема представляет собой бесконечную серию индивидуальных задач. Без ограничения общности рассмотрим массовые задачи, все индивидуальные задачи которых имеют двузначный ответ («да» и «нет»). Определение 1.31. Характеристической функцией для массо- вой проблемы Р называется функция f.P-y {0, 1}, где для инди- видуальной задачи и е Р выполняются условия: • /(л) = 1, если п имеет ответ «да»; • /(л) = 0, если л имеет ответ «нет». 13
Определение 1.32. Массовая задача является алгоритмически разрешимой, если существует алгоритм, вычисляющий ее харак- теристическую функцию. В противном случае массовая проблема является алгоритмически неразрешимой. Решая конкретную массовую проблему, следует считаться с возможностью, что она может оказаться алгоритмически нераз- решимой, поэтому необходимо иметь представление о технике доказательства неразрешимости. Основной метод, применяемый для доказательства алгоритмической неразрешимости, базирует- ся на следующем рассуждении. Пусть имеются две массовые про- блемы Р, и Р2. Пусть имеется алгоритм А, который по всякой ин- дивидуальной задаче р, е Р, строит индивидуальную задачу р2 е Р2 такую, что pi имеет ответ «да» тогда и только тогда, когда р2 имеет ответ «да». В этом случае говорят, что проблема Р\ сводится к проблеме Р2. Если проблема Р( неразрешима, то проблема Р2 также неразре- шима. Примером алгоритмически неразрешимой проблемы является проблема останова машины Тьюринга. 1.2.5. Модель решетки Пусть X — конечное множество. Определение 1.33. Бинарное отношение «<» на множестве Хна- зывается отношением строгого порядка, если для любых a, b, с е X выполняются три свойства: • антирефлексивность: не выполняется а < о; • транзитивность: (а < b, b < с) => {а < с); • антисимметричность: (о < b, b < а) =/ (а = Ь). Определение 1.34. Бинарное отношение «<» на множестве X называется отношением частичного порядка, если для любых а, Ь, с е X выполняются три свойства: • рефлексивность: а < а; • транзитивность: (а < b, b < с) => (а < с); • антисимметричность: (а < b, b < a) =z> (а = Ь). Определение 1.35. Для a, b е Xэлемент с = а © b е ^называется наименьшей верхней границей, если: • а < с, b <с, • для d е X истинно (а < с, й < с) => (с < Д). Определение 1.36. Для a, b е Xэлемент с = а ® b е ^называется наибольшей нижней границей, если: • с < а, с < Ь; • для d е X истинно (d < a, d<b)=> (d< с). Для пары элементов частично упорядоченного множества Хне обязательно существует наименьшая верхняя (наибольшая ниж- 14
няя) граница, но если она существу- ет, то из антисимметричности следует ее единственность. Определение 1.37. Пусть X— частич- но упорядоченное множество. (J, <) называется решеткой, если для любых a, b е Xсуществуют а® b Хм а® b е X. Лемма 1.1. Для любого набора 5 = = {о,, а2, ..., ап} элементов решетки (X, <) существуют единственные эле- Рис. 1.6. Примеры решеток менты: ® 5= а, © а2 © ... © а„ — наимень- шая верхняя граница 5”; © 5= © а2 © ... © а„ — наибольшая нижняя граница 5. Для решетки (X, <) существует максимальный элемент high— = ® Хм минимальный элемент low = ® X. Определение 1.38. Линейная решетка (линейная шкала) из п элементов — это линейное упорядоченное'множество; можно все- гда считать Х= {0, 1, ..., п}. Как правило, решетки представляют с помощью ориентиро- ванных графов (рис. 1.6). При этом вершинами графа являются элементы множества X и для аь а2 е X справедливо неравенство а, < а2, если в графе существует путь из щ в а2. Частным важным случаем решеток является решетка подмно- жеств некоторого конечного множества U. Определение 1.39. Пусть U — конечное множество, Х=2и — множество всех подмножеств множества U. Определим решетку (X, <) с бинарным отношением частичного порядка «<», где для а, b с U, a, b е X выполняется условие а < b тогда и только тогда, когда а^Ь. При этом а® Ь = «и Ь, а® Ь = аг\ Ь. Другим распространенным случаем решеток является решетка многоуровневой безопасности (MLS). Данная решетка строится как прямое произведение линейной решетки L и решетки Xпод- множеств множества U. Определение 1.40. Пусть (£,<) — линейная решетка, (J, <) — решетка подмножеств U. Определим решетку многоуровневой бе- зопасности (X х L, <) с бинарным отношением частичного по- рядка «<», где для (а, а), (Ь, (3) е X х L выполняется условие (а, а) < (b, Р) тогда и только тогда, когда а с Ь, а < р. 15
При этом (а, а) © (b, Р) = (а и Ь, шах{а, р}); (а, а) ® (b, Р) = (й n b, min{a, р}). На практике при использовании многоуровневых решеток бе- зопасности решетка (L, <) является линейной шкалой уровней конфиденциальности, a (J, <) — решеткой подмножеств множе- ства неиерархических категорий информации. Рис. 1.7. Схема классификации и взаимосвязи положений математиче- ских моделей безопасности компьютерных систем 16
1.3. ОСНОВНЫЕ ВИДЫ МОДЕЛЕЙ БЕЗОПАСНОСТИ Все математические модели безопасности компьютерных сис- тем, рассматриваемые в данном пособии, классифицируются по пяти основным видам: • модели систем дискреционного разграничения доступа; • модели систем мандатного разграничения доступа; • модели безопасности информационных потоков; • модели ролевого разграничения доступа; • субъектно-ориентированная модель изолированной программ- ной среды. Схема классификации и взаимосвязи положений рассматрива- емых математических моделей безопасности компьютерных сис- тем представлены на рис. 1.7. Контрольные вопросы 1. В чем состоит важность основной аксиомы теории защиты инфор- мации? 2. Какие основные угрозы безопасности информации рассматривают- ся в теории защиты информации? 3. Приведите примеры наиболее распространенных в современных операционных системах и системах управления базами данных небла- гоприятных информационных потоков по памяти и по времени. 4. Какие основные виды политик безопасности рассматриваются в теории защиты информации? 5. Задают ли решетку следующие графы? 6. Нарисуйте граф, соответствующий решетке многоуровневой безо- пасности (Xх L, <), для решетки (L, <) = {Low, High] и {X, <) — решет- ки подмножеств множества U= {Political, Economic, Military].
ГЛАВА 2 МОДЕЛИ СИСТЕМ ДИСКРЕЦИОННОГО РАЗГРАНИЧЕНИЯ ДОСТУПА 2.1. МОДЕЛЬ МАТРИЦЫ ДОСТУПОВ ХРУ 2.1.1. Элементы модели ХРУ Модель Харрисона —Руззо—Ульмана (ХРУ) [6, II, 13] исполь- зуется для анализа систем защиты, реализующих дискреционную политику безопасности. Элементами модели ХРУ являются: О — множество объектов системы; У — множество субъектов системы (5с О); R — множество видов прав доступа субъектов на объекты, на- пример права на чтение (read), на запись (write), владения (own); М — матрица доступов, строки которой соответствуют субъек- там, а столбцы соответствуют объектам. M[s, о] с R — права до- ступа субъекта 5 на объект о. Определение 2.1. Автомат, построенный согласно положениям модели ХРУ, называется системой ХРУ. Функционирование системы рассматривается только с точки зрения изменений в матрице доступа. Возможные изменения оп- ределяются шестью видами примитивных операторов, представ- ленных в табл. 2.1. В результате выполнения примитивного оператора а осуществ- ляется переход из состояния q = (X, О, М) в результирующее со- стояние q' = (S', О', М'). Данный переход обозначим через q J-a q'. Из примитивных операторов составляются команды. Каждая команда состоит из двух частей: • условия, при котором выполняется команда; • последовательности примитивных операторов. Таким образом, запись команды имеет следующий вид: command с(хь ..., xt) if (г, е M[xSi, xj) and ... and (rm е M[xs„, xj) then cq; сс/7, endif end, 18
где гь rm& R — права доступа; аь а„ — последовательность примитивных операторов, параметрами которых являются пара- метры команды хь хк. Следует отметить, что наличие условия в теле команды не является обязательным. При выполнении команды с(х(, хк) система осуществляет переход из состояния q в новое состояние q'. Данный переход обо- значим Q К(л-1, .... ») Q'- При этом q' = q, если одно из условий команды с(х,, xt) не выпол- нено; Таблица 2.1. Примитивные операторы модели ХРУ Примитивный оператор Исходное состояние q = (5, О, М) Результирующее состояние q' = (S', О', М') «Внести» право г e R в M[s, о] s е S 0 е О S' -S. О'= О, M'[s, о] = M[s, о] <>' {/-}, для (s’, o') * (у о) справедливо равенство M'[s', o'] = M[s', o'] «Удалить» право г е R из M[s, о] s е S 0 е О S' = S, O' = 0, M'[s, o] = M[s, o] \ {/}, для (s', o') * (s, о) справедливо равенство M’[s', o'] = Mis', o'] «Создать» субъект s' s' £ О y = 5u{s'}, O'= 0 о {s'}, для (s, о) e S x 0 справедливо равенство M'[s, о] = M[s, о], для о e O' справедливо равенство M'[s', о] = 0, для з- e 5' справедливо равенство M'[s, 5-'] = 0 «Создать» объект о' о' £ О У = У О' = 0 о {О'}, для (у о) е S х 0 справедливо равенство M'{s, о] = M[s, о], для j е S' справедливо равенство 7И'[у о'] = 0 «Уничтожить» субъект s' s' е S У = 5 \ И'}, О'= 0 \ {j'}, для (5, о) S' х О' справедливо равенство M'[s, о] = M[s, о] «Уничтожить» объект о' О' е О о’ g S У = У 0 \ {о'}, для (у о) е S' х О' справедливо равенство M'[s, о] = M[s, о] 19
q' = q„, если условие команды с(хь ..., хк) выполнено и суще- ствуют состояния qr, ..., q„ такие, что q = q0 Ь, |-а2 ... q„. Пример 2.1. Команда создания субъектом 5 личного файла f. command «создать файл» (s, f): «создать» объект/; «внести» право владения own в M[s, f]; «внести» право на чтение read в M[s, /]; «внести» право на запись write в M[s, /]; end. Пример 2.2. Команда передачи субъекту s' права read на файл/ его владельцем субъектом 5. command «передать право чтения»($, s', f): if (own e M[s, /]) then «внести» право read в M[s',f]', endif end. 2.1.2. Анализ безопасности систем ХРУ Согласно требованиям основных критериев оценки безопасно- сти компьютерных систем [10, 23], их системы защиты должны строиться на основе математических моделей. С использованием математических моделей должно быть теоретически обосновано соответствие системы защиты требованиям заданной политики безопасности. Для решения этой задачи необходим алгоритм, по- зволяющий осуществлять данную проверку. Однако, как показы- вают результаты анализа модели ХРУ, задача построения алго- ритма проверки безопасности систем, реализующих дискрецион- ную политику разграничения прав доступа, не может быть решена в общем случае. Определение 2.2. Будем считать, что возможна утечка права г е R в результате выполнения команды с(хь ..., хД, если при переходе системы q _ Л() д' выполняется примитивный опе- ратор, вносящий г в элемент матрицы доступов М, до этого г не содержавший. Определение 2.3. Начальное состояние д0 называется безопас- ным по отношению к некоторому праву г е R, если не возможен переход системы в такое состояние q, в котором возможна утечка права г. Определение 2.4. Система называется монооперационной, если каждая команда системы содержит один примитивный опе- ратор. 20
Теорема 2.1. Существует алгоритм, проверяющий: является ли исходное состояние монооперационной системы безопасным по отношению к праву г е R. Доказательство. Для доказательства достаточно показать, что число последовательностей команд монооперационной системы, которые необходимо проверить, ограничено и сами последова- тельности команд имеют конечную длину. В этом случае алгоритм проверки безопасности есть алгоритм тотального перебора всех последовательностей команд и проверки конечного состояния для каждой из них на отсутствие утечки права г. Заметим, что нет необходимости рассматривать в последова- тельностях команды, содержащие примитивные операторы вида «удалить»... и «уничтожить»..., так как необходимо проверить на- личие права доступа, а не его отсутствие. Заметим также, что нет необходимости рассматривать последовательности команд, содер- жащих более одного примитивного оператора вида «создать»... Это обусловлено тем, что все последовательности команд, которые проверяют или вносят права доступа в новые элементы матрицы доступов Л/, могут быть заменой параметров в командах представ- лены последовательностями, действующими с существующими субъектами и объектами. Тем не менее, необходимо сохранить одну команду создания субъекта (которая должна быть выполнена пер- вой) на случай, если в начальном состоянии системы q0 = (Aq, О0, Мо) множество 50 = 0. Таким образом, надо рассматривать только те последователь- ности команд, которые содержат примитивные операторы вида «внести»... и максимум один оператор «создать» субъект. Число различных примитивных операторов «внести»... « = + 1)(|о0| +1). Все команды, содержащие один и тот же примитивный опера- тор, но разные условия, объединяются в алгоритме проверки бе- зопасности в одну команду с общим составным условием (с при- менением логических операторов and и or). Таким образом, число последовательностей команд, которые необходимо рассмотреть, равняется п\\ при этом длина каждой последовательности равна п. Теорема доказана. Следствие 2.1. Алгоритм проверки безопасности моноопераци- онных систем имеет экспоненциальную сложность. Теорема 2.2. Задача проверки безопасности произвольных си- стем ХРУ алгоритмически неразрешима. Доказательство. Для доказательства теоремы воспользуемся фактом, доказанным в теории машин Тьюринга [5]: не существу- ет алгоритма проверки для произвольной машины Тьюринга и произвольного начального слова — остановится ли машина Тью- ринга в конечном состоянии или нет. 21
Под машиной Тьюринга понимается способ переработки слов в конечных алфавитах. Слова записываются на бесконечную в обе стороны ленту, разбитую на ячейки. Для элементов и команд машины Тьюринга используем следу- ющие обозначения: А = {а0, ah ..., ат} — внешний алфавит, где а0 = л — пустой символ; Q = {?о> , Qk} —' внутренний алфавит, где q\ — начальное состояние; qQ — конечное состояние; D = {г, /, е} — множество действий, где г — шаг вправо управ- ляющей головки; I — шаг влево управляющей головки; е — управ- ляющая головка не перемещается; С: Q х А -» Q х А х D — функция, задающая команды машины Тьюринга. Если C(qh, aft = (qh, ah, d), то это означает, что когда машина находится в состоянии qia и управляющая головка указы- вает на ячейку ленты, содержащую символ aie, тогда выполняется шаг машины, в результате которого в эту ячейку записывается символ а,-, машина переходит в состояние qit, а управляющая го- ловка смещается по ленте согласно действию d. Для того чтобы воспользоваться указанным выше фактом, пред- ставим все элементы и команды машины Тьюринга в виде эле- ментов и команд системы модели ХРУ. Пусть машина Тьюринга выполнила некоторое число шагов. Пронумеруем все ячейки, пройденные считывающей головкой (включая те, в которые была изначально занесена информация), числами от 1 до п. Тогда (aS], ..., аЛ) — заполнение ленты, где aSi е A, Sj е {0, 1, ..., т} для /= 1, ..., п. Пусть считывающая головка указывает на ячейку с номером i е {1, ..., и}, содержащую сим- вол ait е А, где it е {0, 1, ..., т}, состояние машины qi; е Q, где ij е {1, ..., к}, и должна быть выполнена команда С(д,-, а,;) = = (^„ o,z„ d), где qlt, е Q, ai:, е A, if е {0, 1, ..., т}, ft е {1, ..., к}, а е D. Каждой ячейке ленты поставим в соответствие субъект модели ХРУ; при этом будем считать, что 0 = S= {sb ..., $„}. Зададим мат- рицу доступов ТИдля текущего состояния. Пусть множество прав доступа R = Q о A u {own, left, right} и в матрицу доступов внесены права: • aS) е M[Sj, для у= 1, ..., п — заполнение ленты; • own & M[Sj, 5у+1] для j= 1, ..., п — 1 — упорядочивание субъек- тов, соответствующих ячейкам ленты; • е M[sh 5,] — управляющая головка указывает на ячейку с номером г; • left е Af[sb 5J — признак крайней левой из пройденных яче- ек на ленте; • right е M[s„, y,J — признак крайней правой из пройденных ячеек на ленте. 22
51 S2 ••• «У/ ••• $п-1 ds > left own азг own a. s3 cP a^. own av right Рис. 2.1. Заполнения матрицы доступов модели ХРУ Таким образом, текущему состоянию машины Тьюринга соот- ветствует матрица доступов М системы модели ХРУ, представ- ленная на рис. 2.1. Построим гомоморфизм машины Тьюринга в систему ХРУ. Для каждой команды машины Тьюринга а,) = (qt)„ ah„ d) зада- дим соответствующую ей команду модели ХРУ: • если d = е, то command Eq, a ^q^,a h,{s'): if {qi; e M[s, 5]) and (a,, e M[s, 5]) then «удалить» право q^ из M[s, 5]; «удалить» право ah из M[s, 5]; «внести» право qit, в M[s, 5]; «внести» право ah. в M[s, 5]; endif end', • если d = г, то необходимо задать две команды для случаев, когда считывающая головка указывает или не указывает на самую правую ячейку ленты: command RXqija^qi.aj.ys, s'): if {qh e Д) and (ah e M[s, 5]) and {own <= Л/[5, 5']) then «удалить» право qi: из M[s, Д; «удалить» право а,- из M[s, 5]; «внести» право а,,, в M[s, Д; «внести» право #/? в M\s’, 5']; endif end', 23
command Rlq^a^q^Oifs, s')'. if (q^ e M[s, 5]) and (ah e M[s, 5]) and (right e M[s, 5]) then «удалить» право qh из M[s, 5]; «удалить» право ai: из M[s, 5]; «удалить» право right из M[s, 5]; «внести» право ah, в M[s, 5]; «создать» субъект 5'; «внести» право own в M[s, 5']; «внести» право аа в M\s', 5']; «внести» право qi)f в M[s', s']; «внести» право right в M[s', 5']; endif end', • если d= I, то две команды для этого случая задаются анало- гично командам для случая d = г. Если машина Тьюринга останавливается в своем конечном со- стоянии qG, то в соответствующей системе ХРУ происходит утеч- ка права доступа q0. Из алгоритмической неразрешимости задачи проверки: остановится ли машина Тьюринга в конечном состоя- нии, — следует аналогичный вывод для задачи проверки безопас- ности соответствующей ей системе ХРУ. Таким образом, в общем случае для систем дискреционного разграничения доступа, пост- роенных на основе модели ХРУ, задача проверки безопасности алгоритмически неразрешима. Теорема доказана. Приведенные выше теоремы 2.1 и 2.2 указывают на имеющую- ся проблему выбора у разработчиков систем защиты. С одной сто- роны, общая модель ХРУ может выражать большое разнообразие политик дискреционного разграничения доступа, но при этом не предоставляет алгоритма проверки их безопасности. С другой сто- роны, можно использовать монооперационные системы, для ко- торых алгоритм проверки безопасности существует, но данный класс систем является слишком узким. Например, моноопераци- онные системы не могут выразить политику, дающую субъектам право владения на созданные ими объекты, так как не существует одного примитивного оператора, который одновременно и создает объект, и помечает его как принадлежащий создающему субъекту. Дальнейшие исследования модели ХРУ велись в основном в направлении определения условий, которым должна удовлетво- рять система, чтобы для нее задача проверки безопасности была алгоритмически разрешимой. Так, в 1976 г. было доказано [13], что задача проверки безопасности алгоритмически разрешима для систем, в которых нет примитивных операторов вида «создать»... В 1978 г. было установлено [14], что таковыми могут быть систе- мы монотонные и моноусловные, т. е. системы, команды которых не содержат операторов вида «уничтожить»... или «удалить»... и содержат условия, состоящие из не более одной проверки вида 24
г е M[s, о]. В том же году было установлено [17], что задача про- верки безопасности для систем с конечным множеством субъек- тов разрешима, но вычислительно сложна. 2.1.3. Модель типизированной матрицы доступов Другая дискреционная модель, получившая название «Типи- зированная матрица доступов» (ТМД), представляет собой разви- тие модели ХРУ, дополненной концепцией типов, что позволяет несколько смягчить те условия, для которых возможно доказа- тельство безопасности системы. Рассмотрим модель ТМД на осно- ве [3] и [22]. Формальное описание модели ТМД включает в себя следую- щие элементы: О — множество объектов системы; S — множество субъектов системы (S с О); R — множество прав доступа субъектов к объектам; М — матрица доступов; С — множество команд; Т — множество типов объектов; Г: О -» Т — функция, ставящая в соответствие каждому объек- ту некоторый тип; q = (S, О, t, М) — состояние системы; Q — множество состоянии системы. Состояние системы изменяется с помощью команд из множе- ства С. Команды ТМД имеют тот же формат, что и в модели ХРУ, но всем параметрам приписывается определенный тип: command с(хр ..., хк\ tk) if (г, е ЛГ[х5|, х0|]) and ... and (rm е M\xv xj) then о-ъ O-n, endif end. Перед выполнением команды происходит проверка типов фак- тических параметров. Если они не совпадают с указанными в оп- ределении, то команда не выполняется. В модели используются шесть видов примитивных операторов, отличающихся от анало- гичных операторов модели ХРУ только использованием типизи- рованных параметров (табл. 2.2). Таким образом, ТМД является обобщением модели ХРУ, ко- торую можно рассматривать как частный случай ТМД с одним единственным типом для всех объектов и субъектов. С другой сто- роны, любую систему ТМД можно выразить через систему ХРУ, введя для обозначения типов специальные права доступа, а про- 25
Таблица 2.2. Примитивные операторы модели ТМД Оператор Исходное состояние q = (5, О, М) Результирующее состояние q' = (S', O', M') «Внести» право г е R в M[s, о] s е S о е О S' = S, O' = 0, t'(o) = t(o) для о e 0, M'[s, o] = M[s, o] u {/-}, для (s', o’) * (s, о) справедливо равенство W[s’, o'] = Л/fs', o’] «Удалить» право г е R из M[s, о] s е S о е О S' = S, O'= 0, t'(o) = t(o) для о e 0, o] = M[s, o] \{r}, для (s’, o') * (s, о) справедливо равенство M'[s', o'] = M[s', o'] «Создать» субъект s' с типом 4 s' f S S' = Scj П'}, O’ = Ou{4 для о e О справедливы равен- ства t’(o) = t(o), t'(s') = ts-, для (s, о) e SxO справедливо равенство M'fs, о] = M'fs, о], для о е О' справедливо равен- ство M'fs', о] = 0, для 5 е S' справедливо равенство M'fs, s’] = 0 «Создать» объект О' с типом t0 o' О S' = S, О'=О^{о'}, t'(o') — to, для (з, о) е S х О справедливо равенство M'fs, о] = Mfs, о], для s е S' справедливо равен- ство M'fs, o’] = 0 «Уничтожить» субъект Г s’ e S s' = s\ п'}, о’ = о\{у}, для о е О' справедливо равен- ство t'(o) = t(o), для (s, о) е S' х О' справедливо равенство W[s, о] = M[s, о] «Уничтожить» объект О' o' e 0 o' S S’ = S, О' = О \ {о'}, для о е О' справедливо равен- ство t’(o) = t(o), для (s, о) е S' х О' справедливо равенство M’[s, о] = M[s, о] верку типов в командах заменив проверкой наличия соответству- ющих прав доступа. Появление в каждой команде дополнительных неявных усло- вий, ограничивающих область применения команды только объек- тами соответствующих типов, позволяет несколько смягчить же- 26
сткие условия классической модели, при которых критерий бе- зопасности является разрешимым. Определение 2.5. Модель монотонной типизированной матри- цы доступов (МТМД) — модель ТМД, в командах которой отсут- ствуют немонотонные примитивные операторы вида «удалить»... и «уничтожить»... Определение 2.6. Каноническая форма модели МТМД (КФМТМД) — модель МТМД, в которой команды, содержащие примитивные операторы вида «создать»..., не содержат условий и примитивных операторов вида «внести»... Терема 2.3. Любая система МТМД эквивалента системе КФМТМД. Доказательство. Пусть задана система МТМД, в которой опре- делены множества R, Т, Q, С. Построим эквивалентную ей систе- му КФМТМД, определив множества R*, Т*, Q*, С*. Пусть R* = R u {active}', {tactive}. В каждом состоянии q* = (S*, О*, Г, М*), соответствующем состоянию q = (S, О, t, М), справедливы равенства: S* = S и {sac/lve}; О* = О и KcU- Пусть также для каждого о е О справедливо равенство /*(о) = = До) и sacr,-ve — единственный субъект такой, что t*(sacfive) = tactive. Кроме того, для 5 е S, о е О справедливо равенство М* [д о] = = о] и в начальном состоянии системы для о е О0 справедли- во равенство M*[saa!ve, о] = {active}. Таким образом, право доступа active обозначает активизиро- ванные субъекты и объекты КФМТМД. Каждую команду с(х,: Д ..., xk: tk) системы МТМД, не содер- жащую примитивные операторы «создать»..., представим коман- дой c(Xp Д ..., xk. tk, s’. tacfm) системы КФМТМД, полученной из исходной команды добавлением условий проверки active е M[s, х,], для z = I, ..., к. Каждую команду Дх{\ Д ..., хк. tk) системы МТМД, содержа- щую примитивные операторы «создать»..., представим двумя мо- нотонными командами КФМТМД: • с'Д^. t{, ..., хк: tk) — команда без проверки условий, содержа- щая все примитивные операторы «создать»... команды сДд Д ..., хк- fk); • сДхр Д ..., хк: д s: tocf,ve) — команда, содержащая условия и примитивные операторы «внести»... команды c(xt: Д ..., хк: tk), условия проверки active е Л/[5, х,], для всех родительских (не со- здаваемых в команде Дх{\ Д ..., хк: tk)) объектов х,-, примитивные операторы «внести» право active в ЛД5, х,] для всех объектов х,-, создаваемых в команде с(х(: Д ..., хк. Д). 27
Таким образом, только «активизированные» объекты (в том числе и субъекты) системы КФМТМД соответствуют объектам системы МТМД, а все преобразования над ними в системе КФМТМД соответствуют преобразованиям системы МТМД. Тео- рема доказана. Для того чтобы сформулировать ограничения, необходимые для алгоритмической разрешимости задачи проверки безопасности в системах МТМД, определим отношения между типами. Определение 2.7. Пусть с(хр th хк: t^) — некоторая команда ТМД. Будем говорить, что является дочерним типом в с(х,: ..., хк. tk), если в ее теле имеется один из следующих примитивных операторов: • «создать» субъект 5 с типом (; • «создать» объект о с типом /,. В противном случае будем говорить, что t, является родитель- ским типом в с(х(: t\, хк: tk). Заметим, что в одной команде тип может быть одновременно и родительским, и дочерним. Например: command foo(s\. и, s2: и, s3: v, ot: w, о2: b) « создать» субъект s2 с типом и; « создать» субъект т3 с типом и; end. Здесь и является родительским типом относительно и дочер- ним типом относительно s2. Кроме того, w и b являются родитель- скими типами, a v — дочерним типом. Тогда можно описать взаимосвязи между различными типами с помощью графа, определяющего отношение «наследственно- сти» между типами, устанавливаемые через операции порожде- ния объектов. Определение 2.8. Граф создания — ориентированный граф с множеством вершин Т, в котором ребро от и к v существует тогда и только тогда, когда в системе имеется команда, в которой и является родительским типом, a v — дочерним типом. Граф создания для каждого типа позволяет определить: • объекты каких типов должны существовать в системе, чтобы в ней мог появиться объект или субъект заданного типа; • объекты каких типов могут быть порождены при участии объектов заданного типа. Определение 2.9. Система МТМД (КФМТМД) называется ацик- лической (АМТМД или, соответственно, АКФМТМД) тогда и только тогда, когда ее граф создания не содержит циклов; в про- тивном случае говорят, что система является циклической. Например, граф создания для приведенной выше команды /оо(), содержит следующие ребра: {(и, м), (и, и), (w, и), (w, v), (b, и), (b, v)}. Система МТМД, содержащая эту команду, будет циклической, поскольку тип и является для нее одновременно и 28
родительским, и дочерним, что приводит к появлению в графе цикла (и, и). Алгоритм проверки безопасности систем АМТМД будет стро- иться для эквивалентных им систем АКФМТМД. Он состоит из двух шагов. Шаг 1. Используя команды, содержащие только примитивные операторы «создать»... и не содержащие условий, перейти из на- чального состояния системы в некоторое развернутое состояние, обеспечивающее минимально необходимый и достаточный для распространения прав доступа состав объектов. Шаг 2. Используя команды, не содержащие примитивные опе- раторы «создать»..., перейти из развернутого состояния в замкну- тое состояние, в котором дальнейшее применение таких команд не приведет к изменениям в матрице доступов. Второй шаг алгоритма, очевидно, всегда будет иметь конечную сложность. Так как множество объектов не изменяется, то необхо- димо перебрать все последовательности различных команд (по ана- логии с доказательством теоремы 2.1), которых конечное число. Наибольшую трудность в общем случае представляет разработ- ка алгоритма построения развернутого состояния. Однако для АМТМД или АКФМТМД такой алгоритм существует. Перед его рассмотрением дадим определение. Определение 2.10. Пусть аир — две различные команды систе- мы МТМД, содержащие примитивные операторы «создать»... Бу- дем считать, что а < р тогда и только тогда, когда для каждого дочернего типа в а в графе создания найдется путь в некоторый родительский тип в р. Лемма 2.1. В АМТМД отношение «<» на множестве команд яв- ляется отношением строгого порядка (обладает свойствами анти- рефлексивности, антисимметричности и транзитивности). Доказательство. Выполняется по определению отношения «<» и АМТМД. / Алгоритм 2.1. Алгоритм построения развернутого состояния для АКФМТМД. Шаг 1. Упорядочить линейно в списке все команды, содержа- щие примитивные операторы вида «создать»... (команда а следует в списке перед командой р тогда и только тогда, когда или а < р, или аир несравнимы). Шаг 2. Начиная с начального состояния, применять по создан- ному на шаге 1 списку все команды; при этом каждая команда применяется со всеми возможными для нее наборами родитель- ских объектов. Лемма 2.2. Алгоритм 2.1 заканчивает работу за конечное время на любом начальном состоянии произвольной АКФМТМД. Доказательство. Число команд в списке конечно. Для каждой команды из списка на каждом шаге работы алгоритма существует 29
конечный набор объектов, которые могут являться ее параметра- ми. Следовательно, алгоритм 2.1 всегда заканчивает работу за ко- нечное время. Лемма доказана. Определение 2.11. Пусть (qQ, qx, ..., qh ...) — некоторая история МТМД. Для каждого состояния qi = (Sh Oiy th Т), i = 0, 1, ..., на множестве О, рекурсивно определим функцию порождения объек- тов л(): • для каждого о е с (7, зададим л(о) = о, • если объект о е Ок с. О, создан на шаге 0 < к < i истории командой ак, где ot, о2, ..., о,„ е Ок_ t — последовательность вхо- дящих в нее объектов родительских типов, то зададим я(о) = = <x*O(0i), л(о2), ..., л(о„,)). Пример 2.3. Пусть система МТМД с двумя командами: command cv(x: и, у: v) «создать» субъект у с типом v; end, command cw(x: и, у: v, z: w) «создать» объект z с типом w; end, и история имеет вид q0 Ь„(л. у) <li у, д Qi, где % = (50, (70, г0, Г) = ({х}, {х}, {(х, и)}, {и, v, w}). Тогда в состоянии q2 = (S2, О2, t2, Т) = ({х, у}, {х, у, z}, {(х, и), (у, v), (z, to)}, {и, и, w}) функция п() будет иметь следующие значения: л(х) = X, л (у) = си(х), 7t(z) = CU>(X, Си(х)). Лемма 2.3. В развернутом состоянии АМТМД для каждого воз- можного значения функции порождения объектов л() существует только один объект. Доказательство. Развернутое состояние для АМТМД строится по алгоритму 2.1 за конечное число шагов; при этом, по опреде- лению шага 2, оно содержит объекты для всех возможных значе- ний функции тг(). В то же время, на каждом шаге построения по алгоритму 2.1 получается новый объект с новым значением фун- кции л(). Лемма доказана. Теорема 2.4. Существует алгоритм проверки безопасности сис- тем АМТМД. Доказательство. Без ограничения общности по теореме 2.3 бу- дем рассматривать АКФМТМД. Пусть / — начальное состояние системы; q —• развернутое со- стояние системы, полученное из/по алгоритму 2.1; т — замкну- тое состояние системы, полученное из q с использованием всех команд, не содержащих примитивные операторы вида «создать»...; при этом дальнейшее применение таких команд к т не приводит к изменениям в матрице доступов. 30
Так как система монотонная, то для (s, о) е Sgx Од выполняется условие Mg[s, о] <= Mm[s, о]. (2.1) Покажем, что для систем АКФМТМД для любой истории (/ ..., h, ...) может быть найдена история (q, ..., g, ...) без ко- манд, содержащих примитивные операторы вида «создать»..., где для (s, о) е х Oh выполняется условие Mh[s, о] с Л/Дл(5), л(о)]. (2.2) Если условие (2.2) выполняется, то из (2.1) и (2.2) следует, что для (s, о) е Sfx О/выполняется условие Mh[s, о] с Л/Дл(5), л(о)] с М„,[л(з), л(о)]. Так как/— начальное состояние системы, то заменяем л(5) на s, л(о) на о и получаем, что для (s, о) е SfX Of выполняется условие Mh[s, о] с Mg[s, о] a о], что и означает алгоритмическую разрешимость задачи проверки безопасности систем АМТМД. Обоснуем (2.2), для чего построим алгоритм преобразования последовательности команд истории (/ ..., А, ...) в последова- тельность команд истории (д, ..., g, ...). Шаг 1. В командах истории (/ ..., h, ...) удалить примитивные операторы вида «создать»... Шаг 2. Команды c(x(: tx, ..., хк: tk) истории (/ ..., h, ...) заме- нить на команды c(x(x}): it, n(xk): tk) истории (д, ..., g, ...)( По индукции по длине истории (/ ..., h, ...) легко показать, что выполняются два условия. Условие 1. Условие каждой команды истории (q, ..., g, ...) ис- тинно тогда и только тогда, когда истинно условие соответствую- щей ей команды истории (/ ..., h, ...). Условие 2. Для состояния h истории (/ ..., h, ...) и соответству- ющего ему состояния g истории (д, ..., g, ...) выполняется условие для (з, о) e S/t х О/, истинно (г <= Mh[s, о]) => (г <= Л/Дл(5), л(о)]). Таким образом, (2.2) обосновано. Теорема доказана. Следствие 2.2. Алгоритм проверки безопасности систем АМТМД имеет экспоненциальную сложность. Доказательство. При построении замкнутого состояния систе- мы из развернутого состояния используется алгоритм, аналогич- ный алгоритму, использованному в теореме 2.1. По следствию 2.1 получаем, что алгоритм проверки безопасности систем АМТМД имеет экспоненциальную сложность. Определим подмножество АМТМД, называемое тернарными АМТМД. Определение 2.12. Тернарными называются АМТМД, в кото- рых каждая команда имеет не более трех параметров. 31
Для тернарной АМТМД доказано [8], что алгоритм проверки ее безопасности имеет полиномиальную сложность. Таким образом, введение строгого контроля типов в дискре- ционную модель ХРУ позволило доказать критерий безопасности систем для более приемлемых ограничений, что существенно рас- ширило область ее применения. 2.2. МОДЕЛЬ РАСПРОСТРАНЕНИЯ ПРАВ ДОСТУПА TAKE-GRANT 2.2.1. Основные положения классической модели Take-Grant Классическая модель Таке-Grant ориентирована на анализ пу- тей распространения прав доступа в системах дискреционного разграничения доступа. Классическую модель Take-Grant рассмот- рим на основе [6]. Основные элементы модели Take-Grant'. О — множество объектов; S с О — множество субъектов; R- {/'i, >2, , ки} Д, <?} — множество видов прав доступа, где t {take) — право брать права доступа; g {grant) — право давать права доступа; G= {S, О, Е) — конечный помеченный ориентированный граф без петель, представляющий текущие доступы в системе. Элемен- ты множеств 5 и О являются вершинами графа, которые соответ- ственно будем обозначать: ® — объекты (элементы множества 0\5), • — субъекты (элементы множества У). Элементы множе- ства Е с О х О х R являются ребрами графа. Каждое ребро помече- но непустым подмножеством множества видов прав доступа R. Состояние системы описывается соответствующим ему графом доступов. В отличие от модели ХРУ в модели Take-Grant возможно наличие прав доступа не только у субъектов на объекты, но и у объектов на объекты. Основная цель классической модели Take-Grant — определе- ние и обоснование алгоритмически проверяемых условий провер- ки возможности утечки права доступа по исходному графу досту- пов, соответствующего некоторому состоянию системы. Порядок перехода системы модели Take-Grant из состояния в состояние определяется правилами преобразования графа досту- пов, которые в классической модели носят название де-юре пра- вил. Преобразование графа G в граф G' в результате выполнения правила ор обозначим следующим образом: G [ор G'. 32
х у z 1аке{а, x,y,z)x у z Рис. 2.2. Применение правила taketa, х, у, z) ух z grant [о., х, у, z) у х z Рис. 2.3. Применение правила grant(a, х, у, z) В классической модели Take-Grant рассматриваются четыре де- юре правила преобразования графа, выполнение каждого из ко- торых может быть инициировано только субъектом, являющимся активной компонентой системы (рис. 2.2 —2.5): • takeQ — брать права доступа; • grants — давать права доступа; • create^) — создавать новый объект или субъект; при этом субъект-создатель может взять на созданный субъект любые права доступа (по умолчанию предполагается, что при выполнение пра- вила create^ создается объект; случаи, когда создается субъект, оговариваются особо); • remove^) — удалять права доступа. Рассмотрим условия применения де-юре правил в исходном состоянии G=(S, О, Е) и результаты их применения в результи- рующем состоянии G' = (S', О', Е') (табл. 2.3). В модели Take-Grant основное внимание уделяется определе- нию условий, при которых в системе возможно распространение прав доступа определенным способом. Рассмотрим условия реа- лизации: • способа санкционированного получения прав доступа; • способа похищения прав доступа. G G' , Р • f- •--------- х create^,х,у) х у Рис. 2.4. Применение правила create^, х, у) G G' Р , р\а •—г—•—е——на х у remove(a,x,y) х у Рис. 2.5. Применение правила remove(a, х, у) 2 Девянин 33
Таблица 2.3. Де-юре правила классической модели Take-Grant Правила Исходное состояние G = (5, 0, E) Результирующее состояние G' = (S', O', E') take(<J.. х, у, z) x e S, (x, у, {Г}) с E, (y, z, p) с E, x * z, a c 3 S’ = 5, O' = 0, E' ~ E u {(x, z, a)} grantiyi, х, у, z) x e S, (x, У, Ш) с E, (x, z, P) a: E, y^z, ac3 S’ = S, O'= 0, E' = E x> {(y, z, a-)} create^, х, j) x e . S', у <t 0, 3^0 0 = 0 и { у }, S' = 5 и { у } (если у — субъект), Е' = Е с {(х, у, 3)} removefa, x, j) x e S, (x, у, 3) с E, ac₽ S' =S, О' = О, Е‘ = Е\{(х, у, а)} Санкционированное получение прав доступа Данный способ характеризуется тем, что при передаче прав доступа не накладывается ограничений на кооперацию субъектов системы, участвующих в этом процессе. Определение 2.13. Пусть х, у е О0, х * у — различные объекты графа доступов Со = (So, О0, До), о. с 7?. Определим предикат «воз- можен доступ»(а, х, у, Go), который будет истинным тогда и только тогда, когда существуют графы Gt =(St, Oh Et), ..., GN=(SN, ON, En) и правила oph ..., opN такие, что Go G ... GN и (x, y, a) cz En. Определение истинности предиката «возможен доступ»^) не- посредственно по определению является в общем случае алгорит- мически неразрешимой задачей, так как требует проверки всех траекторий функционирования системы. По этой причине для проверки истинности предиката «возможен доступ»() следует оп- ределить необходимые и достаточные условия, проверка которых возможна. Решение данной задачи будет выполнено в два этапа. На первом этапе будут определены и обоснованы условия истин- ности предиката «возможен доступ>>{) для графов, все вершины которых являются субъектами, на втором этапе условия истинно- 34
сти предиката «возможен доступ»^ будут определены и обосно- ваны для произвольных графов. Определение 2.14. Пусть G~ (S, S, Е) — граф доступов. Гово- рят, что вершины графа доступов являются /g-связными или что они соединены /g-путем, если, без учета направления ребер, в графе между ними существует путь такой, что каждое ребро этого пути помечено t или g. Теорема 2.5. Пусть Со = (50, 50, £0) — граф доступов, содержа- щий только вершины-субъекты, х, у е So, х у. Тогда предикат «возможен доступ»(а, х, у, Go) истинен тогда и только тогда, когда выполняются условия 1 и 2. Условие 1. Существуют субъекты ..., зт е 50: (sh у, у,) с £0, где z = 1, ..., т и а = У! о ... и у,„. Условие 2. Субъекты х и s, /g-связны в графе Со, где /= 1, ..., т. Доказательство. Проведем доказательство теоремы для т= 1, так как схему доказательства для этого случая легко продолжить для случая т > 1. При т = 1 условия 1 и 2 формулируются следующим образом. Условие 1. Существует субъект 5 такой, что выполняется вклю- чение у, а) с Ео. Условие 2. Субъекты хи s соединены /g-путем в графе Go. Достаточность. Пусть выполнены условия 1 и 2. Доказатель- ство проведем индукцией по длине /g-пути, соединяющего субъек- ты х и s. , Пусть N=0. Тогда x = s, (х, у, а) с Ео и предикат «возможен доступДа, х, у, Go) истинен. / Пусть N= 1. Тогда существует (5, у, а) с<с0 и х и 5 соединены ребром / или g в графе Go . Возможны четыре случая такого со- единения х и s, для каждого из которых указана последователь- ность преобразований графа, требуемая для передачи прав досту- па (рис. 2.6 —2.9). Рис. 2.6. Первый случай Рис. 2.7. Второй случай 35
Рис. 2.8. Третий случай Пусть 7V> 1. Пусть вершина z находится на /g-пути между х и 5 и является смежной с sb графе Go. Тогда исходя из доказанного для случая ЛГ= 1 существует последовательность преобразований графов доступов Go Д», - К» gk такая, что (z, у, а) с Ек, и длина /g-пути между z и х равна N- 1. Это позволяет применить предположение индукции. Достаточность условий теоремы дока- зана. Необходимость. Пусть истинен предикат «возможен доступ»(а, х, У, <?о)- По определению истинности предиката существует последова- тельность графов доступов G{ = (5Ь О,, Д), ..., GN=(SN, ON, EN) такая, что Go |-0/„ Gt \-ор2... GN и (%, у, а) с EN. Среди всех таких последовательностей выберем ту, у которой длина N является минимальной. В этом случае (х, у, a) <z EN_}. Докажем необходимость условий 1 и 2 индукцией по N. При N=0 очевидно, что (х, у, а) с Д . Таким образом, s = x и условия теоремы выполнены. 36
При N= 1 из определения де-юре правил модели следует, что существует субъект 5 такой, что выполняется включение (s, у, а) с Ео и или opv = take(a, х, s, у), или opI = grant(a, s, х, у). Таким образом, s и х /g-связны в графе Gj и условия теоремы выполнены. Пусть N > 0 и утверждение теоремы истинно для к < N. Тогда (х, у, а) ср EN_ । и ребро (х, у, а) появляется в графе доступов GN в результате применения к графу GN _ t некоторого правила opN. Очевидно, что это не правила createQ или remove(). Следователь- но, существует субъект s' е SN_t такой, что (s', у, а) с EN_{ и или (х, s', f) 6 En_\ и opN= take(a, x, s', у), или (s', x, g) g En~{ и op n = grant (a, s', x, y). Возможны два случая: s' g 5о и s' <p 5o . Рассмотрим первый случай. Пусть s' g Sq, тогда истинен преди- кат «возможен доступ» (a, s', у, Go)', при этом число преобразова- ний графов меньше N. Следовательно, по предположению индук- ции существует s g 5о: (s, у, a) g Ео и s' соединен с s /g-путем в графе Со. Кроме того, если opN= take(a, х, s', у), то истинен пре- дикат «возможен docmyn»({t}, х, s', (т0), а если opN=grant(a, s', х, у), то истинен предикат «возможен docmyn»({g}, s', х, (70); при этом число преобразований графов меньше N. Следовательно, по пред- положению индукции существует s" g 5о такой, что если opN = = take(a, х, s', у), то (s", s', /) g Е(1 и s" соединен с х /g-путем в графе Go, а если opN = grant(a, s', х, у), то (s", х, g) g Е(1 и s" соединен с s' /g-путем в графе Со. Таким образом, существует 5 g 50: (s, у, а) с Ео и субъекты х и 5 соединены /g-путем в графе Со. Для случая s' g 5о индуктивный шаг доказан (рис. 2.10). Рассмотрим второй случай. Пусть s' <р 50 . Заметим, что число преобразований графов N минимально, поэтому преобразования графов удовлетворяют следующим требованиям: • каждый субъект графа Со создает не более одного субъекта; • субъект-создатель берет на созданный субъект необходимый набор прав {/, g}; • созданный субъект не создает новых субъектов. Справедливость перечисленных требований следует из того, что если субъект графа Со создает более одного субъекта или создан- ный субъект создает нового субъекта, то в преобразованиях гра- фов доступа такие дополнительные субъекты могут быть замене- ны имеющимися. Следовательно, не будет являться необходимой операция создания дополнительных субъектов, что противоречит условию минимальности числа преобразований графов. Требова- ло /g-ПУТЬ t tg-TTfTb ф • • • ..ф ' ' '^ф • • • ф »ф х s" s' sy Рис. 2.10. Случай s' е Sa и opN= takeki, х, s', у) 37
Gi s' /g-путь /g-ПуГЬ a 0 • —"-Ч i ... *' ** x s" Sy Рис. 2.11. Случай s' .So и opN= takeG.j., x, s', y) ние к субъекту-создателю брать на созданный субъект необходи- мый набор прав {/, g} является, очевидно, необходимым. Из перечисленных требований следует, что существуют M<N- 1, s" е 5): орм= create ({t, g}, s", s'). Среди всех последовательностей преобразований длины N можно выбрать такую, что М= 1. Тогда рассмотрим граф Gt; при этом St = So u {5Е} = Ео о {(s", s', {t, g})}, истинен предикат «возможен доступ»(а, s', у, Gj с числом пре- образований меньше /Уи s' е St. Следовательно, существует se <$i: (5, у, а) с при этом 5 и s' соединены /g-путем в графе Gt. Очевидно, что 5 е SQ, (s, у, a) с Ео; при этом 5 и s" соединены /g-путем в графе Со. Кроме того, если opN = take(a, х, s', у), то истинен предикат «возможен docmyn»({t}, х, s', Gt), а если opN = grant{a, s', х, у), то истинен предикат «возможен. docmyn»({g}, s', х, G{); при этом число преобразований меньше N. Следователь- но, так как s" — единственный субъект в графе Gh обладающий правами доступа на s', то х и s" соединены /g-путем в графе Gt и, очевидно, в графе Go. Таким образом, существует 5 е S(l: (s, у, а) Ео; при этом х и 5 соединены /g-путем в графе Go. Для случая s' к 50 индуктивный шаг доказан (рис. 2.11). Теорема доказана. Для определения истинности предиката «возможен доступ» в произвольном графе необходимо определить ряд дополнительных понятий. Определение 2.15. Островом в произвольном графе доступов Со называется его максимальный /g-связный подграф, состоящий только из вершин субъектов. Определение 2.16. Мостом в графе доступов Go называется /g-путь, концами которого являются вершины-субъекты, прохо- дящий через вершины-объекты, словарная запись которого имеет следующий вид: /*, /*, /’g/", fgT, где символ * означает много- кратное (в том числе нулевое) повторение. Определение 2.17. Начальным пролетом моста в графе доступов (?о называется /g-путь, началом которого является вершина- субъект, концом — объект, проходящий через вершины-объек- ты, словарная запись которого имеет следующий вид: /*g. Определение 2.18. Конечным пролетом моста в графе доступов 6'0 называется /g-путь, началом которого является вершина- субъект, концом — объект, проходящий через вершины-объек- ты, словарная запись которого имеет следующий вид: /*. 38
Теорема 2.6. Пусть Go = (So, О0, Ео) — произвольный граф до- ступов, х, у е Оц- х у. Предикат «возможен доступ»(а, х, у, Go) истинен тогда и только тогда, когда выполняются условия 3, 4 и 5. Условие 3. Существуют объекты ..., sm е О0: (5,-, у, у,) с Ео для i = 1, ..., /и и а = 7; и ... и ут. Условие 4. Существуют субъекты х'ь х'т, 5), ..., s'„, е Sy а) х=х- или х- соединен с х начальным пролетом моста в графе Go, где i = 1, ..., /и; б) s = s’i или S- соединен с s конечным пролетом моста в графе Go, где /= 1, ..., т. Условие 5. В графе Со для каждой пары (х,', 5,'), где /= 1, ..., т, существуют острова Д,, ..., w;> 1 такие, что х,' <= s- е IIUi, и существуют мосты между островами 1у и где j = 1, и^{. Доказательство. Проведем доказательство теоремы для т= 1, так как схему доказательства для этого случая легко продолжить в случае т > 1. При т= 1 условия 3, 4, 5 формулируются следующим образом (рис. 2.12). Условие 3. Существует 5 е О0: (s, у, а) с Ео. Условие 4. Существуют х', s' е Sy а) х=х' или х' соединен с х начальным пролетом моста в графе Gy б) s = s' или s' соединен с j конечным пролетом моста в графе Go- Рис. 2.12. Пример пути передачи объекту х прав доступа а на объект у 39
Условие 5. В графе Go существуют острова 1Ь Iu, и> 1, такие что х' е s' 6 1и, и существуют мосты между островами Ij и Ij+l, где j = 1, и -1. Достаточность. Является очевидным тот факт, что по мостам возможна передача прав доступа между субъектами, являющими- ся его концами. В качестве примера разобрана последовательность преобразований графа доступов при передаче прав по мосту вида tgt (рис. 2.13). Также очевидно, что по конечному пролету моста субъект мо- жет забрать права доступа у объекта, а по начальному пролету моста — передать его объекту. Go ® ~Ь create({ t, g}, х, z) а s У tai(e^g^ 6) Рис. 2.13. Пример передачи прав доступа по мосту 40
По условию 3 существует объект s, который обладает правами а на объект у. По условию 4, б существует субъект s', который либо совпадает с s, либо по конечному пролету моста может за- брать у субъекта 5 права а на объект у. По теореме 2.1 права доступа, полученные одним субъектом, принадлежащим острову, могут быть переданы любому другому субъекту острова. По условию 5 между островами существуют мос- ты, по которым возможна передача прав доступа. По условию 4, а существует субъект х', который или совпадает с х, или, получив права доступа, может передать их х по начальному пролету моста. Необходимость. Пусть истинен предикат «возможен доступна, х, у, Go). По определению истинности предиката существует по- следовательность графов доступов Gt=(Sh Oh Et), Gn=(Sn, ON, En~) такая, что Go }-opt Gt bAV gn и (x, у, a) c E#; при этом N выбирается минимальным. Тогда (х, у, a) & EN_{. Докажем необходимость условий 3, 4, 5 индукцией по N. При N= 0 очевидно, что (х, у, а) с Ео. Следовательно, условия 3, 4, 5 выполнены. При N= 1 из определения де-юре правил модели следует, что: е либо существует субъект s с 50 такой, что справедливо усло- вие (5, у, а) е Ео и орх = grant (a, s, х, у); е либо существует объект s е О0 такой, что справедливо усло- вие (5, у, а) 6 Ео b opv = take {а, х, s, у). Таким образом, для 7V = 1 условия теоремы выполняются. Пусть N> 0 и утверждение теоремы истинно для k<N. Тогда (х, у, a) х En_\ и ребро (х, у, а) появляется в графе доступов GN в результате применения к графу GN_} некоторого правила opN. Воз- можны два случая: х g 50 и х с 50. Если х £ So, то существует х} е SN_t: opN = grant(a, хь х, у). Также возможны два случая: х{ е 50 или xt & So. Если х{ е 50; т0 истинен предикат «возможен docmyn»({g], хь х, Go) с числом преобразований графов, меньшим N. Следова- тельно, по предположению индукции существуют: е х2 е О0: (х2, х, g) е Ео' в х' 6 Ео, соединенный с х2 конечным пролетом моста; е острова It, t> 1, такие что xt е 1„ x'el), и существуют мосты между островами и для / = 1, ..., t- 1. Кроме того, истинен предикат «возможен доступ»(а, х,, у, Go) с числом преобразований графов, меньшим П. Тогда по предпо- ложению индукции существуют: е 5 е О0: (5, у, а) с Go; е s' е Ео: s = s' или s' соединен с х конечным пролетом моста; е острова It, ..., Iu, t- и> 1, такие что xt «= It, s' е 1и, и существу- ют мосты между островами Ij и IJ+l для j = t, ..., и - 1. Заметим, что путь, соединяющий вершины х', х2, х, есть на- чальный пролет моста. 41
t g g ,n.g •------«-®-«-----• 6 Рис. 2.14. Виды путей длины 2 (* —- или /, или g): а, б — пути, по которым соответственно возможна и невозможна передача прав доступа Если X] g Sq, то с учетом замечаний, сделанных при доказа- тельстве теоремы 2.5, получаем, что существуют М< N - 1, х2 е So такие, что орм= create(\t, g], х2, Xj). Среди всех последовательно- стей преобразований длины N можно выбрать такую, что М= 1. Далее используем технику доказательства теоремы 2.1 и доказатель- ства индуктивного шага для случая Xj е So. Таким образом, для слу- чая х g 50 условия 3, 4, 5 выполняются и индуктивный шаг доказан. Если х е 50, то п. 1 условия 4, а выполняется. Многократно применяя технику доказательства, использованную выше и в тео- реме 2.1, доказываем индуктивный шаг и в данном случае. Теоре- ма доказана. Замечание. При доказательстве теоремы 2.2 можно показать, что не существует путей, отличных от мостов между двумя субъек- тами, проходящих через вершины-объекты, по которым возмож- на передача прав доступа. Доказательство. Рассмотрим все пути (с учетом симметрии) длины 2 между двумя субъектами, проходящие через вершины- объекты, по которым возможна передача прав доступа (рис. 2.14, а) и невозможна передача прав доступа (рис. 2.14, б). Очевидно, что любой путь, соединяющий двух субъектов и про- ходящий через объекты, по которому возможна передача прав до- ступа, не должен содержать фрагменты, приведенные на рис. 2.14, б. В то же время очевидно, что любой такой путь, состоящий только из фрагментов, приведенных на рис. 2.14, а, является мостом. Ут- верждение замечания доказано. Похищение прав доступа Способ санкционированной передачи прав доступа предпола- гает идеальное сотрудничество субъектов. В случае похищения прав 42
доступа передача прав доступа на объект осуществляется без содей- ствия субъекта, изначально обладавшего передаваемыми правами. Определение 2.19. Пусть х, у е О0, х у — различные объекты графа доступов Go = (So, О0, Ео), а с R. Определим предикат «воз- можно похищение»(а, х, у, Go), который будет истинным тогда и только тогда, когда (х, у, а) г> Ео = 0 и существуют графы G} = (5Ь Oj, £]), Gn=(Sn, On, En) такие, что Go |-0?| Gw и (x, у, a) c. En; при этом, если существует (s, у, у) с Ео, где уса, то справедливо неравенство орк * grants, s, z, у), где z е ОК}, для К= 1, ..., N. Теорема 2.7. Пусть G0 = (50, О0, £0) — произвольный граф дос- тупов, х, у е О0, хУ-у. Предикат «возможно похищение»(а, х, у, Go) истинен тогда и только тогда, когда выполняются условия 6, 7, 8, 9. Условие 6. (х, у, а) п Ео = 0. Условие 7. Существуют объекты s,,..., s,„ е 0 е Ок ®---f-— 0 х s у (s,, у, у,) с Ео для I = 1, ..., т и а = у, о ... , , У Рис. 2.15. Условие 9 1ПГ « „ Условие 8. Являются истинными предика- теоремы 2. / ты «возможен docmyn»({t}, х, s„ Go), где z = = 1, ..., т. Условие 9. Граф доступов Go не является графом указанного вида (рис. 2.15). Доказательство. Доказательство осуществляется аналогично доказательству теоремы 2.6. 2.2.2. Расширенная модель Take-Grant Направления развития модели Take-Grant Рассмотренные в классической модели Take-Grant способы анализа путей распространения прав доступа в системах дискре- ционного разграничения доступа имеют в большей степени тео- ретическое значение, так как, как правило, в реальных системах не реализуются столь сложные графы доступов, для анализа кото- рых необходимо использовать теоремы 2.5 —2.7. В то же время на основе классической модели были разработаны ее расширения [12], которые развивают идеи классической модели, предлагая новые механизмы анализа, в большей степени применимые к со- временным системам защиты информации. Рассмотрим три расширения модели. 1. Правила де-факто, предназначенные для поиска и анализа информационных потоков. 43
2. Алгоритм построения замыкания графа доступов и инфор- мационных потоков. 3. Способы анализа путей распространения прав доступа и ин- формационных потоков. Де-факто правила расширенной модели Take-Grant Вместо прав доступа take и grant в расширенной модели в пер- вую очередь рассматриваются права доступа read и write, наличие которых у субъектов системы является причиной возникновения информационных потоков. Расширенная модель Take-Grant строится на основе классиче- ской модели. Ее основными элементами являются: О — множество объектов; 5 с О —- множество субъектов; А = {гь г2, , г„,} u {t, g} и {г, w] — множество видов прав доступа и видов информационных потоков, где г {read) — право на чтение или информационный поток на чтение; w {write) — право на запись или информационный поток на запись; G - {S, О, Е u F) — конечный помеченный ориентированный граф без петель, представляющий текущие доступы в системе и информационные потоки. Элементы множеств А, О являются вер- шинами графа. Элементы множества Ес О х О х Rявляются «ре- альными» ребрами графа, соответствующими правам доступа, и в графе доступов обозначаются сплошными линиями. Элементы множества F с Ох О х {г, w} являются «мнимыми» ребрами, соответствующими информационным потокам, и в графе досту- пов обозначаются пунктирными линиями. Каждое «реальное» ребро помечено непустым подмножеством множества видов прав досту- па R, каждое «мнимое» ребро помечено непустым подмножеством множества {г, w}. Состояние системы описывается соответствующим ему графом доступов и информационных потоков. Порядок перехода системы расширенной модели Take- Grant из состояния в состояние определяется де-юре и де-факто правила- ми преобразования графа доступов и информационных потоков. Преобразование графа G в граф G' в результате выполнения пра- вила ор обозначим следующим образом: G Ь, G'. G G' •-------£ X У 1 X у Рис. 2.16. Применение пер- вого де-факто правила G Рис. 2.17. Применение второ- го де-факто правила 44
Определения де-юре правил take(), grant(), createQ, removeQ совпадают с определениями этих правил в классической модели Take-Grant. Де-юре правила применяются только к «реальным» ребрам (элементам множества Е). Де-факто правила применяются к «реальным» или «мнимым» ребрам (элементам множества Е и F), помеченным г или w. Ре- зультатом применения де-факто правил является добавление но- вых «мнимых» ребер в множество F. Рассматриваются шесть де- факто правил: два вспомогательных и четыре основных. Рассмотрим порядок применения де-юре правил преобразова- ния графа доступов. В отличие от де-юре правил для применения трех из шести де-факто правил требуется участие двух субъектов (рис. 2.16 — 2.21). Рассмотрим условия применения де-факто правил в исходном состоянии G = (S, О, Е) и результаты их применения в результи- рующем состоянии G' = (S', О', Е') (табл. 2.4). G G' г г I 'г г \ • »•--------, •-------------------»•------->-® х у z spylx, У-. Z) У у Z Рис. 2.18. Применение правила spy(x, у, z) G G' w w ‘ w w \ •-------X--------fc-® I- •------->•------->-® X У Z find(x,y,z) X\ У j 7. Рис. 2.19. Применение правила find(x, у, z) G G' _____r t_________________, I _________________ x z уr postix, y, z) X\ Z yy Рис. 2.20. Применение правила post(x, у, z) G G' ,—r—~ ---------..-----------Г ----------------------------—J® у x--------------------------------------------z pass(x, У, z) y\^ x-yz Рис. 2.21. Применение правила pass(x, у, z) 45
Табл и ц а 2.4. Де-факто правила расширенной модели Take-Grant Правила Исходное состояние G = (5, О, Ей F) Результирующее состояние G' = (S, О, Ей F') Первое правило х е S, (х, у, r)eEuF F' = F и {(у, х, w), (х, у, /-)} Второе правило х е S, (х, у, w) е F F' = F и {(у, х, г), (х, у, w)} spy(x, у, Z) X, у е S, х * Z, {(х, У, г), (у, z, r)}cEu F F' = F и {(х, z, г), (z, х, w)} findtx, у, z) X, у е S, х # z, {(X, У, W), (у, z, w)} cEuF F = F и {(х, z, w), (z, х, г)} post(x, У, Z) х, у е S, х z у, {(х, z, г), (у, z, w)} cE'j F F' = F и {(х, у, г), (у, х, w)} findix, у, z) хе S, у * z, {(х, У, W), (х, z, г)}cE'j F F' = F и {(у, z, /•), (z, у, w)} Из определения де-факто правил следует, что для анализа ин- формационных потоков достаточно рассматривать потоки одного вида: либо на чтение, либо на запись. В дальнейшем будем рас- сматривать только информационные потоки на запись. Будем так- же предполагать, что при возникновении информационного по- тока не накладывается ограничений на кооперацию субъектов системы, участвующих в этом процессе. Определение 2.20. Пусть х, у е Оп, х * у — различные объекты графа доступов и информационных потоков G0 = (S0, О0, Ео и F()). Определим предикат «возможна записъ»(х, у, Go), который будет истинным тогда и только тогда, когда существуют графы G} = (5Ь Oi, F0, ..., Gn = (SN, ON, EN) и де-юре или де-факто правила Фь ..., opN такие, что Go ... |-w gn и (х, У, w~) е Лу- Для проверки истинности предиката «возможна запись»^) так- же следует определить необходимые и достаточные условия, зада- ча проверки которых алгоритмически разрешима. Теорема 2.8. Пусть С?о = (50, СЕ, Ей u Fo) — граф доступов и информационных потоков, х, у е О0, х * у. Тогда предикат «воз- можна запись»(х, у, Go) истинен только тогда, когда существуют объекты О], ..., о„, е О0, где О[ = х, от = у, такие что или т = 2 и (х, у, w) е Fo, или для i= 1, ..., т - 1 выполняется одно из условий: 46
• о,- е .$о и или истинен предикат «возможен доступ») {ш}, о,-, о,+ 1, Go), или (о,-, o/+I, ы) е Ей и Fo-, • о/+1 е^и или истинен предикат «возможен доступ»))/-}, о/+1, о,, Go), или (о/+1, о„ г) е Ео и Fo', • о,, о!+] и или истинен предикат «возможен доступ»)®, oh о,+ 1, Go), или истинен предикат «возможен доступ»)®, oi+l, oh Go), где а е {t,g}. Доказательство. Доказательство осуществляется аналогично доказательству теорем 2.5 и 2.6. Построение замыкания графа доступов и информационных потоков Для проверит истинности предикатов «возможен доступ»)), «воз- можно похищение»)) или «возможна запись»)) для многих пар вер- шин неэффективно использовать алгоритмы проверки условий теорем 2.5 —2.8. Эффективнее использовать алгоритмы, позволя- ющие осуществлять проверку истинности указанных предикатов сразу для всех пар вершин. Такие алгоритмы реализуют преобра- зование графа доступов и информационных потоков в его замы- кание. Определение 2.21. Пусть (? = (S, О, Е'и F) — граф доступов и информационных потоков такой, что для каждого х е S существу- ет о е Он при этом )s, о, {t, g}) с Е. Тогда замыканием (или де- факто-замыканием) графа G называется граф доступов и инфор- мационных потоков G* = )S, О, Е* и F*), полученный из G при- менением последовательности правил take)), grant)) и де-факто правил. При этом применение к графу G* указанных правил не приводит к появлению в нем новых ребер. Алгоритм построения замыкания графа доступов состоит из трех этапов. 1. Построение (g-замыкания. 2. Построение де-юре-замыкания. 3. Построение замыкания. Определение 2.22. Пусть G= (S, О, Е о F) — граф доступов и информационных потоков такой, что для каждого г е .S' существу- ет о е Он при этом )s, о, {t, g}) с Е. Тогда /g-замыканием графа G называется граф доступов и информационных потоков G,g = )S, О, E,s т F), полученный из G применением последовательности правил take)) или grant)). При этом каждое ребро )s, о, а) е Elg\E имеет вид )s, о, t) или )s, о, g) и применение к графу G,g правил take)) или grant)) не приводит к появлению в нем новых ребер указанного вида. Определение 2.23. Пусть G= )S, О, Eva F) — граф доступов и информационных потоков такой, что для каждого х е .S' существу- 47
ет о е О и при этом (5, о, {/, g}) с Е. Тогда де-юре-замыканием графа G называется граф доступов и информационных потоков ^де-юре _ q, £де-юРе u рр полученный из G применением последовательности правил /а/се() или grantQ. При этом примене- ние к графу Сде~юре правил takeQ или grantQ не приводит к появ- лению в нем новых ребер. Алгоритм 2.2. Алгоритм построения tg-замыкания графа досту- пов и информационных потоков G = (S, О, Е u С) состоит из пяти шагов. Шаг 1. Для каждого s е А выполнить правило create ({t, g}, s, о); при этом создаваемые объекты занести в множество О. Шаг 2. Инициализировать: L = {(х, у, а) е Е: а е {t, g}} — список ребер графа доступов и информационных потоков — и 7V=0 — множество вершин. Шаг 3. Выбрать из списка L первое ребро (х, у, а). Занести х, у в множество N. Удалить ребро (х, у, а) из списка L. Шаг 4. Для всех вершин z е N проверить возможность примене- ния правил takeQ или grantQ на тройке вершин х, у, z с исполь- зованием ребра (х, у, а). Если в результате применения правил takeQ или. grantQ появляются новые ребра вида (а, Ь, р), где {a, b} cz {х, у, z} и р е {t, g}, то занести их в конец списка L и множество Е. Шаг 5. Пока список L не пуст, перейти на шаг 3. Очевидно, что вычислительная сложность данного алгоритма пропорциональна |О|3. Теорема 2.9. Алгоритм 2.2 корректно строит /g-замыкание гра- фа доступов и информационных потоков. Доказательство. Пусть G' = (А, О, Е' u F) — граф доступов и информационных потоков, полученный из G = (5, О, Е и F) после применения алгоритма 2.2. Пусть Glg = (5, О, Elg о F) — /g-замыкание графа G. Необходимо доказать, что G' = Glg. Докажем от противного. Пусть существует ребро (х, у, а) е е Elg\E', где а е {/, g}. Тогда существуют два ребра (а, Ь, р), (с, d, у) е E,g, где р, у е {/, g}, использованные в правиле takeQ или grantQ, применение которого привело к появлению ребра (х, у, а). Если (а, Ь, р), (с, d, у) е Е', то, согласно описанию алгорит- ма 2.2, ребро (х, у, а) е Е' — противоречие. Следовательно, или (a, b, р) e E,g\E', или (с, d, у) е E,g\E'. В то же время граф G,g получен из С в результате применения конечной последователь- ности правил takeQ и grantQ. Ребра (о, b, р), (с, d, у) должны быть получены раньше, чем ребро (х, у, а). Таким образом, по- вторяя рассуждения для ребер, с использованием которых полу- чены ребра (a, b, р), (с, d, у), придем к противоречию, так как все ребра графа G изначально содержатся в графе G'. Следова- тельно, E,g= Е' и G' = G'g. Теорема доказана. 48
Алгоритм 2.3. Алгоритм построения де-юре-замыкания графа доступов и информационных потоков G = (S, О, Еи F) состоит из четырех шагов. Шаг 1. Выполнить алгоритм 2.2. Шаг 2. Для каждой пары ребер вида (х, у, I), (у, z, а) е Elg, где х е S, применить правило take (а, х, у, z) и, если полученное ребро (х, z, a) g Elg, занести его в множество E'g. Шаг 3. Для каждой пары ребер вида (х, у, g), (х, z, a) g E'g, где х <= S, применить правило grant(a, х, у, z) и, если полученное ребро (у, z, a) g Elg, занести его в множество E'g. Шаг 4. Для каждой пары ребер вида (х, у, /), (у, z, a) g Etg, где х g А, применить правило take (а, х, у, z) и, если полученное ребро (х, z, а) £ Elg, занести его в множество E,g. Теорема 2.10. Алгоритм 2.3 корректно строит де-юре-замыка- ние графа доступов и информационных потоков. Доказательство. После построения /g-замыкания на первом шаге алгоритма 2.3 всем субъектам графа доступов необходимо выпол- нить следующую последовательность действий: • используя правило grantQ), раздать права доступа и, исполь- зуя правило takeQ), забрать права доступа (рис. 2.22, я); • используя правило takeQ), забрать права доступа и, используя правило grantQ), раздать права доступа (рис. 2.22, б). Объединяя указанные последовательности, получаем шаги 2 — 4 алгоритма. Теорема доказана. Алгоритм 2.4. Алгоритм построения де-факто-замыкания графа доступов и информационных потоков G = (S, О, Е u F) состоит из шести шагов. Шаг 1. Выполнить алгоритм 2.3. Шаг 2. Для всех ребер (х, у, а) е £'ле‘юре u F, те х е S, а е {w, г}, применить первые два де-факто правила. Если будут получены но- вые ребра, то занести их в множество F. Шаг 3. Инициализировать: L = {(х, у, а) е u р. а g г}} — список ребер графа доступов и информационных потоков — и N=0 — множество вершин. Шаг 4. Выбрать из списка L первое ребро (х, у, а). Занести х, у в множество N. Удалить ребро (х, у, а) из списка L. Шаг 5. Для всех вершин z е Д'" проверить возможность примене- ния де-факто правил на тройке вершин х, у, z с использованием ребра (х, у, а). Если в результате применения де-факто правил Рис. 2.22. Примеры для последователь- t t г а _ g , a r e> ностей шагов алгоритма 2.3: a a — граф доступов для последовательно- сти действий grantQ), takeQ); б — граф до- ( а ступов для последовательности действий ®-*— -•---- takeQ), grantQ б 49
spyQ, findf), postQ, passQ появятся новые ребра вида (tz, b, p), где {a, b} c {x, y, z} и p e {r, w}, то занести их в конец списка L и множество F. Шаг 6. Пока список L не пуст, перейти на шаг 4. Теорема 2.11. Алгоритм 2.4 корректно строит де-факто-замыка- ние графа доступов и информационных потоков. Доказательство. Алгоритм 2.4 аналогичен алгоритму 2.2. Следо- вательно, доказательство теоремы 2.11 аналогично доказательству теоремы 2.9. Анализ путей распространения прав доступа и информационных потоков Можно рассмотреть проблему поиска и анализа информаци- онных потоков в ином свете. Допустим, факт нежелательной пе- редачи прав или информации уже состоялся. Каков наиболее ве- роятный путь его осуществления? В классической модели Take- Grant не дается прямого ответа на этот вопрос. Можно говорить, что есть возможность передачи прав доступа или возникновения информационного потока, но нельзя определить, какой путь при этом использовался. Рассмотрим подходы к решению задачи определения возмож- ных путей передачи прав доступа или возникновения информа- ционных потоков. Предположим, что чем больше узлов на пути между вершина- ми, по которому произошла передача прав доступа или возник информационный поток, тем меньше вероятность использования этого пути. Рассмотрим пример, представленный на рис. 2.23. Интуитивно ясно, что наиболее вероятный путь передачи информации от субъекта z к субъекту х лежит через объект у. В то же время нару- шитель для большей скрытности может специально использовать Рис. 2.23. Пути возникновения ин- формационного потока на запись от z к х более длинный путь через а, Ь, с. Особенно, если предположить, что информация в объекте у кон- тролируется администратором безопасности системы. Рассмотрим другой пример. Какой из двух путей возникно- вения информационного потока, представленных на рис. 2.24, бо- лее вероятный? Путь, представленный на рис. 24, в, реализуется за счет актив- ных действий субъекта х, заин- 50
л 7* Л 7* л т* •---------------- а г б в Рис. 2.24. Исходный граф (а) и пути (б, в) возникновения ин- формационного потока на чте- ние от х к у тересованного в возникновении ин- формационного потока. По этой причине наиболее вероятным, как йравило, будет именно этот путь. Таким образом, в расширенную модель Take-Grant можно включить понятие вероятности или стоимо- сти пути передачи прав доступа или информации. Путям меньшей сто- имости соответствует наибольшая вероятность, и их надо исследовать в первую очередь. Есть два основ- ных подхода к определению сто- имости путей. Первый подход основан на присваивании стоимости ребрам графа доступов, находящимся на пути передачи прав доступа или воз- никновения информационного потока. В этом случае стоимость ребра определяется в зависимости от прав доступа, которыми оно поме- чено, а стоимость пути есть сумма стоимостей пройденных ребер. Второй подход основан на присваивании стоимости каж- дому используемому де-юре или де-факто правилу. Стоимость пра- вила при этом может быть выбрана исходя из условий функцио- нирования системы Take-Grant и может: • являться константой; • зависеть от специфики правила; • зависеть от числа и состава участников при применении пра- вила; • зависеть от степени требуемого взаимодействия субъектов. Стоимость пути в этом случае определяется как сумма стоимо- стей примененных правил. 2.2.3. Представление систем Take-Grant системами ХРУ Решение задачи представления систем классической модели Take-Grant системами модели ХРУ позволяет лучше изучить ос- новные свойства двух моделей систем дискреционного разграни- чения доступа. Построим гомоморфизм системы Take-Grant и системы ХРУ. Пусть состояние системы Take-Grant описывается графом G- = (Slg, Otg, Е), a R,g — множество прав доступа системы Take-Grant. Примем для системы ХРУ: R= R,.,:j {own} — множество прав доступа; ,S'= 0= Otg — множество субъектов и объектов системы ХРУ; 51
M\s\x|5| — матрица доступов, где для х, у е Otg, если (х, у, r) е Е, то г е М[х, у], и для всех s е Stg выполняется условие own е Лф, 5]; q = (5, О, М) — состояние системы. Переход системы ХРУ в соответствии с правилами модели Take- Grant осуществляется в результате применения команд пяти ви- дов для каждого а = rk} с Rlg. 1. command take_a(x, у, z): if (own e M[x, x]) and (t e M[x, y]) and (fj e M[y,z]) and ... and (rk e M[y, z]) then «внести» право г, в М\х, z]; «внести» право гк в М[х, ф endif end. 2. command grant__a(x, у, z): if (own e M[x, x]) and (g e M[x, y]) and (r} e M\x, z]) and ... and (rk e M\x, z]) then «внести» право п в М[у, z]; «внести» право гк в М\у, z]; endif end. 3. command create_object_a.(x, у): if (own e M\x, x]) then «создать» субъект у; «внести» право Г\ в М[х, у]; «внести» право гк в М[х, у]; endif end. 4. command create_subject_a.(x, у): if (own e M[x, x]) then «создать» субъект у; «внести» право own в М[у, у]; «внести» право п в М[х, у]; «внести» право гк в М[х, у]; endif end. 5. command remove_a(x, у): if (own e M[x, x]) then «удалить» право ц из М[х, у]; «удалить» право гк из М[х, у]; endif end. 52
Контрольные вопросы 1. Для команды C(qh, aia) = (qit, ah, I) машины Тьюринга выпишите две представляющие ее команды модели ХРУ. 2. Как с использованием команд и элементов описания системы ХРУ можно реализовать команду, содержащую в условии проверку на отсутствие в ячейке матрицы доступов некоторого права доступа? 3. Постройте граф создания для систем МТМД со следующими на- борами команд: a) command ol(x: а, у : р, z : р) «создать» субъект х с типом а; end; command а2(х;а, у:у, z:p, 5:8) «создать» объект у с типом у; «создать» субъект s с типом 8; end; command a3(x:s, у:8, z:P, s:y, o:8) «создать» субъект о с типом 8; «создать» объект х с типом е; end; б) command al(x:a, у:р, z:y) «создать» субъект у с типом р; «создать» субъект х с типом а; end; command д2(х:р, у:8, з:8) «создать» субъект z с типом 8; end; command аЗ(х:г, у: a, z:8) «создать» объект х с типом а; end. Являются ли данные системы ациклическими? 4. Покажите, что для общего случая систем ХРУ не существует ал- горитма проверки возможности утечки права доступа г для заданной пары: субъект s и объект о. 5. Как произвольную систему ТМД представить системой ХРУ? 6. Как по аналогии с определением безопасного начального состоя- ния в модели ХРУ и с использованием определения предиката «возможен доступ»() определить безопасное начальное состояние в модели Take-Grantl 1. Как представить систему, построенную на основе модели Take- Grant, системой ТМД? При каких условиях система Take-Grant может быть представлена системой АМТМД? 8. Рассмотрите подробнее доказательство замечания в подразд. 2.2.1. 9. Являются ли мостами следующие графы доступов? ? ? Кг. а б 53
be г 10. Истинен ли предикат «возможен доступ»(о., х, у, Go) для следу- ющего графа доступов <70? (Решение задачи должно быть получено путем проверки выполнения условий теоремы 2.6.) Go 11. Истинен ли предикат «возможна запись»(х, у, Go) для следующе- го графа доступов Go? (Решение задачи должно быть получено двумя способами: путем проверки выполнения условий теоремы 2.8 и путем непосредственного применения де-юре и де-факто правил.) <?о 12. Как реализовать информационный поток на чтение от х к у и от у к х для систем со следующими графами доступов? , t 5 х ух у а б
ГЛАВА 3 МОДЕЛИ СИСТЕМ МАНДАТНОГО РАЗГРАНИЧЕНИЯ ДОСТУПА 3.1. МОДЕЛЬ БЕЛЛА—ЛАПАДУЛА 3.1.1. Классическая модель Белла—ЛаПадула Классическая модель Белла—ЛаПадула была описана в 1975 г. [9] и в настоящее время является основной моделью, предназна- ченной для анализа систем защиты, реализующих мандатное раз- граничение доступа. В классической модели Белла —ЛаПадула [6] анализируются условия, при выполнении которых в компьютерной системе не- возможно возникновение информационных потоков от объектов с большим уровнем конфиденциальности к объектам с меньшим уровнем конфиденциальности. Основными элементами классиче- ской модели Белла—ЛаПадула являются: S — множество субъектов; О — множество объектов; R = {read, write, append (доступ на запись в конец объекта), execute} — множество видов доступа и видов прав доступа; В = {Ь с Sx О х А} — множество возможных множеств текущих доступов в системе; (L, <) — решетка уровней конфиденциальности, например: L = = {U (unclassified), С (confidential}, S (secret}, TS (top secret)}, где U< C<S< TS; A/|S| x |0| — матрица доступов, где M[s, о] c R — права доступа субъекта s на объект о; (f, f>, f) е F= Ls х L° х Ls — тройка функций (f, f>, fc), опре- деляющих: f: S -> L — уровень доступа субъекта; f>: О L — уровень конфиденциальности объекта; fp.S^L — текущий уро- вень доступа субъекта, при этом для любого s е S справедливо неравенство f.(s) < f(s); V= В х М х F — множество состояний системы; Q — множество запросов системе; D — множество ответов по запросам, например: D={yes, по, error}; (Fc Q х D х Fx V — множество действий системы, где четвер- ка (q, d, v", v) e (У означает, что система по запросу q с ответом d перешла из состояния v в состояние v*; No = {0, 1, 2, ...} — множество значений времени; 55
X — множество функций х: TVq -> Q, задающих все возможные последовательности запросов к системе; Y— множество функций у. No -> D, задающих все возможные последовательности ответов системы по запросам; Z — множество функций z: No V, задающих все возможные последовательности состояний системы. Определение 3.1. 2(0, D, IF'. ~п) сХх Yx Zназывается систе- мой, если для каждого (х, у, z) е E(Q, D, W, z0) выполняется условие: для t е N$, (х(, у„ zr+1, z() е РК, где z0 — начальное состо- яние системы. При этом каждый набор (х, у, z) е 2(0, Д ИС, г0) называется реализацией системы, a (xr, yt, z)+b zt) е W называется действием системы в момент времени Z е No. Замечание. В классической модели Белла—ЛаПадула рассмат- риваются следующие запросы, входящие в множество Q. 1. Запросы изменения множества текущих доступов Ь. 2. Запросы изменения функций f 3. Запросы изменения текущей структуры разрешения доступа в матрице М. Следующий список описывает изменения каждого элемента состояния системы в данной модели. Конкретное решение по за- просу включает в себя возможность производить следующие из- менения в состоянии системы. I. Изменение текущего доступа: • получить доступ (добавить тройку (субъект, объект, вид дос- тупа) в текущее множество &); • отменить доступ (удалить тройку из текущего множества Ь). 2. Изменение функций уровня конфиденциальности: • изменить уровень конфиденциальности объекта; • изменить текущий уровень конфиденциальности субъекта. 3. Изменение разрешения доступа: • дать разрешение на доступ (добавить право доступа в соответ- ствующий элемент матрицы доступов М); • отменить разрешение на доступ (удалить право доступа из соответствующего элемента матрицы доступов М). Безопасность системы определяется с помощью трех свойств: « — свойства простой безопасности (simple security); * — свойства звезда; ds — свойства дискреционной безопасности (discretionary security). Определение 3.2. Доступ (5, о, г) е S х О х R обладает ss-свой- ством относительно f = (fs, fo, f.) e F, если выполняется одно из условий: • re {execute, append}; • re {read, write} nfs(s) >fo(o). Определение 3.3. Состояние системы (b, M,f) e Кобладает ss- свойством, если каждый элемент (s, о, r) e b обладает .«-свой- ством относительно f 56
Определение 3.4. Доступ ($, о, г) е S х О х R обладает ‘-свой- ством относительно /= (fs, f„, f.) е F, если выполняется одно из условий: • г = execute', • r= append и f0(p) • r= readnfc(s)>f0(p\, • г-write nfc(s) =f0(p). Определение 3.5. Состояние системы (6, M, f) е V обладает ’-свойством, если каждый элемент (s, о, г) е b обладает ’-свой- ством относительно f. Определение 3.6. Состояние системы (b, М, f) <= V обладает ’-свойством относительно подмножества S' с S, если каждый эле- мент (5, о, г) е Ь, где s е S', обладает ’-свойством относительно f При этом 5\5' называется множеством доверенных субъектов, т.е. субъектов, имеющих право нарушать требования ‘-свойства. Определение 3.7. Состояние системы (b, М, f) е V обладает ^-свойством, если для каждого элемента (s, о, г) е b выполняет- ся условие г е M[s, о]. Определение 3.8. Состояние системы (b, М, f) называется бе- зопасным, если оно обладает ’-свойством относительно S', ss~ свойством и ^-свойством. Определение 3.9. Реализация системы (х, у, z) <= 2 (Q, D, И7, z0) обладает 55-свойством (’-свойством, А-свойством), если в после- довательности (z0, zj, ...) каждое состояние обладает 55-свойством (’-СВОЙСТВОМ, (^-СВОЙСТВОМ). Определение 3.10. Система 2(2, D, W, zQ) обладает 55-свой- ством (’-свойством, ^-свойством), если каждая ее реализация обладает 55-свойством (’-свойством, А-свойством). Определение 3.11. Система 2(2, Д W, z0) называется безо- пасной, если она обладает 55-свойством, ’-свойством, ^-свой- ством одновременно. Прокомментируем введенные выше свойства безопасности си- стемы. Во-первых, из обладания доступом ’-свойством относительно f следует обладание этим доступом 55-свойством относительно f Во-вторых, из обладания системой 55-свойством следует, что в модели Белла—ЛаПадула выполняется запрет на чтение вверх, требуемый мандатной политикой безопасности. Кроме того, 55-свойство не допускает модификацию с использованием досту- па write, если/.(5) <Л(0)- Таким образом, функция fs(s) определя- ет для субъекта 5 верхний уровень конфиденциальности объектов, к которым он потенциально может получить доступ read или write. В-третьих, поясним ’-свойство. Если субъект 5 может понизить свой текущий доступ до fc(s) =f0(p), то он может получить доступ write на объект о, но не доступ read на объекты о', чей уровень fg(o') > Хотя при этом, возможно, справедливо неравенство 57
o' Fs(s)=fo(o')=High ? Fc(s)=f0(o)=Low write Рис. 3.1. Иллюстрация ‘-свой- ства /(5) S f>(p') и в каких-то других со- стояниях системы субъект s может получить доступ read на объект о'. Та- ким образом, ‘-свойство исключает появление в системе неблагоприятно- го информационного потока сверху вниз и соответствует требованиям мандатной политики безопасности о (рис. 3.1). Проверка безопасности системы по определению в большин- стве случаев не может быть реализована на практике в связи с тем, что при этом требуется проверка безопасности всех реализа- ций системы, а их бесконечно много. Следовательно, необходимо определить и обосновать иные условия безопасности системы, которые можно проверять на практике. В классической модели Белла —ЛаПадула эти условия определяются для множества дей- ствий системы IV. Теорема 3.1 (Л1). Система 2(0, Д, 1И, г0) обладает ^-свой- ством для любого начального состояния z0, обладающего .«'-свой- ством, тогда и только тогда, когда для каждого действия (q, d, (b*, (b, M, /)) e W выполняются условия 1, 2. Условие 1. Каждый доступ (5, о, /•) е b*\b обладает 55-свойством относительно f. Условие 2. Если (5, о, г) е b и не обладает ^-свойством относи- тельно Д, ТО (5, о, г) <£ Ь*. Доказательство. Сначала докажем достаточность условий. Достаточность. Пусть выполнены условия 1 и 2 и пусть (х, у, Д е 2(0, D, W, л0) — произвольная реализация системы. Тогда И, (&r+i, М(+1,/+1), (Д М,/)) е где zt+i = (bt+b = (b„ M„ f) для t e Nq. Для (5, o, /-) e bt+\ выполняется одно из условий: или (5, о, /-) е е bt4 \\bt, или (5, о, г) е bt. Из условия 1 следует, что состояние системы z,+ | пополнилось доступами, которые обладают 55-свой- ством относительно /*. Из условия 2 следует, что доступы из bt, которые не обладают 55-свойством относительно Д, не входят в bt+l. Следовательно, каждый доступ (5, о, г) е bl+l обладает 55- свойством относительно Д и по определению состояние zI+[ об- ладает 55-свойством для t е Nq. Так как по условию и состояние г() обладает 55-свойством, то выбранная произвольная реализация (х, у, z) также обладает 55-свойством. Достаточность теоремы до- казана. Необходимость. Пусть система 2 (0, 2), W, г0) обладает 55-свой- ством. Будем считать, что в множество W входят только те дей- ствия системы, которые встречаются в ее реализациях. Тогда для каждого (q, d, (b*, М*, /’), (b, М, /)) е Ж существует реализация (х, у, z) е 2(0, Д, W, z0) и существует t е No: (q, d, (b*, M', /*), 58
(b, M, /)) = (xr, yt, zl+b zt). Так как реализация системы (х, у, z) обладает 55-свойством, то и состояние z,+ l = (b*, М*, Д) обладает 55-свойством по определению. Следовательно, условия 1 и 2 вы- полняются. Необходимость теоремы доказана. Теорема 3.2 (А2). Система 2(2, Д JK z0) обладает ‘-свой- ством относительно 5' с .S для любого начального состояния z0, обладающего ’-свойством относительно S', тогда и только тогда, когда для каждого действия (q, d, (b*, М*, /*), (b, М, /)) е W выполняются условия 1 и 2. Условие 1. Для s е S' доступ (s, о, г) е Ь*\Ь обладает ‘-свой- ством относительно /*. Условие 2. Для 5 е S', если доступ (5, о, г) е b и не обладает ‘-свойством относительно f, (5, о, г) <£ Ь". Доказательство. Доказательство осуществляется аналогично доказательству теоремы 3.1. Теорема 3.3 (АЗ). Система 2(2, Д W, zQ) обладает Л-свой- ством для любого начального состояния z0, обладающего Л-свой- ством, тогда и только тогда, когда для каждого действия (q, d, (b*, М*, f), (b, M, /)) e W выполняются условия 1 и 2. Условие 1. Для каждого (5, о, г) е b*\b выполняется условие г е М*[5, о]; Условие 2. Если доступ (5, о, г) е b и г £ ЛГ[5, о], то (5, о, г) <£. b*. Доказательство. Доказательство осуществляется аналогично доказательству теоремы 3.1. Теорема 3.4 (базовая теорема безопасности (БТБ)). Система 2(2, Д W, г0) безопасна для безопасного з0 тогда и только тог- да, когда множество действий системы W удовлетворяет услови- ям теорем 3.1 — 3.3. Доказательство. Базовая теорема безопасности следует из тео- рем 3.1 — 3.3. Описанная классическая модель Белла—ЛаПадула предостав- ляет общий подход к построению систем, реализующих мандат- ную политику безопасности. В модели определяется, какими свой- ствами должны обладать состояния и действия системы, чтобы система была безопасной согласно данным определениям. В моде- ли не определяется точный порядок действий системы разграни- чения доступа по запросам на доступ субъектов к объектам. Пример 3.1. Пусть субъект 5 запрашивает доступ read на объект о' (см. рис. 3.1). В данной ситуации система может выбрать один из двух возможных ответов по запросу. 1. Запретить субъекту 5 запрашиваемый им доступ read на объект о'. 2. Закрыть доступ write субъекта 5 на объект о. Повысить теку- щий уровень конфиденциальности fc(s) до High. Разрешить субъекту 5 запрашиваемый им доступ read на объект о'. 59
Каждый из описанных путей соответствует требованиям безо- пасности модели Белла—ЛаПадула. В реальных системах возможны более сложные ситуации, чем ситуация, описанная в примере 3.1. Кроме того, возможно исполь- зование в системе каких-то других видов доступа субъектов к объек- там, которые потребуют дополнительного определения свойств безопасности, что не всегда легко сделать. В связи с этим большое значение имеет корректное определение свойств безопасности. 3.1.2. Пример некорректного определения свойств безопасности При использовании классической модели Белла ^-ЛаПадула важно учитывать тот факт, что в ней отсутствует логическая увяз- ка условий выполнения системой свойств безопасности, данных в их определениях, с заложенными в модель условиями их провер- ки, необходимость и достаточность которых доказывается в тео- реме 3.4. Приведем пример некорректного определения основно- го свойства безопасности в модели Белла —ЛаПадула. Вместо ‘-свойства используем абсурдное с точки зрения здравого смысла "-свойство. Однако при этом не возникает никаких противоречий в логике доказательства теорем, определяющих условия проверки безопасности системы. Определение 3.12. Доступ (s, о, г) е S х О х R обладает "-свой- ством относительно /= (f, f>, f) е F, если выполняется одно из условий: » г g {read, append, execute}-, • r= write vtfc{s) >f0(p). Определение 3.13. Состояние системы (b, M, f) e И обладает "-свойством, если каждый доступ ($, о, г) е b обладает "-свой- ством относительно f Определение 3.14. Состояние системы (b, M,f) е Сказывается "-безопасным, если обладает ss-свойством, "-свойством, ds-свой- ством одновременно. Определение 3.15. Реализация (х, у, z) системы 2(2, А Ж, z0) обладает "-свойством, если в последовательности (z0, ...) каж- дое состояние обладает "-свойством. Определение 3.16. Система 2(2, Д 20) обладает "-свой- ством, если каждая ее реализация обладает "-свойством. Определение 3.17. Система 2(2, О, W, z0) называется "-безо- пасной, если она обладает ss-свойством, "-свойством, ds-свой- ством одновременно. Теорема 3.5. Система 2(2, Д z0) обладает "-свойством для любого начального состояния z0, обладающего "-свойством, 60
тогда и только тогда, когда для каждого (<7, d, (b*, (b, М, /)) e W выполняются условия 1 и 2. Условие 1. Каждый доступ (s, о, г) е b*\b обладает "-свойством относительно /*. Условие 2. Если доступ (s, о, г) е b и не обладает "-свойством относительно f*, то (s, о, г) & Ь". Доказательство. Доказательство осуществляется аналогично доказательству теоремы 3.1. Теорема 3.6. Система £(£?, D, W, z0) "-безопасна для z0 "-безопасного состояния тогда и только тогда, когда множество действий системы Ж удовлетворяет условиям теорем 3.1, 3.3, 3.5. Доказательство. Данная теорема следует из теорем 3.1, 3.3, 3.5. 3.1.3. Политика low-watermark в модели Белла—ЛаПадула Среди проблем использования модели Белла—ЛаПадула осо- бо выделяется проблема отсутствия в модели определения поряд- ка действий системы при переходе из состояния в состояние. Дан- ная проблема иллюстрируется на примере политики low-watermark [2, 11]. Политика low-watermark реализуется в рассматриваемой далее модели мандатной политики целостности информации Биба. В то же время используемый в политике low-watermark подход к опре- делению правил переходов системы из состояния в состояние может быть использован для демонстрации уязвимости определе- ний безопасности в модели Белла —ЛаПадула. При реализации политики low-watermark в модели Белла—Ла- Падула предлагается порядок безопасного функционирования системы в случае, когда по запросу субъекта ему всегда необходи- мо предоставлять доступ на запись в объект. Основными элементами реализации политики low- watermark в модели Белла—ЛаПадула являются: 5 — множество субъектов системы; О — множество объектов системы; R= {read, write} — множество видов и прав доступа; В= {Ь с 5 х О х R} — множество возможных множеств текущих доступов в системе; (L, <) — решетка уровней конфиденциальности; (4-, Д) e F= Ls х L° — двойка функций (/., Д), определяющих: Д-. S L — уровень доступа субъекта; Д-. О -> L — уровень конфи- денциальности объекта; V— В х F — множество состояний системы; ОР= {Read(), IVriteO, Reset()} — множество операций (табл. 3.1). 61
Таблица 3.1. Условия и результаты выполнения операций Операция Условия выполнения Результат выполнения Read(s, о) ш Г=/; b‘ = Ь о {(у, о, read)} Writers, о) ш f>.kfo\o)=ffS\, для каждого о' ф о справед- ливо равенство f*(p') = /До'); если ff(o) < f0(p), то содержи- мое о очищается; b* = b и {(5, о, read)} Reset(s, о) Ш > f0(.d) f*-fs', b* = tr, для каждого o' ф о справед- ливо равенство f,*(o') =f>(o'); f*(o) = ® L (максимальный уровень конфиденциальности) W g ОР х V х V — множество действий системы, где тройка (рр, (Jf, f ), (b, /)) е W означает, что система в результате вы- полнения операции op е ОР перешла из состояния (6, /) в со- стояние (/>*, /’). В результате выполнения операции Writef) уровень конфиден- циальности объекта понижается до уровня доступа субъекта. Если это понижение реально происходит, то вся информация в объек- те стирается. В результате выполнения операции Resets уровень конфиденциальности объекта становится максимально возмож- ным в системе. При этом в системах, в которых несколько субъек- тов одновременно могут запрашивать доступ к одному и тому же объекту, может потребоваться уточнение порядка использования операций IVriteQ и Reset f). Дадим определения 55-свойства и ‘-свойства для реализации политики low-watermark в модели Белла—ЛаПадула. Определение 3.18. Доступ (5, о, г) е Sx О х R обладает 55-свой- ством относительно f е F, если г е {read, write} и fs(s) > fo{o). Определение 3.19. Доступ (s, о, г) е S х О х R обладает ‘-свой- ством относительно f е F, если он удовлетворяет одному из усло- вий: • г = read и f(s) >. • r= write и fs(s) = f0(p). Определение 3.20. Состояние системы (b, f) e V обладает 55- свойством (‘-свойством), если каждый элемент (5, о, г) е b обла- дает 55-свойством (‘-свойством) относительно f Определение 3.21. Состояние системы называется безопасным, если оно обладает 55-свойством и ‘-свойством одновременно. 62
High ® Writers, о) write Read(s, o) write, read Low , e------- J S 0 SO Рис. 3.2. Реализация неблагоприятного информационного потока Лемма 3.1. Операции ReadQ, WriteQ, ResetQ переводят систе- му из безопасного состояния в безопасное состояние. Доказательство. Из описания операций ReadQ), WriteQ, Reset() следует, что в результате их выполнения последующее состояние системы обладает 55-свойством и ’-свойством, если исходное со- стояние обладало 55-свойством и ‘-свойством. Лемма доказана. Заметим, что условие стирания информации при выполнении операции WriteO является существенным. Хотя при его отсутствии лемма 1 формально останется истинной. Однако в этом случае система не будет безопасной, так как возможно возникновение неблагоприятного информационного потока. Например, субъект, запрашивая доступ на запись в объект, понижает его уровень кон- фиденциальности, после чего он может запросить доступ на чте- ние из этого объекта (рис. 3.2). Приведенный пример еще раз демонстрирует уязвимость опре- делений безопасности в классической модели Белла—ЛаПадула. 3.1.4. Безопасность переходов Как уже было отмечено, в классической модели Белла —ЛаПа- дула не описывается точный порядок действий системы при пе- реходе из состояния в состояние. Частично этот недостаток устра- нен в [19], где предлагается оригинальное определение свойств безопасности модели Белла—ЛаПадула с использованием вместо множества действий системы функции переходов. При рассмотрении этого подхода будем считать R = {read, write} и для каждого s <= S справедливо равенство/.(5) -fc(s). Исключим из рассмотрения матрицу доступов М и множество ответов систе- мы D. Вместо множества действий системы W используем функ- цию переходов: Т: Q х V -> V, где T(q, и) = v* — переход из состояния v по команде q в состояние v*. В этом случае будем обозначать систему через £(И Т, z0). Далее переопределим 55-свойство и ‘-свойство. Так как основ- ные ограничения на доступ write следуют из ‘-свойства, то в 55-свойстве зададим ограничения только на read. Определение 3.22. Доступ (5, о, г) е Ъ обладает 55-свойством относительно /, если выполняется одно из условий: 63
• r= write', • r=readvLfs(s)>f/o). Определение 3.23. Доступ (s, x, r) e b обладает ‘-свойством относительно /, если выполняется одно из условий: • /-= read и не существует у е О: (s, у, write) е b и f0(x) > /0(у); • r = write и не существует у s О\ (5, у, read) е /> и f0(y) > f0(x). Заметим, что в ‘-свойстве не рассматривается уровень досту- па субъекта посредника s. В этом нет необходимости, так как если требовать выполнения ‘-свойства и «-свойства одновременно и считать, что субъект не может накапливать в себе информа- цию, то не возникает противоречий по существу с положения- ми мандатной политики безопасности. Субъект может читать информацию из объектов с уровнем конфиденциальности не выше его уровня доступа, и при этом субъект не может реализовать неблагоприятный информацион- ный поток сверху вниз. По аналогии со свойствами классической модели Белла—Ла- Падула определяются «-свойства и ‘-свойства для состояния, ре- ализации и системы в целом. Теорема 3.7 (A\-RW). Система Х(И, Т, z0) обладает «-свой- ством для любого начального состояния z0, обладающего «-свой- ством, тогда и только тогда, когда функция переходов T(q, v) = v* удовлетворяет условиям 1 и 2. Условие 1. Если доступ (5, о, read) е b*\b, то /*(5) >f*(о). Условие 2. Если доступ (s, о, read) е /? и f*(s) < f*(o), то (s, о, read) <t b*. Доказательство. Доказательство осуществляется аналогично доказательству теоремы 3.1. Теорема 3.8 (A2-RW). Система £ (V, Т, z0) обладает ‘-свой- ством для любого начального состояния z0, обладающего ‘-свой- ством, тогда и только тогда, когда функция переходов T(q, v) = v* удовлетворяет условиям 1 и 2. Условие 1. Если {(5, х, read), (s, у, write)} n (b* \ b) * 0 и {(5, x, read), (s, y, write)} c b*, to f0*(y) >f*(x). Условие 2. Если {(s, x, read), (s, y, write)} c b и /Ду) <f0*(x), то {(5, x, read), (s, y, write)} <x b*. Доказательство. Доказательство осуществляется аналогично доказательству теоремы 3.1. Теорема 3.9 (БТБ-/?И0- Система X(I/, Т, z0) безопасна для безопасного начального состояния z0 тогда и только тогда, когда выполнены условия теорем 3.7 и 3.8. Доказательство. Теорема 3.9 следует из теорем 3.7, 3.8. В данном подходе ‘-свойство определено таким образом, что его смысл — предотвращение возникновения неблагоприятных информационных потоков сверху вниз становится более ясным, чем при использовании функции /() в классической модели Бел- 64
ла—ЛаПадула. В этом заключена основная ценность рассмотрен- ных определений основных свойств безопасности. Далее определим основные свойства безопасности модели Бел- ла—ЛаПадула, используя определения свойств безопасности функ- ции переходов Т(). При этом на Г() накладывается дополнитель- ное ограничение — за один шаг работы системы вносится только одно изменение в одном из параметров, используемом при оп- ределении свойств безопасности, т. е. изменяется на один элемент либо множество текущих доступов, либо одно из значений одной из функций. При этом остальные параметры остаются неизменны- ми. Определение 3.24. Функция переходов T(q, (b, _/)) = (b*, Д) обладает ss-свойством, если выполнены следующие условия: • если (s, о, read) е b*\b, то fs(s) > fo(o) и f = /; • если /(s) * fs*(s), то f* = f0, b* = b, для s' ф s справедливо равенство //s') = fs*(s'), и если (s, о, read) <= b, то f*(s) > fo(o); • если fo(o) * fo*(o), to f* =f, b* = Z>, для o' о справедливо равенство fo(o’) =f*(o'), и если (s, о, read) e b, to fs(s) > f*(o). Определение 3.25. Функция переходов T(q, (b, f)) = (/>*, f) обладает ‘-свойством, если выполнены следующие условия: • если {(s, х, read), (s, у, write)} с b* и {(s, х, read), (s, у, write)} e b, то Ду) >f0(x) n f=f*\ • если Д(у) * Ду), то b = b", f* = fs, для z * у справедливо равенство f0(z) = f*(z), и если {(s, х, read), (s, у, write)} c b, то ДДу) >f0(x), или если {(s, у, read), (s, x, write)} c b, to fo(x) >Д(y). Определение 3.26. Функция переходов T{) безопасна, если она обладает ss-свойством и ‘-свойством. Теорема 3.10 (БТБ-Т). Система S(K, Т, z0) безопасна для бе- зопасного начального состояния z0, если ее функция переходов безопасна. Доказательство. По аналогии с доказательством теоремы 3.1 необходимо показать, что если функция переходов T(q, (b, /)) = = (b*, f ) безопасна, то состояние (Z>‘, f) безопасно по условиям определений 3.22 и 3.23. Этот факт следует из условий определе- ний 3.24 и 3.25. Таким образом, при безопасном начальном состоянии любая реализация системы, а следовательно, и система в целом будут безопасными. Теорема доказана. В рамках изучения определений безопасности функции перехо- дов можно рассмотреть вопрос о возможностях смены уровня кон- фиденциальности субъектов и объектов. Примем следующие обо- значения: • для х е 5, с/х) с 5- множество субъектов, имеющих право менять уровень доступа субъекта х; • для у е О, со(у) с 5- множество субъектов, имеющих право менять уровень конфиденциальности объекта у. 3 Девянин 65
В этом случае в параметры функции переходов необходимо вне- сти еще один параметр, определяющий субъекта, дающего запрос системе. Определение 3.27. Функция переходов T(s, q, (b, f)) = (b* f) безопасна в смысле администрирования, если выполнены следу- ющие условия: • если f*(x) * f(x), то 5 е с/х); • если ff(y) *fo(y), то 5 е с0(у). Таким образом, задавая множества с5(х) и с0(у), можно рас- сматривать случаи, когда все субъекты могут менять уровни кон- фиденциальности объектов и уровни доступа субъектов; никто не может или только системный администратор может менять уров- ни конфиденциальности объектов и уровни доступа субъектов. 3.1.5. Модель мандатной политики целостности информации Биба Классическая модель Белла—ЛаПадула, в первую очередь, ори- ентирована на обеспечение защиты от угрозы конфиденциально- сти информации. В то же время ее математическая основа исполь- зуется в модели Биба [И], реализующей мандатную политику целостности. В модели Биба рассматриваются следующие доступы субъектов на объекты и субъекты: • modify — доступ субъекта на модификацию объекта (аналог доступа write в модели Белла—ЛаПадула); • invoke — доступ на обращение субъекта к субъекту; • observe — доступ на чтение субъекта к объекту (аналог досту- па read в модели Белла—ЛаПадула); • execute — доступ на выполнение. Основными элементами модели Биба являются: 5 — множество субъектов; О — множество объектов; (LI, <) — решетка уровней целостности, например: LI ={I (im- portant'), VI (very important), С (crucial)}, где I < VI < С ; RI= {modify, invoke, observe, execute} — множество видов досту- па и видов прав доступа; B={bc,S х Ox RI} — множество возможных множеств текущих доступов в системе; (is, i0, ic) е I = LIS x LI° x LP — тройка функций (is, io, ic), определяющих: is\ S-> LI — уровень целостности субъекта; i0: О -> -» LI — уровень целостности объекта; zc: 5 -» LI — текущий уро- вень целостности субъекта; при этом для каждого s е S выполня- ется условие ic(s) < is(s); V= В х I — множество состояний системы. 66
Элементы модели, необходимые для реализации дискрецион- ной политики безопасности в модели Биба, не отличаются от аналогичных элементов в модели Белла —ЛаПадула и рассматри- ваться не будут. Так же как в классической модели Белла —ЛаПа- дула, в модели Биба не рассматриваются вопросы администриро- вания уровней целостности субъектов и объектов. В отличие от требований безопасности классической модели Белла—ЛаПадула требования безопасности в модели Биба явля- ются динамическими, для их описания используются элементы текущего и последующего состояний системы. Определение 3.28. Доступ ($, о, г) е Sx О х RI соответствует тре- бованиям политики low-watermark для субъектов относительно i = = (is, io, ic) e А если выполняется одно из условий: • r = execute-, • г = modify и ifs) > ifo); • г = invoke, о е 5 и ifs) > ifo); • r~ observe и после получения доступа в последующем состоя- нии системы ifs)' = ifs) ® ifo), где ® — наибольшая нижняя граница элементов решетки (LI, <); ifs)' — значение функции текущего уровня целостности субъекта в последующем состоянии системы. Определение 3.29. Доступ (s, о, г) & S х О х RI соответствует требованиям политики low-watermark для объектов относительно i = (is, i0, ic) e 4 если выполняется одно из условий: • г е {execute, invoke, observe}-, • r= modify и после получения доступа в последующем состо- янии системы ifo)' = ifs) ® ifo), где ifo)' — значение функции уровня целостности объекта в последующем состоянии системы. Динамическое изменение функций уровня целостности субъек- та или объекта может потребовать уточнения требований поли- тики low-watermark. Например, если в системе допускается пода- ча субъектом одновременно нескольких запросов на доступ, то результат их выполнения может зависеть от последовательности выполнения запросов. Если субъект запросил одновременно до- ступы observe и modify, то предоставление в первую очередь дос- тупа observe может привести к понижению уровня целостности субъекта, а следовательно, может сделать невозможным получе- ние им доступа modify. Кроме того, понижение уровня целостно- сти объекта при доступе modify к нему может привести к моди- фикации информации с высоким уровнем целостности субъек- том с низким уровнем целостности. Аналогичный пример для случая понижения уровня конфиденциальности объекта анали- зируется при описании политики low-watermark в модели Бел- ла—ЛаПадула. Возможным путем уточнения политики low-watermark является выполнение требования неизменности значений функций (is, i0, 67
if) для всех субъектов и объектов во всех состояниях системы. В этом случае всегда справедливо равенство is = ic. Определение 3.30. Доступ (5, о, г) е 5 х О х RI соответствует требованиям политики low-watermark при неизменных значениях функций (/„ z0), если выполняется одно из условий: • г е {execute, observe}', • r= modify и if s') > if of • r = invoke, о e 5 и if s') > ifo). Выполнение требований политики low-watermark при неизмен- ных значениях функций (is, i0) позволяет предотвратить модифи- кацию субъектом информации в объекте с более высоким или не сравнимым с субъектом уровнем целостности. В то же время от- сутствие ограничений на доступ observe может позволить субъекту реализовать информационный поток от объекта с меньшим уров- нем целостности в объект с большим уровнем целостности. Для предотвращения угрозы возникновения информационных пото- ков данного вида возможно использование строгой политики low- watermark при неизменных значениях функций (is, i0). Определение 3.31. Доступ (s, о, г) е S х О х RI соответствует требованиям строгой политики low-watermark при неизменных зна- чениях функций (4, if), если выполняется одно из условий: • г = execute', • r= modify и ifs) > i0(o); • r= invoke, о e 5 и ifs) > ifo); • r= observe и 4(s) < ifo). По аналогии с классической моделью Белла—ЛаПадула в мо- дели Биба можно определить требования политики low-watermark для состояния и системы в целом. После чего можно сформулиро- вать и доказать для требований политики low-watermark теоремы, аналогичные теоремам 3.1 — 3.4 классической модели Белла—Ла- Падула. 3.2. МОДЕЛЬ СИСТЕМ ВОЕННЫХ СООБЩЕНИЙ 3.2.1. Общие положения и основные понятия Построенная на основе модели Белла —ЛаПадула модель сис- тем военных сообщений (СВС) была предложена в 1984 г. [16]. Она ориентирована, в первую очередь, на системы приема, пере- дачи и обработки почтовых сообщений, реализующих мандатную политику безопасности. В то же время предложенные в модели СВС подходы к определению основных свойств безопасности мо- гут быть использованы для построения и анализа произвольных систем мандатного разграничения доступа. 68
Определения основных понятий, используемых при описании свойств модели СВС, либо давались в модели Белла—ЛаПадула, либо их смысл интуитивно ясен, например: пользователь, иден- тификатор пользователя, уровни конфиденциальности, доступ, множество доступов. Дополнительно даются следующие опреде- ления. Определение 3.32. Роль пользователя — совокупность прав пользователя, определяемая характером выполняемых им действий в системе. Пользователь может менять свои роли во время работы в системе. Определение 3.33. Объект — это одноуровневый блок инфор- мации. Объект — минимальный классифицируемый блок инфор- мации, он не содержит других объектов, т. е. не является много- уровневым. Определение 3.34. Контейнер — это многоуровневая информа- ционная структура. Контейнер может содержать объекты и другие контейнеры. Определение 3.35. Сущность — объект или контейнер. Определение 3.36. Способ доступа к содержимому контейнера (CCR) — атрибут контейнеров, определяющий порядок обраще- ния к его содержимому (с учетом уровня конфиденциальности контейнера или с учетом только уровня конфиденциальности сущ- ности контейнера, к которой осуществляется обращение). Определение 3.37. Идентификатор сущности — уникальный номер или имя сущности. Определение 3.38. Непосредственная ссылка — ссылка на сущ- ность, совпадающая с идентификатором сущности. Определение 3.39. Косвенная ссылка — ссылка на сущность, являющуюся частью контейнера, через последовательность двух и более ссылок на сущности, в которой только первая ссылка есть идентификатор (непосредственная ссылка). Определение 3.40. Операция — функция, которая может быть выполнена над сущностями. В СВС основными операциями над сообщениями являются: • операции над входящими сообщениями; • операции над исходящими сообщениями; • операции хранения и получения сообщений. Определение 3.41. Сообщение — особый тип сущностей, име- ющийся в СВС. В большинстве случаев сообщение есть контей- нер, хотя в некоторых системах, только получающих сообщения, оно может быть и объектом. Каждое сообщение как контейнер содержит несколько сущностей, описывающих его параметры, например: кому (to), от кого (from), информация (info), дата-вре- мя-группа (date-time-group), текст (text), безопасность (security). В модели СВС описываются четыре постулата безопасности, выполнение которых необходимо для ее корректной работы. 69
1. Системный офицер безопасности корректно разрешает дос- туп пользователей к сущностям и назначает уровни конфиденци- альности устройств и множества ролей. 2. Пользователь назначает или переназначает корректные уров- ни конфиденциальности сущностей, когда создает или редакти- рует в них информацию. 3. Пользователь корректно направляет сообщения по адреса- там и определяет множества доступа к созданным им самим сущ- ностям. 4. Пользователь правильно определяет атрибут CCR контейнеров. 3.2.2. Неформальное описание модели СВС Для лучшего пояснения свойств модели СВС ее описание со- ставлено из двух частей. В первой части представлены основные свойства модели, описанные неформально. Во второй части свой- ства модели СВС выражены с использованием математической модели. Всего в модели СВС описываются десять неформальных свойств. 1. Авторизация. Пользователь может осуществить операцию над сущностями только в том случае, если идентификатор пользова- теля или его роль присутствуют во множестве доступов сущности вместе с данной операцией и правильными индексами операндов сущностей. 2. Иерархия уровней конфиденциальности. Уровень конфиденци- альности любого контейнера, по крайней мере, не ниже макси- мума уровней конфиденциальности сущностей, в нем содержа- щихся. 3. Безопасный перенос информации. Информация, извлекаемая из объекта, наследует уровень конфиденциальности объекта. Ин- формация, внедряемая в объект, не должна иметь уровень кон- фиденциальности выше, чем сам объект. 4. Безопасный просмотр. Пользователь может просматривать (на некотором устройстве вывода) сущность с уровнем конфиденци- альности не выше уровня доступа пользователя и уровня конфи- денциальности устройства вывода. 5. Доступ к сущностям с атрибутом CCR. Пользователь может иметь доступ косвенно к сущностям контейнера с атрибутом CCR только в том случае, если пользователь имеет уровень доступа не ниже, чем уровень конфиденциальности контейнера. 6. Доступ по косвенной ссылке. Пользователь может использо- вать идентификатор контейнера, чтобы получить через него кос- венную ссылку на сущность только в том случае, если он авто- ризован для просмотра этой сущности с использованием этой ссылки. 70
7. Требования пометки вывода. Любая сущность, просматрива- емая пользователем, должна быть помечена ее уровнем конфи- денциальности. 8. Определение доступов, множества ролей, уровней устройств. Только пользователь с ролью «системный офицер безопасности» может определять права доступа и множество ролей пользовате- ля, а также уровень конфиденциальности устройств вывода ин- формации. Выбор роли из множества авторизованных ролей пользо- вателя может быть осуществлен только самим пользователем или пользователем с ролью «системный офицер безопасности». 9. Безопасное понижение уровня конфиденциальности. Никакой уровень конфиденциальности не может быть понижен, за исклю- чением тех случаев, когда понижение выполняет пользователь с соответствующей ролью. 10. Безопасное отправление сообщений. Никакое черновое сооб- щение не может быть отправлено, за исключением случая, когда это делает пользователь с ролью «отправитель». 3.2.3. Формальное описание модели СВС Безопасное состояние Система модели СВС представляется конечным автоматом. Ос- новными элементами модели являются: ОР — множество операций; (L, <) — решетка уровней конфиденциальности; UI — множество идентификаторов пользователей; RL — множество ролей пользователей; US — множество пользователей. Для любого пользователя и е е US, CU(u) е L — уровень доступа пользователя, R(u) a RL — множество его авторизированных ролей, RO(u) с RL — текущее множество ролей пользователя; RF — множество ссылок, состоящее из двух подмножеств (DR — множество непосредственных ссылок; IR — множество косвен- ных ссылок). Хотя точная природа этих ссылок не важна, пред- положим, что непосредственные ссылки есть целые числа. Каж- дая косвенная ссылка есть конечная последовательность целых чисел <И], ..., пт>, где <щ> — непосредственная ссылка; НУ — множество значений сущностей (например, множество битовых или символьных строк); TY — множество типов сущностей, включающее в себя, на- пример, DM — черновое сообщение — и RM — отправленное сообщение; ES — множество сущностей. При этом для е е ESопределяются: 71
• СЕ(<?) е L — уровень конфиденциальности этой сущности; • AS(e) cfJJI u RL) х (ZPx N — множество троек, определя- ющих множество разрешенных доступов к сущности, где (и, ор, к) е AS(e) тогда и только тогда, когда пользователь и с заданными идентификатором или ролью авторизован для выполнения операции ор над сущностью е, ссылка на которою является к-м параметром операции ор; • Т(ё) е TY — тип сущности; если Т(е{) = Г(е2), тогда обе сущности и е2 — или контейнеры, или объекты; • V(e) е VS — значение сущности; • Я(е) = <еь е„> — структура сущности, где е,- — z-я сущ- ность, непосредственно содержащаяся в контейнере е; • СС7?(е) — атрибут сущностей-контейнеров; CCR(e) истин- но тогда и только тогда, когда контейнер е помечен CCR, иначе СС7?(е) ложно; • RE(e) е UI — идентификатор отправителя для сущности сообщения; О с ES — множество сущностей-контейнеров, описывающих устройства вывода информации. Для каждого о е О определены значения двух функций: • £>(о) — множество упорядоченных пар {(хь у{), (х2, у2), , (х„, У»)}, где каждый х, есть некоторый пользователь или сущность и соответствующее у,- есть «проявление» х,-: или некоторая ссылка, или идентификатор, или результат при- менения одной из описанных функций к х,-. Таким обра- зом, каждое D(o) описывает, что могут видеть пользовате- ли на устройстве вывода информации. При этом ((х, К(х)) е е D(p)) => (х е Я(о)), т.е. если значение сущности можно получить на устройстве вывода, то эта сущность входит в состав контейнера устройства вывода; • CD (о) — максимальный уровень конфиденциальности ин- формации, разрешенный для вывода на о; U: UI -» US — функция идентификаторов пользователей; Е: RE -» ES — функция ссылок на сущности. При этом для любого п > 1 Е(<гь ..., i„>) = е тогда и только тогда, когда E{<i{, ..., = е*> где е* — контейнер такой, что е — это г„-й элемент Н(е*). Для любой ссылки г е RF, если Д(г) = е, то говорим, что г есть ссылка на е. Кроме того, косвенная ссылка <i{, i„> на сущность е определяет последовательность сущностей еи ..., еп_1 таких, что каждая сущность е7 для 1 < J < п определяется через непосредственную ссылку <й>, и еу есть /,-я сущность контейне- ра ej_Y. Будем говорить, что такая косвенная ссылка <z\, ..., i„> основывается на каждой сущности е7, где 0 <j < п; LO: UI -» RF — функция входов пользователей {logon) в си- стему. Для произвольной функции F: X -» Y обозначим: 72
• dom(F) ~ область определения функции F(); • mg(F) — область значений функции F(); • F~\Z) = {х e X F(x) e Z}, где Zc К Определение 3.42. Состояние системы есть упорядоченная тройка s = (U, Е, LO), где U — функция идентификаторов; Е — функция ссылок; LO — функция входов. При этом: • dom(LO) g dom(Uy, • mg(LO) a • для о е rng(E) п О и (х, у) е D(o) выполняется условие х е е rng(E) u rng(U) — только информация о пользователях или сущностях, существующих в данном состоянии может быть выве- дена на устройствах вывода; • для ссылки г е dom(E) выполняется условие ((х, г) е D(d)) => => (Е(г) = х) — если выводится ссылка, то определена сущность, на которую она указывает; • для «2 е dom(LO') выполняется условие (E(£O(«j)) = = Е(ЕО(м2))) => (mj = w2) ~~ в заданном состоянии с данного уст- ройства вывода информации может осуществлять вход в систему только один пользователь. Если дано состояние системы s=(U, Е, LO), то используем следующие обозначения: • us = U(u) — пользователь с идентификатором и в состоянии 5; • rs = Е(г) — сущность по ссылке г в состоянии 5; • F = E(LO(uy) — сущность-устройство вывода информации, с которого осуществил вход в систему пользователь с идентифи- катором и В СОСТОЯНИИ 5. Определение 3.43. Состояние 5 безопасно, если для любых двух сущностей х, у е rng(E), устройства вывода информации о е On о rng(E), идентификатора пользователя w е dom(JLO) и пользова- теля и е mg(U) выполняются условия: • (хе Н(у)) => (СЕ(х) < СЕ(у)) — уровень конфиденциальности сущности в составе контейнера не выше уровня конфиденциаль- ности контейнера; • (хе Щги^)) => (CU(ws)> СЕ(х)) — уровень доступа пользова- теля с данным идентификатором не ниже уровня конфиденци- альности сущностей, выводимых на устройстве вывода информа- ции, с которого он осуществил вход в систему; • ((х, Г(х)) e D (о)) g- ((х, СЕ(х)~) е D (о)) — если выводится значение сущности, то должен быть выведен и ее уровень конфи- денциальности; • RO(u) с R(u) — текущее множество ролей пользователя долж- но быть частью множества ролей, на которые он авторизован; • CD(p) > СЕ(о) — максимальный уровень конфиденциально- сти сущностей, разрешенный для вывода на устройстве вывода информации, должен быть не ниже текущего уровня конфиден- циальности устройства вывода. 73
Безопасность переходов Определение 3.44. Система S(T, s0) —- пара элементов: • s0 — начальное состояние системы; • Т: UIxIxS-^S — функция переходов системы, где 5 — множество возможных состояний системы; I — множество запро- сов системе. При этом каждый запрос i е / имеет вид <ор, хь х„>, где op е OPvt х,. е RFu UIи КУдля 1 <j < и, т.е. параметром запроса может быть ссылка на сущность, идентификатор пользо- вателя или значение сущности. Определение 3.45. я: No -> UI х I х У — история системы; при этом для и е No выполняется условие: если л(и) = (и, i, s) и я(и + 1) = = (u*, F, s*), то Т(и, i, s') = 5*. Определение 3.46. Состояния s = (U, Е, LO) и s* = ([/*, Е*, LO*) эквивалентны, за исключением некоторого множества ссы- лок р с dom(E) (обозначим через 5 ~р 5*) тогда и только тогда, когда выполняются условия: • U= U*; • LO=LO*; • dom(E) = dom(E*y, • для любой функции F, за исключением V (функции значе- ний сущностей), справедливо равенство F= F*; • для любой ссылки г е dom(E) \р справедливо равенство V(rs) = = до- определение 3.47. Запрос (w, i, s) <= UI х I х S потенциально модифицирует сущность по ссылке г е dom(E) тогда и только тогда, когда существуют состояния 5,, st ирс dom(E) такие, что S] ~р s, Т(и, i, Sj) = sf, и для некоторой функции К() справедливо равенство F(rSi) * F(rs-). При этом сущность по ссылке у е dom(E) называется источником потенциальной модификации тогда и толь- ко тогда, когда выполняется одно из условий: • У= и • существуют состояния s2, 52 такие, что Sj ~(й s2, Т(и, i, s2) = $2 И К(д) Ф F(rs-). Потенциальная модификация S р S] Ид) s $2 * сущности по ссылке г с источ- ником-сущностью по ссылке у при запросе (w, 1, s) указывает = Ид) \ = Ид) 1 , . 1 на реализацию в системе инфор- мационного потока от сущности (“ДЩ) / («, '> Ъ) 1 И к сущности rs при переходе си- Ид/ * Ид) стемы из состояния в состояние 51 52* по заданному запросу (рис. 3.3). В определении потенциальной Рис. 3.3. Потенциальная модифи- модификации также учитывает- кация с источником ся тот факт, что информацион- 74
ный поток, возникающий в системе, может не приводить к изме- нению модифицируемой сущности, например в случае, если она по значению совпадает с сущностью-источником. Дадим восемь определений смыслов безопасности функции переходов. Определение 3.48. Функция переходов Т() безопасна в смысле доступов к сущностям тогда и только тогда, когда для и, i, s, s* таких, что Т(и, i, s) = s*, выполняется одно из условий: или 5 = 5* (запрос отвергается), или (op е i n ОР и rk е i гл RF) => (или (и, ор, к) е Л5((га.)5), или существует роль I е RO(ufy. (I, op, к) е е Л5((Ш. Определение 3.49. Функция переходов Д) безопасна в смысле модификации сущностей тогда и только тогда, когда для и, i, s, 5* таких, что Т(и, i, s) = 5*, выполняется условие (сущность по ссылке х потенциально модифицируется с источником-сущнос- тью по ссылке у) => (CE(xs) > CE(ys)). Определение 3.50. Функция переходов Т() безопасна в смысле доступов к контейнерам с атрибутом CCR тогда и только тогда, когда для и, i, s, s* таких, что Т(и, i, s) = 5*, выполняется условие (сущность по ссылке z потенциально модифицируется с источни- ком-сущностью по косвенной ссылке rein IR, основанной на сущности по ссылке у с истинным атрибутом СС/фу,)) => (CU(us) > CE(yf). Определение 3.51. Функция переходов 7*() безопасна в смысле доступов по косвенной ссылке тогда и только тогда, когда для и, I, 5, 5* таких, что Т(и, i, s) = 5*, выполняется (для непосредствен- ной ссылки х е DR выполняется условие (xr, х) е Z)(w(.)) и суще- ствует косвенная ссылка reinRF: rs = xs и сущность по ссылке г основана на контейнере по ссылке z с истинным атрибутом СС/?(г5))=> => (С(/(иЛ.) > CE(zff) — значение непосредственной ссылки на сущ- ность может быть получено по косвенной ссылке с учетом правил доступа к контейнерам с атрибутом CCR. Определение 3.52. Функция переходов Г() безопасна в смысле администрирования тогда и только тогда, когда для и, i, s, s* таких, что Т(и, i, s) = s", выполняются условия: • (для ссылки на устройство вывода о е Е~1(О) истинно CD(os) * ф CD(os-) или для идентификатора пользователя х е dom(U) выпол- няется одно из условий: или С[/(хЛ.) * CU(xs-), или R(xs) * R(xs.)) => => (security officer е RO(us)) — максимальный уровень конфиден- циальности информации, выводимой на устройстве вывода, уро- вень доступа пользователя или множество его авторизованных ролей может изменить только пользователь с ролью «системный офицер безопасности»; • (для идентификатора пользователя х е dom(U) истинно RO(xs) * RO(xs.)) => (или xs = и„ или security officer е RO(uff) — изменить множество текущих ролей пользователя можно только 75
самому пользователю или пользователю с ролью «системный офи- цер безопасности». Определение 3.53. Функция переходов Т() безопасна в смысле понижения уровня конфиденциальности сущностей тогда и толь- ко тогда, когда для и, i, s, s* таких, что Т(и, i, s) = s*, выполня- ется условие (для х е dom(E)\E^({u(}) справедливо неравенство CE(xs) > СЕ(хД) => (downgrader е /?О(щ)) — за исключением сущности устройства вывода, на которой вошел в систему пользо- ватель, уровень конфиденциальности сущности может понижать только пользователь со специальной ролью. Определение 3.54. Функция переходов Т() безопасна в смысле отправки сообщений тогда и только тогда, когда для и, i, s, s* таких, что Т(и, i, s) = s*, выполняются условия: • (T(xs) = RM) => (Г(хЛ.) = RM и RE(xs) = RE(xs.)) — у сообщения тип и идентификатор отправителя не могут быть изменены после отправки (RM — тип «отправленное сообщение»); • (Т(х3) * RM и Т(xr) = RM) => (Т(х5.) = DM, RE(x3..) = и, существует ссылка rs = xs и / есть операция вида <release, г>, где releaser е е ЛО(м5)) — может быть с использованием некоторой ссылки от- правлено только черновое сообщение (DM — тип «черновое сооб- щение») и только пользователем с ролью «отправитель»; при этом идентификатор этого пользователя устанавливается в соответству- ющее поле сообщения. Теорема 3.11 (БТБ-СВС). Каждое состояние системы "L(T, sQ) безопасно, если 50 безопасно и функция переходов Т() удовлет- воряет следующим требованиям для и, i, s, s* таких, что Т(и, i, s) = = s*, и для х, у <= RE, w е UI выполняются условия: • (xs g H(ys) и xs. е H(ys-)) => (CE(xs..) < CE(ys.))\ • (xs <= H(ys) и CE(xs.) > CE(ys.)) => (xs. i H(ys.))' • (xs H(w() и xs- e H(w's-)) => (CE(xs.) < CU(ws.))', • (xs e H(w'3l) и CE(xs.) > CU(ws.)) => (xs. & H(w’sl))-, • ((X, Ц^)) £ D(w's) и (xs-, V(xs.)) e D(w's.)) => ((x3.~, CE(x3..)) e e D(w'.-)); • (fe ИХ)) e D(w;) и (x,., CE(xs.)) £ D(w's.)) => ((xs., V(xs.)) £ £ D(w's.))- • (R(wsl) £ R(ws.) или RO(w^ £ RO(w3.-)) => (RO(ws.) c R(ws-)); • (CE(w's) CE(w's.) или Cb(w(.) + CD(w's.)) => (CD(w's.) > CE(w's-)). Доказательство. Доказательство осуществляется аналогично доказательству теоремы 3.1 (Д1) модели Белла—ЛаПадула. Определение 3.55. Функция переходов Т() безопасна в смысле БТБ, если выполнены условия теоремы 3.11 (БТБ-СВС). Определение 3.56. Функция переходов Т() безопасна тогда и только тогда, когда она безопасна в смыслах определений 3.48 — 3.55. Определение 3.57. История л() системы Е(Д 50) безопасна, если все ее состояния и переходы безопасны. 76
Определение 3.58. Система S (Т, s0) безопасна, если все ее ис- тории безопасны. Теорема 3.12. Система Е(Т, 50) безопасна, если начальное со- стояние у, безопасно и функция переходов Т() безопасна. Доказательство. Доказательство следует из определений. В заключение рассмотрения модели СВС следует отметить, что в ней не содержится описания механизмов администрирования. В частности, при описании функции переходов пропущены такие возможные действия в системе, как создание новых сущностей, присваивание им уровня конфиденциальности СЕ(е) и множе- ства доступов AS(e). Исходя из постулатов безопасности пред- полагается, что данные действия осуществляются корректно. Из- менения значения множества доступов AS(e) для существующей сущности могут быть осуществлены с использованием доступов, определенных в самом значении AS(e) для данной сущности. По- этому для задания правил изменения значений функции AS() не требуется изменения определений безопасности функции перехо- дов Г(). Контрольные вопросы 1. Каковы основные недостатки классической модели Белла—ЛаПа- дула? 2. Как сформулировать теорему 3.4 (БТБ) для модели мандатной по- литики целостности информации Биба? 3. Постройте пример системы Белла—ЛаПа- rea(j дула со следующими параметрами: 5= {jj, s-A, °2 52 О = (Oj, о2}, R={read, write}, (L, <) = {Low, High}, ‘8 ® • M — не используется, = 7o(°i) = fs(.si) = =fo(oA = High. Рассмотрите возможные варианты у wnte действия системы в состоянии, описываемом гра- Low • фом текущих доступов, по запросу субъекта sz на доступ на запись в объект 4. Переформулируйте определения ^-свойства и ‘-свойства функции переходов T(s, q, (b, /)) = (b*, /*), включив в них определение безопас- ности функции переходов в смысле администрирования. 5. Докажите теорему 3.11 (БТБ-СВС). 6. Каким образом десять неформальных свойств модели СВС реализу- ются в ее формальном описании? 7. Где в определениях безопасности модели СВС реализованы свой- ства безопасности (^-свойство, ‘-свойство и Л-свойство) классической модели Белла —ЛаПадула? 8. Рассмотрите пример использования определения потенциальной модификации булевой сущности по ссылке г с источником булевой сущ- ностью по ссылке у при запросе (и, i, s), реализующем функцию Е(гД = = V(rs) and E(ys).
ГЛАВА 4 МОДЕЛИ БЕЗОПАСНОСТИ ИНФОРМАЦИОННЫХ ПОТОКОВ 4.1. АВТОМАТНАЯ МОДЕЛЬ БЕЗОПАСНОСТИ ИНФОРМАЦИОННЫХ ПОТОКОВ В автоматной модели безопасности информационных потоков [2] система защиты представляется детерминированным автома- том, на вход которого поступает последовательность команд пользователей. Основными элементами автоматной модели безо- пасности информационных потоков являются: V~ множество состояний системы; U ~ множество пользователей; М — множество матриц доступов; СС — множество команд пользователей, изменяющих матрицу доступов; VC — множество команд пользователей, изменяющих состоя- ние; С= СС и VC — множество всех команд пользователей; Out — множество выходных значений; cvdo'. U х С х '/ / М - > У / М - функция переходов системы. В зависимости от вида команды при переходе системы в после- дующее состояние или изменяется состояние системы, или вно- сятся изменения в матрицу доступов. При этом для каждого пользо- вателя в матрице доступов определяются команды, которые ему разрешено выполнять. Таким образом, автоматная модель безо- пасности информационных потоков реализует дискреционное разграничение доступа. Для каждого пользователя системы задается функция выходов, определяющая, что каждый из них «видит» на устройстве вывода в соответствующем состоянии системы: out-. Uх К-» Out — функция выходов системы. Таким образом, определен автомат, в котором: (г0, т0~) — начальное состояние; Их М — множество внутренних состояний автомата; Ux С — входной алфавит; Out — выходной алфавит; cvdoC) — функция переходов автомата; out() — функция выходов автомата. 78
Функция cvdo() может быть по индукции определена для ко- нечных последовательностей команд пользователей: cvdo: (Ux С)* х Ух М -» V х М. Пусть w е (U х С)* — последовательность команд пользовате- лей; 5 е U - пользователь; G с U — подмножество множества пользователей; А с С — подмножество множества команд. Ис- пользуем следующие обозначения: [[w]] — последовательность состояний, полученная из исход- ного состояния в результате выполнения последовательности ко- манд пользователей w; IIML ~ последовательность выходов, наблюдаемых пользова- телем s при реализации последовательности состояний [[w]]; Ptfw) — подпоследовательность последовательности w, полу- ченная из нее удалением всех пар (s, с), где s <е G; PA(w) — подпоследовательность последовательности w, полу- ченная из нее удалением всех пар (s, с), где с е А; PGA(w) ~ подпоследовательность последовательности w, полу- ченная из нее удалением всех пар (s, с), где з е G и с е А. Определение 4.1. Пусть G, G' с: U. G информационно не влияет на G' (обозначим через G :| G'), если для каждой w е (Ux Q* и для se G' справедливо равенство [[w]]5 = [[^(w)]],.. Определение 4.2. Пусть Ас С, G'cU.A информационно не вли- яет на G' (обозначим через А :| G'), если для каждой w е (U х С)* и для s е G' справедливо равенство [[w]]5= [[P/w)]],.. Определение 4.3. Пусть А с С, G, G' с U. G и А информацион- но не влияют на G' (обозначим через G, А :| G'), если для каж- дой w е (U х О* и для s е G' справедливо равенство [[w]h. = = Пример 4.1. Пусть/— файл, 5 е U— пользователь, А = {create(f), write(f), modify(f), delete(f)} — набор команд. Тогда {5}, А :| {s} означает, что пользователь 5 может осуществлять только чтение из файла / Определение 4.4. Политика безопасности в автоматной модели безопасности информационных потоков — это набор требований информационного невлияния. Пример 4.2. Мандатную политику безопасности в автоматной модели безопасности информационных потоков, которая состоит в том, что пользователи с большим уровнем доступа не должны информационно влиять на пользователей с меньшим уровнем доступа, можно выразить следующим образом. Пусть (L, <) — шкала уровней доступа к информации; level'. U -» L — функция уровней доступа пользователей; (/[-°о, х] = {5 е U. level(s) < х} — множество пользователей с уровнем доступа, не большим х; 79
U[x, +co] = {5 e U level(s) > x} — множество пользователей с уровнем доступа, не меньшим х. Тогда мандатная политика безопасности есть совокупность тре- бований информационного невлияния: для х, х' е L, х < х' истинно U[x', +оо]:| Д-оо, %]. Определение 4.5. Пусть G с U. Пользователи из G невидимы для остальных пользователей, если G :| (U\ G). Пользователи из G изолированы от остальных пользователей, если G :| (U\G) и (U\G) :| G. С помощью требований информационного невлияния могут быть определены различные виды политик безопасности, определяю- щие не только правила разграничения доступа пользователей си- стемы, но и конфигурацию, порядок взаимодействия между со- бой распределенных компонент компьютерной системы. 4.2. ПРОГРАММНАЯ МОДЕЛЬ КОНТРОЛЯ ИНФОРМАЦИОННЫХ ПОТОКОВ 4.2.1. Основные элементы модели В программной модели контроля информационных потоков [11] предлагается механизм построения системы защиты, реализую- щей дискреционную политику безопасности для командных ин- терпретаторов. Основными элементами модели являются: Q\ D, х ... х Dn -» Е — программа, отображающая множество значений входных параметров Д х ... х D„ в множество выходных значений Е; М\ Dr х ... х D„ Е {access_denied} — механизм защиты, где access_denied — сообщение о нарушении защиты. При этом для (d}, ..., dn) е Д х ... х Д выполняется одно из условий: • <Д, ..., Д) = 0(Д, ..., Д); • M(d{, ..., Д) = access denied', /: Д х ... х Д -» О — политика безопасности, где О — множе- ство разрешений. Политика безопасности в программной модели контроля информационных потоков определяется через множе- ство значений входных параметров, от которых разрешено вычис- ление выходного значения программы. Для остальных (запрещен- ных) значений входных параметров должно выдаваться сообще- ние о нарушении защиты. Определение 4.6. Пусть Q\ х ... х Dn -» Е— программа. Поли- тика безопасности «допустить»^), ..., 4), где 1 < ц < ... < ik<n, для входных параметров (Д, ..., Д) е Д х ... х Dn разрешает выдать результат работы программы (2(Д, ..., Д), если он зависит только от параметров Д, ..., dik. 80
Определение 4.7. Пусть Q. D^x ...х Dn~> Е— программа; I: х х ... х Д -» Q — политика безопасности. Механизм защиты М'. D} х ... х Dn-> Е'и {access_denied} эффективен по отношению к политике безопасности I, если существует функция ц: Q -> £ и и {access^denied} такая, что для каждого (Д, ..., d„) е Д х ... х Dn справедливо равенство: M(dh ..., d„) = р(/(Д, ..., Д)). Замечание 4.1. Для любой программы Q: D- х ... х Dn -» Е и политики безопасности I: D, х ... х Dn -» Q существует эффектив- ный механизм защиты, например: М: D} х ... х D„ -> {access_denied}. Определение 4.8. Пусть Мх и М2 — эффективные механизмы за- щиты для программы Q по отношению к политике безопасности I. Mt <М2, если для (dt, ..., d„) е Д х ... х Д выполняется условие (ЛД(Д, ..., d„) = Q(d}, ..., Д)) => (Л/2(Д, ..., Д) = Q(d}, ..., Д)). Mj < М2, если Л£] < М2 и найдется набор параметров (Д, ..., Д) е Д] х ... х Д„ для которого выполняется условие Л/2(Д, ..., Д) = Q(df, ..., Д) и ЛД(Д, ..., Д) = access denied. Замечание 4.2. На множестве эффективных механизмов защиты для программы Q по отношению к политике безопасности / отно- шения «<» и «<» являются соответственно отношениями частич- ного и строгого порядка. Определение 4.9. Пусть М} и М2 — эффективные механизмы защиты для программы Q по отношению к политике безопасно- сти /. Определим М~ М2 — механизмы защиты для програм- мы Q, где для (Д, Д) е Dt х ... х Д, выполняется условие Л/(Д, ..., Д) = С2(Д, ..., Д), когда или ЛД(Д, ..., Д) = 0(Д, ..., Д), или M2{d}, ..., d„) = Q(d}, ..., Д). В противном случае М(Д, ..., Д) = = access_denied. Утверждение 4.1. Пусть М{ и М2 — эффективные механизмы защиты для программы Q по отношению к политике безопасно- сти /, тогда М = Мх и М2 — эффективный механизм защиты для программы Q по отношению к политике безопасности I. При этом выполняются соотношения: Мх ’.J М2 = М2 '.J Мх\ Мх< М\ и М2, • М2 < М{ и М2. Доказательство. Доказательство следует из определений 4.7 — 4.9. Замечание 4.3. Утверждение 4.1 верно для М= и ... и Мк, где М}, ..., Мк— эффективные механизмы защиты для программы Q по отношению к политике безопасности /. 4 Деияни) 81
Замечание 4.4. Так как Q — программа, выполняющаяся в не- которой компьютерной системе, то без ограничения общности можно считать, что Dn — конечные множества. Тогда если существует М — эффективный механизм защиты для программы Q по отношению к безопасности политике I, то существует М* — максимальный эффективный механизм защиты для программы Q по отношению к политике безопасности I. При этом М* равен объединению всех эффективных механизмов защиты для програм- мы Q по отношению к политике безопасности 7, которых конеч- ное число. 4.2.2. Контролирующий механизм защиты Определение 4.10. Пусть каждая программа Q-. D, х ... х D„ -> Е может быть представлена схемой из четырех видов элементов. 1. [start] — начальный элемент. 2. [г <- /(wb ..., w0)] — элемент присваивания. 3. [if (g(w[, wb)- true) then [...] else [...]] — элемент условия. 4. [stop] — конечный элемент. Пусть хъ ..., х„ — входные параметры программы; У), ..., у„, — внутренние переменные программы; z — выходное значение программы. Определим контролирующий механизм защиты для програм- мы Q по отношению к политике «допустить»^, ..., ik). Пусть v[, ..., vfm, ?*, с* — множества символьных переменных. Заменим в зависимости от вида каждый элемент программы Q на следующие последовательности элементов. 1. Начальный элемент. [start]; [и {-и}]; [г; <- {%„}]; [v* + m^ 0]; [2’^0]; [с‘^0]. 2. Элемент присваивания. [* * * 1 <- Vj, и ... о rj; ..., vf)]. 3. Элемент условия. Iе <- С u Vj, и ... u Z/J; [if ..., vf) = true) then [...] else [...]]. 4. Конечный элемент. 82
[с <- с u z ]; [z/(c* cz {zb ..., 4}) then [xlo/>] else [access__denied]]. Теорема 4.1. Контролирующий механизм защиты для програм- мы Q-. D} х ... х Dn -> Е по отношению к политике «допустить» (/'], ..., 4) является эффективным. Доказательство. Контролирующий механизм защиты выполняет все вычисления программы Q. При этом если выходное значение z работы программы Q зависело от входного параметра xh то, оче- видно, {х,} с с*. Следовательно, если политика безопасности тре- бует запрета выдачи выходного значения программы, то контро- лирующий механизм защиты выдает access_denied. Если контроли- рующий механизм защиты выдает выходное значение, отличное от access_denied, то оно совпадает с выходным значением про- граммы Q. Теорема доказана. Замечание 4.5. В общем случае контролирующий механизм за- щиты для программы Q-. D} х ... х D„ -> Е по отношению к поли- тике «допустить» (zb ..., 4) не является максимальным. Пример 4.3. Для следующей программы Q-. Е х Z), -> Ей поли- тики безопасности «допустить»(2) контролирующий механизм защиты не будет являться максимальным. [start]; [if ((х] = 1) = true) then [zz<- 1] else [r<- 2]]; [stop]. По окончании работы контролирующего механизма защиты справедливо равенство с* = {xj, и, следовательно, его результа- том будет access__denied. В то же время очевидно, что результат ра- боты программы от переменной х, не зависит. 4.3. ВЕРОЯТНОСТНАЯ МОДЕЛЬ БЕЗОПАСНОСТИ ИНФОРМАЦИОННЫХ ПОТОКОВ 4.3.1. Схема компьютерной системы В рассматриваемой вероятностной модели безопасности инфор- мационных потоков [18] анализируются компьютерные системы, в которых реализована мандатная политика безопасности. В моде- ли предполагается, что все объекты (в том числе и субъекты) компьютерной системы объединены по трем группам: объекты X, реализующие систему защиты; объекты Я, обрабатывающие ин- формацию высокого уровня конфиденциальности; объекты L, об- рабатывающие информацию низкого уровня конфиденциально- сти. Все информационные потоки между Н и L проходят через систему защиты X (рис. 4.1). 83
Пусть на множестве значений объектов системы задано веро- ятностное распределение, т. е. Я и L являются случайными вели- чинами. Рис. 4.1. Схема компьютерной си- Согласно требованиям ман- стемы датной политики безопасности, любые информационные пото- ки от Я к L запрещены. Однако в большинстве реальных систем реализовать данное жесткое требование не представляется возмож- ным. В модели рассматриваются ряд подходов к определению воз- можных информационных потоков между Я и L, основанных на понятиях информационной невыводимости и информационного невлияния. 4.3.2. Информационная невыводимости Определение 4.11. Компьютерная система соответствует тре- бованиям информационной невыводимости, если для р(Н) > О, p(L) > 0 справедливо неравенство р(Н\L) > 0. Так как при р(НР) > 0, p(L) > 0 справедливо равенство p(L |Я) = р(Н, Е)/р(Н) = p(H\L)p(L)/p(ff), то в условиях определения 4.1 из истинности неравенства р(Н\ L) > 0 следует истинность неравенства p(L | Я) > 0, что предполагает от- сутствие информационных потоков от низкоуровневых объектов к высокоуровневым. Таким образом, требования информацион- ной невыводимости являются более строгими, чем требования безопасности классической модели Белла—ЛаПадула, и факти- чески предполагают изоляцию друг от друга высокоуровневых и низкоуровневых объектов системы, что является чрезмерно жест- ким требованием. 4.3.3. Информационное невлияние В традиционной модели информационного невлияния требует- ся, чтобы низкоуровневая информация была независима от высо- коуровневой, т. е. чтобы выполнялось условие определения 4.12. Определение 4.12. Компьютерная система соответствует требо- ваниям информационного невлияния (без учета времени), если для р(Н) > 0, p(L) > 0 справедливо равенство p(L\H)=p(L). 84
Замечание 4.6. При р(Н) > 0, p(L~) > О условие определения 4.12 равносильно условию p(H\L)=p(H). Условие определения 4.12 также является жестким. Однако если ввести параметр времени, то возможно данное условие сделать в большей степени применимым для использования в реальных си- стемах. Конечный вид условия информационного невлияния по- лучим в результате последовательности рассуждений. Если L, описывает состояния всех низкоуровневых объектов, а И, — всех высокоуровневых объектов в момент времени t = 0, 1, 2, ..., то нет необходимости требовать выполнения условия P<Ht\ Lt_{) = p{Ht'), т. е. текущее значение низкоуровневых объектов может содержать информацию о последующих значениях высокоуровневых объ- ектов. Например, если низкоуровневым является некий неконфиден- циальный файл, обрабатываемый пользователем с низким уров- нем доступа, а высокоуровневым объектом является журнал аудита, то значение файла и операции, совершаемые над ним пользова- телем в момент времени /, могут отображаться в журнале аудита в момент времени t+ 1, о чем «знает» низкоуровневый пользователь. Учитывая тот факт, что состояние системы влияет на последу- ющие состояния только через информацию, хранимую в объектах системы, казалось бы, необходимо потребовать, чтобы текущее значение низкоуровневых объектов не зависело от значения вы- сокоуровневых объектов в предыдущие моменты работы систе- мы, т. е. чтобы выполнялось условие Х^1^-1)=Р(Д)5 или р(Нг_} I Д)=р(Я,„1), для t = 1, 2, ... Однако следует отметить, что данный вариант определения соотношения L, и Н,! является слишком строгим, так как пред- полагает независимость L, и Ht_ ь В то же время значение высоко- уровневых объектов на текущем шаге часто оказывает влияние на значение низкоуровневых объектов на последующих шагах рабо- ты системы. Например, рассмотрим работу монитора ссылок ком- пьютерной системы. Монитор ссылок в реальных системах защиты является высо- коуровневым субъектом, принимающим решения по запросам на доступ к объектам, полученным от других субъектов системы. Оче- видно, что такое решение, полученное низкоуровневым субъек- том в момент времени t работы системы, содержит информацию о значении высокоуровневого монитора ссылок в предыдущий момент времени t~ 1. 85
Более целесообразным представляется подход, обеспечиваю- щий невозможность накопления низкоуровневыми объектами новой информации о значениях высокоуровневых объектов. Необ- ходимо потребовать, чтобы знание значений Lr_} и L, не давало новой информации о Н,_ ъ т. е. должно выполняться условие p(Lr\Hr^, Lr_i) = p(Lr\Lr_i) для /= 1, 2, или p(Ht-i\Lt, Lt_,) =p(Ht_l\Lr_}) для t= 1, 2, ... Таким образом, запрещается обратный информационный по- ток из Lt в Я,_ |, но не запрещается поток из L, в Н,+,. Кроме того, следует отметить, что, решая проблемы, обозначенные в рассмот- ренных выше примерах, последнее правило блокирует возникно- вение неблагоприятных информационных потоков по времени. Дадим определение информационного невлияния с учетом времени. Определение 4.13. Компьютерная система соответствует требо- ваниям информационного невлияния (с учетом времени), если для p(Ls) > 0, p(Lr) > 0, p(Hs') > 0 выполняется условие p(Lr\Hs, Ls) =p(Lt\Ls), где s, t = 0, 1, 2, ... и 5 < t. Пример 4.4. Согласно описанию автоматной модели безопас- ности информационных потоков, система защиты представляется детерминированным автоматом, на вход которого поступает пос- ледовательность команд пользователей. Для каждого пользователя системы задана функция выходов, определяющая, что каждый из них «видит» на устройстве вывода в соответствующем состоянии системы. Если всех пользователей системы разделить на две груп- пы (низкоуровневые и высокоуровневые), то требование инфор- мационного невлияния автоматной модели является требованием независимости низкоуровневого вывода системы от ее высоко- уровневого ввода. Рассмотрим систему автоматной модели как совокупность че- тырех объектов: высокоуровневых и низкоуровневых портов вво- да/вывода high-in, high-out, low-in, low-out. При этом системный вывод полностью определяется системным вводом. Вероятност- ные отношения исключаются. Однако если интерпретировать детерминированность автома- та, используя события с вероятностью {0, 1}, то информацион- ное невлияние можно определить следующим образом. Определение 4.14. Пусть система автоматной модели безопас- ности информационных потоков, представленная последователь- ностью событий с вероятностью {0, 1}: high-in„ high-out,, low-int, 86
low-outt для t=Q, 1, 2, ... Тогда система автоматной модели соот- ветствует требованиям информационного невлияния, если выпол- няется условие p(low-outt | high-ins, low-inf) =p(low-out, | low-ins), где s, t = 0, 1, 2, ... и 5 < t. Контрольные вопросы I. Какой вид политики разграничения доступа используется в каче- стве основы автоматной модели безопас- ности информационных потоков? 2. Пусть а, Ь, с, d — компьютеры: а, р, у — сетевые информационные кана- лы, определяемые как совокупность ко- манд сетевых интерфейсов. Опишите ком- пьютерную систему, представленную на схеме, с использованием семи требований информационного невлия- ния автоматной модели безопасности информационных потоков. 3. Почему программная модель контроля информационных потоков может быть наиболее эффективно использована для систем защиты, ре- ализованных в командных интерпретаторах? 4. Постройте контролирующие механизмы защиты для следующих программ. а) Program} (х,, х2, х3) б) Program!^, х2, х3) 1 а = X] — //(хз>0) у=а + х,; else у=а + х2, 1 й — Хр + Х3; if (Х| = 0) а = а + х3, else а=а- х3; У = У-хр У=а-х2; } } Являются ли они максимальными? 5. Почему использование определения требований информационно- го невлияния (с учетом времени) позволяет обеспечить возможность функционирования в компьютерной системе монитора ссылок и систе- мы аудита?
ГЛАВА 5 МОДЕЛИ РОЛЕВОГО РАЗГРАНИЧЕНИЯ ДОСТУПА 5.1. ПОНЯТИЕ РОЛЕВОГО РАЗГРАНИЧЕНИЯ ДОСТУПА Ролевое разграничение доступа (РРД) представляет собой раз- витие политики дискреционного разграничения доступа; при этом права доступа субъектов системы на объекты группируются с уче- том специфики их применения, образуя роли. РРД является составляющей многих современных компьютер- ных систем. Как правило, РРД применяется в системах защиты СУБД, отдельные элементы РРД реализуются в сетевых ОС. Задание ролей позволяет определить более четкие и понятные для пользователей компьютерной системы правила разграниче- ния доступа. При этом РРД наиболее эффективно используется в компьютерных системах, для пользователей которых четко опре- делен круг их должностных полномочий и обязанностей. Роль является совокупностью прав доступа на объекты ком- пьютерной системы. Однако РРД не является частным случаем дискреционного разграничения доступа, так как правила РРД определяют порядок предоставления прав доступа субъектам (пользователям) компьютерной системы в зависимости от сессии его работы и от имеющихся или отсутствующих у него ролей в каждый момент времени, что является характерным для систем мандатного разграничения доступа. В то же время правила РРД являются более гибкими, чем правила мандатного разграничения доступа, построенные на основе жестко определенной решетки (шкалы) ценности информации. Для анализа и изучения свойств систем РРД используются ма- тематические модели РРД. В основе всех математических моделей РРД лежит базовая модель РРД. 5.2. БАЗОВАЯ МОДЕЛЬ РРД Базовая модель РРД [3, 20] определяет самые общие принци- пы построения моделей РРД. Основными элементами базовой модели РРД являются: QQ
U — множество пользователей; R — множество ролей; Р — множество прав доступа на объекты компьютерной си- стемы; S — множество сессий пользователей; РА. R 2Р — функция, определяющая для каждой роли мно- жество прав доступа; при этом для каждого р е Р существует г е s R такая, что р е РЛ(г); UA: U -> 2К— функция, определяющая для каждого пользова- теля множество ролей, на которые он может быть авторизован; user: S U —- функция, определяющая для каждой сессии пользователя, от имени которого она активизирована; roles: S->2R — функция, определяющая для пользователя мно- жество ролей, на которые он авторизован в данной сессии; при этом в каждый момент времени для каждого s е S выполняется условие roles(s) с UA(user(s)~). Отметим, что могут существовать роли, на которые не автори- зован ни один пользователь. В базовой модели РРД предполагается, что множества U, R, Р и функции РА, UA не изменяются с течением времени. Множество ролей, на которые авторизуется пользователь в течение одной сес- сии, модифицируется самим пользователем. В базовой модели РРД отсутствуют механизмы, позволяющие одной сессии активизиро- вать другую сессию. Все сессии активизируются пользователем. Для обеспечения возможности большего соответствия реаль- ным компьютерным системам, каждый пользователь которых за- нимает определенное положение в служебной иерархии, на мно- жестве ролей реализуется иерархическая структура. Определение 5.1. Иерархией ролей в базовой модели РРД назы- вается заданное на множестве ролей R отношение частичного по- рядка «<» (отношение «<» обладает свойствами рефлексивности, антисимметричности и транзитивности). При этом выполняется условие для и s U, если г, г' е R, г е UA(u) и г' < г, то г' е К4(ы). Таким образом, наряду с данной ролью пользователь должен быть авторизован на все роли, в иерархии ее меньшие. Отношение частичного порядка на множестве ролей не обяза- тельно задает на нем решетку. Другим важным механизмом базовой модели РРД являются ограничения, накладываемые на множества ролей, на которые может быть авторизован пользователь или на которые он автори- зуется в течение одной сессии. Данный механизм также необхо- дим для широкого использования РРД, так как обеспечивает боль- шее соответствие используемым в компьютерных системах техно- логиям обработки информации.
Дадим определения ряда распространенных видов ограничений. Определение 5.2. В базовой модели РРД заданы ограничения статического взаимного исключения ролей или прав доступа, если выполняются условия: R = R] и ... о R,,, где R, о Rj= 0, для 1 < i <j< л; |UA(u) п Д-| < 1 для и е U, i е 1, 2, ..., и; Р= Р\ и ... о Рт, где Р, n Pj=0, для 1 < i <j< т; \РА(г) г. РД < 1 для р е U, i е 1, 2, ..., т. Множество ролей и множество прав доступа разделяются на непересекающиеся подмножества. При этом каждый пользователь может обладать не более чем одной ролью из каждого подмноже- ства ролей, а каждая роль — не более чем одним правом доступа из каждого подмножества прав доступа. Определение 5.3. В базовой модели РРД задано ограничение динамического взаимного исключения ролей, если выполняются условия: R = R] и ... о Л,„ где 7?, п = 0, для 1 < i <j < л; \roles(s) с\ 7?,-| < 1 для е 5, i е 1, 2, ..., п. Множество ролей разделяется на непересекающиеся подмно- жества. При этом в каждой сессии пользователь может обладать не более чем одной ролью из каждого подмножества ролей. Определение 5.4. В базовой модели РРД заданы статические ко- личественные ограничения на обладание ролью или правом дос- тупа, если определены две функции: a: R -> Nq', Р: Р где No — множество натуральных чисел с нулем, и выполняются условия: |H4~'(/')| < а(г) для г е R; |/ЛР'(д)| < Р(д) для р е Р. Для каждой роли устанавливается максимальное число пользо- вателей, которые могут быть на нее авторизованы, а для каждого права доступа устанавливается максимальное число ролей, кото- рые могут им обладать. Определение 5.5. В базовой модели РРД задано динамическое количественное ограничение на обладание ролью, если опреде- лена функция V R No и выполняется условие |ro/es''(r)| < у(г) для г е R. Для роли устанавливается максимальное число сессий пользо- вателей, которые могут одновременно быть на нее авторизованы. 90
( Иерархия ролей Рис. 5.1. Структура элементов базовой модели РРД Определение 5.6. В базовой модели РРД заданы статические ог- раничения необходимого обладания ролью или правом доступа, если определены две функции: a: R 2я, 0: Р 2Р, и выполняются условия: для и е t/гесли г, г' е R, г е UA(it) и г' е а(г), то г' е &1(и); для г е R, если р, р' е Р, р е РЛ(г) и р' е 0(р), то р' е РА(г). Для каждой роли для того чтобы на нее мог быть авторизован пользователь, могут быть определены роли, на которые пользова- тель также должен быть авторизован. Для каждого права доступа для того чтобы им обладала роль, могут быть определены права доступа, которыми данная роль также должна обладать. Определение 5.7. В базовой модели РРД задано динамическое ограничение необходимого обладания ролью, если определена функция у: R 2я и выполняется условие для se 5, если г, г' е R, г е roles(s) и г' е у(г), то г' е roles(s). Для каждой роли для того чтобы на нее мог быть авторизован пользователь в некоторой сессии, могут быть определены роли, на которые пользователь также должен быть авторизован в дан- ной сессии. Общая структура элементов базовой модели РРД имеет вид, представленный на рис. 5.1. 91
5.3. МОДЕЛЬ АДМИНИСТРИРОВАНИЯ РРД 5.3.1. Основные положения Как уже отмечалось, в базовой модели РРД предполагается, что множества U, R, Р и функции РА, UA не изменяются с тече- нием времени или существует единственная роль — «офицер безопасности», которая предоставляет возможность изменять эти множества и функции. В реальных компьютерных системах, в ко- торых одновременно могут работать сотни и тысячи пользовате- лей, а структура ролей и прав доступа может быть очень слож- ной, проблема администрирования является чрезвычайно важ- ной задачей. Для решения этой задачи рассматривается постро- енная на основе базовой модели РРД модель администрирования РРД. В дополнение к используемым элементам базовой модели РРД в модели администрирования РРД рассматриваются следующие элементы: AR — множество административных ролей (AR п А = 0); АР — множество административных прав доступа (АР n Р = = 0); АРА. AR 2АР — функция, определяющая для каждой адми- нистративной роли множество административных прав доступа; при этом для каждого р е АР существует г е AR такая, что р е е ЛРЛ(г); AUA: U-> 2AR — функция, определяющая для каждого пользо- вателя множество административных ролей, на которые он может быть авторизован. Кроме того, переопределяется следующая функция: roles-. S 2R '.j 2AR — функция, определяющая для пользовате- ля множество ролей, на которые он авторизован в данной сессии; при этом в каждый момент времени для каждого л е 5выполняет- ся условие roles(s) с UA(user(s)) u AUA(user(s)). Как и в базовой модели РРД, в модели администрирования РРД реализуются иерархия административных ролей и механиз- мы ограничений. Определение 5.8. Иерархией ролей в модели администрирова- ния РРД называется заданное на множестве ролей AR отношение частичного порядка «<». При этом выполняется условие для и е U, если г, г' е AR, г е AUA(u) тл г' < г, то г' е AUA(u). Общая структура элементов модели администрирования РРД имеет вид, представленный на рис. 5.2. Административные роли могут быть разделены на три группы по своему назначению: 92
Рис. 5.2. Структура элементов модели администрирования РРД • администрирование множеств авторизованных ролей пользо- вателей; • администрирование множеств прав доступа, которыми обла- дают роли; • администрирование иерархии ролей. Как правило, каждой административной роли назначают под- множество иерархии ролей, параметры которых данная админи- стративная роль позволяет изменять. Рассмотрим каждую из групп административных ролей подробнее. 5.3.2. Администрирование множеств авторизованных ролей пользователей При администрировании множеств авторизованных ролей пользователей изменяются значения функции И4(). Для измене- ния значений функции UAQ определяются специальные админи- стративные роли из множества AR. Для администрирования множеств авторизованных ролей пользователей необходимо определять: • для каждой административной роли множество ролей, множе- ства авторизованных пользователей которых она позволяет изменять; 93
• для каждой роли предварительное условие, которому долж- ны соответствовать пользователи, прежде чем они будут включе- ны в множество ее авторизованных пользователей. Пример 5.1. Пусть задана иерархия ролей (рис. 5.3, а) и иерар- хия административных ролей (рис. 5.3, б). Минимальная роль в иерархии — служащий (£). Иерархия ро- лей разработчиков проектов имеет максимальную роль — дирек- тор (DIR), минимальную роль — инженер (JED). В управлении выполняются работы по двум проектам. В каждом проекте опреде- б Рис. 5.3. Пример иерархии ролей (а) и иерархии административных ро- лей (б) 94
лены максимальная роль — руководитель проекта (PZ1, PL2 соот- ветственно), минимальная роль — инженер проекта (£"1, Е2 соот- ветственно) и не сравнимые между собой роли — инженер по производству (РЕ\, РЕ2 соответственно) и инженер по контро- лю (QE\, QE2 соответственно). Иерархия административных ро- лей состоит из четырех ролей с максимальной ролью — старший офицер безопасности (SSO'y В рассматриваемом примере административная роль PSOI по- зволяет включать в множества авторизованных ролей пользовате- ля роли РЕ\, QE1, Е1. При этом для того чтобы любая из перечис- ленных ролей могла быть включена в множество авторизованных ролей пользователя, он уже должен обладать ролью ED. Для роли х е R и пользователя и е Uобозначим: x(w) — булева функция такая, что х(й) = true тогда и только тогда, когда {х’ е R, где х < х'} n UA(u) * 0. Определение 5.9. Предварительным условием для роли г е R называется булева функция с,.(и) = cr(xt(ii), хк(и)), где и е U, Xi, ..., хк е R и c,.(yh Ук) ~ булева функция от к булевых пере- менных. При этом роль г е R может быть включена в множество авторизованных ролей пользователя и е U, если cr(u) = true. Обозначим через CR все предварительные условия для ролей из R. । Определение 5.10. Для администрирования множеств автори- зованных ролей пользователей на множестве административных ролей задаются следующие функции: • can-assign-. AR -» CR х 2Л— функция, определяющая для каж- дой административной роли множество ролей, которые могут быть включены в множество авторизованных ролей пользователя с ис- пользованием данной административной роли при выполнении заданных предварительных условий; • can-revoke'. AR 2R — функция, определяющая для каждой административной роли множество ролей, которые могут быть исключены из множества авторизованных ролей пользователя с использованием данной административной роли. Как правило, множество ролей, являющееся значением функ- ции can-assignQ) или can-revoke{), задается интервалом ролей од- ного из четырех видов: [х, у] = {х' е R, где х < х' и х' < у}; (х, у] = {х' е R, где х < х' и х' < у}; [х, у) = {х' е R, где х < х' и х' < у}; (х, у) = {х' е R, где х < х' и х' < у}, где х, у е R. Пример 5.2. Рассмотрим иерархию ролей и иерархию админист- ративных ролей из примера 5.1. Определим значения функций сап- 95
Таблица 5.1. Значения функции can-assign!) Администра- тивная роль Предварительное условие Множество ролей PSO) ED [El, PLY) PSO2 ED [E2, PL2) DSO ED and (not PLY) [PL2, PL2] DSO ED and (not PL2) [PL\, PLY] Таблица 5.2. Значения функции can-revoke() Администра- тивная роль Множество ролей PS О] [El, PEI) PSO2 [E2, PE2) DSO (ED, DIR) assign() и can-revoke() соответственно для административных ро- лей /АО!, PSO1 и DSO (табл. 5.1, 5.2). Таким образом, административная роль PSO1 позволяет вклю- чить для пользователя, уже обладающего ролью ED, в множе- ство его авторизованных ролей роли Е1, РЕ\ и QE\. Админист- ративная роль DSO позволяет включить для пользователя, уже обладающего ролью ED, в множество его авторизованных ролей роль РЕ1; при этом данный пользователь не должен обладать ролью PL2. Следует отметить, что в общем случае значения функций сап- assignQ и can-revoke!) определяются независимо друг от друга, т. е. удаление роли из множества авторизованных ролей пользова- теля может быть выполнено независимо от того, каким образом эта роль была включена в это множество, и наоборот. Кроме того, значения функции can-revoke() определяются в общем случае без учета иерархии ролей. Следовательно, может оказаться, что для некоторой административной роли разреше- но удаление роли г е R из множества авторизованных ролей UA(u) пользователя и е U. Если при этом найдется роль г' е R такая, что г < г' и г' е UA(u), то удаление роли г из множества авторизованных ролей пользователя и не будет иметь эффекта, так как права доступа роли г являются подмножеством прав до- ступа роли г', авторизованным пользователем которой останется пользователь и. Одним из путей решения данной проблемы может являться каскадное удаление. При каскадном удалении, если роль г удаля- ется из множества авторизованных ролей пользователя, то из это- го множества должны быть удалены все роли г' такие, что г< г'. Однако если для некоторой административной роли ar е AR вы- полняются условия г е can-revoke(ar), г' <£. can-revoke(ar), то кас- кадное удаление будет невозможно. Таким образом, порядок оп- ределения значений функции can-revoke!) и процедура удаления роли из множества авторизованных ролей пользователя требуют дополнительного уточнения. 96
5.3.3. Администрирование множеств прав доступа, которыми обладают роли При администрировании множеств прав доступа ролей изме- няются значения функции Л4(), для чего определяются специ- альные административные роли из множества AR. Подход к определению порядка администрирования множеств прав доступа ролей аналогичен подходу, использованному для администрирования множеств авторизованных ролей пользователя. При этом предварительные условия определяются для прав доступа. Определение 5.11. Для администрирования множеств прав до- ступа, которыми обладают роли, на множестве административ- ных ролей задаются: • can-assign?. AR -> CR х 2Л — функция, определяющая для каждой административной роли множество ролей, для которых разрешено включать права доступа в множества прав доступа с использованием данной административной роли при выполнении заданных предварительных условий; • can-revoke?. AR -> 2Л — функция, определяющая для каждой административной роли множество ролей, для которых разреше- но удаление прав доступа из множеств прав доступа с использо- ванием данной административной роли. Пример 5.3. Рассмотрим иерархию ролей и иерархию админист- ративных ролей из примера 5.1. Определим значения функций сап- assign?() и can-revoke?() соответственно для административных ролей PSOi, PSO1 и DSO (табл. 5.3, 5.4). Таким образом, административная роль DSO позволяет вклю- чить права доступа,' входящие в множество прав доступа роли DIR, в множества прав доступа ролей PZ1, РА2. Причем данные права Таблица 5.3. Значения функции can-assign?0 Администра- тивная роль Предварительное условие Множество ролей DSO DIR [PZ1, PLA] DSO DIR [PL2, PL2] PSOi PLA and (not QEi) [PEi, PEi] PSOi PLA and (not PEi) [QEi, QEi] PSO2 PL2 and (not QE2) [PE2, PE2] PSO2 PL2 and (not PE2) [QE2, QE2] Таблица 5.4. Значения функции can-revokeр() Администра- тивная роль Множество ролей DSO (ED, DIR) PSOi [QEi, QEi] PSOi [PEi, PEi] PSO2 [QE2, QE2] PSO2 [PE2, PE2]
доступа могут быть включены в множества прав доступа ролей, находящихся ниже Р1Л. PL2 по иерархии. Административная роль PSO\ позволяет включить права доступа, входящие в множество прав доступа роли PL1, в множества прав доступа ролей РЕ\ и QE1, но только в каждую по отдельности. Административная роль DSO позволяет удалять права доступа из множеств прав доступа ролей, находящихся в иерархии между ролями ED и DIR, а адми- нистративная роль PSO\ позволяет удалять права доступа из мно- жеств прав доступа ролей РЕ\ и QE\. В общем случае значения функции can.-revokepQ определяются без учета иерархии ролей. В связи с этим необходимо решать про- блему удаления прав доступа ролей, аналогичную рассмотренной ранее проблеме удаления ролей из множеств авторизованных ро- лей пользователей. 5.3.4. Администрирование иерархии ролей Определение правил администрирования, позволяющих изме- нять иерархию ролей, является самой сложной задачей, рассмат- риваемой в модели администрирования РРД. Для решения данной задачи используются подходы, реализованные при опредечении правил администрирования множеств авторизованных ролей пользователей и прав доступа ролей. Задаются три иерархии, эле- ментами которых соответственно являются: • возможности — множества прав доступа и других возможно- стей; • группы — множества пользователей и других групп; • объединения — множества пользователей, прав доступа, групп, возможностей и других объединений. Иерархия объединений является наиболее общей и может вклю- чать в себя иерархии возможностей и групп. Определение возмож- ностей и групп требуется для обеспечения соответствия правил администрирования ролей в модели и используемых на практике технологий обработки информации и создания административных структур организаций. Например, для выполнения своих функций пользователю может быть необходим некоторый набор прав досту- па, причем отсутствие в этом наборе некоторого права доступа может сделать бессмысленным обладание имеющимися правами. На основе иерархий возможностей, групп и объединений зада- ется иерархия ролей, элементами которой являются роли-возмож- ности, роли-группы, роли-объединения ({/Р-роли). Определение 5.12. Роли-возможности — роли, которые обла- дают только определенными в соответствующей возможности пра- вами доступа. 98
Определение 5.13. Роли-группы — роли, на которые могут быть авторизованы одновременно только все пользователи соответству- ющей группы. Определение 5.14. Роли-объединения — роли, которые обла- дают возможностями, правами доступа и на которые могут быть авторизованы группы пользователей и отдельные пользователи. Роли-объединения являются общим случаем ролей, рассмат- риваемых в модели администрирования РРД. Определение 5.15. Роль-объединение г, в иерархии ролей пре- восходит роль-объединение г2, если выполняются условия: • возможности и права доступа роли г2 являются подмноже- ством возможностей и прав доступа роли • пользователи и группы пользователей, которые могут быть авторизованы на роль г,, являются подмножеством множества пользователей и групп пользователей, которые могут быть авто- ризованы на роль г2. Определение 5.16. Для администрирования возможностей и групп пользователей на множестве административных ролей зада- ются: • can-assigna-. AR -> CR х 2UPR — функция, определяющая для каждой административной роли множество ролей-объединений, в множество прав доступа которых разрешено включать возмож- ности с использованием данной административной роли при вы- полнении заданных предварительных условий; • can-revoke„. AR -> 2UPR — функция, определяющая для каж- дой административной роли множество ролей-объединений, из множества прав доступа которых разрешено удаление возможно- стей с использованием данной административной роли; • can-assign^-. AR CR х 2UPR — функция, определяющая для каждой административной роли множество ролей-объединений, которые разрешено включать в множество авторизованных ролей групп пользователей с использованием данной административ- ной роли при выполнении заданных предварительных условий; • can-revokes: AR -> 2UPR — функция, определяющая для каждой административной роли множество ролей-объединений, которые разрешено удалять из множества авторизованных ролей групп пользователей с использованием данной административной роли. Замечание. В множество значений заданных функций входит множество 2upr, где UPR — множество ролей объединений, что обеспечивает общность способов определения правил админист- рирования для всех используемых иерархий. Необходимость определения иерархий возможностей и групп обусловлена также тем, что построенные на их основе правила администрирования отличны друг от друга. Предварительные ус- ловия, определенные в функции can-assigna(), используются ана- логично предварительным условиям, определенным в функции 99
can-assignpO, а предварительные условия, определенные в функ- ции can-assign?(), используются аналогично предварительным ус- ловиям, определенным в функции can-assign(). Например, для того чтобы в множество прав доступа роли-объединения была включе- на возможность, данная возможность должна входить в множе- ства прав доступа ролей, указанных в предварительном условии функции can-assign а(), а для того чтобы роль-объединение была включена в множество авторизованных ролей группы пользовате- лей, пользователи данной группы должны уже обладать ролями в соответствии с предварительным условием функции can-assigng(). Включение возможности в множество прав доступа роли-объ- единения означает, что соответствующая роль-возможность в иерархии ролей станет непосредственно «ниже» роли-объедине- ния. Наоборот, включение роли-объединения в множество авто- ризованных ролей группы пользователей означает, что соответ- ствующая роль-группа в иерархии ролей станет непосредственно «выше» роли-объединения. Определение 5.17. Для администрирования иерархии ролей (до- бавления и удаления ролей, включения или удаления отношений иерархии) на множестве административных ролей задается сап - modify: AR -> 2UPR— функция, определяющая для каждой админи- стративной роли интервал ролей (исключая границы интервала), на котором возможно изменение иерархии ролей с использова- нием данной административной роли. Пример 5.4. Рассмотрим иерархию ролей и иерархию админи- стративных ролей из примера 5.1. Определим значения функции can-modifyf) для административных ролей PSO1 и DSO (табл. 5.5). Таким образом, административные роли PSO\ и DSO позволя- ют изменять иерархию ролей соответственно на интервалах (Д1, PL1) и (ED, DIR). Описанные способы задания правил администрирования иерар- хии ролей в общем случае требуют уточнения. Например, возмож- но возникновение следующей ситуации. Пользователь с админист- ративной ролью DSO удаляет из иерархии роль PL1. В то же время роль PL1 входит в предварительные условия и участвует в опреде- лении интервалов значений функций can-assign() и can-revokef). Таким образом, для административной Таблица 5.5. Значения функции can-modify () роли DSO должно быть запрещено уда- ление ролей, участвующих в задании значений и предварительных условий функций администрирования. Кроме того, возможна следующая ситуация. Пример 5.5. Рассмотрим иерархию ролей и иерархию административных Администра- тивная роль Множество ролей PSOI DSO (£1, PLY) (ED, DIR) 100
ролей из примера 5.1 и функцию can-modify{), значения которой заданы в соответствии с табл. 5.5 (рис. 5.4). Предположим, что пользова- тель с административной ролью DSO добавил в иерархию ролей роли Хи Y. Так как пользователь с административной ролью P.SY91 может изменять иерархию ролей на интервале ролей (£1, Р£1), пусть он определит роль QEI как старшую над ролью РЕ\. Таким образом, административная роль PSO1 позволяет определить роль X старшей над ролью У, несмот- Рис. 5.4. Пример модификации иерархии ролей ря на то, что эти роли не входят в определенный для PSOI интервал (£1, Р£1). Возможна реализация нескольких подходов по определению порядка администрирования иерархии ролей в данной ситуации. Во-первых, можно запретить пользователю с административной ролью DSO добавлять роли X и У, так как это нарушает целост- ность интервала (£1, PLV), на котором разрешено администриро- вание для роли PSOI. Во-вторых, можно запретить пользователю с административной ролью PSO1 определять роль QE1 старшей над ролью РЕ\. В-третьих, можно разрешить выполнять все запра- шиваемые действия с использованием административных ролей DSOn PSOY 5.4. МОДЕЛЬ МАНДАТНОГО РРД 5.4.1. Защита от угрозы конфиденциальности информации Ролевое разграничение доступа является развитием дискреци- онного разграничения доступа. В то же время оно является доста- точно гибким, и, ирпользуя механизм ролей, возможна реализа- ция мандатной по.ф1тики безопасности, ориентированной на за- щиту от угрозы конфиденциальности информации. Рассмотрим йодход [21], реализующий мандатное разграниче- ние доступа на основе базовой модели РРД. Используем следующие обозначения: U — множество пользователей (субъектов); О — множество объектов; 101
(L, <) — решетка уровней конфиденциальности; с: UL — функция уровня доступа пользователя; с: О L — функция уровня конфиденциальности объекта; А = {read, write} — виды доступа. Будем различать два вида мандатного разграничения доступа: либеральный и строгий (Белла—ЛаПадула). Определение 5.18. Доступ (м, о, г) является безопасным для либерального мандатного разграничения доступа, если выполня- ется одно из условий: • r = read и с(и) > с(о) (^-свойство); • r= write и, если существует доступ (и, o', read), то с(о) > с(о') (либеральное ’-свойство). Определение 5.19. Доступ (и, о, г) является безопасным для Строгого мандатного разграничения доступа, если выполняется рдно из условий: • r= read и с(и) > с(о) (^-свойство); • г= write и, если существует доступ {и, o', read), то с(о) = с(о') (строгое ’-свойство). Построим систему РРД. Пусть R = {x_read | х е L} и {x_write | х <= L} — множество ролей; Р= {(о, read) | о е 0} о {(о, write) | о е 0} — множество прав доступа. Зададим на множестве ролей R иерархию; при этом иерархии ролей на множествах {x_read | х е L} и {x_write | х е L} будут незави- симы. Определение 5.20. Иерархией на множестве ролей R в соответ- ствии с требованиями либерального мандатного разграничения доступа называется отношение частичного порядка «<», где для г, г' е R справедливо неравенство г<г', если выполняется одно из условий: • г = x_read, г' = x'__read и х < х'; • r=x__write, г' = x'_write и х' < х. Определение 5.21. Иерархией на множестве ролей R в соответ- ствии с требованиями строгого мандатного разграничения доступа называется отношение частичного порядка «<», где для г, г' е R справедливо неравенство г<г', если выполняется одно из условий: • r=x_read, г' = x'_read и х<х'; • r=x_write, г’ = x'_write и х=х' (каждая роль вида x_write срав- нима только сама с собой). Определение 5.22. Модель РРД соответствует требованиям ли- берального мандатного разграничения доступа, если иерархия ролей соответствует требованиям определения 5.20 и выполняют- ся ограничения: • ограничение функции К4() — для каждого пользователя не U роль x_read= Ф (UA(u) n {yread | у е L}) е UA(u) (здесь х= с(и)) и x__write = Ф {у_write | у е L} е UA(u) (здесь х = ® L); 102
• ограничение функции roles() — для каждой сессии ,v с Л' мио жество roles(s) = {x_read, x_write}', • ограничение функции РАО — должно выполняться: для каждого х е L доступ (о, read) е PA(x_read) тогда и только тогда, когда доступ (о, write) е PA(x_write)', для каждого доступа (о, read) существует единственная роль x_read'. (о, read) е PA(xread) (здесь х~ с(о)). Определение 5.23. Модель РРД соответствует требованиям стро- гого мандатного разграничения доступа, если иерархия ролей со- ответствует требованиям определения 5.21 и выполняются огра- ничения: • ограничение функции UA() — для каждого пользователя и е U роль x_read= ® (UA(u) n {y_read | у е L}) е UA(u) (здесь х= с(и)) и UA(u) = {y_write | у е L}; • ограничение функции rolesO — для каждой сессии 5 е S мно- жество roles(s) = {x_read, x_write}\ • ограничение функции 7М() — должно выполняться: для каждого х е L доступ (о, read) е PA{x_read) тогда и только тогда, когда доступ (о, write) е PA(x_write)\ для каждого доступа (о, read) существует единственная роль x_read: (о, read) e PA(x_read) (здесь х= с(р)). Таким образом, требования соответствия либеральному и стро- гому мандатному разграничению доступа для моделей РРД совпа- дают во всем, кроме требований к соответствующей иерархии ролей и ограничениям на функцию UA. Теорема 5.1. Если модель РРД соответствует требованиям либе- рального или строгого мандатного разграничения доступа, то в ней для о, о' е О таких, что с(о) > с(о'), невозможно возникнове- ние информационных потоков от о к о'. Доказательство. Доказательство выполним для либерального мандатного разграничения доступа. Докажем от противного. Пусть о, о' е О, с(р) > с(о') и возможно возникновение информацион- ного потока от о к о', т. е. существуют роли г, г' е R и сессия 5 е S такие, что (о, read) е PA(r), (o', write) е РА(г') и г, г' е roles(s). По определению 5.22 должно выполняться условие r= c(p)_read, г' = c(p')_write и, следовательно, с(о) = с(о') — противоречие. Доказательство для строгого мандатного разграничения досту- па выполняется аналогично. 5.4.2. Защита от угрозы конфиденциальности и целостности информации Модель мандатного РРД, в первую очередь, ориентирована на обеспечение защиты от угрозы конфиденциальности информа- ции. В то же время возможно доопределение свойств модели с 103
целью анализа систем защиты от двух угроз: целостности инфор- мации и конфиденциальности информации. Используем обозначения модели РРД защиты от угрозы кон- фиденциальности информации. Также используем следующие обо- значения: (LI, <) — решетка уровней целостности информации; ci: U -> LI — функция уровня целостности пользователя; ci: О LI — функция уровня целостности объекта. Также как в модели РРД защиты от угрозы конфиденциально- сти информации, будем различать два вида мандатного контроля целостности информации: либеральный и строгий. Определение 5.24. Доступ (и, о, г) является безопасным для либерального мандатного контроля целостности, если выполня- ется одно из условий: • г=ь read и с/(и) < с/(о); • г = write и, если существует доступ (w, o', read), то ci(o) < ci(o'). Определение 5.25. Доступ (и, о, г) является безопасным для строгого мандатного контроля целостности, если выполняется одно из условий: • r = read и ci.(u) < ci(o); • r= write и, если существует доступ (и, o', read), то ci(p) = = ci(o'). Рассмотрим иерархию ролей на множестве RI= {xi_read | xi е LI} о u {xi_write | xi е LI}. Иерархии ролей на множествах [xi_read | xi е е LI} и {xi_write | xi е LI} независимы. Определение 5.26. Иерархией на множестве ролей RIв соответ- ствии с требованиями либерального мандатного контроля целост- ности называется отношение частичного порядка «<», где для г, г' е RI справедливо неравенство г< г', если выполняется одно из условий: • г = xi_read, г' = xi'_read и xi' < xi; • г = xi_write, г' = xi'_write и xi <xi'. Определение 5.27. Иерархией на множестве ролей RIв соответ- ствии с требованиями строгого мандатного контроля целостности называется отношение частичного порядка «<», где для г, г' е RI справедливо неравенство г< г', если выполняется одно из условий: • г = xij-ead, г' = xi'_read и xi' < xi; • г = xi_write, г' = xi'_write и xi<xi' (каждая роль вида xi_write сравнима только сама с собой). Определение 5.28. Модель РРД соответствует требованиям ли- берального мандатного контроля целостности, если иерархия ро- лей RI соответствует требованиям определения 5.26 и выполня- ются ограничения: • ограничение функции К4() — для каждого пользователя и е U роль xi_read = ® (UA(u) n {yi_read | yi е LI}) е Ш(и) (здесь х, = = ci(u)) и xi_write = ® {yi_write | yi е LI} е UA(u) (здесь xi = ® LI); 104
• ограничение функции roles() — для каждой сессии з е S множество roles(s) = {xi_read, xi_write}; • ограничение функции ДЛ() — должно выполняться: для каждого xi е LIдоступ (о, read) е PA(xi_read) тогда и толь- ко тогда, когда доступ (о, write) е PA{xi_write)-, для каждого доступа (о, read) существует единственная роль xi_read: (о, read) е PA(xi read') (здесь х/=с/(о)). Определение 5.29. Модель РРД соответствует требованиям строго- го мандатного контроля целостности, если иерархия ролей RI соот- ветствует требованиям определения 5.27 и выполняются ограничения: • ограничение функции UA() —- для каждого пользователя и е U роль xi_read = ® (UA(u) гл {yi_read | yi е LI}) е UA(u) (здесь xi = ci(u)) и UA(u) = {yi_write | yi е LI}-, • ограничение функции roles() — для каждой сессии з е S мно- жество roles(s) = {xi_read, xi_write}-, • ограничение функции РА() — должно выполняться: для каждого xi е LI доступ (о, read) е PA(xi_read) тогда и только тогда, когда доступ (о, write) е PA(xi_write)-, для каждого доступа (о, read) существует единственная роль xi_read'. (о, read) е PA(xi read) (здесь xi = ci(o)). Построим систему РРД мандатного разграничения доступа и контроля целостности. Пусть R = ({x_read | х е L} х {xi_read | xi е LI}) и ({x_write | х е L}) х х {xi__write | xi е LI}) — множество ролей. Зададим на множестве ролей R иерархию; при этом возможно произвольное сочетание иерархий ролей либерального или строго- го мандатного разграничения доступа с либеральным или строгим контролем целостности. Иерархии ролей на множествах {x_read | х е L} х {xi_read | xi е LI} и {x_write | х е L} х {xiwrite | xi е LI} независимы. Рассмотрим реализацию либерального мандатного разграниче- ния доступа и контроля целостности. Определение 5.30. Иерархией на множестве ролей R в соответ- ствии с требованиями либерального мандатного разграничения доступа и контроля целостности называется отношение частич- ного порядка «<», где для r= (rc, ri), г' = (rc', ri') е R (при этом rc, rc' е {x_read| х е L} о {x_write | х е L}, ri, ri' е {xi_read | xi е LI} и о {xi_write | xi е LI}) справедливо неравенство г< г', если rc< гс' в иерархии ролей либерального мандатного разграничения доступа (определение 5.20) и ri < ri' в иерархии ролей либерального конт- роля целостности (определение 5.26). Определение 5.31. Модель РРД соответствует требованиям либе- рального мандатного разграничения доступа и контроля целост- ности, если иерархия ролей R соответствует требованиям опреде- ления 5.30 и выполняются ограничения: 105
(US-read, LI-read) (LS-write, Hl-write) (HS-read, HI-read)(LS-read, Li-read) (HS-write, Hl-write) (LS-write, Ll-write) (LS-read, Hi-read) (HS-write, Ll-write) Рис. 5.5. Либеральные мандатное разграничение доступа и мандатный контроль целостности (HS-read, LI-read) (HS-read, HI-read)(LS-read, LI-read) (LS-read, Hi-read) (LS-write, Hl-write) (HS-write, Ш-write) (LS-write, Ll-write) (HS-write, Ll-write) Рис. 5.6. Строгое мандатное разграничение доступа и либеральный мандатный контроль целостности (HS-read, LI-read) (HS-read, HI-read)(LS-read, LI-read) (LS-read, Hi-read) (HS-write, Hl-write) (LS-write, Ll-write) (LS-write, Hl-write) (LS-write, Ll-write) Рис. 5.7. Либеральное мандатное разграничение доступа и строгий мандатный контроль целостности (HS-read, LI-read) (HS-read, HI-read)(LS-read, LI-read) (LS-read, Hi-read) (HS-write, Hl-write) (HS-write, Ll-write) (LS-write, Hl-write) (LS-write, Ll-write) Рис. 5.8. Строгие мандатное разграничение доступа и мандатный контроль целостности 106
• ограничение функции UA() — для каждого пользователя ueU роль (x_read, xi_read) = ® (UA(u) n i{y_read | у е L} х {yi_read | yi е е Z/})) е UA(u) (здесь х = с(и), xi = cz(m)) и (x_write, xi_write) = = ® ({y_write | j e L} x {yi_write | yi e LI}) e UA(u) (здесь x= 0 L, xi = Ф LI); • ограничение функции rolesQ — для каждой сессии з е S множество rolesis) = {{x_read, xi read), (x_write, xi_write)}', • ограничение функции PAQ — должно выполняться: для каждыхх е L, xi e LIдоступ (о, read) е PA((x_read, xi_read)) тогда и только тогда, когда доступ (о, write) е PA((x_write, xi_write)); для каждого доступа (о, read) существует единственная роль (x_read, xi_read): (о, read) e PA((x_read, xi__read)) (здесь x-c(o), xi = ci(p)). Для решеток уровней конфиденциальности (L, <) = {LS, HS} и уровней целостности (LI, <) = {LI, HI} на рис.5.5 —5.8 представ- лены иерархии ролей для четырех возможных сочетаний иерархий ролей либерального или строгого мандатного разграничения дос- тупа с либеральным или строгим мандатным контролем целост- ности. Контрольные вопросы 1. Какие основные проблемы определения правил изменения иерар- хии ролей рассматриваются в модели администрирования РРД? 2. Какого вида ограничения, описанные в базовой модели РРД, могут быть использованы при определении требований либерального и строго- го мандатного разграничения доступа? 3. Докажите, что при соответствии модели РРД требованиям ли- берального или строгого мандатного разграничения доступа для каждо- го доступа (о, write) существует единственная роль x_write такая, что (о, write) е PA(x_write) (здесь х=с(о)). 4. Каким образом в определениях либерального или строгого мандат- ного разграничения доступа модели РРД реализованы ^-свойство и -свойство, определенные в классической модели Белла —ЛаПадула? 5. Постройте графы иерархии ролей для модели мандатного РРД для решеток уровней конфиденциальности (L, <) = {LS, MS, HS} и уровней целостности (LI, <) = {LI, MI, HI}.
ГЛАВА 6 СУБЪЕКТНО-ОРИЕНТИРОВАННАЯ МОДЕЛЬ ИЗОЛИРОВАННОЙ ПРОГРАММНОЙ СРЕДЫ 6.1. ОСНОВНЫЕ ПОНЯТИЯ. МОНИТОР БЕЗОПАСНОСТИ ОБЪЕКТОВ Как правило, модели, связанные с реализацией политики бе- зопасности, не учитывают возможности субъектов по изменению конфигурации или параметров функционирования компьютерной системы, которые могут привести к изменению ее свойств и как предельный случай к полной неприменимости той или иной мо- дели к описанию отношений субъект — объект в измененной сис- теме. В данной главе на основе [6, 7] рассматривается субъектно- ориентированная модель изолированной программной среды, в которой основное внимание уделяется определению порядка бе- зопасного взаимодействия субъектов системы, описанию и обо- снованию необходимых условий реализации в системе изолиро- ванной программной среды. Будем полагать, что в любой дискретный момент времени мно- жество субъектов компьютерной системы не пусто (в противном случае соответствующие моменты времени исключаются из рас- смотрения и рассматриваются отрезки с ненулевой мощностью множества субъектов). Аксиома 6.1. Субъекты в компьютерной системе могут быть по- рождены только активной компонентой (субъектами) из объектов. Определим механизм порождения новых субъектов. Определение 6.1. Объект о называется источником для субъекта s', если существует субъект s, в результате воздействия которого на объект о в системе возникает субъект 5'. Субъект s, порождаю- щий новый субъект из объекта о, в свою очередь, называется ак- тивизирующим субъектом для субъекта s', которого назовем по- рожденным субъектом. Введем следующее обозначение: Create(s, о) -> s' — операция порождения субъектов (из объекта о порожден субъект s' при активизирующем воздействии субъекта s). Операция Create^) задает отображение декартова произведе- ния множеств субъектов и объектов на объединение множества субъектов с пустым множеством. Заметим также, что в компью- 108
терной системе действует дискретное время и фактически новый субъект s' порождается в момент времени t+ 1 относительно мо- мента времени t, в который произошло воздействие порождаю- щего субъекта на объект-источник. Очевидно, что операция порождения субъектов зависит как от свойств активизирующего субъекта, так и от содержания объекта- источника. Считаем, что если Creators, о) 0, то порождение нового субъекта из объекта о при активизирующем воздействии 5 невоз- можно. Так, практически во всех операционных средах существует понятие исполняемого файла — объекта, способного быть источ- ником для порождения субъекта. Определение 6.2. Объект о в момент времени t ассоциирован с субъектом s, если состояние объекта о повлияло на состояние субъекта 5 в следующий момент времени (т. е. субъект 5 использует информацию, содержащуюся в объекте о). Введем обозначение «множество объектов {о}, ассоциировано с субъектом 5 в момент времени г»: 5({О},). Субъект в общем случае реализует некоторое отображение мно- жества ассоциированных объектов в момент времени t на множе- ство ассоциированных объектов в момент времени t+ 1. В связи с этим можно выделить ассоциированные объекты, изменение ко- торых изменяет вид отображения ассоциированных объектов (объекты, содержащие, как правило, код программы): функцио- нально ассоциированные и ассоциированные объекты-данные (являющиеся аргументом операции, но не изменяющие вида ото- бражения). Далее под ассоциированными объектами понимаются функционально ассоциированные объекты, в иных случаях дела- ются уточнения. Замечание 6.1. В момент порождения субъекта s' из объекта о он является ассоциированным объектом для субъекта s'. Определение 6.3. Потоком информации от объекта о (источни- ка) к объекту о' (приемнику) называется преобразование инфор- мации в объекте о', реализуемое в субъекте 5 и зависящее от о. Заметим, что как о, так и о' могут быть ассоциированными или неассоциированными объектами для субъекта s, а также «пу- стыми» объектами. Используем следующее обозначение: Streamis, о) o' — поток информации от объекта о к объекту о’. В определении подчеркнуто, что поток информации рассмат- ривается не между субъектом и объектом, а между объектами, например между объектом и ассоциированными объектами субъек- та (либо между двумя объектами). Активная роль субъекта выра- жается в реализации данного потока (это означает, что операция 109
порождения потока локализована в субъекте и отображается со- стоянием его функционально ассоциированных объектов). Отме- тим, что операция Stream^) может создавать новый объект или уничтожать его. Замечание 6.2. Отношение «между объектами существует ин- формационный поток» является транзитивным (относительно пары субъектов), т.е. если существует Stream(s, о) -> о' и существует Stream(s', o') о", то существует и Stream((s, s'), о) о". Определение 6.4. Доступом субъекта j к объекту о будем назы- вать порождение потока информации между некоторым объектом (например, между ассоциированными с субъектом объектами Х{°'})) и объектом о. Выделим все множество потоков Р для фиксированной деком- позиции компьютерной системы на субъекты и объекты во все моменты времени (все множество потоков является объединени- ем потоков по всем моментам дискретного времени) и произ- вольным образом разобьем его на два непересекающихся подмно- жества N и L, где Р= N о L, N r> L = 0. Пусть N — подмножество потоков, характеризующее несанкциони- рованный доступ; L — подмножество потоков, характеризующих легальный дос- туп. Определение 6.5. Правила разграничения доступа субъектов к объектам есть формально описанные потоки, принадлежащие подмножеству L. В предлагаемой субъектно-ориентированной модели не произ- водится уточнений известных моделей политик безопасности (по- литика безопасности описывает только критерии разбиения на множества L и N), но формулируются условия корректного суще- ствования элементов компьютерной системы, обеспечивающих реализацию той или иной политики безопасности. Поскольку кри- терий разбиения на множества L и N не связан со следующими далее утверждениями (постулируется лишь наличие субъекта, ре- ализующего фильтрацию потоков), то можно говорить об инва- риантности субъектно-ориентированной модели относительно любой принятой в компьютерной системе политики безопасно- сти (не противоречащей условиям утверждений). Определение 6.6. Объекты оно' тождественны в момент време- ни t, если они совпадают, как слова, записанные в одном языке. Для введения понятия тождественности субъектов условимся о наличии процедуры сортировки ассоциированных объектов, кото- рая позволяет говорить о возможности попарного сравнения. На практике всегда существует алгоритм, обеспечивающий возмож- но
ность попарного сравнения и зависящий от конкретной архитекту- ры компьютерной.системы. Например, достаточно легко выделить и попарно сравнивать участки оперативной памяти, отвечающие^ коду программ (отличающиеся абсолютным адресом загрузки в оперативную память) или содержанию переменных и массивов. / Определение 6.7. Субъекты j и s' тождественны в момент вре- мени /, если попарно тождественны все ассоциированные с ними объекты. Замечание 6.3. Порожденные субъекты тождественны, если тож- дественны порождающие субъекты и объекты-источники. Верность данного замечания следует из тождества функцио- нально ассоциированных объектов в порождающих субъектах, которые отвечают за порождение нового субъекта, а также из тож- дества аргументов (ассоциированных объектов-данных), которые отвечают объектам-источникам. Для разделения всего множества потоков в компьютерной си- стеме на подмножества L и N необходимо существование субъек- та, который: • активизировался бы при возникновении любого потока; • производил бы фильтрацию потоков в соответствии с при- надлежностью множествам L или N. Определение 6.8. Монитор обращений (МО) — субъект, акти- визирующийся при возникновений потока от любого субъекта к любому объекту. Можно выделить два вида МО: • индикаторный МО — устанавливающий только факт обра- щения субъекта к объекту; • содержательный МО — субъект, функционирующий таким образом, что при возникновении потока от ассоциированного объекта о любого субъекта 5 к объекту о' или обратно существует ассоциированный с МО объект о0 (в данном случае речь идет об ассоциированных объектах-данных), тождественный объекту о или одному из 5({о}); при этом содержательный МО полностью уча- ствует в потоке от субъекта к объекту (в том смысле, что инфор- мация проходит через его ассоциированные объекты-данные и существует тождественное отображение объекта на какой-либо ассоциированный объект МО). Теперь сформулируем понятие монитора безопасности (в ли- тературе также применяется понятие монитора ссылок). Это по- нятие связано с упоминаемой выше задачей фильтрации потоков. Поскольку целью является обеспечение безопасности компьютер- ной системы, то и целевая функция монитора — фильтрация с целью обеспечения безопасности (разделение на N и L задано априорно). Определение 6.9. Монитор безопасности объектов (МБО) — монитор обращений, который разрешает поток, принадлежащий Ill
только множеству легального доступа L. Разрешение потока в дан- ном случае понимается как выполнение операции над объектом — получателем потока, а запрещение — как невыполнение (т. е. не- изменность объекта — получателя потока). Монитор безопасности объектов фактически является механиз- мом реализации политики безопасности в компьютерной системе. 6.2. МОНИТОР БЕЗОПАСНОСТИ СУБЪЕКТОВ Представляется очевидным, что при изменении функциональ- но ассоциированных с МБО объектов могут измениться и свой- ства самого МБО, заключающиеся в фильтрации потоков и, как следствие, могут возникнуть потоки, принадлежащие множеству j¥(pnc. 6.1). Введем в связи с этим понятие корректности субъектов. Определение 6.10. Субъекты 5 и s' называются невлияющими друг на друга (или корректными относительно друг друга), если в любой момент времени отсутствует поток (изменяющий состоя- ние объекта) между любыми объектами о и о’, ассоциированны- ми соответственно с субъектами 5и У. Таким образом, выполня- ется условие для />0, о е s({°h), °' е ?’({°}/) не существует субъекта s" тако- го, что или Stream(s", о) -> о', или Stream(s", o') -> о. Смысл понятия корректности можно пояснить на примере: существующие в едином пространстве ОС программы не должны иметь функциональных возможностей изменения «чужого» векто- ра кода и состояния переменных. Определение 6.11. Субъекты 5 и .s' называются абсолютно не- влияющими друг на друга (или абсолютно корректными относи- Stream (5, о)->о' О(^> I ХИ) I,----. ®...® J I----- ;МБО({о}) МБО ®...® ; ------ ; х{о}) I-----\ С* ®...® \ \ !мбо({о}) МБО ®...® ~г------------/ Рис. 6.1. Возможные пути обхода политики безопасности нарушителем У: а — изменение функциональности субъекта; б — изменение функциональности МБО; в - реализация информационного потока в обход МБО 112
тельно друг друга), если множества ассоциированных объектов указанных субъектов не имеют пересечения. Таким образом, вы- полняется условие для/>Оф},)п^({о},) = 0. Абсолютная корректность легко достижима в случае виртуаль- ного адресного пространства. Определение абсолютной корректности позволяет сформули- ровать достаточные условия гарантированного осуществления толь- ко легального доступа. / Теорема 6.1 (достаточное условие гарантированного выполне- ния политики безопасности в компьютерной системе 1). МБО раз- решает порождение потоков только из множества L, если все су- ществующие в системе субъекты абсолютно корректны относи- тельно него и друг друга. Доказательство. Условие абсолютной корректности (по опре- делению 6.11) предполагает неизменность функционально ассо- циированных объектов МБО (поскольку потоков, изменяющих ассоциированные объекты МБО, не существует). С другой сторо- ны, такие потоки могут появиться при изменении ассоциирован- ных объектов, принадлежащих другим субъектам компьютерной системы, так как при этом изменятся свойства субъектов, что приводит по существу к появлению новых субъектов, для которых правила разграничения доступа могут быть не установлены. Усло- вие корректности субъектов относительно друг друга делает это невозможным (по определению абсолютной корректности). Это, в свою очередь, означает, что МБО реализует только потоки из подмножества L. Теорема доказана. Однако сформулированная теорема накладывает весьма жест- кие и трудноисполнимые условия на свойства субъектов в ком- пьютерной системе. Кроме того, невозможно гарантировать кор- ректность любого субъекта, активизируемого в компьютерной системе, относительно МБО. В связи с этим логично ограничить множество порождаемых субъектов, которые априорно коррект- ны относительно МБО. Введем определение монитора порожде- ния субъектов (по аналогии с монитором обращений) и МБО. Определение 6.12. Монитор порождения субъектов (МПС) — субъект, активизирующийся при любом порождении субъектов. По аналогии с переходом от МО к МБО введем понятие мони- тора безопасности субъектов. Определение 6.13. Монитор безопасности субъектов (МБС) — субъект, который разрешает порождение субъектов только для фиксированного подмножества пар активизирующих субъектов и объектов-источников. Воздействие МБС выделяет во всем множестве субъектов 5под- множество разрешенных субъектов Е. 5 Деникин 113
Сформулируем ряд базовых определений, которые будут ис- пользоваться в дальнейшем. Определение 6.14. Компьютерная система называется замкнутой по порождению субъектов (обладает замкнутой программной сре- дой), если в ней действует МБС, разрешающий порождение толь- ко фиксированного конечного подмножества субъектов для любых объектов-источников, рассматриваемых для фиксированной деком- позиции компьютерной системы на субъекты и объекты. Однако замкнутости компьютерной системы по порождению субъектов недостаточно для описания свойств системы в части защищенности, поскольку необходимо обеспечить корректность порождаемых МБС субъектов относительно него самого и МБО. Механизм замкнутой программной среды сокращает множество возможных субъектов до некоторого множества фиксированной мощности, но при этом допускает существование некорректных субъектов, включенных в замкнутую среду. Сформулируем определение изолированности программной среды. Определение 6.15. Множество субъектов программной среды называется изолированным (абсолютно изолированным), если в ней действует МБС и субъекты из порождаемого множества кор- ректны (абсолютно корректны) относительно друг друга и МБС. Замечание 6.4. Любое подмножество субъектов изолированной (абсолютно изолированной) программной среды, включающее МБС, также составляет изолированную (абсолютно изолирован- ную) среду. Замечание 6.5. Дополнение изолированной (абсолютно изоли- рованной) программной среды субъектом, корректным (абсолютно корректным) относительно любого из числа входящих в изолиро- ванную (абсолютно изолированную) среду, оставляет ее изоли- рованной (абсолютно изолированной). Теперь возможно переформулировать достаточное условие га- рантированного выполнения политики безопасности следующим образом. Теорема 6.2 (достаточное условие гарантированного выполне- ния политики безопасности в компьютерной системе 2). Если в аб- солютно изолированной программной среде существует МБО и порождаемые субъекты абсолютно корректны с МБО, МБС и дру- гими субъектами, а также МБС абсолютно корректен с МБО, то в такой программной среде МБО разрешает порождение потоков только из множества L. Доказательство. Из определения абсолютной изолированности следует возможность существования в программной среде только конечного множества субъектов, которые, в свою очередь, кор- ректны относительно МБС (по определению 6.15 и замечаниям 6.4 и 6.5). По условию теоремы (корректность МБО с любым из. 114
порождаемых субъектов и МБС) ассоциированные объекты МБО могут изменяться только самим МБО, следовательно, в компью- терной системе реализуются только потоки, принадлежащие мно- жеству L. Теорема доказана. Легко видеть, что данное утверждение является более конст- руктивным относительно предыдущего достаточного условия га- рантированной защищенности, поскольку ранее требовалась кор- ректность МБО относительно произвольного субъекта, что прак- тически невозможно. В данном же случае множество субъектов ограничено за счет применения механизма МБС, а следователь- но, можно убедиться в попарной корректности порождаемых субъектов. 6.3. ИЗОЛИРОВАННАЯ ПРОГРАММНАЯ СРЕДА При рассмотрении операции порождения субъекта возникает проблема, связанная с тем, что в реальных компьютерных систе- мах одинаково поименованные объекты в различные моменты времени могут иметь различное размещение (например, разме- щение в разных каталогах). Предположим, что зафиксировано состояние объекта о в не- который момент времени t0. Будем обозначать состояние объекта о в момент времени t как о|7]. Определение 6.16. Операция порождения субъекта Create(s, о)-> s' называется порождением с контролем неизменности объек- та-источника, если для любого момента времени t> ta, в который активизирована операция порождения объекта CreateQ, порожде- ние субъекта s' возможно только при тождественности объектов о[Г0] и о|7]. Замечание 6.6. В условиях определения 6.16 порожденные субъек- ты и 5'[Г2] тождественны, если Z, > t0 и z2 > tQ. При Z, = t2 порождается один и тот же субъект. При порождении субъектов с контролем неизменности объек- та в компьютерной системе допустимы потоки от субъектов к объектам-источникам, участвующим в порождении субъектов, с изменением их состояния. Теорема 6.3 (базовая теорема изолированной программной сре- ды (ИПС)). Если с момента времени Zo в изолированной (абсо- лютно изолированной) программной среде действует только по- рождение субъектов с контролем неизменности объекта и все субъекты корректны (абсолютно корректны) относительно друг друга, то в любой момент времени t > tQ программная среда также остается изолированной (абсолютно изолированной). Доказательство. По условию теоремы в программной среде воз- можно существование потоков, изменяющих состояние объектов, 115
не ассоциированных в этот момент времени с каким-либо субъек- том. Если объект с измененным состоянием не является источни- ком для порождения субъекта, то множество субъектов изолиро- ванной среды нерасширяемо, в противном случае (измененный объект является источником для порождения субъекта) по услови- ям теоремы (порождение субъекта с контролем) порождение субъек- та невозможно. Следовательно, мощность множества субъектов не может превышать той, которая была зафиксирована до изменения состояния любого объекта. По замечанию 6.5 (о замкнутости мно- жества субъектов в изолированной программной среде с невозра- станием мощности множества субъектов) получим, что множество субъектов программной среды изолировано. Теорема доказана. Можно сформулировать методологию проектирования (разра- ботки) гарантированно защищенных компьютерных систем. Сущ- ность данной методологии состоит в том, что при проектирова- нии защитных механизмов компьютерной системы необходимо опираться на совокупность приведенных выше (теоремы 6.1 —6.3) достаточных условий, которые должны быть реализованы для субъектов, что гарантирует защитные свойства, определенные при реализации МБО в компьютерной системе (т. е. гарантированное выполнение заданной МБО политики безопасности). Рассмотренная концепция изолированной программной среды является расширением классического подхода к реализации ядра безопасности. Обычно модель функционирования ядра безопас- ности изображается в виде схемы, представленной на рис. 6.2. Объект управления (ОУ) содержит в себе информацию о пото- ках множества L (защита по «белому списку» — разрешенные пото- ки) или N (защита по «черному списку» — запрещенные потоки). Для учета влияния субъектов в компьютерной системе на сис- тему защиты необходимо рассматривать расширенную схему вза- имодействия элементов системы и гарантирования политики бе- зопасности. При этом должна быть особо подчеркнута роль МБС при по- рождении субъектов из объектов (рис. 6.3). Взаимодействие субъектов и объектов при порождении потоков уточнено введением ассоциированных с субъектом объектов. ОУ со- держит информацию о разрешенных значениях отображения Stream^) (об элементах множества L или N) и CreateC) (элементы множе- Объект управления Субъекты I Объекты •••-----------•---------- Ядро безопасности Рис. 6.2. Классическая схема ядра безопасности ства Е). ОУ может быть ассоции- рован как с МБО, так и с МБС. Опираясь на теорему 6.3 (базо- вую теорему ИПС), опишем ме- тод субъектно-объектного взаи- модействия в рамках ИПС для наиболее распространенной архи- тектуры компьютерной системы. 116
s({o})__' _._МБО / •• Streamts, о) /' / ---------------------------------1 'll / । \ I 1 < । ' i । i i i A ! оу I i ~~~~~ 1 । / + °’ |МБС/ _^--0...0 o') Created___________-''Ядро безопасности s' Рис. б.З. Ядро безопасности с учетом контроля порождения субъектов Из теоремы 6.3 следует, что для создания гарантированно за- щищенной компьютерной системы (в смысле выполнения задан- ной политики безопасности) необходимо выполнить следующие действия. 1. Убедиться в попарной корректности субъектов, замыкаемых в ИПС (либо убедиться в корректности любого субъекта относи- тельно МБО и МБС). 2. Спроектировать и реализовать программно (или программ- но-аппаратно) МБС так, чтобы: • для любого субъекта и любого объекта производился конт- роль порождения субъектов, т.е. чтобы реализация МБС соответ- ствовала его определению; • порождение любого субъекта происходило с контролем не- изменности объекта-источника. 3. Реализовать МБО в рамках априорно сформулированной по- литики безопасности. Приведенные выше утверждения верны только тогда, когда опи- санная и реализованная политика безопасности не нарушает их условий (проверка данного факта зависит от модели политики безопасности и является отдельной весьма важной задачей). Кроме того, необходимо обратить внимание на следующее. ОУ, который является ассоциированным объектом МБС (обычно ас- социированный объект-данные), играет решающую роль в проек- тировании ИПС. При возможности изменения состояния ОУ по- тенциально возможно «размыкание» программной среды, т.е. до- бавление к множеству разрешенных субъектов дополнительных, реализующих функции нарушителя. С другой стороны, процесс управления безопасностью подразумевает возможность изменения объекта управления. Возможность изменения объекта управления (реализация потока 51геат(субъект управления, ассоциированный объект субъекта управления) -> объект управления) должна при- сутствовать для выделенных субъектов (возможно с дополнитель- ным условием активизации этого субъекта выделенным пользова- телем или пользователями). 117
Важную роль при проектировании ИПС играет свойство боль- шинства компьютерных систем, заключающееся в поэтапной ак- тивизации субъектов из объектов различного уровня представле- ния информации. В общем случае можно говорить о рекурсивной структуре объек- тов некоторого уровня, вмещающей в себя объекты предыдущего уровня. С учетом иерархической структуры представления объек- тов можно говорить о том, что в начальные этапы активизации компьютерной системы декомпозиция на субъекты и объекты динамически изменяется. Следовательно, основная теорема ИПС может быть применима только на отдельных интервалах времени, когда уровень представления объектов постоянен и декомпозиция фиксирована. Можно утверждать, что ИПС, действующую от мо- мента активизации до момента окончания работы компьютерной системы, невозможно сформировать в начальный момент активи- зации. Пусть в компьютерной системе выделяется конечное число уровней представления объектов U = {0, ..., R}, где R — макси- мальный уровень представления объекта. С точки зрения выполнения условий теоремы 6.3 имеет смысл говорить о некотором «стационарном» состоянии компьютерной системы, когда в отображениях StreamQ и CreateQ участвуют толь- ко объекты уровня R. Тогда реализация МБС может быть значи- тельно упрощена (в том смысле, что все аргументы-объекты опе- рации CreateQ имеют уровень А). Практическая реализация всех компьютерных систем позволя- ет выделить две фазы их работы: активизация субъектов с ростом уровня представления объектов (фаза загрузки или начальная фаза) и фаза стационарного состояния (когда уровень представления объектов не увеличивается). Тогда практическая реализация ИПС может состоять из двух - этапов. 1. Предопределенное выполнение начальной фазы, включаю- щее в себя момент активизации МБС (и МБО). 2. Работа в стационарной фазе в режиме ИПС (возможно, с контролем неизменности объектов-источников). Введем понятие последовательности активизации компонент компьютерной системы. Смысл вводимых понятий и формулиру- емых ниже утверждений состоит в необходимости приведения субъектов в одно и то же состояние после активизации первично- го субъекта аппаратно-программного уровня или в задании пре- допределенной последовательности активизации субъектов ком- пьютерной системы. Используем следующие обозначения: ZL — последовательность пар длины А таких, что Create(sh °y)[d 1], где 1 = 0, 1, 2, ..., L- 1 — моменты времени; 118
Sz — множество всех субъектов, включенных в последователь- ность ZL\ Oz — множество всех объектов, включенных в последователь- ность ZL. Для многопотоковых компьютерных систем можно рассматри- вать несколько (возможно, зависимых друг от друга) последова- тельностей ZL и соответственно множеств Sz и Oz. Определение 6.17. Состоянием компьютерной системы в мо- мент времени t называется упорядоченная совокупность состоя- ний субъектов. Теорема 6.4 (условие одинакового состояния). Состояние ком- пьютерной системы в моменты времени и Д ((J и Г2 исчисляют- ся для двух отрезков активности компьютерной системы от нуле- вого момента активизации /0’ и Г02, например включения питания аппаратной части) одинаково, если: • 4' = 42; • тождественны все субъекты Д^1] и .s[z021; • неизменны все объекты из множества Oz, • неизменна последовательность ZL. Доказательство. Используем метод математической индукции. Верность утверждения при t= 0 следует из определения тожде- ственности субъектов. Пусть утверждение верно для t < к, где к> 0. Тогда в момент времени к могут быть порождены только тож- дественные субъекты, поскольку тождественны активизирующие субъекты (по предположению индукции) и по условию утвержде- ния неизменны элементы множества Oz. Теорема доказана. Длина L последовательности ZL определяется по признакам: • невозможности управления субъектами, принадлежащими множеству Sz со стороны пользователя (в противном случае пос- ледовательность активизации субъектов может быть изменена); • доступности для контроля неизменности всех объектов из множества Oz, • невозрастания уровня представления информации (в данном случае имеется в виду, что существует такой момент времени tx, что для любого t > tx объект-аргумент о операции Stream{s, <?)[/] принадлежит одному уровню представления). Пусть в последовательности ZL можно выделить такое, что для любого z„ t > i, отображений CreateQ и StreamQ используют только объекты уровня R. Другими словами, с момента времени i наступает стационарная фаза функционирования компьютерной системы. В этих условиях, а также при попарной корректности субъек- тов и действии МБС с контролем неизменности объекте в-источ- ников на уровне R с момента времени L > i верна следующая теорема. 119
Теорема 6.5 (достаточное условие ИПС при ступенчатой загруз- ке). При условии неизменности ZL и неизменности объектов из Oz в компьютерной системе с момента времени установления неизменности ZL и Oz действует ИПС. Доказательство. Необходимо заметить, что все условия теоре- мы 6.5 соответствуют условиям теоремы 6.4. Уточнения касаются структуры последовательности ZL. Согласно теореме 6.4 с момента времени Г= 0 до момента вре- мени t = i действует изолированная (в рамках) Sz программная среда. Для доказательства утверждения необходимо убедиться в том, что: 1) МБС в момент времени t= i гарантированно активизируется; 2) в любой момент t > i программная среда изолирована. Первое следует из теоремы 6.4 (при t= i состояние программ- ной среды всегда будет одинаково, следовательно, всегда будет активизирован субъект МБС). Второе следует из определения МБС и условия теоремы. С момента времени t = 0 до момента времени i программная среда изолирована, с момента времени t > i программная среда также изолирована, следовательно, компьютерная система изо- лирована при любом t > 0. Теорема доказана. Контрольные вопросы 1. Каковы основные функции МБО и МБС в ИПС, в чем их отличие друг от друга? 2. Почему для реализации ИПС необходимо требовать наличия в ком- пьютерной системе контроля порождения субъектов? 3. В чем отличие структуры ядра безопасности в классических моделях безопасности компьютерных систем от структуры ядра безопасности в субъектно-ориентированной модели ИПС? 4. Рассмотрите на примере реальных компьютерных систем пути реа- лизации в них требований субъектно-ориентированной модели ИПС при ступенчатой загрузке.
ГЛАВА 7 ПРОБЛЕМЫ ПРИМЕНЕНИЯ МОДЕЛЕЙ БЕЗОПАСНОСТИ ПРИ ПОСТРОЕНИИ ЗАЩИЩЕННЫХ КОМПЬЮТЕРНЫХ СИСТЕМ 7.1. ПРОБЛЕМА АДЕКВАТНОСТИ РЕАЛИЗАЦИИ МОДЕЛИ БЕЗОПАСНОСТИ В РЕАЛЬНОЙ КОМПЬЮТЕРНОЙ СИСТЕМЕ 7.1.1. Общая постановка задачи построения системы защиты Рассмотрим в общем случае проблему построения системы за- щиты. Используем следующие обозначения: t = 0, 1, 2, ... — время; R — множество видов доступа; О, — множество объектов в момент времени ц 5(с О, — множество субъектов в момент времени Г; G, = (О,, £,) — граф текущих доступов в системе в момент времени t, где Ot - вершины графа, Et с. Ot х О, х R — множество ребер (каждое ребро соответствует текущему доступу в системе в момент времени Г); Gq — граф текущих доступов в начальном состоянии системы; G* — множество всех последовательностей графов текущих до- ступов (каждая последовательность соответствует заданной траек- тории функционирования системы). Согласно основной аксиоме 1.2 (см. гл. 1) все вопросы безопас- ности информации описываются доступами субъектов к объек- там, следовательно, в общем случае свойства системы защиты информации могут быть определены на основе описания свойств графов последовательностей из G*. Среди всех последовательно- стей из G* согласно требованиям политики безопасности априор- но выделяются два подмножества последовательностей: L* — под- множество разрешенных траекторий; N' — подмножество запре- щенных траекторий (G* = L" u TV*, L* n N” = 0). Задача системы защиты состоит в том, чтобы любая реальная траектория функционирования системы не попала в множество запрещенных траекторий N*. В то же время сама система защиты является частью компьютерной системы. Следовательно, в общем случае для успешного решения данной задачи система защиты, обладающая конечными ресурсами, должна в каждый момент вре- мени хранить и анализировать информацию обо всей предыстории функционирования компьютерной системы, а также предсказы- вать будущее, что является алгоритмически неразрешимой задачей. 121
Таким образом, необходимо определять требования политики безопасности компьютерной системы так, чтобы стала возмож- ной реализация системы защиты, соответствующей данным тре- бованиям. 7.1.2. Гомоморфизм компьютерной системы и ее математической модели безопасности Требования политики безопасности в большинстве случаев определяются с использованием математических моделей безо- пасности компьютерных систем. Как уже отмечалось, большин- ство таких моделей построены с использованием понятия детер- минированного конечного автомата. При этом реальная компью- терная система строится таким образом, чтобы математическая модель, соответствующая заданной политике безопасности, яв- лялась гомоморфным отображением реальной системы. Рассмотрим этот вопрос подробнее. Используем следующие обозначения: К — множество состояний компьютерной системы; G — множество состояний автомата, построенного в соответ- ствии с требованиями математической модели; ось ..., а„ — множество алгоритмов, реализуемых в компью- терной системе; при этом каждый алгоритм переводит компью- терную систему из текущего состояния в последующее: v |-ау v*, где v, v* е Kiel, ..., п. Например, могут рассматриваться алго- ритмы чтения файла, изменения уровня доступа пользователя, установления защищенного соединения; Р), ..., — множество операций математической модели; при этом каждая операция переводит автомат из текущего состояния в последующее: g g*, где g, g* е G, i е 1, ..., п. Для того чтобы компьютерная система соответствовала мате- матической модели, должен существовать гомоморфизм ст: V -> -> G такой, что для любых и, v* е V и i е п выполняется V Алгоритм Операция ст(р*) Рис. 7.1. Гомоморфизм компью- терной системы и ее математи- ческой модели безопасности условие k L, ^*) => Ь, СТ<Х))> т.е. для каждого i е 1, ..., п комму- тативна диаграмма, представленная на рис. 7.1. Построение гомоморфизма ре- альной компьютерной системы в математическую модель, соответ- ствующую требованиям политики безопасности, на практике нередко является труднореализуемой задачей. Кроме недостатков самих математи- 122
ческих моделей безопасности это связано с тем, что модели в боль- шинстве случаев содержат жесткие требования к определению по- рядка функционирования систем защиты, что не позволяет непо- средственно реализовать их в реальной системе. Поэтому отдельные элементы компьютерной системы могут не удовлетворять требова- ниям математической модели, например доверенные субъекты в модели Белла—ЛаПадула. Кроме реализации основной математиче- ской модели должны разрабатываться модели для определения по- рядка функционирования элементов компьютерной системы, не соответствующих требованиям основной модели. Должны быть со- гласованы между собой требования всех использованных матема- тических моделей, что также может являться сложной задачей. Таким образом, при реализации реальной компьютерной си- стемы актуальна проблема ее адекватности математической мо- дели безопасности. Суть этой проблемы состоит в том, что необ- ходимо дать ответ на вопрос: в какой степени ряд допущений, сделанных при построении на основе математической модели реальной компьютерной системы, скажется на соответствии ком- пьютерной системы требованиям политики безопасности? Если оставить без ответа данный вопрос, то может оказаться, что ком- пьютерная система, формально признанная безопасной, не будет реально таковой являться. С другой стороны, не менее сложным является вопрос об адек- ватности математической модели безопасности условиям функ- ционирования и требованиям безопасности компьютерной систе- мы. В какой степени математическая модель может обеспечить вы- полнение требований политики: безопасности? От ответа на данный вопрос также зависит безопасность компьютерной системы и эф- фективность использования се ресурсов, выделяемых на реализа- цию системы защиты. 7.2. ПРОБЛЕМЫ РЕАЛИЗАЦИИ ПОЛИТИКИ БЕЗОПАСНОСТИ 7.2.1. Реализация дискреционной политики безопасности При реализации в реальных системах дискреционной полити- ки безопасности наиболее существенной является проблема от- сутствия в большинстве математических моделей четких правил разграничения доступа, которые должны быть реализованы в ре- альной системе. По этой причине на объекты, имеющие важное значение в обеспечении безопасности системы, могут быть не- корректно назначены права доступа субъектов системы. Например, ОС семейства Windows NT сертифицирована в со- ответствии с требованиями класса защиты F-C2 и уровня адек- 123
01 02 oivn, Г, IV iv, ехе oivn, Г, IV Рис. 7.2. Заполнение матрицы доступов в примере 7.1 ватности ЕЗ по ITSEC [15], а ОС семейства Windows 2000 серти- фицирована в соответствии с требованиями уровня адекватности ЕА1Л и профиля защиты Controlled Access Protection Profile Version l.d «Общих критериев» [10]. В то же время настройки, правила конфигурирования и администрирования ОС в соответствии с требованиями указанных критериев не устанавливаются по умол- чанию при инсталляции. Таким образом, пользователи ОС долж- ны самостоятельно выполнить дополнительную настройку ОС, что представляет угрозу ошибки или неправильной интерпрета- ции требований критериев. При этом, как показано в подразд. 7.3, непосредственной реализации требований критериев недо- статочно для обеспечения соответствующего уровня гарантий бе- зопасности. Кроме указанного недостатка компьютерные системы, реали- зующие дискреционную политику безопасности, в общем случае не обеспечивают защиты от атак с использованием программных закладок вида «троянский конь». Пример 7.1. Реализация атаки с использованием программных закладок вида «троянский конь». Используем следующие обозначения: Рис. 7.3. Реализация атаки с ис- пользованием программной за- кладки вида «троянский конь» и, — пользователь; и2 — нару- шитель; о, — ценный объект; о2 —объект, содержащий закладку вида «троян- ский конь». Пусть матрица доступов имеет за- полнение, представленное на рис. 7.2. Атака реализуется по сценарию, который представлен на рис. 7.3. Нарушитель подбрасывает заклад- ку пользователю. Пользователь, запус- кая закладку, дает ей возможность от своего имени переписывать инфор- мацию из ценного объекта в себя, после чего нарушитель читает цен- ную информацию в доступном ему объекте-закладке. 124
7.2.2. Реализация мандатной политики безопасности Задачи, решаемые при создании компьютерных систем, реа- лизующих мандатную политику безопасности, можно классифи- цировать по трем основным группам. 1. Обеспечение выполнения требований пометки субъектов и объектов (каждому субъекту должен быть присвоен уровень досту- па, каждому объекту должен быть присвоен уровень конфиденци- альности) и правил мандатного разграничения доступа. 2. Определение порядка функционирования доверенных субъек- тов компьютерной системы. 3. Обеспечение безопасности информационных потоков. Решение первой задачи состоит, в первую очередь, в коррект- ной реализации математической модели системы мандатного раз- граничения доступа и надежного механизма присваивания меток субъектам и объектам доступа. При решении второй задачи, как правило, используют извест- ные математические модели (например, дискреционного или ро- левого разграничения доступа), причем только для описания порядка действий доверенных субъектов, которые выходят за рамки правил мандатного разграничения доступа. Основной проблемой при реализации мандатной политики безопасности является решение третьей задачи — обеспечение безопасности информационных потоков. Это связано с тем, что крайне сложно в современных компьютерных системах выявить возможные неблагоприятные информационные потоки по памя- ти и, особенно, по времени. Кроме того, разработчиками систем мандатного разграничения доступа нередко упускается из виду, что система защиты должна не только препятствовать доступу к объектам с высоким уровнем конфиденциальности субъектов, не имеющих на это прав. Она должна также обеспечивать защиту от возникновения информационных потоков от объектов с большим уровнем конфиденциальности к объектам с меньшим уровнем кон- фиденциальности, реализуемых с использованием кооперации субъектов, имеющих доступ к конфиденциальной информации. Рассмотрим ряд примеров программ [19], представленных на некотором абстрактном языке программирования высокого уров- ня, иллюстрирующих трудности практической реализации меха- низма контроля информационных потоков в системах мандатного разграничения доступа. Пример 7.2. Неблагоприятные информационные потоки по па- мяти с использованием локальных и логических переменных. Используем следующие обозначения: /1 — конфиденциальный файл (уровень конфиденциальности High), который может содержать запись «А» или запись «5»; 125
f2 — неконфиденциальный файл (уровень конфиденциально- сти Low < High}. Приведенные ниже процедуры реализуют неблагоприятные информационные потоки по памяти через локальную перемен- ную (процедура р}) и логическую переменную (процедура р2)- Procedure pffp file, fp. file) Open fi for read', Read A from fi; Close fi; Open f for write', Write A to f2; Close fp, End. Procedure p2(Jp file,f2: file) Open fi for read If(fi = «А») Then Close fi; Open f2 for write', Write «А» to fa; Else , Close fp I Open fa for write; Write «В» to fa; End If, Close fa; End. Анализируя процедуры px и p2, можно предложить простой способ предотвращения реализуемых ими неблагоприятных ин- формационных потоков. Процесс, единожды получивший доступ на чтение к файлу с некоторым уровнем конфиденциальности, не должен получать доступ на запись к файлам с более низким уровнем конфиденциальности. Такое решение может быть приме- нено для пользовательских процессов в ОС. Однако оно не может быть признано универсальным, так как системные процессы, на- пример монитор ссылок, при мандатном разграничении доступа должны одновременно оперировать с данными различных уров- ней конфиденциальности. Другой путь — инициализация каждой переменной процесса как объекта доступа — также не может являться оптимальным. Для предотвращения неблагоприятных информационных по- токов через локальные или логические переменные при написа- нии программ в тех случаях, когда это возможно, необходимо: • открывать все файлы, необходимые для работы программы в начале ее выполнения; • закрывать все файлы в конце выполнения программы; 126
• непосредственную обработку информации из открытых фай- лов осуществлять во внутренних процедурах, использующих толь- ко локальные переменные. Пример 7.3. Реализация неблагоприятного информационного потока по времени. Используем следующие обозначения: fi — конфиденциальный файл (уровень конфиденциальности High), который может содержать запись «Л» или запись «5»; fi — неконфиденциальный файл (уровень конфиденциально- сти Low)', 5! — субъект, работающий по программе: Process .s', {fi: file) Open f for read', While f = «А» Do End', Close fi; End. s2 — субъект-нарушитель, работающий по программе: Process s2{f: file, fi'. file) Start sffi); Wait 10 seconds', Open fi for write', If {stop 5]) Then Write «В» to fi', Else Write «А» to fi', End If', Close fp End. Предполагается, что выполняются условия: fi{fi) = High; filfi) = Low, fi{si) =fi{s2) = High; fi{Si) = High; fi{s2) = Low. Субъект-нарушитель s2, не открывая на чтение конфиденци- альных файлов, активизирует от своего имени субъект 5! с высо- ким текущим уровнем доступа и в зависимости от результатов его работы (субъект з1 либо сразу завершит работу, либо «зависнет») записывает информацию в файл с низким уровнем конфиденци- альности (рис. 7.4). Для предотвращения неблагоприятных информационных по- токов по времени данного вида можно потребовать запрета по- лучения процессами-субъектами низкого уровня доступа к ин- 127
л ®- read write High Low fi формации о результатах рабо- ты процессов-субъектов высо- кого уровня доступа. В то же вре- мя такое решение не всегда воз- можно на практике. Кроме того, возможны иные способы реали- зации неблагоприятных инфор- мационных потоков по време- ни, для которых это решение неэффективно. Так, большин- ство современных ОС позволя- Рис. 7.4. Пример реализации инфор- мационного потока по времени ют при открытии процессом файла определять параметры со- вместного с другими процесса- ми его использования. Например, если процесс открывает файл на чтение, то он может разрешить или запретить другим процес- сам одновременное чтение этого файла. Системная переменная ОС, используемая для определения условий совместного исполь- зования файла, может быть использована для реализации небла- гоприятных информационных потоков по времени. Анализируя рассмотренные примеры, целесообразно сделать следующие выводы. Без дополнительных уточнений свойств поли- тики безопасности, порядка написания кода программ, определе- ния порядка конфигурирования и администрирования невозмож- на реализация компьютерных систем с мандатным разграничени- ем доступа. В то же время, слишком строгая политика безопасности может привести к трудностям или даже невозможности практи- ческого использования системы защиты. Кроме того, как уже от- мечалось, доопределение и усложнение свойств безопасности также несет в себе угрозу ошибки и, как следствие, угрозу неадекватно- сти реализации математической модели и политики безопасности в компьютерной системе. 7.3. ОБОСНОВАНИЕ ПОЛИТИКИ БЕЗОПАСНОГО АДМИНИСТРИРОВАНИЯ ОС СЕМЕЙСТВ WINDOWS NT/2000/XP 7.3.1. Общие положения Рассмотрим пример решения проблемы применения матема- тической модели при построении и обосновании свойств реаль- ной системы защиты. В примере мандатная политика целостности Биба [11] использована для обоснования политики безопасного администрирования компьютерных систем, построенных на ос- нове ОС семейств Windows NT/2QQQ/XP. 128
В политике безопасного администрирования рассматриваются две угрозы безопасности компьютерной системы. Угроза 1. Наличие у пользователя возможности разместить ре- сурсы на компьютере (запустить процесс или разместить файло- вые данные) несет угрозу получения им всех привилегий на дан- ном компьютере. Угроза 2. Обращение пользователя к компьютеру (с целью по- лучения данных локально или по сетевым коммуникационным каналам) несет угрозу захвата его привилегий пользователем, раз- местившим свои ресурсы на этом' компьютере. Отметим, что в политике не рассматриваются процессы, созда- ваемые ОС для выполнения команд пользователя по некоторым системным предопределенным интерфейсам от имени данного пользователя. Например, при обращении пользователя к созданно- му ОС именованному коммуникационному каналу {pipe) создает- ся процесс от имени этого пользователя. Данный процесс пред- ставляет предопределенный интерфейс взаимодействия с пользо- вателем. Будем считать, что нарушитель имеет два уровня возможно- стей в системе: • если нарушитель может разместить на компьютере свой ре- сурс, то он имеет возможность управления функциями автомати- зированной системы (нарушитель 3-го уровня по Руководящим документам Гостехкомиссии России [1]); • если нарушитель может только удаленно обращаться к ком- пьютеру, то он имеет возможность ведения диалога с автоматизи- рованной системой (нарушитель 1-го уровня по Руководящим документам Гостехкомиссии России). Компьютерная система удовлетворяет требованиям безопасно- го администрирования тогда и только тогда, когда выполняется следующий основной постулат: получение нарушителем полного контроля над компьютером системы не должно нести угрозы бе- зопасности для других компьютеров системы посредством реали- зации нарушителем угроз 1 и 2. Цель политики — представить эффективно проверяемые и прак- тически реализуемые условия выполнения в компьютерной сис- теме требований безопасного администрирования. Таким образом, реализация политики должна обеспечить защиту или сокращение ущерба от реализации нарушителем угроз 1 и 2. 7.3.2. Математическая модель политики безопасного администрирования Положения политики безопасного администрирования обосно- вываются с использованием математической модели. 129
В рассматриваемой математической модели существенную роль при обосновании положений политики играет определенное в модели отношение подчиненности компьютеров системы, кото- рое аналогично понятию отношения доверия между доменами в ОС семейства Windows NT/2QQQ/XP. Введем следующие обозначения: t= 0, 1, 2, ... — время; 2Л — множество всех подмножеств некоторого множества Л; А' — множество А в момент времени Г; F<y — значение некоторой функции F() в момент времени Ар — множество А в момент времени t на траектории функци- онирования компьютерной системы р\ FQ)p — значение некоторой функции F() в момент времени t на траектории функционирования компьютерной системы Р — множество траекторий функционирования компьютерной системы; С — множество компьютеров системы; DC с. С множество контроллеров домена (отождествим кон- троллеры домена и вспомогательные контроллеры одного доме- на), рабочих станций членов рабочих групп; WS cz С — множество рабочих станций и серверов, являющих- ся членами домена; при этом DC и WS- С, DC n WS= 0; U — множество пользователей компьютерной системы; osc — «пользователь ОС» компьютера с е С; Rc — множество привилегий и прав пользователей на компью- тере с е С. Например: {«Access this computer from network», «Debug programs», «Load and unload device drivers», «право на запись в файл SAM реестра ресурсов», «право на чтение файла ntoskrnl.exe»} cz Rc. Исходное предположение 1. Пусть множества С, DC, WS, U и Rc для с е С не изменяются со временем. Данное условие не ограничивает общности последующих по- ложений, так как можно считать, что все пользователи, привиле- гии пользователей, компьютеры и роли компьютеров, когда-либо имевшиеся в компьютерной системе, были определены в ней из- начально. Если в некотором выражении для значения функции или множества не указан момент времени, то будем считать, что найдется такой момент времени, в котором данное выражение будет выполняться. Используем следующие обозначения: write'. U 2е — функция, определяющая для каждого пользо- вателя множество компьютеров, на которых он может разместить свои ресурсы (файловые данные или процесс от своего имени); read: U-> 2е — функция, определяющая для каждого пользова- теля множество компьютеров, к которым он обращается с целью получения данных локально или по сетевым коммуникационным каналам; 130
right'. Ux C ~^2R‘ — функция, определяющая множество прав и привилегий пользователя на компьютере. Исходное предположение 2. В начальный момент времени (/=0) пользователи не размещают свои ресурсы на компьютерах и не обращаются к компьютерам, т.е. для каждого и е U выполняются следующие условия: write(u)° = 0; read(u)° = 0. Исходное предположение 3. Пользователь osc компьютера с е С обладает всеми привилегиями Rc на данном компьютере, т.е. для с е С справедливо равенство right(psc, с) = R,_. Исходное предположение 4. Если у пользователя имеются неко- торые особые права или привилегии на данном компьютере, на- пример «Debugprograms», «Load and unload device drivers», или «право на запись в файл SAM реестра ресурсов», то он может получить все привилегии на данном компьютере, т.е. верна импликация ({«Debug programs», «Load and unload device drivers», «право на запись в файл SAM реестра ресурсов»} n right(u, с) 0) =х> (right(u, С) = ЛФ Определение 7.1. Пользователей и е U компьютера с е С, для которых в момент времени t=0 справедливо равенство right(u, с) = = Rc, назовем доверенными пользователями данного компьютера. Множество доверенных пользователей компьютера с е С обозна- чим через Uc. Пользователей из U\ Uc назовем недоверенными пользователями компьютера с е С. Определение 7.2. Пусть с,, с2 е С. Будем говорить, что компью- тер с2 непосредственно подчинен компьютеру С|, если выполня- ется одно из следующих условий: • с, = с2; • С] — контроллер домена, с2 — рабочая станция этого домена; • С] — контроллер первого домена, с2 — контроллер второго домена, который доверяет первому. Определение 7.3. G(C, Е) — ориентированный граф подчи- ненности компьютеров в компьютерной системе, где С — мно- жество вершин; ЯсСхС - множество ребер графа подчиненно- сти. Полагаем, что (с,, с2) е £ тогда и только тогда, когда компью- тер с2 непосредственно подчинен компьютеру с{. Обозначим в графе: • — вершины из множества DC, ® — вершины из множе- ства WS. Определение 7.4. Пусть сь с2 е С и G(C, Е) — граф подчинен- ности компьютеров. Компьютер с2 подчинен компьютеру С[ (cj -> -> с2) тогда и только тогда, когда в графе G(C, Е) существует ориентированный путь от с, к с2. 131
Рис. 7.5. Пример графа G(C, Е) подчиненности компьютеров Пример 7.4. Пусть dci — контроллер первого домена; ws\, ws2 — рабочие станции первого домена; dc2 — контроллер второго до- мена, которому доверяет первый домен; ws3 — рабочая станция вто- рого домена; ws4 — рабочая станция — член рабочей группы (рис. 7.5). Тогда {(c/cb ws^, (dcb ws2), (dc2, ws3), (dc2, dci)} с E. Замечание 7.1. Если компью- тер c e WS, то в графе 6YC, Е) ему соответствует вершина, в которую входит только одно ребро и из которого не выходит ни одного ребра в другие вершины, отличные от данной. Замечание 7.2. Если компьютер является рабочей станцией и членом рабочей группы, то в графе G(C, Е) ему соответствует изолированная вершина. Исходное предположение 5. Наличие у пользователя всех при- вилегий на компьютере означает наличие у пользователя всех привилегий на компьютерах, подчиненных данному, т. е. для всех и & U, ch с2 е С таких, что с, -> с2, выполняются условия: (righttu, с,) = ЕС1) =г> (right(u, с2) = 7?й); (и е UCl) (и е EJ. С использованием введенных обозначений запись рассматрива- емых в рамках политики безопасного администрирования угроз 1 и 2 имеет следующий вид. Угроза 1. Наличие у пользователя возможности разместить ре- сурсы на компьютере несет угрозу получения им всех привилегий на данном компьютере, т.е. для всех > 0, и е U, с е С выполня- ется условие (с е write(u)'', righttu, с)'1 * R) => (существует t2 > right(u, с)'2 = Ес). Угроза 2. Обращение пользователя к компьютеру несет угрозу захвата его привилегий пользователем, разместившим свои ре- сурсы на этом компьютере, т. е. для всех Z, > 0, иь и2 е U, q, с2 е С выполняется условие (q е read(u{Y'-. е write(u2)'', right(u\, c2)<l right(u2, q)'1) =i> => (существует t2 > Z): right(u{, с2У2 <= right(u2, сУ)'2\ Замечание 7.3. Угроза 2 предполагает, что все пользователи компьютерной системы активно работают и не все пользователи являются доверенными. 132
Исходное предположение 6. Пусть для > 0, щ е U, сь с2 е С выполняется условие Ci е read(u{y\ rightlui, с2)Г| * 0 и не выпол- няется условие С[ -> с2. Тогда всегда найдется и2 е U такой, что с{ е write(u2y' и right{u{, с2У' с;_ right(u2, с2)?|. Замечание 7.4. Исходное предположение 6 является существен- ным дополнением к определению угрозы 2, необходимым для обеспечения соответствия этого определения условиям функцио- нирования реальных компьютерных систем. Оно, в том числе, показывает, что всегда найдется не являющийся доверенным пользователь рабочей станции домена, который может разместить на ней свой ресурс. Формальная запись основного постулата политики безопасно- го администрирования дается в следующем определении. Определение 7.5. С использованием введенных обозначений ос- новной постулат политики безопасного администрирования бу- дет иметь следующий вид: компьютерная система, построенная на основе ОС семейств Windows NT/2000/XP, удовлетворяет тре- бованиям безопасного администрирования тогда и только тогда, когда выполняются условия 1 и 2. Условие 1. Для р{ е Р, t2> t\>0, и е U, с ь с2 е С таких, что q с2, истинно: (cj е write{uYp\, right(u, сУ)^' * RC2, right(u, c2)'l = RC2) => => (существует д2 е Р: right^u, Ст)^2 * RC2, right(u, c2~)p^~' = ЛД Условие 2. Для р{ е Р, t2> t\ > 0, иъ и2 е U, сн с2 е С таких, что и{ * и2, истинно: (с, е read(uyY\, right(u2, с2Ур-у' * Rc,, right(u2, с2)^ = ДС2) =х> => (существует р2 е Р: right(u2, c2)fc2* RC2, right(u2, с2)^~1 = RC2). Замечание 7.5. В определении основного постулата предполага- ется, что размещение пользователем ресурсов на компьютере или обращение его к компьютеру осуществляется не менее чем за один шаг функционирования компьютерной системы. Замечание 7.6. Условие 1 требует, чтобы, размещая свои ре- сурсы на компьютере, пользователь не приобретал возможности получения всех привилегий на другом компьютере системы. Ус- ловие 2 требует, чтобы, обращаясь к компьютеру, пользователь не давал другим пользователям возможности получения всех при- вилегий на каком-либо компьютере системы (в том числе и на данном). Непосредственная проверка условий 1, 2 требует рассмотре- ния всех траекторий функционирования системы, что является алгоритмически неразрешимой задачей в общем случае. Поэтому сформулируем эффективно проверяемые и практически реализу- емые в рассматриваемых компьютерных системах условия, выпол- нение которых необходимо и достаточно для выполнения усло- вий 1 и 2. 133
Теорема 7.1. Компьютерная система, построенная на основе ОС семейств Windows NT/2000/XP, удовлетворяет требованиям безопасного администрирования тогда и только тогда, когда вы- полняются условия 3 и 4. Условие 3. Для и е U, с, е С истинно: (ci е write(u)) => ({с е С: q -» с} с {cj u {с е С: и е Сс}). Условие 4. Для и е U, с, е С истинно: (cj е read(u)) => ({с е С: и е Uc} с{се С: cf -> с}). Замечание 7.7. Условие 3 означает, что пользователь имеет воз- можность разместить свой ресурс на компьютере в двух случаях: • если данному компьютеру не подчинен кроме него ни один компьютер; • если пользователь является доверенным пользователем всех компьютеров, подчиненных данному. Условие 4 означает, что пользователь имеет возможность обра- титься к компьютеру только в случае, если все компьютеры, до- веренным пользователем которых является данный пользователь, подчинены данному компьютеру. Доказательство. Доказательство выполним методом от про- тивного. Докажем, что условие 1 выполняется тогда и только тогда, когда выполняется условие 3. Докажем необходимость выполнения условия 3 для выполне- ния условия 1. Пусть найдутся и е U, С] е write(u), для которых не выполня- ется условие 3 теоремы, т.е. существует с2 е С такой, что с2 * ch Cj с2 И I/ Из исходных предположений 1 и 2 следует, что существуют /[ > 0 и р{ е Р, для которых Cj е write(u)p\. Из исходного предполо- жения 5 следует, что и £ UCl, следовательно, rightiu, с})'р\ £ RCl и right(u, с2)^ * RC2. Из определения 7.5 и определения угрозы 1 сле- дует, что существует t2 > для которого rightiu, С\~)^ = RCl. Пусть t2 выбрано минимальным. Из исходного предположения 5 следует, что righttu, с2)р = Rc.. Таким образом, размещение пользователем и своих ресурсов на компьютере Cj было использовано им для по- лучения всех привилегий RC2 на компьютере с2. Так как t2 мини- мально, то невозможно найти иную траекторию функционирова- ния компьютерной системы р2 е Р, для которой бы выполнялись условия right (и, с2)Д~2 * RC2, right(u, с2Д'> = RC2. Следовательно, условие 1 основного постулата не выполняется. Таким образом, выполнение условия 3 теоремы необходимо для выполнения ус- ловия 1 основного постулата. Докажем достаточность выполнения условия 3 для выполне- ния условия 1. 134
Пусть найдутся pv е Р, t2 > > 0, и е U, ch с2 е С такие, что с1 * с2, для которых не выполняется условие 1, т.е. с{ е write{u)p\ и right(u, с2уру} * RC2, right(u, с2)^ = RC2 и не существуетр2 е Ртакой, что right(u, с2Дг2^ Rcv right(u, c2)£~l = R,:i. Таким образом, именно размещение пользователем и своих ресурсов на компьютере с{ было использовано им для получения всех привилегий на ком- пьютере с2. Так как с, с2, то из исходного предположения 5 сле- дует, что С] -> с2. Так как right(u, с2)ру] * RC2, то и & UC2. Следова- тельно, условие 3 не выполняется. Таким образом, выполнения условия 3 достаточно для выполнения условия 1. Докажем, что условие 2 выполняется тогда и только тогда, когда выполняется условие 4. Докажем необходимость выполнения условия 4 для выполне- ния условия 2. Пусть найдутся и{ е U, с, е read(u{), для которых не выполня- ется условие 4 теоремы, т.е. существует с2 е С такой, что с2 * сь U] e Uc, и с2 £ {с е С: С[ -> с}. Из исходных предположений 1 и 2 следует, что существуют ?! > 0 и р} е Р, для которых q е read(u{yp\. Из определения 7.5, определения угрозы 2 и исходного предположения 6 следует, что существует и2 е U такой, что q е write{u2)p\, RC2 = righty^, с2)р\ q_ right(u2, с2У\, и существует t2 > ф для которого RC2 = right(ii\, с2)^ = = right(u2, с2)у. Пусть t2 выбрано минимальным. Таким образом, условие 2 не выполняется, так как обращение пользователя и] к компьютеру с, было использовано пользователем и2 для получе- ния всех привилегий на компьютере с2. Так как t2 минимально, то невозможно найти иную траекторию функционирования компь- ютерной системы р2 е Р, для которой бы выполнялись условия right(u2, с2)ру2 * RC2, right(u2, с2)^“' = RC1. Следовательно, выполне- ние условия 4 необходимо для выполнения условия 2. Докажем достаточность выполнения условия 4 для выполне- ния условия 2. Пусть найдутся р\ & Р2 t2> t\ > 0, щ, и2 е U, cb с2 е С такие, что * и2, для которых не выполняется условие 2, т.е. q е read(uYyp\, right(u2, с2ур}~' * RC2, right(u2, с2)р\ = RC2, и не существует р2 е Р такой, что right(и2, с^'у2* RC2, right(и2, c2)^~l = RC2. При этом реа- лизовалась угроза 2 и обращение пользователя к компьютеру было использовано пользователем и2 для получения всех приви- легий на компьютере с2. Следовательно, right(ub с2Ур\ = RC2, с{ е е write(u2yp\ и по определению 7.5 и определению угрозы 1 right(u2, C\YP\ = Rev Так как t2 > t} и right(и2, с2)ру1 RC1, из исходного предпо- ложения 5 следует, что q g {с е С: с{ -> с}. Без ограничения общ- ности будем считать, что ul е UC2, так как все привилегии могут быть получены недоверенным пользователем через обращение к компьютеру либо от другого недоверенного пользователя, уже об- ладающего всеми привилегиями, либо от доверенного пользова- 135
теля. Но в начальном состоянии компьютерной системы не суще- ствует недоверенных пользователей, обладающих всеми привиле- гиями на каком-либо компьютере. Следовательно, с2 е{с е С: щ е е t/c} \{се С: с, -> с} и условие 4 не выполняется. Таким образом, выполнения условия 4 достаточно для выполнения условия 2. Те- орема доказана. 7.3.3. Реализация политики безопасного администрирования Политика безопасного администрирования реализуется на ос- нове обеспечения выполнения в компьютерной системе ряда тре- бований к настройке, конфигурированию и администрированию ОС. Требование 1. Настроить параметры компьютерной системы за- щиты в соответствии с требованиями уровня адекватности EALA и профиля защиты Controlled Access Protection Profile Version 1 .d «Об- щих критериев» [10]. Требование 2. Администратор домена должен выполнять свои функции только на контроллере домена. Требование 3. Аутентификационные данные пользователей до- мена (их бюджеты) должны быть труднодоступными для наруши- теля, для чего размещение файловых данных и запуск процессов на контроллере домена должны быть разрешены только Админи- стратору домена. На рабочих станциях домена локально не долж- ны быть зарегистрированы пользователи. Требование 4. В домене для каждой рабочей станции должен быть зарегистрирован выделенный пользователь для выполнения на ней административных функций, который администрирует и осуще- ствляет вход в домен только с данной рабочей станции и не обра- щается к другим рабочим станциям домена или любым компью- терам доверяющих доменов. Требование 5. При определении порядка обращения друг к дру- гу компонент компьютерной системы необходимо исключить об- ращения от компьютеров с большим доверием к компьютерам с меньшим доверием. Обоснуем требования. Требование 1 принимается априорно и обоснованию не подлежит. Покажем, что из условий 3 и 4 теоремы 7.1 следуют сформули- рованные требования 2 — 5, реализующие политику безопасного администрирования. Из условия 3 следует требование 3, так как условие 3 запреща- ет размещение пользователями (кроме Администратора домена) своих ресурсов (локальный вход, удаленный запуск процессов и размещение файловых данных) на контроллере домена (рис. 7.6). 136
Рис. 7.6. Пример реализации атаки нарушителя по захвату всех привиле- гий в домене в случае невыполнения условия 3 теоремы 7.1 Условие 4 запрещает Администратору домена осуществлять уда- ленное обращение к рабочим станциям домена и любым компью- терам доверяющих доменов или входить на них локально (так как локальный вход также сопровождается чтением данных). Следова- тельно, Администратор домена должен выполнять свои функции только на контроллере домена, т.е. должно выполняться требова- ние 2, и для выполнения административных функций на рабочей станции должен быть выделен пользователь, не являющийся Ад- министратором домена. При этом из условия 4 следует, что такой пользователь является Администратором только одной рабочей станции и не должен входить в домен с других рабочих станций и любых компьютеров доверяющих доменов, т.е. должно выполняться требование 4 (рис. 7.7). Также из условия 4 непосредственно следует требование 5. Рис. 7.7. Пример реализации атаки нарушителя по захвату всех привиле- гий в домене в случае невыполнения условия 4 теоремы 7.1 137
Контрольные вопросы 1. В чем состоит основная проблема реализации системы защиты в произвольной компьютерной системе? 2. Возможна ли реализация атаки с использованием программных зак- ладок вида «троянский конь», описанной в подразд. 7.2, в системах с мандатным разграничением доступа? 3. Известно, что при реализации мандатного разграничения доступа может допускаться использование правил дискреционного разграниче- ния доступа (например, с использованием ds-свойства безопасности модели Белла —ЛаПадула). Учитывая это обстоятельство, предложите подход по созданию неблагоприятного информационного потока от объек- та с высоким уровнем конфиденциальности в объект с низким уровнем конфиденциальности, использующий кооперацию субъектов компью- терной системы. 4. Каким образом мандатная политика целостности Биба была ис- пользована для обоснования политики безопасного администрирова- ния компьютерных систем, построенных на основе ОС семейств Windows NT/2000/XP? 5. При каких условиях будет соответствовать требованиям политики безопасного администрирования реализация системы централизованно- го сбора на контроллере домена данных журналов аудита рабочих стан- ций домена?
СПИСОК ЛИТЕРАТУРЫ 1. Гостехкомиссия России. Руководящий документ. Концепция защи- ты средств вычислительной техники и автоматизированных систем от несанкционированного доступа к информации. — М.: Военное издатель- ство, 1992. 2. Груша А. А., Тимонина Е. Е. Теоретические основы защиты информа- ции. — М.: Издательство Агентства «Яхтсмен», 1996. 3. Зегжда Д.П., Ивашко А. М. Основы безопасности информационных систем. — М.: Горячая линия — Телеком, 2000. 4. Кнут Д. Искусство программирования для ЭВМ. Т. 1. — М: Мир, 1976. 5. Носов В.А. Основы теории алгоритмов и анализа их сложности. Курс лекций. — М.: МГУ, 1992. 6. Теоретические основы компьютерной безопасности / П. Н. Девянин, О. О. Михальский, Д. И. Правиков, А. Ю. Щербаков. — М.: Радио и связь, 2000. 7. Щербаков А. Ю. Введение в теорию и практику компьютерной безо- пасности. — М.: Издатель Молгачева С. В., 2001. ( 8. Amman Р.Е., R. Sandhu. Safety Analyses for the Extend Schematic Protection Model. Prvc. IEEE Symposium of Research in Security and Privacy, 1991. — P. 87—97. 9. Bell D. E., LaPadula L.J. Secure Computer Systems: Unified Exposition and Multics Interpretation. — Bedford, Mass.: MITRE Corp., 1976. — MTR- 2997 Rev. 1. 10. Common Criteria for Information Technology Security Evaluation. — Communication Security Establishment (Canada), Service Central de la Securite des Systemes d’Information (France), Bundesamt fur Sicherheit in dcr Informationstechnik (Germany), Netherlands National Communication Security Agency (Netherlands), Communication-Electronics Security Group (United Kingdom), National Institute of Standards and Technology (United States), National Security Agency (United States), 1998. — Version 2.0. 11. Database Security / Castano S., Fugini M. G., Martella G., Samarati P. — Addison Wesley Publishing Company, ACM Press, 1995. — P. 456. 12. Frank J., Bishop M. Extending The Take-Grant Protection System. — Department of Computer Science. — University of California at Davis, 1984. 13. Harrison M., Ruzzo W. Monotonic protection systems / In DeMillo R., Dobkin D., Jones A., Lipton R., editors // Foundation of Secure Computa- tion. — New York: Academic Press, 1978. — P. 337—365. 14. Harrison M., Ruzzo W., Ullman J. Protection in operating systems. Communication of ACM, 19(8): 461—471, August 1976. 139
15. Information Technology Security Evaluation Criteria. Harmonized Criteria Of France-Germany-Netherlands-United Kingdom. — London: Department Of Trade and Industry, 1991. 16. Lanawehrm E., Heitmeyer L., McLean J. A Security Model for Military Message Systems. — ACM Trans. On Computer Systems. — Vol. 9, № 3. - P. 198-222. 17. Lipton R., Snyder L. On synchronization and security.In DeMillo R., Dobkin D., Jones A., Lipton R., editors, Foundation of Secure Computa- tion. — New York: Academic Press, 1978. — P. 367 — 385. 18. McLean J., John D. Security Models and Information Flow, Proceedings of 1990, IEEE Symposium on Research in Security and Privacy. — IEEE Press, 1990. 19. McLean J., John D. The Specification and Modeling of Computer Security. Computer. — Vol. 23, No. 1, Jan. 1990. 20. Sandhu R. Rationale for the RBAC96 family of access control models. In Proceeding of the 1st ACM Workshop on Role-Based Access Control. — ACM, 1997. 21. Sandhu R. Role-Based Access Control, Advanced in Computers. — Vol. 46. — Academic Press, 1998. 22. Sandhu R. The typed access matrix model. In Proceeding of the IEEE Symposium on Research in Security and Privace. — Oakland, CA, May 1992. -P. 122-136. 23. Trusted Computer System Evaluation Criteria. — US Department Of Defense, 1985. - CSC-STD-001-83.
ОГЛАВЛЕНИЕ Предисловие.................................................. 3 Глава 1. Основные понятия и определения, используемые при описании моделей безопасности компьютерных систем....................................................... 4 1.1. Элементы теории защиты информации................... 4 1.1.1. Объект, субъект, доступ........................ 4 1.1.2. Классификация угроз безопасности информации.... 5 1.1.3. Основные виды политики безопасности.............7 1.2. Математические основы моделей безопасности..........10 1.2.1. Основные понятия...............................10 1.2.2. Элементы теории автоматов......................11 1.2.3. Элементы теории графов.........................12 1.2.4. Алгоритмически разрешимые и алгоритмически неразрешимые проблемы.................................13 1.2.5. Модель решетки.................................14 1.3. Основные виды моделей безопасности..................17 Глава 2. Модели систем дискреционного разграничения доступа......................................................18 2.1. Модель матрицы доступов ХРУ.........................18 2.1.1. Элементы модели ХРУ..,.........................18 2.1.2. Анализ безопасности систем ХРУ.................20 2.1.3. Модель типизированной матрицы доступов.........25 2.2. Модель распространения прав доступа Take-Grant...............................................32 2.2.1. Основные положения классической модели Take-Grant............................................32 2.2.2. Расширенная модель Take-Grant..................43 2.2.3. Представление систем Take-Grant системами ХРУ..51 Глава 3. Модели систем мандатного разграничения доступа....55 3.1. Модель Белла—ЛаПадула...............................55 3.1.1. Классическая модель Белла—ЛаПадула.............55 3.1.2. Пример некорректного определения свойств безопасности..........................................60 3.1.3. Политика low-watermark в модели Белла—ЛаПадула........................................61 3.1.4. Безопасность переходов.........................63 141
3.1.5. Модель мандатной политики целостности информации Биба....................................66 3.2. Модель систем военных сообщений...................68 3.2.1. Общие положения и основные понятия...........68 3.2.2. Неформальное описание модели СВС.............70 3.2.3. Формальное описание модели СВС...............71 Глава 4. Модели безопасности информационных потоков........78 4.1. Автоматная модель безопасности информационных потоков................................................78 4.2. Программная модель контроля информационных потоков.................................80 4.2.1. Основные элементы модели.....................80 4.2.2. Контролирующий механизм защиты...............82 4.3. Вероятностная модель безопасности информационных потоков................................................83 4.3.1. Схема компьютерной системы...................83 4.3.2. Информационная невыводимость.................84 4.3.3. Информационное невлияние.....................84 Глава 5. Модели ролевого разграничения доступа.............88 5.1. Понятие ролевого разграничения доступа............88 5.2. Базовая модель РРД................................88 5.3. Модель администрирования РРД..\...................92 5.3.1. Основные положения......................... 92 5.3.2. Администрирование множеств авторизованных ролей пользователей.................93 5.3.3. Администрирование множеств прав доступа, которыми обладают роли.............................97 5.3.4. Администрирование иерархии ролей.............98 5.4. Модель мандатного РРД............................101 5.4.1. Защита от угрозы конфиденциальности информации .......................................101 5.4.2. Защита от угрозы конфиденциальности и целостности информации..........................103 Глава 6. Субъектно-ориентированная модель изолированной программной среды.........................................108 6.1. Основные понятия. Монитор безопасности объектов..............................................108 6.2. Монитор безопасности субъектов...................112 6.3. Изолированная программная среда...................115 Глава 7. Проблемы применения моделей безопасности при построении защищенных компьютерных систем.................121 7.1. Проблема адекватности реализации модели безопасности в реальной компьютерной системе.......................121 7.1.1. Общая постановка задачи построения системы защиты............................................121 142
7.1.2. Гомоморфизм компьютерной системы и ее математической модели безопасности.............122 7.2. Проблемы реализации политики безопасности.........123 7.2.1. Реализация дискреционной политики безопасности........................................123 7.2.2. Реализация мандатной политики безопасности..125 7.3. Обоснование политики безопасного администрирования ОС семейств Windows NT/2GGG/XP.........................128 7.3.1. Общие положения.............................128 7.3.2. Математическая модель политики безопасного администрирования...................................129 7.3.3. Реализация политики безопасного администрирования...................................136 Список литературы..........................................139