Математические методы анализа политики безопасности. Модели J.Goguen, J.Meseguer (G-M).
Модели G-M - автоматные модели безопасных систем. Начнем с простейшего случая системы с "фиксированной" защитой. Пусть V - множество состояний системы (V - конечное и определяется программами, данными, сообщениями и пр.), С - множество команд, которые могут вызвать изменения состояния (также конечное множество), S - множество пользователей (конечное множество). Смена состояний определяется функцией:
do: V ´ S ´ С®V.
Некоторые действия пользователей могут не разрешаться системой. Вся информация о том, что разрешено ("возможности" пользователей) пользователям сведена в с-таблицу t. В рассматриваемом случае "возможности" в с-таблице tсовпадают с матрицей доступа. Если пользователь не может осуществить некоторую команду с, то
do (v, S, c) = v.
Предположим, что для каждого пользователя S и состояния v определено, что "выдается" этому пользователю (т.е., что он видит) на выходе системы. Выход определяется функцией
out: V´ S®Out,
где Out - множество всех возможных выходов (экранов, листингов и т.д.).
Мы говорим о выходе для пользователя S, игнорируя возможности S подсмотреть другие выходы.
Таким образом получили определение некоторого класса автоматов, которые будут встречаться далее.
Определение. Автомат М состоит из множеств:
S - называемых пользователями;
V - называемых состояниями;
С - называемых командами;
Out - называемых выходами;
и функций:
|
|
* выходной функции out: V´ S ® Out, которая "говорит, что данный пользователь видит, когда автомат находится в данном состоянии ";
* функции переходов do: V´S´С®V, которая "говорит, как изменяется состояние автомата под действием команд";
и начального состояния v0.
Системы с изменяющимися "возможностями" защиты определяют следующими образами.
Пусть Capt - множество всех таблиц "возможностей", СС - множество с-команд (команд управления "возможностями"). Их эффект описывается функцией:
cdo: Capt ´ S ´ CC®Capt.
При отсутствии у пользователя S права на с-команду положим cdo(t, S, c)=t. Пусть VC - множество команд, изменяющих состояние. Теперь можем определить С-автомат, который лежит в основе дальнейшего.
Определение. С-автомат М определяется множествами:
S - "пользователи";
V - "состояния";
VC - "команды состояния";
Out - "выходы";
Capt - "с-таблицы";
СС - "с-команды",
и функциями:
* выхода out: V´Capt ´ S®Out, которая "говорит, что данный пользователь видит, когда автомат находится в данном состоянии v, а допуски определяются с-таблицей";
* переходов do: V ´ Capt ´ S ´ VC® V, которая "говорит, как меняются состояния под действием команд";
|
|
* изменения с-таблиц cdo: Capt ´ S ´ СС®Capt, которая "говорит, как меняется с - таблица под действием с", и начального состояния, которое определяется с-таблицей t и состоянием v.
Будем считать
C=CCÈVC.
То, что мы определили на языке теории автоматов, называется последовательным соединением автоматов.
Определение. Подмножества множества команд С называются возможностями
Ab=2c.
Если дан С-автомат М, мы можем построить функцию переходов всей системы в множестве состояний V ´ Capt:
cvdo: V ´ Capt ´ S ´ С®V ´ Capt,
где
cvdo(v, t, S, с) = (do(v, t, S, с), t), если cÎ VC,
cvdo(v, t, S, с) = (v, cdo(t, S, c)), если cÎ CC.
Стандартно доопределяется функция cvdo на конечных последовательностях входов
cvdo: V´Capt´(S´С)*®V´Capt
следующим образом:
cvdo(v, t, Nil) = (v, t),
если входная последовательность пустая;
cvdo(v, t, W(S, c))=cvdo(cvdo(v, t, W), S, c)),
где W(S, С) - входное слово, кончающееся на (S,С) и начинающееся подсловом W.
Определение. Если W входное слово, то[[W]] = (..., (vi ti),...), где последовательность состоянии вычисляется в соответствии с определенной выше функцией переходов под воздействием входной последовательности W.
Введем понятие информационного влияния одной группы на другую, смысл которого состоит в том, что используя некоторые возможности одна группа пользователей не влияет на то, что видит каждый пользователь другой группы. Для этого определим [[W]]s - выход для S при выполнении входного слова W С -автомата М:
|
|
[[W]]s=out([[W]], S),
где
out([[W]]s, S) = (... out(v, t, S)...),
[[W]] = (..., (vi, ti),...).
Пусть GÍS, AÍC, WÎ(S´C)*.
Определение. Pg(W) - подпоследовательность W, получающаяся выбрасыванием всех пар (S, с) при SÎG, Pa(W) - подпоследовательность W, получающаяся выбрасыванием из W всех пар (S, с) при cÎA, PGA(W) -подпоследовательность W, получающаяся выбрасыванием пар (S, с), SÎG и сÎА.
Пример 1. G={S, Р}, А={с1, с2}.
PGA((S', с), (S, сз), (S, с2), (Р', с))= (S', с), (S, с3), (Р', с). Определим несколько вариантов понятия независимости.
Пусть GÍS, G’ÍS.
Определение. G информационно не влияет на G' (обозначается G: | G'), если "WÎ(S´С)* и "SÎG' [[W]]s = [[PA(W)]]s
Аналогично определяется невлияние для возможностей А (или группы G и возможностей А).
Определение. А информационно не влияет на G (обозначается А: | G), если "WÎ(S´С)* и "SÎG [[W]]s= [[PA(W)]]s
Определение. Пользователи G, используя возможности А, информационно не влияют на G' (обозначается A.G: | G'), если "WÎ(S´С)* и "S´ G' [[W]]s=[[PA(W)]]s.
Пример 2. Если А: | {S}, то команды из А не влияют на выход, выданный S. Если A={create, write, modify, deleted} для файла F, то А: | {S} означает, что информация читаемая S в F не может измениться любой из команд в А. Если F не существовал, то для S будет всегда выдаваться информация, что F не существует.
|
|
Определение. Политика безопасности в модели G-М - это набор утверждений о невлиянии.
Пример 3. MLS политика. Пусть L - линейно упорядоченное множество уровней секретности и задано отображение
level: S->L.
Определим: "xÎ L
S[-¥, x] = {Se S | level(S)<x )
S[x,+¥] = {SeS| level(S)>x}.
Определение. MLS политика в модели G-M определяется следующим набором утверждений о невлиянии:
"xÎ L, "x'Î L, х>х',
S[x, +¥]:| S[ - ¥, x'].
Говорят, что GÍS невидимо для остальных пользователей, если G:| , где = S\G.
Используя это понятие легко обобщить определение MLS политики на случай, когда L - решетка.
Определение. MLS политика в модели G-M определяется следующим набором утверждений о невлиянии:
"xÎ L S\S[-¥, х] - невидимо для остальных пользователей.
Пример 4. Одним из важнейших примеров политики безопасности, легко выражаемой в G-M модели, является режим изоляции.
Определение. Группа G называется изолированной,если G:| и :| G.
Система полностью изолирована, если каждый пользователь изолирован.
Пример 5. Контроль канала. В модели G-M канал определяется как набор команд АÍС.
Пусть G, G'ÍS.
Определение. G и G' могут связываться только через канал А тогда и только тогда, когда
и
Пример 6. Информационный поток Пусть а, b, с, d -процессы и А1, A2, Аз - каналы такие, что а, b, с, d могут связываться только по схеме
Эта картинка описывается следующими утверждениями о невлиянии:
{b, c, d}: | {a} A1, {a}: | {b, c, d}
{c, d}: | {b} A2, {b}: | {c}
{c}: | {d} A3, {b}: | {d}
{d}: | {c}
Дата добавления: 2016-01-05; просмотров: 13; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!