Элементарные операторы построения ролевой политики безопасности

УДК 004.056

ЭЛЕМЕНТАРНЫЕ ОПЕРАТОРЫ ПОСТРОЕНИЯ РОЛЕВОЙ ПОЛИТИКИ БЕЗОПАСНОСТИ

С. В. Белим, Н. Ф. Богаченко

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

Введение

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

Ролевую политику безопасности принято анализировать исходя из иерархии ролей, наиболее удобным представлением которой являются ориентированные графы, называемые далее ролевыми графами (если исходя из контекста понятно, что речь идёт об ориентированном графе, то орграф будем называть просто графом). Однако на сегодняшний день отсутствует формальный подход, позволяющий на основе некоторого набора формальных операций отслеживать любые преобразования ролевого графа. Целью данной статьи является создание модели ролевого разграничения доступа, исходя из набора примитивных операторов по аналогии с моделью НЕ11 [4, с. 48].

1. Безопасность системы

Будем считать, что в системе существует некоторое множество ролей Я, наделённых полномочиями из множества Р. Далее всюду будем считать, что множества Я и Р конечны. Между ролями задана иерархия, определяемая ориентированным графом С. Вершины данного графа соответствуют ролям, а дуги —

Copyright © 2011 С. В. Белим, Н. Ф. Богаченко.

Омский государственный университет им. Ф. М. Достоевского. E-mail: sbelim@omsu.ru

наследованиям. То есть, если в графе присутствует дуга от вершины г к вершине г', значит, роль г авторизована на роль г'. Авторизация одной роли на другую подразумевает полное наследование её привилегий. Очевидно, что роль г может унаследовать только привилегии ролей, связанных с ней ориентированными путями. Более строго, если существует ориентированный путь р(г, г') в графе С от роли-вершины г до роли-вершины г', то роль г наследует привилегии г'. Будем обозначать набор привилегий роли г через г.р. Тогда предыдущее утверждение может быть записано следующим образом:

Введём обозначение для множества ролей, до которых существует путь от вершины г в ролевом графе С\

Как легко понять, это множество тех ролей, от которых привилегии передаются роли г.

Перейдём теперь к вопросам безопасности системы с ролевым разграничением доступа.

Определение 1. Будем считать, что происходит утечка привилегии р, если роль г получает её несанкционированно.

Определение 2. Система с ролевым разграничением доступа безопасна, если в ней не происходит утечка привилегий.

Следует отметить, что данное выше определение безопасности является алгоритмическим, По сути, система будет безопасной, если возможна реализация алгоритма, следящего за передачей привилегий в системе. Задача проверки безопасности системы сводится к исследованию возможности передачи привилегий по дугам графа. Как было сказано выше, привилегии роли г могут передаваться только от ролей из множества РЯ{г). То есть роли из множества РЯ{г) влияют на г.

Определение 3. Будем говорить, что роль г' не влияет на роль г (обозначение г' : |г), если добавление любой привилегии р в множество привилегий г'.р не приводит к изменению множества привилегий г.р.

Легко понять, что (Я\РЯ{г)) : |г.

Теорема 1. Если в системе ролевое дерево неизменно, то система является безопасной.

Доказательство. Для доказательства данной теоремы достаточно показать, что для любой роли г алгоритм поиска множества РЯ{г) будет конечным, а также будет конечным само множество РЯ{г). Конечность множества РЯ{г)

і£ 3 р(г, г1) =/- г.р 1Э г1 .р.

вытекает из того, что РЯ(г) С Д, а множество Я конечно. Поиск же множества РЯ(г) может быть осуществлён с помощью построения матрицы достижимости [6, с, 176] для ориентированного графа С и имеет полиномиальную сложность [5, с, 48], Таким образом строится множество РЯ(г), которое является конечным и неизменным, а затем осуществляется контроль за тем, чтобы нелегитимная привилегия не была внесена в список привилегий как самой роли г, так и всех ролей из множества РЯ(г), что может быть осуществлено прямым перебором за конечное число шагов,

