Полиномиальный алгоритм поиска мостов в графе доступов

ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ

Вестн. Ом. ун-та. 2G12. № 4. С. 135-138.

УДК 004.056.53 Д.М. Бречка

ПОЛИНОМИАЛЬНЫЙ АЛГОРИТМ ПОИСКА МОСТОВ В ГРАФЕ ДОСТУПОВ

Рассматривается развитие дискреционной модели безопасности Таке-вгай. Описан алгоритм поиска подструктур в графе доступов, необходимых для анализа безопасности компьютерной системы. Приводится доказательство корректности работы алгоритма и оценивается его трудоемкость.

Ключевые слова: алгоритм, защита, граф, мост, сложность, компьютер.

Введение

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

Основные положения модели Take-Grant

Разновидностью дискреционных моделей безопасности является модель Take-Grant [2-4]. Основные положения модели следующие.

1. Система прав доступов содержит два особых права: take (t) - право брать права на объект (субъект) у другого объекта (субъекта), и право grant (g) - право давать права на объект (субъект) другому объекту (субъекту).

2. Компьютерная система представляется в виде ориентированного графа (графа доступов), в котором вершинами являются субъекты и объекты, а дугами - права доступов, установленные между соответствующими субъектами и объектами.

3. Состояния компьютерной системы изменяются под воздействием четырех видов команд:

а) take (а, x, y, z) - субъект (объект) x берет права а на объект (субъект) z у субъекта (объекта) y;

б) grant (а, x, y, z) - субъект (объект) x дает права а на объект (субъект) z субъекту (объекту) y;

в) create (а, x, y) - субъект (объект) x создает объект (субъект) y с правами а на него;

г) remove (а, x, y) - субъект (объект) x удаляет права доступа а на объект (субъект) y.

4. Безопасность компьютерной системы рассматривается с точки зрения возможности или невозможности появления в графе дуги с некоторым набором прав в в результате последовательного применения описанных команд к исходному графу доступов системы.

Определение 1. Островом в графе доступов называется подграф, состоящий из вершин-субъектов, причем эти вершины соединены между собой дугами, содержащими права take либо grant (направление дуг не учитывается).

© Д.М. Бречка, 2012

Определение 2. Мостом в графе доступов называется ^-путь, проходящий по вершинам-объектам, при этом словарная

^ ^ ^ ^ ^

* * * *

запись пути может иметь вид: t , t , t g t ^ ^ ^ либо t g t .

Определение 3. Начальным пролетом моста называется ^-путь, проходящий по вершинам-объектам, при этом словарная

запись пути имеет вид: t g .

Определение 4. Конечным пролетом моста называется ^-путь, проходящий по вершинам-объектам, при этом словарная

*

запись пути имеет вид: t .

Для графа доступов Оо(Уо, Ео), содержащего субъекты и объекты, доказана теорема, согласно которой, вероятность появления дуги с набором прав в между вершинами х и у в исходном графе доступов существует тогда и только тогда, когда выполнены следующие условия:

1) 35 £ У0 : ^ y, в) е ^ ;

2) 35х' еУд ;

а) х = х' либо х и х' соединены начальным пролетом моста;

а) э = э' либо э и э' соединены конечным пролетом моста;

3) существуют острова II и 12 такие, что

х' е 11, 5' 112 и II и 12 соединены мостами, возможно через другие острова в графе.

Как видно, для анализа безопасности компьютерной системы необходимо выяснить наличие в исходном графе доступов островов, мостов, начальных и конечных пролетов мостов. В классической модели Таке-ОгаП методы поиска необходимых структур не описаны. В работах [5; 6] автором данной статьи были предложены методы поиска островов в модели Таке-Огап1. Кроме того, в работе [7] для поиска мостов, начальных пролетов мостов и конечных пролетов мостов предложены алгоритмы, в основе которых лежит классический алгоритм поиска в ширину. В данной работе приводится метод поиска мостов, начальных пролетов мостов и конечных пролетов мостов, на основе алгоритма поиска в глубину.

Алгоритм поиска моста

