Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы Рудина.doc
Скачиваний:
25
Добавлен:
20.09.2019
Размер:
604.67 Кб
Скачать

10. Модель Take-Grant. Кража права. Троянская программа в терминах Take-Grant. Сговор в терминах модели Take-Grant

Про то, какая take-grant хорошая — предыдущий вопрос.

Кража права

А как же нам описать в терминах данной модели кражу права?

Ответ — предикат cansteal(a,x,y,G0)

Этот предикат истинен, если в начальном графе G0 нету стрелки a между x,y и существует последовательность графов G1,...Gn таких, что:

  1. Существует такие gi, по которым из Gi выводится Gi+1 (i от 0 до n-1).

  2. Существует стрелка a между x и y.

  3. Для всех u и w в графе Gi-1, если существует стрелка a от v к y, то правило gi не является правилом вида v grants(a to y) to w

Суть данного предиката в том, что он показывает можем ли мы получить право на что-то в обход другого субъекта.

 

В последнем графе стрелка с a получена не с помощью правила U grants (a to W) to S, а с помощью того, что S взяла эту стрелку через 2 take с

Троянская программа

А как же нам описать троянскую программу в терминах take-grant?

Рассмотрим пример:

Хотим, чтобы Z1 смог читать файл Z2. Это делается с помощью троянской программы X следующим образом.

 

 

 

Сговор

Множеством доступа A(y) с фокусом y называют множество субъектов с которыми y находится в отношении initially spans, terminally spans (то есть, до которых он может дойти по t,g).

По графу take-grant строится граф сговора. Для этого, для каждой вершины находится множество доступа с фокусом в ней. И все. Пример в конспекте.

Главное, что стоит запомнить (* - значит вершина является субъектом, O - объектом):

X*(t->)O(<-g)*B дает подграф сговора вида X – B

X*(t->)*A(<-g)*B дает подграф сговора вида X – A – B  со связью X — B

И предикат canshare(a,x,y,G) выполнен тогда и только тогда, когда на графе сговора есть путь из h(p) из I(x) в h(q) из I(y), где h — вершина графа сговора, I(x) — остров с вершиной x.

Пусть L — количество вершин на кратчайшем пути между h(p) и h(q). Тогда, чтобы p и q разделяли права необходимо и достаточно L участников сговора.

11. Схематическая модель защиты (spm). Основные определения. Цели. Примеры описания различных моделей безопасности в терминах spm (пб владельца, Take-Grant).

В модели SPM, билет (ticket) есть описание атомарного права. Сущность (entity, объект или субъект) имеет набор таких билетов (всех вместе называемых доменом) которые описывают какими правами они обладают по отношению к другим сущностям.

Метка состоит из имя сущности а также символа отвечающего за нужное право, например:

    X/r

данный билет позволяет её владельцу получить право r к сущности X. Билет может содержать одно право, но для простоты пишем вместо X/r, X/s, X/t - X/rst.

Права разбиваются на два множества - инертные права (RI) или управляющие права (RC). Применение инертных прав не изменяет состояние защиты системы. Например право на чтение файла не может изменить набор сущностей которые имеют доступ к документу, так что право на чтение - инертно.

В модели Take-Grant, применение права take изменяет состояние защиты системы (даёт субъекту новое право по отношению к объекту). Получается что take управляющее право.

Метка c - флаг копирования; каждое право r имеет связанное с ним право копирования rc. Билет с меткой копирования может быть скопирован в другой домен. Запись r:c означает r или rc.

Мы разделяем множество типов сущностей T на два - множество субъектов TS и множество объектов TO. Тип сущности X пришется как t(X). Тип билета X/r:c есть t(X/R:c), что то же самое t(X)/r:c.

Манипуляции с правами контроллируются двумя отношениями: предикатом связи и функцией фильтром. Предикат связи определяет является ли источник и адресат передачи соединенными, а функция фильтра определяет является ли передача разрешенной.

Предикат связи

Предикат связи - отношение между двумя субъектами.

Определение. Пусть dom(X) множество билетов которыми обладает сущность X. Предикат связи linki(X,Y) - это конъюнкция или дизъюнкция (но не отрицание) следующим термов, для любого права z из RC.

X/z ∈ dom(X)

X/z ∈ dom(Y)

X/z ∈ dom(X)

