Модель Take-Grant

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск


Модель Take-Grant (от англ. take «брать», grant «давать») — это формальная модель, используемая в области компьютерной безопасности, для анализа систем дискреционного разграничения доступа; подтверждает либо опровергает степени защищенности данной автоматизированной системы, которая должна удовлетворять регламентированным требованиям. Модель представляет всю систему как направленный граф, где узлы — либо объекты, либо субъекты. Дуги между ними маркированы, и их значения указывают права, которые имеет объект или субъект (узел). В модели доминируют два правила: «брать» и «давать». Они играют в ней особую роль, переписывая правила, описывающие допустимые пути изменения графа. В общей сложности существует 4 правила преобразования:

  • правило «брать»;
  • правило «давать»;
  • правило «создать»;
  • правило «удалить»;

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

Обычная модель[править | править вики-текст]

О — множество объектов (файлы, сегменты памяти и т. д.)
S — множество субъектов (пользователи, процессы системы)
R = {r1, r2, r3, r4, …, rn } U {t, g} — множество прав доступа
t [take] — право брать «права доступа»
g [grant] — право давать «права доступа»

G = (S, O, E) — конечный, помеченный, ориентированный граф без петель
× — объекты, элементы множества О
• — субъекты, элементы множества S
E ∈ O x O x R — дуги графа. Состояние системы описывается её графом.

Преобразование G в граф G' = правило и обозначается:

[G\ - op G']

Правило «брать»[править | править вики-текст]

Брать = take(r, x, y, s), r ∈ R,
Пусть s ∈ S, x,y ∈ O — вершины графа G

Тогда граф G:
Take
Т.е. субъект S берет у объекта X права r на объект Y.

Правило «давать»[править | править вики-текст]

Давать = grant(r, x, y, s), r ∈ R,
Пусть s ∈ S, x,y ∈ O — вершины графа G

Тогда граф G:
Grant
Т.е. субъект S дает объекту X права r на объект Y.

Правило «создать»[править | править вики-текст]

Создать = create(r, x, s), r ∈ R,
Пусть s ∈ S, x,y ∈ O — вершины графа G
Тогда граф G:
Create
Т.е. субъект S берет r-доступный объект X.

Правило «удалить»[править | править вики-текст]

Удалить = remove(r, x, s), r ∈ R,
Пусть s ∈ S, x,y ∈ O — вершины графа G

Тогда граф G:
Delete

Примеры реализации[править | править вики-текст]

1. На рисунке ниже, показано графическое представление структуры каталогов. В этом графе Р1 и Р2 составляют субъекты (возможные пользователи), а также Ds и Fs представляют объекты, каталоги и файлы, соответственно. Право «чтение» было изменено на правило «брать» для всех уровней, за исключением фактически файловых уровней в каталогах. Право «записи» также изменилось правилом «давать». Становится ясно из этого графа: если субъект имеет право чтения(брать) объекта, то он может иметь право чтения любых других объектов, на которые этот первый объект имеет какие-то права. Аналогично, если субъект имеет право записи (давать) объекта, он может предоставить любую из своих прав на этот объект.
пример 1
2. На рисунке ниже показано, что посредством комбинации из указанных выше четырех правил, новый файл может быть добавлен в каталог структуры Примера 1. И права на чтение/запись, будут назначены согласно правилам использующимся каталогом, в которой этот файл записывается. Следующие четыре шага необходимы для добавления файла и разрешения права:

  1. P1 создает R/W для нового объекта F7
  2. P1 принять t для D1 от D
  3. P1 принять g для D11 с D1
  4. P1 дарить RW от F7 до D11

Номера в списке выше, соответствуют обведенным номерам изображенным на графике, как создается дуга графа.

пример 2