Учебное пособие 800302
.pdfЗадание 2. Проверьте, истинен ли предикат can_share , x, y,G0 для графа доступов G0 на рис. 17.
Решение задачи должно быть получено путем проверки выполнения условий теоремы 2.
G0 |
g |
t |
t |
|
t |
t |
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
g |
|
t |
|
|
|
|
|
|
|
|
|
g |
t |
g |
|
|
|
t |
t |
t |
|
|
x |
|
y |
|
|
||||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 17. Граф к заданию 2 |
|
|
|
|
|||
Решение. Введем обозначения для объектов и |
|||||||||
субъектов графа доступов G0 |
S0 ,O0 , E0 . |
|
|
|
|
||||
Существует субъект s |
s' |
S0 такой, что верно условие |
|||||||
si , y, |
E0 , следовательно, условие 1 теоремы 2 выполнено. |
||||||||
Так как s |
является субъектом, |
и существует субъект |
x' S |
0 |
|||||
|
|
|
|
|
|
|
|
|
такой, что он соединен с объектом х начальным пролетом моста, то условие 2 теоремы 2 выполнено.
|
|
Выделим |
|
|
|
в |
|
|
|
|
графе |
|
G0 |
острова |
||||
I |
1 |
x' , s |
, I |
2 |
s |
2 |
, I |
3 |
s , s |
4 |
, I |
3 |
s , s , s . |
Каждая |
пара |
|||
|
1 |
|
|
|
3 |
|
|
5 |
6 |
|
|
|
||||||
соседних |
островов |
|
соединена мостом: I1 |
и I2 |
соединены |
|||||||||||||
мостом, проходящим через вершины |
s1, o2 , o3 , s2 ; I2 |
и I3 |
||||||||||||||||
соединены |
|
мостом, |
проходящим |
через |
вершины |
|||||||||||||
s2 , o4 , o5 , s3; I1 и |
|
I2 |
|
соединены |
мостом, проходящим |
через |
||||||||||||
вершины s4 , o6 , s5 |
(рис. 18). Следовательно, условие 3 теоремы |
|||||||||||||||||
2 выполнено. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
29
G0 O2 g Мост |
I |
2 |
Мост |
|
|
|
I3 |
|
|
|||
|
|
|
|
g |
|
|
||||||
|
|
|
|
|
|
S4 |
||||||
|
|
|
O3 |
|
|
O |
O |
|
|
|
|
|
|
t |
|
S |
2 |
|
S3 |
g |
|
|
|||
|
|
|
4 |
5 |
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|||
|
S |
1 |
|
|
|
|
|
|
|
O6 |
Мост |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
I1 |
g |
t |
g |
|
|
|
|
|
I 4 |
t |
|
|
|
|
|
|
|
|
|
t |
tS6 |
S |
|
||
|
|
|
|
|
|
|
|
|
5 |
|||
|
|
|
O |
|
|
|
|
|
S6 |
|
|
|
|
|
|
|
|
|
|
' |
|
|
|
||
|
|
|
1 |
|
|
S |
S |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Рис. 18. Граф, илюстрирующий решение задания 2 |
|
|
|||||||||
|
Таким образом, выполнены все условия теоремы 2, и |
|||||||||||
предикат can_share |
, x, y,G0 является истинным. |
|
|
|
Задание 3. Пусть в графе доступов G0 субъекты s1 и s2
соединены некоторым путем (рис. 19) и известно, что существует последовательность правил преобразования графа доступов G0 , в результате применения которой с
использованием рассматриваемого пути субъект si получает право доступа к объекту o2 . Можно ли доказать, что тогда существует последовательность правил преобразования графа доступов G0 , в результате применения которой субъект s2 может получить право доступа к объекту o1 ? При решении задачи не следует использовать утверждения теорем 1 и 2.
G0 |
Путь |
|
O |
S1 S2 |
O |
1 |
|
2 |
Рис. 19. Граф к заданию 3
30
|
Решение. |
|
|
Пусть |
|
|
существуют |
|
|
графы |
|||||||||
G1,...,GN |
SN ,ON , EN |
и правила op1,...,opN |
|
(использующие ребра |
|||||||||||||||
пути, |
соединяющего |
субъектов |
|
s1 |
|
и |
|
s2 ) |
такие, |
что |
|||||||||
G0 |
op G1 |
op … |
op |
GN и |
x, y, |
|
EN , |
|
|
где |
N |
|
1. |
Пусть |
|||||
|
1 |
2 |
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
op create |
t, g , s2 , o3 |
, |
заменим |
в |
последовательности |
правил |
|||||||||||||
преобразования состояний op1,...,opN |
объект o2 |
на объект o3 , право |
|||||||||||||||||
доступа |
на |
право доступа |
g (рис. 20), получим |
||||||||||||||||
последовательности правил преобразования состояний |
op' ,...,op' . |
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
N |
Тогда положим G0 |
op |
G1' |
op' |
G1' |
op' … |
|
' |
GN' |
1 |
SN' |
1,ON' |
1, EN' |
1 . |
||||||
|
|
|
|
|
1 |
|
|
2 |
|
op |
N |
|
|
|
|
|
|
|
|
|
При этом выполняется условие |
s , o , g |
|
E' |
. |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
1 |
3 |
|
|
N 1 |
|
|
|
|||
|
|
|
|
|
|
|
|
O3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
' |
|
|
g |
t,g |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GN 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O |
|
S1 |
Путь S2 |
O2 |
|
|
|
|
|
|
|
|||||
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 20. Граф, илюстрирующий решение задания 3 |
|
|||||||||||||||||
|
Следовательно, существует последовательность правил |
||||||||||||||||||
преобразования графа |
доступов G0 , в результате применения |
||||||||||||||||||
которой субъект s2 может получить право доступа |
|
к объекту o1 . |
|||||||||||||||||
|
Задачи для самостоятельного решения |
|
|
||||||||||||||||
1. |
Являются ли мостами графы доступов на рис. 21. |
|
|
||||||||||||||||
|
|
|
|
|
|
|
t,g |
|
|
|
|
|
|
|
|
|
|
|
|
|
t,g |
|
t,g |
|
|
|
t |
|
|
|
|
|
|
|
g |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
t |
|
|
t |
|
||
t |
|
t |
t |
|
t |
t |
|
|
t |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
а |
|
|
б |
|
|
|
в |
|
|
|
|
|
|
|
|
г |
|
|
Рис. 21. Граф к задаче для самостоятельного решения
31
Практическое занятие № 4 Управление распространением прав доступа на основе
расширенной модели Take-Grant
Теоретические положения
Направления развития модели Take-Grant Рассмотренные в классической модели Take-Grant способы анализа путей распространения прав доступа в системах с дискреционным управлением доступом имеют в большей степени теоретическое значение, так как, как: правило, в реальных КС не реализуются столь сложные графы доступов, для анализа которых необходимо использовать теоремы 1 и 2 предыдущего занятия. В то же время на основе классической модели были разработаны ее расширения [9], которые развивают идеи классической модели, предлагая новые механизмы анализа, в большей степени применимые к современным системам защиты информации. Рассмотрим два расширения модели.
1.Де-факто правила, предназначенные для поиска и анализа информационных потоков.
2.Алгоритм построения замыкания графа доступов и информационных потоков.
Де-факто правила расширенной модели Take-Grant
Вместо прав доступа take и grant в расширенной модели в первую очередь рассматриваются права доступа read и write, наличие которых у субъектов системы является причиной возникновения информационных потоков.
Расширенная модель Take-Grant строится на основе
классической модели. |
Ее основными элементами являются: О |
|
— множество |
объектов; S O — множество субъектов; |
|
R r1, r2 ,...,rm |
t, g |
r, w —множество видов прав доступа |
и видов информационных потоков, где r (read) — право на
32
чтение или информационный поток на чтение, w (write) — право на запись или информационный поток на запись; F — конечный помеченный ориентированный
без петель граф доступов и информационных потоков, описывающий состояние системы. Элементы множеств S, О являются вершинами графа. Элементы множества являются «реальными» ребрами графа, соответствующими правам доступа, и в графе доступов
обозначаются сплошными линиями. Элементы |
множества |
||
E O O r, w |
являются |
«мнимыми» |
ребрами, |
соответствующими информационным потокам, и в графе доступов обозначаются пунктирными линиями. Каждое «реальное» ребро помечено непустым подмножеством множества видов прав доступа R, каждое «мнимое» Ребро помечено непустым подмножеством множества {r,w}.
Порядок перехода системы расширенной модели TakeGrant из состояния в состояние определяется де-юре и дефакто правилами преобразования графа доступов и информационных потоков. Преобразование графа G в граф G' в результате выполнения правила обозначим следующим
образом: G
Определение де-юре правил take, grant, create, remove
совпадает с определением этих правил в классической модели Take-Grant. Де-юре правила применяются только к «реальным» ребрам (элементам множества Е).
Де-факто правила применяются к «реальным» или «мнимым» ребрам (элементам множества E F ), помеченным r или w. Результатом применения де-факто правил является добавление новых «мнимых» ребер во множество F. Рассматриваются шесть де-факто правил: два вспомогательных и четыре основных.
Рассмотрим порядок применения де-юре правил преобразования графа доступов. В отличие от де-юре правил, для применения трех из шести де-факто правил требуется участие двух субъектов (рис. 22-27).
33
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
G |
' |
|
|
G |
r |
|
G |
' |
|
|
|
G |
r |
|
r |
|||
|
|
|
r |
|
|
|
x |
|||||||
x |
|
y 1 x |
|
|
y |
|
x |
y |
|
1 |
y |
|||
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
Рис. 22. Применение первого де-факто правила |
||||||||||||
|
|
|
|
|
r |
|
|
|
|
|
|
G' |
|
r |
G w |
|
G |
' |
|
|
|
G |
|
|
|
|
|
||
|
|
|
|
|
|
w |
|
|
x |
|
w |
|||
x |
y |
2 x |
|
|
w |
y |
x |
|
|
y |
2 |
|
y |
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
Рис. 23. Применение второго де-факто правила |
||||||||||||
G |
|
|
|
|
|
|
|
|
G' |
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
|
y |
|
||
r |
|
r |
|
|
|
|
|
x |
|
r |
|
r |
||
|
|
|
spy(x, y, z) |
|
|
|
||||||||
x |
|
y |
|
|
z |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
w |
z |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. 24. Применение правила spy(x, y, z)
G |
|
|
|
G' |
|
w |
|
|
|
y |
|
||
w |
|
w |
x |
w |
w |
|
|
|
|||||
|
|
|
|
|||
x |
y |
z |
find(x, y, z) |
|
r |
z |
|
|
|||||
|
|
|
|
|
|
Рис. 25. Применение правила find (x, y, z)
G |
|
|
|
G' |
|
r |
|
|
|
|
|
z w |
|
||
r |
w |
|
post(x, y, z) |
x |
r |
z |
|
x |
z |
y |
|
|
|||
|
|
|
|
||||
|
|
|
w |
|
|||
|
|
|
|
|
|
|
Рис. 26. Применение правила post(x, y, z)
G |
|
|
|
G' |
|
r |
|
|
|
|
|
y r |
|
||
w |
r |
|
pass(x, y, z) |
y |
w |
z |
|
y |
x |
z |
|
|
|||
|
|
|
|
||||
|
|
|
w |
|
|||
|
|
|
|
|
|
|
Рис. 27. Применение правила pass(x, y, z)
34
Условия применения де-факто правил в исходном состоянии G S,O, E F и результаты их применения в резуль-
тирующем состоянии G' S,O, E F ' приведены в табл. 4.
Из определения де-факто правил следует, что для анализа информационных потоков достаточно рассматривать потоки одного вида: либо на чтение, либо на запись. В дальнейшем будем рассматривать только информационные потоки на запись. Будем также предполагать, что при возникновении информационного потока не накладывается ограничений на кооперацию субъектов системы, участвующих в этом процессе.
Таблица 4 Де-факто правила расширенной модели Take-Grant
Правило |
|
Исходное состояние |
|
|
|
|
Результирующее |
|||||||
|
|
G |
S,O, E |
F |
|
|
|
|
|
|
состояние |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
G' |
S, O, E |
F ' |
Первое |
x |
S; y |
O; |
x, y, r |
E |
|
F |
|
F |
' |
F |
y, x, w , x, y, r |
||
правило |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Второе |
x |
S; y |
O; |
x, y, w |
E |
|
F |
|
F |
' |
F |
y, x, r , x, y, w |
||
правило |
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
spy(x,y,z) |
x, y |
S; x |
x; |
x, y, r , |
y, z, r |
|
F |
' |
F |
x, z, r , z, x, w |
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
E F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
find(x,y,z) |
x, y |
S; z |
O; x |
z; |
x, y, w , |
y, z, w |
|
F ' |
F |
x, z, w , |
z, x, r |
|||
|
E |
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
post(x,y,z) |
x, y |
S; z |
O; x |
y; |
x, y, r , |
y, z, w |
|
F ' |
F |
x, z, r , |
y, x, w |
|||
|
E |
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
pass(x,y,z) |
x, y S; z O; y z; |
|
|
|
|
F |
' |
F |
y, z, r , |
z, y, w |
||||
|
|
|
|
|
|
|
|
|
||||||
|
x, y, w , x, z, r |
E F |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|||||||||
Определение 1. Пусть |
x, y O0 , x |
|
y, х, — различные |
|||||||||||
объекты |
графа |
доступов |
и |
информационных потоков |
||||||||||
G0 S0 ,O0 , E0 |
F0 |
. Определим предикат can _ write x, y,G0 , |
35
который будет истинным тогда и |
только |
тогда, когда |
|||||||||||||||||
существуют |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
графы |
||||
G1 |
S1,O1, E1 |
F1 ,...,GN |
SN ,ON , EN |
|
FN , |
и де-юре или де- |
|||||||||||||
факто |
правила |
op1,...,opN , |
где |
|
N |
0 , |
|
такие, |
|
что |
|||||||||
G0 |
op |
G1 |
op |
… |
op GN и x, y, w FN . |
|
|
|
|
|
|
||||||||
|
1 |
|
2 |
|
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для |
|
проверки |
|
|
истинности |
|
|
предиката |
|||||||||
can _ write x, y,G0 |
, также следует определить необходимые и |
||||||||||||||||||
достаточные |
условия, |
|
задача |
|
проверки |
которых |
|||||||||||||
алгоритмически разрешима. |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
Теорема 1. |
Пусть G0 |
|
S0 ,O0 , E0 |
F0 |
граф доступов и |
|||||||||||||
информационных потоков, |
x, y |
O0 , x |
y . |
Тогда предикат |
|||||||||||||||
can _ write x, y,G0 |
истинен тогда и только тогда, когда |
||||||||||||||||||
существуют объекты o1,...,om |
|
O0 , где |
o1 |
x, om |
y , |
такие, |
|||||||||||||
что |
или |
т |
= |
2 |
и |
|
x, y, w |
F0 , |
или |
для |
|
i |
1,...,m 1 |
||||||
выполняется одно из условий: |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
oi |
S0 |
|
и |
|
или |
|
истинен |
|
|
предикат |
|||||||
|
|
can _ share |
w , oi , oi 1,G0 |
, или |
oi , oi 1, w |
|
E0 |
F0 ; |
|
||||||||||
|
|
oi 1 |
S0 |
|
|
и |
|
|
или |
истинен |
|
|
предикат |
||||||
|
|
can _ share |
r , oi 1, oi ,G0 |
, или oi , oi 1, r |
E0 |
F0 ; |
|
|
|||||||||||
|
|
oi , oi 1 |
S0 |
и |
|
|
или |
|
|
истинен |
|
|
предикат |
||||||
|
|
can _ share |
, oi , oi |
1,G0 , |
или |
истинен |
предикат |
||||||||||||
|
|
can _ share |
, oi 1, oi ,G0 |
, |
где |
|
t, g , или существует |
||||||||||||
|
объект |
o' |
O такой, |
что либо |
истинны |
предикаты |
|||||||||||||
|
|
|
|
i |
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
can _ share t , o , o' |
,G |
, |
can _ share g , o |
|
, o' |
,G |
, |
либо |
|||||||||
|
|
|
|
|
|
i |
i |
0 |
|
|
|
|
|
i 1 |
i |
0 |
|
|
|
|
истинны |
|
предикаты |
|
can _ share |
|
g , o , o' |
,G , |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i |
i |
0 |
|
|
can _ share t , o |
, o' |
,G . |
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
i 1 |
i |
0 |
|
|
|
|
|
|
|
|
|
|
|
36
Построение замыкания графа доступов и информационных потоков
Для |
проверки |
истинности |
предиката |
can_share( |
,x,y,Go) или can_write(,x,y,Go) для |
многих пар |
вершин неэффективно использовать алгоритмы проверки условий теорем 1, 2 (предыдущее занятие). Эффективнее применять алгоритмы, позволяющие осуществить проверку истинности данных предикатов сразу для всех пар вершин. Такие алгоритмы реализуют преобразование графа доступов и информационных потоков в его замыкание.
Определение 2. Пусть G F — граф доступов и информационных потоков такой, что для каждого
субъекта s S существует |
объект |
o |
O |
такой, что |
выполняется условие s, o, t, g, r, w |
E . Тогда замыканием |
|||
(или де-факто-замыканием) графа G называется граф доступов |
||||
и информационных потоков G* |
S,O, E* |
F* |
, полученный |
из G применением последовательности правил take, grant и дефакто правил. При этом применение к графу G* указанных правил не приводит к появлению в нем новых ребер.
Алгоритм построения замыкания графа доступов состоит из трех этапов: построение tg-замыкания; построение де-юре- замыкания; построение замыкания.
Определение 3. Пусть G S,O, E F — граф доступов и информационных потоков такой, что для каждого
субъекта s |
S |
существует |
объект |
o O такой, что |
|
выполняется |
условие |
s, o, t, g, r, w |
E . Тогда tg- |
||
замыканием графа G называется граф доступов и |
|||||
информационных |
потоков |
Gtg |
S,O, Etg |
F , полученный |
из G применением последовательности правил take или grant.
При этом каждое ребро o , o , |
Etg \ E |
имеет вид o , o ,t |
|||
|
1 |
2 |
|
1 |
2 |
или o , o , g , и применение к графу Gtg правил take |
или |
||||
1 |
2 |
|
|
|
|
37
grant не приводит к появлению в нем новых ребер указанного вида.
Определение 4. Пусть G S,O, E F — граф доступов и информационных потоков такой, что для каждого
субъекта s |
S существует |
объект |
|
o O такой, |
что |
|
выполняется |
условие |
s, o, t, g, r, w |
E. |
Тогда де-юре- |
||
замыканием |
графа G называется граф доступов и |
|||||
информационных |
потоков |
Gде-юре |
S,O, Eде-юре |
F , |
полученный из G применением последовательности правил
take или grant. При этом применение к графу G де-юре правил take или grant не приводит к появлению в нем новых ребер.
Алгоритм 1.
Алгоритм построения tg-замыкания графа доступов и информационных потоков G F состоит из пяти шагов.
Шаг 1. |
Для каждого s S |
выполнить |
правило |
||
create t, g, r, w |
при этом создаваемые объекты занести |
во |
|||
множество О, создаваемые ребра занести во множество Е. |
|
||||
Шаг 2. Инициализировать: L |
x, y, |
E, |
t, g |
— |
список ребер графа доступов и информационных потоков и
N |
— множество вершин. |
|
|
|
|
|
|
|
Шаг 3. Выбрать из списка L |
первое ребро |
x, y, . |
||||
Занести х и y во множество N. Удалить ребро |
x, y, из списка L. |
||||||
|
Шаг 4. Для всех вершин z |
N проверить возможность |
|||||
применения правил take или grant на тройке вершин |
x, y, z с |
||||||
использованием ребра x, y, |
, выбранного на шаге 3. Если в |
||||||
результате применения |
правил take |
или grant |
появляются |
||||
новые |
ребра вида a,b, |
, |
где |
a,b |
x, y, z |
и |
t, g , |
занести их в конец списка L и множество E
Шаг 5. Пока список L не пуст, перейти на шаг 3.
38