X/z ∈ dom(Y)

true

Коечное множество предикатов связи называется схема. Если только один предикат схемы определен, упускаем индекс i, где linki  

ПРИМЕРЫ:

1.

Предикат связи соответствующий правилам модели защиты Take-Grant take и grant:

link(X,Y) = Y/g ∈ dom(X) v X/t ∈ dom(Y)

Здесь получается что сущности X и Y являются связанными если X имеет права g над Y, или Y имеет права t над X.

2.                                                                                                                                                                           

link(X,Y) = true

Сущности X и Y связаны, даже если у них нет билетов с правами друг на друга.

Функция фильтра.

Фильтр функция накладывает условия на то, когда может проходить передача билетов.

Фильтр функция:

    fi: TS x TS -> 2TxR

означает множество copy-билетов. Чтобы копирование могло произойти, билет для копирования должен быть в этом множестве.

Основное правило для модели:

Билет X/r:c может быть скопирован из dom(Y) в dom(Z) если и толькое если, для какого-то i, выполняются все условия:

    1. X/rc ∈ dom(Y)

    2. linki(Y,Z)

    3. t(X)/r:c ∈ fi(t(Y),t(Z))

Для каждого предиката связи определена одна функция фильтра. Если всего одна фильтр функция, то индекс опускаем как и в предикате связи.

ПРИМЕР: Пусть f(t(Y),t(Z)) = T x R. Тогда любые билеты являются передаваемыми, предполагая что условия (1,2 вышеуказанные) выполняются. Однако, если

f(t(Y),t(Z)) = T x RI (обратим внимания что тип стал не R, а RI), тогда только инертные права являются передаваемыми, и если f(t(Y),t(Z)) = 0 (знак пустого множества), никакие права не могут быть скопированы.

А теперь соединим всё вышесказанное вместе и посмотрим как это работает на примере Политики Безопасности владельца и модели Take-Grant.

ПБ владельца.

В политике безопасности основанной на владельце, субъект U может авторизовать другого субъекта V к доступу на объект F, тогда и только тогда когда U владеет F.

Далее пусть множество субъектов есть множество пользователей, а множесвто объектов это множество файлов. Будем воспринимать их как типы(термин SPM). Тогда:

    TS = { user }, TO = {file}

В данной модели, владение лучше рассматривать как атрибут копирования - то есть, если U владеет F, все его билеты для F передаваемы. Это право как и чтение, исполнение и запись - являются инертными, поскольку не позволяют передавать другим субъектам права. Контрольные права RC тут пусты.

    RC = 0, RI = (r:c, w:c, a:c, x:c }

Так как владелец может давать права любому другому субъекту, существует связь между этими парами субъектов и предикат связи всегда истинен;

    link (U,V) = true

И конечно функция фильтра:

    f (user, user) = {file/r, file/w, file/a, file/x}

ПРИМЕР (очень хороший):

Предположим что пользователь Онотоле пожелал дать пользователю Леонид права на чтение файла антихрист. Тогда:

t(Онотоле) = user ,    t(антихрист) = file, и

антихрист/xc ∈ dom(Онотоле)

Так как любой пользователь может давать право другому пользователю, следовательно все пользователи обладают "связанностью", то есть предикат

link (Онотоле, Леонид) = true

Наконец, так как t(антихрист)= file, и t(Леонид) = user, мы получаем что:

t(антихрист)/x ∈ f(t(Онотоле), t(Леонид)). Соответственно Онотоле может копировать билет doom/x Леониду.

Take-Grant.

Схема TG также может быть сформулирована в терминах SPM. Набор субъектов и объектов в TG модели отвечает набору субъектов и объектов в SPM:

    TS = {subject}, TO = {object}

Контрольные права t (take) и g (grant), потому что применение их изменяет состояние защиты системы. Все остальные права инертны, предположим это r (read) и w (write). Все права могут быть скопированы, соответственно:

    RC = {tc, gc}, RI = {rc, wc}

Права могут быть скопированы, если ребро графа TG помечено t или g, это означает то что одна вершина ребра имеет право take или grant по отношению к другой. Пусть p и q субъекты. Тогда предикат связи:

    link (p,q) = p/t ∈ dom(q) v q/g ∈ dom(p)

И функция фильтра:

    f(subject, subject) = {subject, object} x {tc, gc, rc, wc }