структуры и моделирование 2016. №»4(40). С. 151-163
УДК 004.056.53
О СВЯЗИ МЕЖДУ ОБЪЕКТНО-ОРИЕНТИРОВАННОЙ ДИСКРЕЦИОННОЙ И СУБЪЕКТНО-ОБЪЕКТНОЙ МАНДАТНОЙ МОДЕЛЯМИ БЕЗОПАСНОСТИ
С.В. Усов
к.т.н., e-mail: [email protected]
Омский государственный университет им. Ф.М. Достоевского
Аннотация. В статье рассмотрены объектно-ориентированная модель Харрисона-Руззо-Ульмана и субъектно-объектные модели с мандатным разграничением доступа. Показано, что модель Белла-Лападулы и классические мандатные модели могут быть реализованы с помощью объектно-ориентированной модели HRU.
Ключевые слова: дискреционные модели безопасности, мандатные модели безопасности, разграничение доступа, HRU, модель Белла-Лападулы.
Введение
Как дискреционные, так и мандатные политики безопасности известны еще с 70-х годов прошлого столетия, и традиционно базируются на субъектно-объектной парадигме компьютерной системы. Однако в связи с возрастающей актуальностью объектно-ориентированного подхода к построению компьютерных систем, возникает необходимость в пересмотре классических политик безопасности. Так, например, в [1] была предложена объектно-ориентированная модель разграничения доступа, базирующаяся на модели HRU (Харрисона-Руззо-Ульмана) [2], однако, обладающая более широкими возможностями, в частности, в рамках охвата компьютерных систем, которые можно описать с помощью этой модели.
Получают более широкое применение и мандатные политики безопасности [3], [4]. В частности, мандатная модель используется как семейством операционных систем Windows (начиная с Vista применяется для контроля целостности), так и семейством операционных систем Linux (доступна в качестве расширений). Цель данной работы — установить взаимосвязь между объектно-ориентированными дискреционными системами безопасности и мандатными системами безопасности, эксплуатирующими субъектно-объектный подход.
Прежде всего необходимо ответить на вопрос, позволяет ли инструментарий объектно-ориентированной модели HRU реализовать мандатную политику безопасности, и если позволяет, то с какими ограничениями.
В работе [1] была предложена иерархическая модель OOHRU, устройство которой подразумевает, что объект o, находящийся на более низком уровне
иерархии, чем объект о', обладает меньшим набором прав (как в отношении доступа к другим объектам, так и в отношении ограничения доступа других объектов по отношению к себе) по сравнению с объектом о'. Такая структура в точности повторяет решётку ценностей мандатной политики безопасности, что позволяет сделать предположение о структурной близости данных моделей.
1. Объектно-ориентированная модель безопасности с дискреционным разграничением доступа (OOHRU)
Компьютерная система в OOHRU рассматривается в виде множества объектов О, разбитых по множеству классов К (все объекты одного класса имеют одинаковый набор полей и методов), обладающих открытыми полями / е Е и скрытыми полями р е Р, а также методами обработки полей 5 е Я. Здесь ^ = икек к.Е — множество всевозможных открытых полей всех объектов и классов, к.Е — множество открытых полей класса к (каждый объект класса к обладает тем же набором к.Е открытых полей), аналогично определяются Р и Я. Причём если поле к./ наследуется классом к у класса к', то соответствующее поле класса к' мы будем для удобства обозначать именно к'./, подчёркивая тем самым их взаимосвязь (таким образом, / е к.Е и / е к'.Е). Пусть Ок е О — множество объектов класса к е К. В случае, если требуется уточнить класс объекта, поле / объекта ок е Ок будем обозначать ок./, поле / класса к — к./. Для скрытых полей класса будем использовать аналогичные обозначения.
Для построения модели дискреционного разделения доступов для каждого объекта и для каждого класса вводится дополнительное скрытое поле М, содержащее локальную матрицу доступов, и методы работы с матрицей доступов. Модификация матриц доступа производится посредством выполнения команд системы безопасности, о которых будет сказано ниже.
Модель безопасности OOHRU называется иерархической (или моделью с иерархией), если на множестве объектов О задан частичный порядок-иерархия, и в любой момент работы системы для любых двух объектов о, о' е О таких, что о' ^ о, для любого поля или метода х е X, общего для объектов о и о', и для любого поля или метода х' е X объекта о'' е О верно следующее: о''.М[о,х'] С о''.М[о',х'] и о'.М[о'',х] С о.М[о'',х]. Здесь и далее X — множество всевозможных полей и методов всех существующих в системе на данный момент времени объектов, — отношение частичного порядка.
Состояние системы в модели HRU изменяется под действием команд, которые состоят из условной части и последовательности элементарных операторов [2], которая выполняется, только если истинна условная часть. Список элементарных операторов в OOHRU включает [1]:
1. Сгеа£е(ок, к) — создаёт объект ок класса к е К, если ок е О.
2. Де^гоу(ок) — уничтожает объект ок е О.
3. Еп^ег(г,ок,о'к'./) — вносит право доступа г в о'к'.М[ок,о'к'./], где ок -объект класса к, о'к — объект класса к'.
4. Де/е£е(г, ок, о'к ./) — удаляет право доступа г из о'к .М[ок,о'к ./].
5. Сгаи£(г, ок, о'к .в) — разрешает вызов объектом ок метода о'к .5.
6. Deprive(r,ok,o'k'.s) — запрещает вызов объектом ok метода o'k'.s.
Изменения, производимые операторами, отражаются в матрицах доступа объектов системы. Подробное описание модели OOHRU можно найти в [1].
2. Мандатные политики безопасности
Мандатные политики безопасности оперируют понятиями уровня секретности информации и уровня доверия к пользователю. На множестве уровней секретности (уровней доверия) задано отношение нестрогого порядка. Таким образом, получаем частично упорядоченное множество L, в отдельных случаях являющееся решёткой (например, если L линейно упорядочено). Такую решётку будем называть решёткой ценностей.
Типичным примером мандатной политики безопасности является общепринятая для секретного документооборота в большинстве стран модель MLS, основанная на решётке ценностей. На множестве объектов O системы определяется функция ценности , сопоставляющая каждому объекту один из уровней решётки ценностей L. Поток информации от объекта o к объекту o допускается, только если C(o) не превосходит C(o').
Другим примером может служить модель Белла-ЛаПадулы [3], [4], в которой, однако, мандатная политика безопасности совмещается с дискреционной. Опишем эту модель подробнее.
Система представляется совокупностью множества объектов O доступа, множества субъектов S доступа, множества видов доступа A = {read,write,append,execute} и матрицы доступов M, аналогичной используемой в модели HRU. Кроме того, заданы решётка ценностей L (обычно это линейно-упорядоченное множество, содержащее четыре классических уровня секретности: Unclassified, Confidencial, Secret, TopSecret, перечислены в порядке возрастания секретности) и тройка отображений f = (fS, fe, fo). Множество всех таких троек f обозначим через F. fS : S ^ L определяет максимальный уровень допуска субъекта, fe : S ^ L — текущий уровень допуска субъекта, а fO : O ^ L — уровень секретности объекта. Дополнительно может определяться иерархия H объектов системы (например, на основе отношения вложенности папок [4]), для любой пары «родитель-потомок» этой иерархии уровень секретности родителя не может превосходить уровень секретности потомка (но может совпадать с ним). Отображение fH : O ^ L сопоставляет каждому объекту системы его место в иерархии, причём все объекты o, находящиеся в иерархии на одной позиции h = fH(o), имеют один и тот же уровень секретности fO(o). Поэтому в дальнейшем под уровнем секретности объекта мы будем понимать именно его позицию h в иерархии.
Множество текущих доступов в системе можно записать как B С S х O х A. В каждый момент времени система находится в определённом состоянии, являющемся декартовым произведением d = B х M х f х H, переход в другое состояние осуществляется посредством выполнения одной из системных команд из множества , а также исполнения запросов на доступ из множества Q, также являющегося подмножеством S х O х A. В отличие от дискреционной
модели Харрисона-Руззо-Ульмана, вид команд из множества Г не специфицирован, однако, приводится список их возможностей [3]:
1. Изменить положение объекта в иерархии H, изменить текущий уровень доверенности субъекта или уровень секретности объекта, то есть изменить функции /я, /с и /о.
2. Добавить или удалить право доступа субъекту на объект, то есть изменить содержание матрицы доступов M.
3. Создать новый объект или удалить группу объектов, то есть изменить иерархию H.
В то же время запросы из множества Q служат для оперирования (создания или прекращения) текущими потоками между субъектами и объектами. Подобные запросы не специфицированы в HRU, поэтому мы не будем останавливаться на них подробно.
Безопасность системы определяется с помощью трех свойств: ss-свойства, *-свойства и ds-свойства.
Доступ b = (s, o, r) e B обладает ss-свойством относительно / = (/S, /с, /о), если
1. r = read или write, и /о(o) ^ /S(s).
2. r = execute или append.
Доступ b = (s,o, r) e B обладает *-свойством относительно / = (/S,/с,/о), если
1. r = read и /о(o) ^ /s(s).
2. r = append и /S(s) ^ /о(o).
3. r = write и /о (o) = /s(s).
4. r = execute.
Доступ b = (s, o, r) e B обладает ds-свойством относительно / = (/S, /с, /о), если r e M[s, o].
Состояние системы обладает ss-свойством (*-свойством, ds-свойством) относительно / = (/S,/с,/о), если каждый доступ b в этом состоянии обладает тем же свойством.
Состояние системы называется безопасным, если оно обладает всеми тремя свойствами. Реализация системы называется безопасной, если каждое состояние её безопасно. Ограничения на команды в безопасной реализации системы описаны в так называемой Basic Security Theorem [3]. Перечислим эти ограничения для перехода системы из состояния (B,M,/,/н) в состояние (B',M',/',/H):
1) любой доступ (s,o, r) e B' \ B обладает ss-свойством относительно /';
2) если (s,o, r) e B и не обладает ss-свойством относительно /', то (s,o, r) e
B;
3) любой доступ (s,o, r) e B' \ B обладает *-свойством относительно /';
4) если (s,o,r) e B и не обладает *-свойством относительно /', то (s,o, r) e
B;
5) для любого доступа (s,o, r) eB \ B верно, что r e M[s,o];
6) если (s,o, r) e B и re M [s,o], то (s,o, r) e B'.
Basic Security Theorem утверждает, что система безопасна тогда и только тогда, когда начальное состояние системы безопасно, и для всех переходов системы в последующие состояния выполнены шесть вышеперечисленных условий.
Заметим, что ss-свойство следует из *-свойства, что вызвано историческими причинами [4]. В первоначальной работе Белла и ЛаПадулы *-свойство отсутствовало, и было введено позднее, чтобы избавить систему, защищённую по БЛП, от уязвимости к атакам вида «троянский конь».
Исходя из тех соображений, что право доступа write является комбинированным, по сути совмещая в себе права как на чтение объекта, так и на запись в объект, в то время как read подразумевает доступ только на чтение, append — только на запись, а execute вообще не подразумевает прямого доступа субъекта к данным, мы можем заменить четыре права доступа четырьмя комбинациями всего двух пар доступа, read (только чтение) и write (только запись). В этом случае *-свойство можно сформулировать заметно проще:
Доступ b = (s,o,r) е B обладает *-свойством относительно f = (fs,fc, fO), если
1. r = read и fo(o) ^ fs(s),
2. r = write и fs(s) ^ fo(o).
Что касается иерархии H, то будем следовать замечанию Белла, изложенному в [4], что естественно полагать, что субъект, имеющий доступ к подпапке, имеет доступ и к документам самой папки, а субъект, не имеющий доступа к папке, не сможет просматривать и вложенные в неё подпапки. Это означает, что если read е M[s,o] и fH(o) ^ fH(o'), то read е M[s,o'], и наоборот, если write е M[s,o] и fH(o) ^ fH(o), то write е M[s,o'].
3. Связь между моделями Белла-ЛаПадулы (МБЛ) и OOHRU
Основной результат данной работы заключается в том, что субъектно-объектная модель Белла-ЛаПадулы (МБЛ) может быть реализована объектно-ориентированной моделью OOHRU.
Рассмотрим два принципиально отличающихся случая, для каждого сформулируем и докажем отдельную теорему.
Будем называть МБЛ ds-свободной, если матрица доступов не накладывает дополнительных (относительно *-свойства) ограничений на доступ субъектов к объектам.
МБЛ однозначно определяется множеством своих состояний (включая начальное) и способов перехода из одного состояния в другое, то есть набором команд из множеств Q и , описанных выше. Поэтому в каждый момент времени t допустимо рассматривать такую модель £ как набор (D(t),T), где D — множество состояний системы, — набор команд системы, для которых выполнены условия Basic Security Theorem. В худшем случае множество (t) текущих доступов может содержать всевозможные доступы, не противоречащие безопасности состояния d(t) системы в момент времени t. Будем считать,
что (t) именно таково, что избавляет нас от рассмотрения запросов на доступ из множества Q.
С другой стороны, связанную с МБЛ объектно-ориентированную модель £' будем рассматривать как набор (D'(t),r'), где D(t) = (O'(t),M'(t),K,F',R) — множество состояний системы, O' — множество объектов системы, M' — множество прав доступа, оформленное в виде матрицы доступов, K — множество классов системы (возможно, в виде иерархии; зависит от L и H), F' — отображение классов системы на решётку ценностей, R — множество видов доступа, наконец, Г" — набор команд системы (зависит от L,/S, H).
Будем говорить, что объектно-ориентированная модель £' реализует субъектно-объектную МБЛ £, если существует взаимно-однозначное отображение ф, определённое на каждом из элементов модели £, устанавливающее соответствие между состояниями и командами систем £ и £', такое что любому переходу системы £ из состояния d в состояние d', совершаемому в результате выполнения команды y, соответствует переход системы £' из 0(d) в состояние 0(d') в результате выполнения команды 0(y).
Теорема 1. Для любой безопасной ds-свободной МБЛ существует реализующая её иерархическая модель OOHRU.
Доказательство. Построим искомую систему OOHRU и одновременно — требуемое отображение ф.
Во-первых, в МБЛ будем рассматривать только два вида доступа, read и write. Причина тому была приведена в конце предыдущего параграфа. Соответственно, в OOHRU сохранятся те же виды доступа.
Во-вторых, иерархию классов в OOHRU будем строить на основе решётки L ценностей и иерархии H уровней секретности объектов.
Введём множество служебных классов K = {k0, kread, kwrite, ksystem}. Класс k0 — корневой и не обладает никакими правами доступа, в то время как объекты других классов обладают полным множеством прав доступа к нему. Класс kread обладает полным набором прав чтения, но полностью лишён прав записи. Класс kwrite, напротив, обладает полным набором прав записи, но полностью лишён прав чтения. Эти три класса могут не содержать объектов, либо методы данных классов лишены функциональности, а поля — подлежащей защите информации. Последний класс ksystem обладает полным набором прав как по записи, так и по чтению, и содержит доверенный объект — объект администратора системы.
Объекты в конструируемой объектно-ориентированной системе будут принадлежать к одному из четырёх типов: содержащие единственное поле /ield, в которое можно писать, содержащие единственное поле /ie/d, которое можно читать, содержащие единственный метод read с правом доступа по чтению, содержащие единственный метод write с правом доступа по записи. Данные ограничения необходимы только для доказательства, в реальной системе можно обойтись и без них.
Кроме того, каждому уровню секретности объектов модели Белла-ЛаПадулы сопоставим два класса в объектно-ориентированной модели, а каж-
дому уровню допуска субъектов модели Белла-ЛаПадулы — два семейства классов. В рамках первого семейства представлены классы, позволяющие реализовать возможности субъектов мандатной модели по чтению, в рамках второго — по записи. Данное сопоставление реализуем в виде отображения F : K \ K' ^ L U H, где соблюдаются следующие разбиения:
K = K' U KOR U KOW U KSR U KSW,
так что F : KOR U KOW ->• H и F : KSR U KSW ->• L.
KOR = U kOhR, ней
KOW = U kOW,
нен
KSR = U KfR,
leL
KSW = U KfW,
leL
так что F'(kOR) = F'(k%W) = h и F'(KRf) = F'(KfW) = l,
KfR = U kÏCs),
ses
KfW = U
ses
где S — множество субъектов в модели Белла-ЛаПадулы.
Здесь h™), например, обозначает класс, находящийся в иерархии на уровне l, в котором может быть создан объект о^^ с единственным методом, реализующий функционал субъекта МБЛ s G S по чтению. И такой объект существует в модели OOHRU тогда и только тогда, когда соответствующий субъект в МБЛ находится на уровне безопасности l, т.е. fc(s) = l ^ ff (s). Одновременно с ним существует и объект класса kwlrS)e, реализующий функционал субъекта
s G S по записи. Значение ff (s) для каждого субъекта при этом закладывается на уровне создания системы.
В свою очередь, k°R обозначает класс, находящийся в иерархии на уровне h, в котором может быть создан объект o^R) с единственным полем, содержащим информацию объекта МБЛ о G O, предназначенную для чтения. И такой объект существует в модели OOHRU тогда и только тогда, когда соответствующий объект в МБЛ находится на уровне иерархии h, т.е. fH(о) = h. Одновременно с ним существует и объект оOW) класса kOW, находящийся на том же уровне h иерархии и содержащий идентичную информацию, однако, к этому объекту могут обращаться только объекты из семейства классов KSW для выполнения операции записи.
Таким образом, o^Of может получить право читать информацию из oORO), но не из oOW), в то время как соответствующий тому же субъекту МБЛ s объект o^rj6 может обладать правом писать в oOW), но не в oj^R,). По завершении операции записи в объект oOWf, его содержание копируется системным объектом в
ooR '
oh,o .
Отображение F' таково, что для любых двух уровней безопасности /,m e L, / ^ m, верно:
ko k[eaJ < k^af ^ kreaf но
1,0 ^ /„write /„write /„write k ^ k(m,s) ^ k(1,s) ^ k .
Кроме того, для любых элементов h ^ g решётки H выполнено:
k0 ^ kOR ^ k°R, но k0 ^ k°W ^ k°W. Наконец, k0 ih ksystem .
Матрицы доступа методов этих объектов также индуцируются матрицей доступа субъекта s. Для ds-свободных МБЛ это означает, что если /с(s) = /, то
read e ogR).M[o^oOhV/ie/d] ^ /о(o) ^ /, write e ogW).M[oWWr:r,oOW)./ie/d] ^ /о(o) ^ /.
Для завершения доказательства нам достаточно представить реализацию команд МБЛ средствами модели OOHRU. С учётом того, что в ds-свободной МБЛ матрица доступов не претерпевает изменений, если уровни допуска субъектов и уровни секретности объектов не изменяются, достаточно представить только команды, соответствующие изменению функций /н,/с и /о, а также созданию и удалению объектов. Условные части команд отсутствуют, поскольку для соблюдения *-свойства достаточно условий целостности из элементарных операторов модели OOHRU.
1. Присвоение субъекту s с текущим уровнем допуска / нового уровня допуска m.
Команда ChangeSubjectSecurityLeve/^, m^o^f : k^Of; o^6 : k^WS)6; o^f) :
/„read . „write . /„write ^ k(m,s); o(m,s) : k(m,s) )
Create(ormaf),krmaf)), Create(owm;:se,kwm;se),
Destroy (orfaf), Destroy (o^J6).
Данная команда присутствует в системе только для значений /,m ^ /S(s).
2. Присвоение объекту o с текущим уровнем секретности h нового уровня секретности g.
Команда ChangeObjectSecurityLeve/[h, g](o(hR0) : o^gR,) : k^; o(hW) :
. „ож . . „system . /„systemA
k(h,o); o(g,o) : k(g,o); o : k )
Create(0(gRO), k(CgRO)), Create(oKgW), ^Ж)),
Enter(read, osystem, o^h/O)), Enter (write, osystem, o^g^)),
Enter (write, osystem, o°glj)),
Destroy (oOfy),
Destroy(o°hVo))-
Здесь доступ системного объекта к перемещаемому объекту необходим для того, чтобы можно было скопировать информацию. В МБЛ подобные операции могут быть осуществлены только доверенным субъектом, роль которого в OOHRU отведена объекту системного класса.
3. Создание объекта o уровня секретности h.
Команда CreateObject[h](o°Ro) : k°Ro); o^ : k^y, osystem : ksystem)
Create(o(OhRo),k(OhBo)),
Create(o°hWo),kOhWo)),
Enter (write, osystem, ofR),
Enter (write, osystem, o
4. Удаление объекта o.
Команда DestroyObject[h](oORo) : kfRy o°hWo) : kfj)
Destroy (o°hRo)),
Destroy(ogJVo)).
При этом условие Белла [4] «вместе с папкой удаляются и содержащиеся в ней подпапки» можно реализовать цепочкой команд, удаляющих объекты, являющиеся потомками удаляемого, либо представив папку с вложенными подпапками средствами одного объекта. При создании объекта возможности доступов этого объекта к другим объектам, а также других объектов к этому объекту, совпадают с соответствующими возможностями класса этого объекта, то есть согласуются исключительно с *-свойством и никогда не изменяются.
Замечание 1. Доказанное утверждение справедливо не только для ds-свободных МБЛ, а вообще для всех, наследующих права доступа, то есть обладающих следующим свойством:
read E M[s,o]nfC(s) ^ fC(s') ^ read E M[s',o], read E M[s,o]nfH(o) ^ fH(o') ^ read E M[s,o'], write E M[s,o]hfC(s) ^ fC(s') ^ write E M[s',o], write E M[s,o]hfH(o) ^ fH(o) ^ write E M[s,o'].
Замечание 2. Если множество субъектов в системе не является известным заранее, утверждение теоремы остаётся верным с учётом небольшого изменения в доказательстве. А именно, вместо того, чтобы сопоставлять каждому субъекту решётку классов, будем пользоваться единой решёткой классов для всех субъектов. То есть вместо класса соответствовавшего субъекту s,
используем класс klead, единый для всех субъектов. Сопоставление каждому субъекту классов собственной решётки необходимо для ситуации, в которой один субъект может получить право на активизацию другого субъекта, однако, в МБЛ право execute применяется по отношению к объектам.
Замечание 3. При необходимости выделение индивидуальной иерархии классов для каждого объекта МБЛ также возможно. Например, если объект имеет достаточно сложную структуру, а не ограничивается единственным полем. В этом случае разбиение KOR U KOW на классы полностью аналогично тому, что было применено в доказательстве теоремы при реализации средствами OOHRU субъектов МБЛ.
Замечание 4. Модель MLS с точки зрения МБЛ является безопасной ds-свободной, поскольку каждое её состояние обладает *-свойством (в его упрощённой формулировке), и лишена дополнительных ограничений на доступ в виде матрицы доступа. А значит, утверждение теоремы 1 справедливо и для MLS.
Замечание 5. Доказательство теоремы 1 возможно провести и другим способом, без выделения отдельных классов, отвечающих за чтение и запись. Например, можно использовать конструкцию, в которой отсутствие права чтения интерпретируется как наличие права записи (с определёнными оговорками).
Теорема 2. Для любой безопасной МБЛ существует реализующая её модель OOHRU.
Доказательство. Доказательство этой теоремы в целом повторяет доказательство теоремы 1 за рядом отличий. Ограничимся только перечислением этих отличий.
Во-первых, иначе происходят разбиения классов:
K = K U KO U KS,
так что F : KO ^ H и F : KS ^ L.
KO = и K,
^ея
KS = и Kf,
leL
так что F(K) = h и F(Kf) = /,
K? = U k(M,
оео
Kf = U %,s),
ses
где O — множество объектов, а S — множество субъектов в модели Белла-ЛаПадулы.
Здесь k(1>s) , например, обозначает класс, находящийся в иерархии на уровне /, в котором может быть создан объект o(1>s) с двумя методами, реализующими функционал субъекта МБЛ s S по чтению и по записи соответственно. И такой объект существует в модели OOHRU тогда и только тогда, когда
соответствующий субъект в МБЛ находится на уровне безопасности l, т.е.
fc (s) = l ^ fs(s).
В свою очередь, k(h,o) обозначает класс, находящийся в иерархии на уровне h, в котором может быть создан объект o(h,o) с единственным полем, содержащим информацию объекта МБЛ o E O. И такой объект существует в модели OOHRU тогда и только тогда, когда соответствующий объект в МБЛ находится на уровне иерархии h, т.е. fH(o) = h.
Таким образом, для каждого объекта МБЛ строится одно семейство классов в OOHRU, параметризованное уровнями секретности, а не два (отдельно для чтения и записи), как в доказательстве теоремы 1.
Во-вторых, модель OOHRU не будет обладать иерархией: даже если l = F(k(its)) ^ F(k(m,s)) = m, из этого не следует, что k(i^) ^ k(m,s).
В-третьих, матрицы доступа методов этих объектов также индуцируются матрицей доступа субъекта s. Это означает, что если fc(s) = l, то
read E o(h,o).M[o(i>s),o(h,o).field] ^ read E M[s,o]nfO(o) ^ l, write E o(ho).M[o(is),o(h,o).field] ^ write E M[s,o]nfO(o) ^ l.
Наконец, список команд теперь имеет следующий вид:
1. Добавление права на чтение субъектом s уровня допуска l объекта o уровня секретности h.
Команда EnterRead[l,h](o(iyS) : k^y, o(h,o) : k(h,o)) Enter(read, o(l>s),o(h,o).field).
Такие команды существуют для всех l и h таких, что h не превосходит l, то есть для любого объекта o такого, что fH(o) = h, выполняется fO(o) ^ l.
2. Удаление права на чтение субъектом s уровня допуска l объекта o уровня секретности h.
Команда DeleteRead[l,h](o(its) : k^y o(h,o) : k(h,o)) Delete(read, o(is), o(ho).field).
3. Добавление права на запись субъектом s уровня допуска l в объект o уровня секретности h.
Команда EnterRead[l,h](o(is) : k(i,s), o(h,o) : k(h,o)) Enter (write, o(is), o(ho).field).
Такие команды существуют для всех l и h таких, что h не меньше l, то есть для любого объекта o такого, что fH(o) = h, выполняется fO(o) ^ l.
4. Удаление права на запись субъектом s уровня допуска l в объект o уровня секретности h.
Команда DeleteRead[l,h](o(its) : k^y o(h,o) : k(h,o)) Delete(write, o(i>s), o(h>o).field).
5. Присвоение субъекту s с текущим уровнем допуска l нового уровня допуска m.
Команда ChangeSubjectSecurityLevel\l,m,a}(o(is) : k(isy o(m,s) : k(m>s))
if a E o.M [o(i>s),o.field]
Create(o(m,s),k(m,s)),
Enter(a,o(m,s),o),
Destroy(o(M)).
Данная команда присутствует в системе только для значений /,m ^ /f(s). а — набор прав, которыми обладает объект o(1>s) на поля других объектов o. Мы должны сохранить этот набор при изменении уровня допуска субъекта s в МБЛ. Для каждого набора прав а существует своя команда, и при переносе объекта с набором прав, в точности совпадающим с а, в другой класс в OOHRU из множества команд выбирается соответствующая.
6. Присвоение объекту o с текущим уровнем секретности h нового уровня секретности g.
Команда ChangeObjectSecurityLeve^h, g, a](o(h,O) : k(h,O); o(g)O) : k(g)O); osystem :
ksystem)
i/a e o(h,o).M[s, o(h,o)./ie/d] Create(o(g;0),k(g;0)), Enter(read, osystem, o(h,O)), Enter (write, osystem, o(gjO)), Enter(a, s, o(g,O)) Destroy (o(h,o)).
Здесь а — это множество прав, которыми обладают объекты s на поле объекта o(h,O) . Мы должны сохранить этот набор при изменении уровня секретности объекта o в МБЛ.
7. Создание объекта o уровня секретности h. Команда CreateObject[h](o(M : k(M; osystem : ksystem) Create(o(fc>0),k(fc>0)),
Enter (write, osystem, o(h,O)).
8. Удаление объекта o.
Команда DestroyObject[h](o(h;O) : k(h,O)) Destroy (o(h,o)).
■
О безопасности МБЛ.
Важно отметить, что в обоих случаях мы построили дискреционную модель, безопасную с точки зрения МБЛ, однако, возможность проверки её безопасности с точки зрения дискреционных политик безопасности не установлена.
С другой стороны, Basic Security Theorem неоднократно подвергалась критике, в том числе и со стороны МакЛина [5], по ряду причин. Так, фактически Basic Security Theorem лишь утверждает выполнение определённого ряда свойств, но каким образом эти свойства влияют на фактическую безопасность системы, не ясно. Хуже того, Basic Security Theorem допускает деклассифи-кацию всех субъектов и объектов до самого низкого уровня секретности без нарушения определения безопасности, поэтому МакЛин предложил определять безопасность системы не с точки зрения состояний, а с точки зрения переходов между состояниями.
Таким образом, построенные нами модели OOHRU, реализующие безопасные модели Белла-ЛаПадулы, также отнести к безопасным относительно утечки права доступа было бы преждевременно.
Литература
1. Усов С.В. Неоднородные объектно-ориентированные модели с иерархией // Проблемы обработки и защиты информации. Книга 3. Модели разграничения доступа. Коллективная монография / Под общей редакцией С.В. Белима. Омск : ООО «Полиграфический центр КАН», 2013. С. 93-114.
2. Harrison M.A., Ruzzo W.L., Ulman J.D. Protection in Operating Systems // Communications of the ACM. 1975. P. 14-25.
3. Bell, David Elliott and LaPadula, Leonard J. Secure Computer System: Unified Exposition and Multics Interpretation. Technical report 2997, rev. 1. MITRE, 1996.
4. Bell, David Elliott. Looking Back at the Bell-LaPadula Model //21st Annual Computer Security Applications Conference. Tucson, Arizona, USA, 2005. P. 337-351.
5. McLean J. The Specification and Modeling of Computer Security // Computer. 1990. N. 23(1). P. 9-16.
ON THE RELATION BETWEEN THE OBJECT-ORIENTED DISCRETIONARY SECURITY MODEL AND THE SUBJECT-OBJECT MANDATORY MODEL
S.V. Usov
Ph.D. (Phys.-Math.), e-mail: [email protected] Omsk State University n.a. F.M. Dostoevskiy
Abstract. The article deals with object-oriented Harrison-Ruzzo-Ullman access control model and subject-object model with mandatory access control. It is shown that the Bell-LaPadula model and classic mandatory model can be implemented with object-oriented HRU model.
Keywords: access control, discretionary safety models, mandatory security models, HRU, Bell-LaPadula model.
Дата поступления в редакцию: 31.10.2016