Курс лекций Защита Информации/Модель Харрисона-Рузза-Ульмана: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 74:
<math>s'=s</math>
<math>M'[x_s,x_o]=M[x_s, x_o]</math> для <math>(x_s, x_o) \in s' \times o'</math>
 
Поведение системы во времени моделируется с помощью последовательности состояний <math>Q_i</math>, в которой каждое последующеесостояние является результатом применения некоторой команды из множества <math>C</math> к предыдущему состоянию:
<center><math>Q_{n+1}=C(Q_n)</math></center>
Каждое состояние определяется отношщением доступа, которое существует между сущностями системы в виде множеств субектов, объектов и матрицы прав. Поскольку для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа для заданного начального состояния системы, должна существовать возможность определить множество состояний, в которых она сможет из него попасть. Это позволит задавать такие начальные условия, при которых система никогда не сможет попасть в нежелательное состояние с точки зрения безопасности. Следовательно, для построения системы с предсказуемым поведением, необходимых для заания начальных условий получить ответ на вопрос: сможет ли некоторый субъект <math>S</math> когда-либо приобрести права доступа <math>R</math> для некоторого объекта <math>O</math>. Исходя из изложенного критерия безопасности в модели Харрисона-Руззо-Ульмана для заданной системы начальное состояние
<math>Q_0=(S_0,O_0,M_0)</math> является безопасным относительно права <math>R</math>, если существует приминимая к <math>Q_o</math> последовательность команд, в результате которой право <math>R</math> будет занесено в ячейку матрицы <math>M</math>, в которой оно отсутствовало в состоянии <math>Q_0</math>.
 
Смысл данного критерия состоит в том, что для безопасной конфигурации системы субъект <math>S</math> никогда не получит права доступа <math>R</math> к объекту <math>O</math>, если он не имел его изначально. Запрет внесения права <math>R</math> в ячейку матрицы не является решением задачу, в силу того, что удаление субъекта или объекта приводит к уничтожению всех прав в соответствующей строке или столбце матрицы, но не влечет за собой уничтожение самого столбца или строки и сокращения размеров матрицы. Следовательно, если в какой-либо ячейке в начальном состоянии существовало право <math>R</math> и после удаления субъекта или объекта, к которому относилось это право, ячейка будет очищена, но впоследствии в результате создания субъекта или объекта появиться вновь и в эту ячейку с помощью команды <math>enter</math> снова будет занесено право <math>R</math>, то это не будет означать нарушение безопасности.
Доказано, что в общем случае не существует алгоритма, который может для любой системы, ее начального состояния <math>Q_0</math> и общего права <math>R</math> решить является ли данная конфигурация безопасной. Для того, чтобы можно было доказать сформулированный критерий модель должна иметь ряд ограничений. Задача является разрешимой в одном из следующих случаев:
# Команда <math>\alpha_i</math> является монооперационной, то есть состоит не более чем из одной операции.
# Команда <math>\alpha_i</math> является одноусловной или монотонной, то есть содержит не более одного условия и не содержит операций <math>destroy</math> и <math>delete</math>.
# Команда <math>\alpha_i</math> не содержит операции <math>create</math>.
 
Эти условия существенно ограничивают сферу применения модели, поскольку практически не существует систем, в которых не происходит создание или удаление сущностей.
 
Кроме того, все дискреционные модели уязвимы к атакам типа троянского коня, поскольку в модели вписан контроль операций доступа субъектов к объектам, но не поток между объектами.
 
Основные преимущества:
* простота;
* наглядность;
* возможность формального доказательства.
 
Недостатки:
* очень трудно администрировать.