Определение 4. Подграф СЯ(г) ролевого графа С, вершинами которого является множество Г 1!{ г). а дугами — соответствующие дуги между этими вершинами из графа С, будем называть графом влияния на роль г.

Предложение 1. Если ролевой граф С является деревом, граф влияния, СЯ{г) на произвольную роль г будет также деревом,.

Доказательство. По свойствам ориентированного дерева [5, с, 239] подграф, определяемый множеством узлов, достижимых из вершины г, является ордере-вом с корнем г,

Предложение 2. Если ролевой граф С является, решёточным, граф влияния, СЯ(г) на, произвольную роль г будет также решёточным.

Доказательство. Согласно [3], решёточный граф — это ориентированный граф, вершины которого образуют решётку, при этом отношение порядка определяется ориентированными путями графа,

В графе влияния СЯ{г) для любой вершины г і существует ориентированный путь р(г,гі) ПО определению. Следовательно, 81ф{г, Гг} = Г, ІІ1 {{г, Гг} = Гг-

Пусть теперь Гг и г,- — две различные вершины графа влияния ЄЯ(г), отличные от г. Очевидно, что іп£{гі, г,-} Є ЄЯ(г), так как в этом графе содержатся все вершины, достижимые ИЗ Г, а значит, И достижимые ИЗ Г г и І'I- Пусть вирІГі, г,-} = г3. Докажем, что г3 Є СЯ{г). Допустим это не так. По определению графа влияния: г ^ и г ^ г^-, следовательно, г является верхней гранью этих вершин. Так как г3 — наименьшая из всех верхних граней, то г ^ г8, следовательно, существует ориентированный путь р(г, г3) — противоречие с тем, что г3 ф СЯ(г).

Таким образом, для любых двух вершин графа влияния СЯ{г) наибольшая нижняя и наименьшая верхняя грани также принадлежат этому графу, следовательно ЄЯ(г), — решёточный,

Для анализа путей передачи привилегий между ролями не обязательно рассматривать граф влияния полностью, можно удалить некоторые дуги, дублирующие друг друга при передаче привилегий роли г. При таком преобразовании могут «потеряться» некоторые привилегии ролей из множества РЯ(г), однако перед нами стоит задача обеспечения безопасности роли г. Такую процедуру преобразования будем называть оптимизацией графа влияния. Очевидно, что в результате оптимизации можно получить разные графы. Оптимизированный граф влияния с минимальным количеством дуг будем называть минимальным.

Теорема 2. Минимальный граф влияния является деревом.

Доказательство. По определению, любая вершина г' графа влияния СЯ{г) достижима из вершины г (существует ориентированный путь р(г, г')).

Как было показано в работе [2], в ролевом графе С отсутствуют ориентированные циклы. Отсюда следует, что полуетепень захода (число входящих дуг) вершины г в графе влияния СЯ{г) равна нулю (сі+(г) = 0), так как иначе в исходном графе С существовал бы ориентированный цикл (г;, г) ир(г, г') для некоторой вершины г',

Очевидно, что полуетепень захода всех остальных вершин графа влияния СЯ{г) больше или равна единице: \/г' Є СЯ{г) : (г' ф г) =>- (б?+(г;) ^ 1), Покажем, что в минимальном графе влияния \/г' Є СЯ{г) : (г' ф г) =>- (б?+(г;) = 1), Пусть это не так, тогда 3г” Є СЯ(г) : (г" ф г) А (сі+(г") > 1), Следовательно, в графе (і I!{г) существует как минимум две различные дуги і /'|. г") и (т2,г"). А так как в графе СЯ{г) любая вершина достижима из вершины г, то в этом графе существуют ориентированные пути р(г, г\) и р(г, гг), отличные друг от друга по крайней мере конечными вершинами, В соответствии с принципом наследования привилегий: РЯ{г") С РЯ{гі) С РЯ{г) и РЯ{г") С РЯ{г2) С РЯ(г). Но тогда к графу СЯ{г) можно применить процедуру оптимизации графа влияния, удалив одну из дуг і /'|. г") или і і->. г"), что противоречит с его минимальностью,

