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