Модель Take-Grant
Модель Take-Grant (от англ. take — «брать», англ. grant — «давать») — формальная модель, применяемая в области компьютерной безопасности для анализа систем дискреционного управления доступом. Модель используется для проверки защищённости автоматизированных систем, которые должны соответствовать определённым требованиям безопасности. В рамках модели система представляется в виде направленного графа, где узлы соответствуют либо объектам, либо субъектам[1]. Дуги между ними имеют метки, отражающие права, которыми располагает объект или субъект (узел). В модели выделяются два основных правила — «брать» и «давать», которые определяют допустимые преобразования в графе. Всего присутствует четыре преобразования:
- правило «брать»;
- правило «давать»;
- правило «создать»;
- правило «удалить».
Позволяет воспроизвести возможные состояния системы в зависимости от распределения и изменения прав доступа и, соответственно, проанализировать потенциальные угрозы для системы.
Обычная модель
- O — множество объектов (файлы, сегменты памяти и др.);
- S — множество субъектов (пользователи, процессы системы);
- R = {r1, r2, r3, r4, …, rn} ∪ {t, g} — множество прав доступа;
- t (take) — право брать «права доступа»;
- g (grant) — право давать «права доступа»;
- G = (S, O, E) — конечный помеченный ориентированный граф без петель;
- × — объекты, элементы множества O;
- • — субъекты, элементы множества S;
- E ∈ O × O × R — дуги графа.
Состояние системы описывается соответствующим графом.
Преобразование G в граф G' — это применение правила и обозначается как:
Правило «брать»
Правило «давать»
Правило «создать»
Правило «удалить»
Примеры реализации
В графе P1 и P2 представляют субъекты (возможные пользователи), а Ds и Fs обозначают объекты — каталоги и файлы соответственно. Право «чтение» заменено на правило «брать» для всех уровней, кроме непосредственно файловых уровней в каталогах. Право «записи» также трансформировано через правило «давать». Из этого графа видно: если субъект обладает правом чтения (брать) объекта, то он может получить право чтения любых других объектов, на которые этот объект имеет какие-либо права. Аналогично, если субъект имеет право записи (давать) объекта, он способен делегировать любые свои права на этот объект.
Посредством комбинации указанных выше четырёх правил в структуру каталогов может быть добавлен новый файл, а права на чтение или запись определяются согласно действующим правилам каталога, в который записывается этот файл.
Пример последовательности операций для добавления файла и назначения прав:
- P1 создаёт права R/W для нового объекта F7;
- P1 получает право t для D1 от D;
- P1 получает право g для D11 от D1;
- P1 делегирует права RW от F7 к D11.