В итоге, опираясь на определение ориентированного дерева [5, с, 238], теорема доказана,

Замечание 1. Если ролевой граф — дерево, то на основании предложения 1 и теоремы 2 для произвольной роли г граф влияния единственен (так как он является деревом и не подлежит оптимизации).

Теорема 3. Трудоёмкость поиска графа влияния, на, произвольную вершину ролевого дерева, не превосходит 0(п2).

Доказательство. Пусть ролевой граф С на п вершинах задан списками смежности Ь [5, с, 202], Воспользуемся алгоритмом поиска в ширину (в глубину), представленным, например, в работе [5, с, 203], Для построения множества РЯ(гі) достаточно в этом алгоритме начать обход с вершины г і. Очевидно, результатом работы алгоритма на ориентированном графе будет множество вершин, достижимых из начальной, т, е, множество РЯ{гі). Трудоёмкость подобного алгоритма равна О (гг2) [1].

Для задания графа влияния СЯ{гі) достаточно из исходных списков смежности Ь выбрать те, которые соответствуют вершинам множества РЯ{гі). Трудоёмкость этого шага зависит от реализации списков, но в любом случае не превышает О (гг2),

Замечание 2. Вообще говоря, трудоёмкость алгоритма поиска в ширину равна О(т), где т — число дуг графа. Для достаточно «плотных» графов т = 0(п2), Если же граф, в котором ведётся поиск, является деревом, то га = гг — 1. Таким образом, если ролевой граф — дерево, то трудоёмкость поиска графа влияния

на произвольную вершину может быть понижена до 0(п) при соответствующей реализации списков смежности.

Замечание 3. Пусть теперь ролевой граф G задан матрицей смежности М размерности гг х гг, Очевидно, переход от такого представления к спискам смежности требует не более О (гг2) операций, что оставляет справедливым утверждение теоремы 3,

Если же в нашем распоряжении имеется матрица достижимости М* исходного ориентированного графа, то вновь трудоёмкость поиска графа влияния остаётся (){ir). Действительно, напомним, что элемент ///.; матрицы достижимости равен 1, если в орграфе существует ориентированный путь из вершины г* в вершину г,-, и 0 — в противном случае. Тогда вершины, принадлежащие графу влияния GR(ri), — это те вершины г,-, для которых элемент m*j = 1, а также сама вершина г*. Таким образом трудоёмкость поиска множества РД(г^) равна 0{п). Осталось построить матрицу смежности МД(г^) графа влияния GR(ri). Для этого достаточно выбрать из матрицы смежности М ролевого графа G строки И столбцы, соответствующие множеству РЯ(Гг). Трудоёмкость этого шага равна О (гг2). Но здесь стоит заметить, что сама процедура построения матрицы достижимости имеет трудоёмкость О (гг3) [5, с, 48],

2. Элементарные операторы

Для анализа преобразований введём набор элементарных операторов, преобразующих граф G.

1, Auth{ri,r?) — авторизация роли г\ на роль гг, добавляет дугу от г\ к Г2-Данная операция приводит к тому, что множество привилегий роли г\.р изменяется и становится равным г\.р U Г2-р. Привилегии же роли г 2 остаются неизменными,

2, DeleteА{г\,г2) — отменяет авторизацию роли г\ на роль г2, удаляет дугу ОТ Г\ К Г2- Новое множество привилегий роли Г\ имеет вил

Простая разность множеств привилегий Г\.р \ Г'2-Р может приводить к неверному результату, так как возможна ситуация, когда одна и та же привилегия наследуется от нескольких ролей,

3, СгеаіеИ{г) — создаёт роль г, добавляет в граф вершину, не связанную с другими вершинами. Данный оператор сам по себе никак не влияет на распределение полномочий и не может приводить к нарушению безопасности,

