Модель 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'  — это применение правила и обозначается как:

Правило «брать»

Брать = take(r, x, y, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

Take rule Take-grant protection model.svg

То есть субъект S берёт у объекта X право r на объект Y.

Правило «давать»

Давать = grant(r, x, y, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

Grant rule Take-grant protection model.svg

То есть субъект S даёт объекту X право r на объект Y.

Правило «создать»

Создать = create(p, x, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

Create rule Take-grant protection model.svg

То есть субъект S создаёт объект X с p-правами.

Правило «удалить»

Удалить = remove(r, x, s), r ∈ R. Пусть s ∈ S, x, y ∈ O — вершины графа G.

Тогда граф G:

Remove rule Take-grant protection model.svg

То есть субъект S удаляет право доступа r на объект X.

Примеры реализации

В графе P1 и P2 представляют субъекты (возможные пользователи), а Ds и Fs обозначают объекты — каталоги и файлы соответственно. Право «чтение» заменено на правило «брать» для всех уровней, кроме непосредственно файловых уровней в каталогах. Право «записи» также трансформировано через правило «давать». Из этого графа видно: если субъект обладает правом чтения (брать) объекта, то он может получить право чтения любых других объектов, на которые этот объект имеет какие-либо права. Аналогично, если субъект имеет право записи (давать) объекта, он способен делегировать любые свои права на этот объект.

undefined

Посредством комбинации указанных выше четырёх правил в структуру каталогов может быть добавлен новый файл, а права на чтение или запись определяются согласно действующим правилам каталога, в который записывается этот файл.

Пример последовательности операций для добавления файла и назначения прав:

  1. P1 создаёт права R/W для нового объекта F7;
  2. P1 получает право t для D1 от D;
  3. P1 получает право g для D11 от D1;
  4. P1 делегирует права RW от F7 к D11.
undefined

Примечания

Категории