Модель Take-Grant

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

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

Використовуючи ці правила, можна відтворити стан, в яких перебуватиме система залежно від розподілу і зміни прав доступу. Отже, можна проаналізувати можливі загрози для даної системи.

Звичайна модель[ред. | ред. код]

O — множина об'єктів (файли, сегменти пам'яті і т. д.)
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 123.jpg
Тобто суб'єкт S бере у об'єкта X r права на об'єкт Y.

Правило «давати»[ред. | ред. код]

Давати = grant(r, x, y, s), r ∈ R

Нехай s ∈ S, x,y ∈ O — вершини графа G
Тоді граф G:
Grant 1.jpg
Тобто суб'єкт S дає об'єкту X r права на об'єкт Y.

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

Створити = create(r, x, s), r ∈ R

Нехай s ∈ S, x,y ∈ O — вершини графа G
Тоді граф G:
Create.jpg
Тобто суб'єкт S бере r-доступний об'єкт X.

Правило «видалити»[ред. | ред. код]

Видалити = remove(r, x, s), r ∈ R

Нехай s ∈ S, x,y ∈ O — вершини графа G
Тоді граф G:
Grant Delete.jpg

Приклади реалізації[ред. | ред. код]

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

Grant example.jpg

2. На малюнку нижче показано, що за допомогою комбінації із зазначених вище чотирьох правил, новий файл може бути доданий в каталог структури Прикладу 1. І права на читання/запис, будуть призначені згідно з правилами використання каталогу, в якій цей файл записується. Наступні чотири кроки необхідні для додавання файлу і дозволу:

  1. P1 створює R/W для нового об'єкта F7
  2. P1 прийняти t D1 від D
  3. P1 прийняти g для D11 з D1
  4. P1 дарувати RW від F7 до D11

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

Grant example2.jpg