Рассмотрим произвольный граф доступов О = (^Е), где V = £ и О - множество вершин графа, состоящее из множества субъектов (£) и множества объектов (О); Е -множество дуг графа. Пусть в графе уже известны острова, и необходимо найти мост между островами 11 с £ и 12 с £ .

Будем искать мост между вершинами 5 е 11 и / е 12. Опишем алгоритм поиска

моста, в основе которого лежит алгоритм поиска в глубину [В].

Введем шесть цветов для раскраски вершин: красный, зеленый, синий, белый, серый и черный. Пусть в начале работы алгоритма все вершины графа G окрашены в белый цвет.

Введем также ряд обозначений. Дугу между вершинами графа x и y, содержащую право а, будем обозначать: а(х, у) . Стрелкой над названием права доступа будем обозначать направление дуги. Напри——

мер: t (х, у) означает, что от вершины x к вершине y направлена дуга, и эта дуга содержит право t. Окраску вершины будем обозначать c(x). Например, ^x)= черный -вершина x имеет черный цвет. Оператор присвоения будем обозначать через «:=». Алгоритм будет состоять из следующих процедур и функций.

Функция ISPATH - логическая функция, принимает в качестве параметров две вершины графа. Эта функция раскрашивает вершины графа в различные цвета, в зависимости от того, какой тип пути существует между указанными вершинами. Функция возвращает значение «ИСТИНА», если возможна дальнейшая раскраска вершин, в противном случае - возвращает «ЛОЖЬ».

Процедура MDFS (Modified Depth-First Search) - рекурсивная процедура, принимает в качестве параметров вершину из множества O и конечную вершину моста - f Процедура MDFS выполняет обход графа методом поиска в глубину. В случае если достигнута вершина f - процедура прерывается.

Функция ISBRIDGE - принимает в качестве параметров граф доступов, начальную и конечную вершины моста. Возвращает «ИСТИНА» если между указанными вершинами в графе существует мост. В противном случае возвращает «ЛОЖЬ».

Алгоритм. Поиск моста.

Функция ISPATH (a єV , b єV).

1. Если c(a) = серый или c(a) = красный и

—

З t (a,b), то c(b):= красный, ISPATH:=

«ИСТИНА»;

2. Если c(a)= серый или c(a)= красный и

—— ——

З g (a, b) или З g (a, b), то c(b):= зеленый, ISPATH:= «ИСТИНА»;

3. Если c(a)= серый или c(a)= зеленый

или c(a)= синий и З t (a,b), то c(b):= синий, ISPATH:= «ИСТИНА»;

4. ISPATH:= «ЛОЖЬ».

Процедура MDFS (u є O , f є I2).

1. Если cf)!= белый, то закончить процедуру;

2. Для всякой вершины w, смежной с вершиной и, выполняем:

Полиномиальный алгоритм поиска мостов в графе доступов

137

3. Если е(и>) = белый и ІБРЛТИ (и, и) = «ИСТИНА», то выполняем ЫЮЕБ (и, Л);

4. с(и):= чёрный.

Функция ІББШЮОЕ (О, s є І1, / є 12).

1. с(в):= серый;

