Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Все ответы по МСЗИ.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
  1. Монитор безопасности обращений.

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

Монитор безопасности обращений (МБО) представляет собой фильтр, который разрешает или запрещает доступ, основываясь на установленных в системе правилах разграничения доступа (рис. 2.2).

Получив запрос на доступ от субъекта S к объекту O, монитор безопасности обращений нализирует базу правил, соответствующую установленной в системе политике безопасности, и либо разрешает, либо запрещает доступ.

Монитор безопасности обращений удовлетворяет следующим свойствам:

1. Ни один запрос на доступ субъекта к объекту не должен выполняться в обход МБО.

2. Работа МБО должна быть защищена от постороннего вмешательства.

3. Представление МБО должно быть достаточно простым для возможности верификации корректности его работы.

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

Формальные модели управления доступом

  1. Модель Харрисона – Руззо – Ульмана. Элементарные операции. Теоремы.

Разработанная в 1971 г. модель Харрисона-Руззо-Ульмана формализует упоминавшееся ранее понятие матрицы доступа – таблицы, описывающей права доступа субъектов к объектам (рис. 2.3.1.1).

Строки матрицы доступа соответствуют субъектам, существующим в системе, а столбцы – объектам. На пересечении строки и столбца указаны права доступа соответствующего субъекта к данному объекту: например, на рис. 2.3.1.1 субъект subj 3 обладает правами чтения и записи по отношению к объекту obj 3.

Введём следующие обозначения:

- S – множество возможных субъектов,

- O – множество возможных объектов (напомним, что S ⊂ O);

- R={r1, …, rn} – конечное множество прав доступа

- O× S × R - пространство состояний системы;

- M – матрица прав доступа, описывающая текущие права доступа субъектов к объектам;

- Q=(S, O, M) – текущее состояние системы;

- M[s,o] – ячейка матрицы, содержащая набор прав доступа субъекта s∈ S к объекту o∈O .

П оведение системы во времени моделируется переходами между различными её состояниями. Переходы осуществляются путём внесения изменений в матрицу М с использованием команд следующего вида:

command α (x1,…,xn)

if r1 in M[xs1, xo1] and

r2 in M[xs2, xo2] and

…

rm in M[xsm, xom]

then

op1,

op2,

…

opn,

end

Здесь α - имя команды; xi – параметры команды, представляющие собой идентификаторы субъектов и объектов, opi – элементарные операции. Элементарные операции op1…opn будут выполнены в том случае, если выполняются все без исключения условия из блока if … then. При описании элементарных операций мы будем полагать, что в результате выполнения операции система переходит из состояния Q=(S, O, M) в состояние Q’=(S’, O’, M’).

Модель предусматривает наличие 6 элементарных операций:

1. enter r into M[s,o] ( s∈S,o∈O ) – добавление субъекту s права r по отношению к объекту o. В результате выполнения команды происходят следующие изменения в состоянии системы:

- S’=S,

- O’=O,

- M’[xs, xo]=M[xs, x0], если (xs, xo) ≠ (s,o),

- M’[s, o]=M[s, o] ∪ {r}.

Заметим, что содержимое ячейки таблицы рассматривается как множество. Это, в частности, означает, что если добавляемый элемент уже присутствовал в ячейке, то её содержимое не изменяется.

2. delete r from M[s,o] ( s∈S,o∈O ) – удаление у субъекта s права r по отношению к объекту o. Изменения в состоянии системы:

- S’=S,

- O’=O,

- M’[xs, xo]=M[xs, x0], если (xs, xo) ≠ (s,o),

- M’[s,o]=M[s.o] \ {r}.

Если удаляемое право отсутствовало в ячейке, то состояние системы в результате выполнения данной команды никак не изменяется.

3. create subject s (s∉S ) – создание нового субъекта s. Изменения в состоянии системы:

- O’=O∪ {s},

- S’=S ∪ {s},

- M’[xs, xo]=M[xs, xo] для ∀ (xs, xo)∈S×O,

- M’[s, xo]=Ø для ∀ x O' o ∈

- M’[s, xs]=Ø для ∀ x S' s ∈

Как видим, при создании субъекта в матрицу M добавляются строка и столбец.

4. destroy subject s (s∈S) – удаление существующего субъекта s. Изменения в состоянии системы:

- S’=S \ {s},

- O’=O \ {s},

- M’[xs, xo]=M[xs, xo] для ∀ (xs, xo)∈S’×O’.

5. create object o (o∉O) – создание нового объекта o. Изменения в состоянии системы:

- O’=O∪ {o},

- S’=S,

- M’[xs, xo]=M[xs, xo] для ∀ (xs, xo)∈S×O,

- M’[xs, o]= Ø для ∀ x S' s ∈

При добавлении объекта в матрице доступа создаётся новый столбец.

6. destroy object o (o∈O \ S) – удаление существующего объекта o. Изменения в состоянии системы:

- O’=O \ {o},

- S’=S,

- M’[xs, xo]=M[xs, xo] для ∀ (xs, xo)∈S’×O’.

Приведём несколько примеров команд:

1. Создание файла.

Пользователь p создаёт файл f и получает на него права владения, чтения и записи.

command create_file (p, f)

create object f,

enter own into M[p, f],

enter r into M[p, f],

enter w into M[p, f],

end

2. Создание процесса.

Процесс p создаёт процесс q и получает на него право чтения, записи и владения, передавая процессу q права записи и чтения по отношению к самому себе.

command exec_process(p, q)

create subject q,

enter own into M[p, q],

enter r into M[p, q],

enter w into M[p, q],

enter r into M[q, p],

enter w into M[q, p],

end