4, Ое1еЛеК{г) — удаляет роль г, удаляет в графе вершину. Условием выполнения оператора является изолированность вершины. Для удаления вершины со связями необходимо предварительно удалить все дуги с помощью оператора Бе1еЬеА{). Как легко понять, данный оператор сам по себе также не приводит к перераспределению полномочий.

5, EnterР(р, г) — добавляет привилегию р в множество привилегий роли г. Соответственно данная привилегия также добавляется всем ролям, доминирующим над данной ролью,

6, DeleteP(p, г) — удаляет привилегию р из множества привилегий роли г. После этого привилегия р удаляется также и у ролей, доминирующих над г, если они не наследуют эту привилегию от других ролей.

Для выполнения сложных преобразований системы из операторов могут быть составлены команды:

Command С{

Q!l, Q!2, • • • , OLn\

}•

Здесь Q!i, «г, ..., ап — элементарные операторы.

Теорема 4. Для, любых двух ролевых графов G u G' существует команда С, преобразующая G в G'.

Доказательство. Для доказательства теоремы построим одну из возможных команд преобразования ролевого графа С в G'. Применим для каждой из дуг графа G команду DeleteА(), в результате чего получим множество изолированных вершин. Применяя нужное количество раз оператор CreateRQ или DeleteRQ, добьёмся того, чтобы количество вершин стало равным количеству вершин в графе G'. Далее с помощью оператора AuthQ создадим дуги, соответствующие дугам графа G'. Распределив полномочия с помощью оператора EnterР(), получим граф, изоморфный G'. Ш

Таким образом, описанный выше набор элементарных операторов является полным и на его основе можно построить любой ролевой граф,

3. Классы безопасных систем

Следует отметить, что команды в системе выполняются атомарно, т, е, подсистема безопасности может производить проверку только после завершения команды. Выявим несколько классов безопасных систем. Для этого рассмотрим ограничения, которые при накладывании на систему могут гарантировать безопасность,

1, Статический ролевой граф. К этому классу относятся системы, у которых ролевой граф остаётся неизменным, т, е, отсутствует администрирование системы в процессе её функционирования. Как было показано в теореме 1, такие системы являются безопасными. Для проверки безопасности системы со статическим ролевым деревом могут применяться теоремы поиска ориентированных путей из теории графов,

2, Фиксированное количество административных ролей. Новые роли может создавать конечное фиксированное множество ролей (администраторов). Расширение предыдущего класса.

3, Монооперационные системы. Каждая команда содержит только один элементарный оператор. Можем после каждой команды проводить проверку системы, причём выполняется она за конечное число шагов,

4, Системы с выделенным оператором, создания административных ролей. Если команда включает создание административной роли, то не включает других ролей.

Заключение

Таким образом, для ролевой политики безопасности имеется возможность формализации путём определения элементарных операторов преобразования ролевого графа. Их использование, в свою очередь, позволит получать более строгие доказательства безопасности систем с ролевым разграничением доступа к информации в соответствии с определёнными формализованными критериями.

Литература

1. Алексеев В. Е., Таланов В. А. Графы и алгоритмы. 11»Ь: http://www.intuit.ru/ ёерайтег^/а^огШш18^аа/4/ (дата обращения: 16.10.2010).

2. Белим С. В., Белим С. Ю., Богаченко Н. Ф. Теоретико-графовый анализ ролевой политики безопасности // Математические структуры и моделирование. Омск: УниПак. 2009. Вып. 19. С. 85-96.

3. Белим С. В., Богаченко Н. Ф., Ракицкий Ю. С. Совместная реализация мандатного и ролевого разграничения доступа к информации в компьютерных системах // Математические структуры и моделирование. Омск: УниПак. 2009. Вып. 20. С. 141-152.

4. Гайдамакин Н. А. Разграничение доступа к информации в компьютерных системах. Екатеринбург: Изд-во Урал, ун-та, 2003. 328 с.

5. Новиков Ф. А. Дискретная математика для программистов: учебник для вузов. СПб.: Питер, 2001. 304 с.

6. Хаггарти Р. Дискретная математика для программистов: пер. с англ. М.: Техносфера, 2005. 400 с.