Модель 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-доступный объект Y.

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

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

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

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

1. На рисунке ниже, показано графическое представление структуры каталогов. В этом графе Р1 и Р2 составляют субъекты (возможные пользователи), а также Ds и Fs представляют объекты, каталоги и файлы, соответственно. Право "чтение" было изменено на правило "брать" для всех уровней, за исключением фактически файловых уровней в каталогах. Право "записи" также изменилось правилом "давать". Становится ясно из этого графа: если субъект имеет право чтения(брать) объекта, то он может иметь право чтения любых других объектов, на которые этот первый объект имеет какие-то права. Аналогично, если субъект имеет право записи (давать) объекта, он может предоставить любую из своих прав на этот объект.
Example
2. На рисунке ниже показано, что посредством комбинации из указанных выше четырех правил, новый файл может быть добавлен в каталог структуры Примера 1. И права на чтение/запись, будут назначены согласно правилам использующимся каталогом, в которой этот файл записывается. Следующие четыре шага необходимы для добавления файла и разрешения права:
1. P1 создает R/W для нового объекта F7
2. P1 принять t для D1 от D
3. P1 принять g для D11 с D1
4. P1 дарить RW от F7 до D11
Номера в списке выше, соответствуют обведенным номерам изображенным на графике, как создается дуга графа.

Example1

К сожалению, на данный момент эта модель практически не используется в программном обеспечении. Но со временем появляется всё больше научных статей, связанных с исследованием данной модели. Однако, в распределённой операционной системе E1 данная модель успешно реализована. На данный момент, в основном, данная модель используется для анализа уязвимости различных систем. Уже написано достаточно большое количество статей и литературы, где описаны методы анализа уязвимости систем ПО и сетей с помощью модели Take-Grant.