Модель 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' = правило и обозначается:
Правило «брать»
Брать = take(r, x, y, s), r ∈ R. Пусть s ∈ S, x,y ∈ O — вершины графа G.
Тогда граф G:
То есть субъект S берет у объекта X права r на объект Y.
Правило «давать»
Давать = grant(r, x, y, s), r ∈ R. Пусть s ∈ S, x,y ∈ O — вершины графа G.
Тогда граф G:
То есть субъект S дает объекту X права r на объект Y.
Правило «создать»
Создать = create(p, x, s), r ∈ R. Пусть s ∈ S, x,y ∈ O — вершины графа G.
Тогда граф G:
То есть субъект S создает p-доступный объект X.
Правило «удалить»
Удалить = remove(r, x, s), r ∈ R. Пусть s ∈ S, x,y ∈ O — вершины графа G.
Тогда граф G:
То есть субъект S удаляет права доступа r на объект X.
Примеры реализации
1. На рисунке ниже, показано графическое представление структуры каталогов. В этом графе Р1 и Р2 составляют субъекты (возможные пользователи), а также Ds и Fs представляют объекты, каталоги и файлы, соответственно. Право «чтение» было изменено на правило «брать» для всех уровней, за исключением фактически файловых уровней в каталогах. Право «записи» также изменилось правилом «давать». Становится ясно из этого графа: если субъект имеет право чтения(брать) объекта, то он может иметь право чтения любых других объектов, на которые этот первый объект имеет какие-то права. Аналогично, если субъект имеет право записи (давать) объекта, он может предоставить любую из своих прав на этот объект.
2. На рисунке ниже показано, что посредством комбинации из указанных выше четырех правил, новый файл может быть добавлен в каталог структуры Примера 1. И права на чтение/запись, будут назначены согласно правилам использующимся каталогом, в которой этот файл записывается. Следующие четыре шага необходимы для добавления файла и разрешения права:
- P1 создает R/W для нового объекта F7;
- P1 принять t для D1 от D;
- P1 принять g для D11 с D1;
- P1 дарить RW от F7 до D11.
Номера в списке выше, соответствуют обведенным номерам изображенным на графике, как создается дуга графа.