2. Если ЫЮЕБ (в, Л = «ИСТИНА», то ІББШЮОЕ:= «ИСТИНА», иначе

3. с(в):= черный;

4. ІББШЮОЕ := «ЛОЖЬ».

Утверждение 1. Алгоритм 1 корректно

распознает наличие моста в графе доступов и заканчивает свою работу за конечное число шагов, независимо от того, существует мост в графе или нет.

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

4 процедуры ЫЮЕБ (просматриваются только белые вершины). Если на некотором шаге рекурсии алгоритм не обнаружит для вершины и смежной с ней вершины и , которую еще можно посетить (условие в строке 4 процедуры ЫЮЕБ не выполняется), то алгоритм окрашивает и в черный и возвращается к предыдущему шагу рекурсии. Таким образом, если в графе не существует моста, то за некоторое число шагов вершина в будет окрашена в черный цвет и алгоритм остановит свою работу. При этом буде просмотрено не более чем | 0| вершин.

Предположим теперь, что в графе существует мост типа ^ * . Такой мост будет распознан путем последовательного выполнения строки 1 функции ІБРЛТИ. Все вершины, входящие в этот мост, будут окрашены в красный цвет. Аналогично, если в графе

*

существует мост типа ? , то он распознается путем последовательного выполнения строки 3 функции ІБРЛТИ и все вершины, входящие в этот мост, будут окрашены в синий цвет. Также очевидно, что мосты ^ ^ **

t gt и t gt распознаются путем последовательного выполнения строк 1, 2 и 3 функции ІБРЛТИ.

Утверждение 2. Трудоемкость алгоритма 1 оценивается как 0(| Е | + | ^|).

Доказательство. Рекурсивный вызов процедуры ЫЮЕБ выполняется столько раз, сколько существует смежных дуг у каждой непосещенной вершины. Очевидно, что одна дуга может быть посещена не более двух раз (один раз для каждой инцидентной вершины), следовательно, количество вызовов процедуры не превышает 2*|Е|. В то же время каждая вершина может быть посещена только один раз (условие в строке 4 процедуры ЫЮКБ). Таким образом, общую

трудоемкость алгоритма можно оценить как

Замечание 1. Для поиска начального пролета моста в качестве параметров функции ISBRIDGE нужно передать вершину x' е I, где I - остров, и вершину x е O , являющуюся началом моста. Так как, согласно определению 3, словарная запись

начального пролета моста имеет вид t g , начальный пролет будет найден алгоритмом путем последовательного применения строк 1 и 2 функции ISPATH.

Замечание 2. Для поиска конечного пролета моста в качестве параметров функции ISBRIDGE нужно передать вершину 5' е I, где I - остров и вершину 5 е O , являющуюся концом моста. Так как, согласно определению 4, словарная запись

*

конечного пролета моста имеет вид t , конечный пролет будет найден алгоритмом путем последовательного применения строки 1 функции ISPATH.

Заключение

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

Разработка алгоритмов поиска островов, мостов, начальных и конечных пролетов мостов является важным вкладом в развитие классической модели Take-Grant. Наличие таких алгоритмов позволяет применять модель Take-Grant для автоматизированного анализа безопасности компьютерных систем, а сами эти алгоритмы могут лечь в основу программных продуктов, предназначенных для моделирования распространения прав доступов в компьютерных системах.

ЛИТЕРАТУРА

[1] Грушо А. А., Тимонина Е. Е. Теоретические основы защиты информации. М. : Яхтсмен, 1996.

[2] Теоретические основы компьютерной безопасности : учебное пособие для вузов / Девя-нин П.Н. и др. М. : Радио и связь, 2001.

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

[4] Lipton R. J., Snayder L. A linear time algorithm for deciding subject security // Journal of ACM (Addison-Wesley). 1977. № 3. Р. 455-464.

[5] Бречка Д. М. Применение алгоритмов на графах для поиска безопасных состояний компьютерной системы // Наука в современном мире : материалы II Международной научнопрактической конференции (30 июля 2010) : сборник научных трудов / под ред. Г.Ф. Гребенщикова. М. : Спутник+, 2010. С 221-224.

[6] Бречка Д. М. Поиск 1д-путей и островов для модели безопасности Таке-ОгаП // Прикладная дискретная математика № 3. Приложение. «Компьютерная безопасность и криптография» - ЭНЗЕСРУРТ’Ю : тезисы докладов IX Сибирской научной школы-семинара с между-

народным участием (Тюмень, ТюмГУ, 7-10 сентября 2010 г.) / ред. Н. И. Шидловская. Томск : Издательство научно-технической литературы, 2010. С. 46-47.

[7] Бречка Д. М. Алгоритмы анализа безопасности состояний компьютерной системы для модели Таке-ОгаП // Математические структуры и моделирование. Омск : ОмГУ, 2009. Вып. 20. С. 160-172.

[8] Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы : построение и анализ. М. :

МЦНМО, 2000.