Модель Take-Grant (Bk;yl, Take-Grant)
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Модель Take-Grant (от англ. take «брать», grant «давать») — это формальная модель, используемая в области компьютерной безопасности, для анализа систем дискреционного разграничения доступа; подтверждает либо опровергает степени защищенности данной автоматизированной системы, которая должна удовлетворять регламентированным требованиям. Модель представляет всю систему как направленный граф, где узлы — либо объекты, либо субъекты[1]. Дуги между ними маркированы, и их значения указывают права, которые имеет объект или субъект (узел). В модели доминируют два правила: «брать» и «давать». Они играют в ней особую роль, переписывая правила, описывающие допустимые пути изменения графа. В общей сложности существует 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 и Р2 составляют субъекты (возможные пользователи), а также Ds и Fs представляют объекты, каталоги и файлы, соответственно. Право «чтение» было изменено на правило «брать» для всех уровней, за исключением фактически файловых уровней в каталогах. Право «записи» также изменилось правилом «давать». Становится ясно из этого графа: если субъект имеет право чтения(брать) объекта, то он может иметь право чтения любых других объектов, на которые этот первый объект имеет какие-то права. Аналогично, если субъект имеет право записи (давать) объекта, он может предоставить любую из своих прав на этот объект.
Посредством комбинации из указанных выше четырех правил, новый файл может быть добавлен в каталог структуры. И права на чтение или запись, будут назначены согласно правилам использующимся каталогом, в которой этот файл записывается.
Следующие четыре шага необходимы для добавления файла и разрешения права:
- P1 создает R/W для нового объекта F7;
- P1 принять t для D1 от D;
- P1 принять g для D11 с D1;
- P1 дарить RW от F7 до D11.
Примечания
[править | править код]- ↑ Lipton R.J., Snayder L. A linear time algorithm for deciding subject security // Journal of ACM (Addison-Wesley). N.3, 1977. p.455-464