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

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
Нет описания правки
Строка 4: Строка 4:


Система обработки предоставляется в виде совокупности активных сущностей [[../Основные понятия и определения#Субъект доступа| субъектов]]<math>S_i</math>, формирующих множество субъектов <math>S</math>, которые
Система обработки предоставляется в виде совокупности активных сущностей [[../Основные понятия и определения#Субъект доступа| субъектов]]<math>S_i</math>, формирующих множество субъектов <math>S</math>, которые
осуществляют доступ к пользователям пассивных сущностей объектов <math>O_i</math>, формирующих множество [[../Основные понятия и определения#Объект доступа|объектов]] <math>O</math>, содержащих [[../Основные понятия и определения#Защищаемая информация| защищаемую информацию]], и конечного множества [[../Основные понятия и определения#Право доступа к информации| прав доступа]] <math>R</math>, характеризующего полномочия на выполнение соответствующих действий до того, что бы включить в область действия модели отношения между субъектами. Принято считать, что все субъекты одновременно являются и объектами.
осуществляют доступ к пользователям пассивных сущностей объектов <math>O_i</math>, формирующих множество [[../Основные понятия и определения#Объект доступа|объектов]] <math>O</math>, содержащих [[../Основные понятия и определения#Защищаемая информация| защищаемую информацию]], и конечного множества [[../Основные понятия и определения#Право доступа к информации| прав доступа]] <math>R</math>, характеризующего полномочия на выполнение соответствующих действий до того, что бы включить в область действия модели отношения между [[../Основные понятия и определения#Субъект доступа| субъектами]]. Принято считать, что все [[../Основные понятия и определения#Субъект доступа| субъекты]] одновременно являются и объектами.


== Пространство состояний системы ==
== Пространство состояний системы ==


Эволюция системы в модели представляет собой траектории в пространстве состояний. Пространство состояний системы образуется в декартовом произведении множеств, составляющих ее [[../Основные понятия и определения#Субъект доступа| субъектов]], [[../Основные понятия и определения#Объект доступа| объектов]] и [[../Основные понятия и определения#Право доступа к информации| прав доступа]]. Текущее состояние <math>Q</math> - множества в этом пространстве определяется тройкой, состоящей из множества субъектов <math>S</math>, объектов <math>O</math> и матрицы прав доступа <math>A</math>, описывающая текущие права доступа субъектов <math>S</math> к объектам <math>O</math>. Строки матрицы составляют субъекты <math>S</math>, а столбцы - объекты <math>O</math>.
Эволюция системы в модели представляет собой траектории в пространстве состояний. Пространство состояний системы образуется в декартовом произведении множеств, составляющих ее [[../Основные понятия и определения#Субъект доступа| субъектов]], [[../Основные понятия и определения#Объект доступа| объектов]] и [[../Основные понятия и определения#Право доступа к информации| прав доступа]]. Текущее состояние <math>Q</math> - множества в этом пространстве определяется тройкой, состоящей из множества [[../Основные понятия и определения#Субъект доступа| субъектов]] <math>S</math>, объектов <math>O</math> и матрицы прав доступа <math>A</math>, описывающая текущие права доступа [[../Основные понятия и определения#Субъект доступа| субъектов]] <math>S</math> к объектам <math>O</math>. Строки матрицы составляют [[../Основные понятия и определения#Субъект доступа| субъекты]] <math>S</math>, а столбцы - объекты <math>O</math>.


Любая ячейка матрицы <math>M</math> содержит набор прав суъекта <math>S</math> к объекту <math>O</math>, принадлежащий множеству прав доступа <math>R</math>.
Любая ячейка матрицы <math>M</math> содержит набор прав [[../Основные понятия и определения#Субъект доступа| субъекта]] <math>S</math> к объекту <math>O</math>, принадлежащий множеству прав доступа <math>R</math>.


Поведение системы во времени моделируется переходами между различными состояниями. Переход осуществляется путем внесения изменений в матрицу <math>M</math> с помощью команд вида:
Поведение системы во времени моделируется переходами между различными состояниями. Переход осуществляется путем внесения изменений в матрицу <math>M</math> с помощью команд вида:
Строка 22: Строка 22:
где:
где:
* <math>\alpha</math> - имя команды;
* <math>\alpha</math> - имя команды;
* <math>x_i</math> - параметры команд,. являющиеся идентификаторами субъектов и объектов;
* <math>x_i</math> - параметры команд,. являющиеся идентификаторами [[../Основные понятия и определения#Субъект доступа| субъектов]] и объектов;
* <math>s_i</math> и <math>o_i</math> - индексы субъектов и объектов;
* <math>s_i</math> и <math>o_i</math> - индексы [[../Основные понятия и определения#Субъект доступа| субъектов]] и объектов;
* <math>op_i</math> - элементарная операция.
* <math>op_i</math> - элементарная операция.


Строка 78: Строка 78:
Поведение системы во времени моделируется с помощью последовательности состояний <math>Q_i</math>, в которой каждое последующее состояние является результатом применения некоторой команды из множества <math>C</math> к предыдущему состоянию:
Поведение системы во времени моделируется с помощью последовательности состояний <math>Q_i</math>, в которой каждое последующее состояние является результатом применения некоторой команды из множества <math>C</math> к предыдущему состоянию:
<center><math>Q_{n+1}=C(Q_n)</math></center>
<center><math>Q_{n+1}=C(Q_n)</math></center>
Каждое состояние определяется отношением доступа, которое существует между сущностями системы в виде множеств субъектов, объектов и матрицы прав. Поскольку для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа для заданного начального состояния системы, должна существовать возможность определить множество состояний, в которых она сможет из него попасть. Это позволит задавать такие начальные условия, при которых система никогда не сможет попасть в нежелательное состояние с точки зрения безопасности. Следовательно, для построения системы с предсказуемым поведением, необходимо для задания начальных условий получить ответ на вопрос: сможет ли некоторый субъект <math>S</math> когда-либо приобрести права доступа <math>R</math> для некоторого объекта <math>O</math>. Исходя из изложенного критерия безопасности в модели Харрисона-Руззо-Ульмана для заданной системы начальное состояние
Каждое состояние определяется отношением доступа, которое существует между сущностями системы в виде множеств [[../Основные понятия и определения#Субъект доступа| субъектов]], объектов и матрицы прав. Поскольку для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа для заданного начального состояния системы, должна существовать возможность определить множество состояний, в которых она сможет из него попасть. Это позволит задавать такие начальные условия, при которых система никогда не сможет попасть в нежелательное состояние с точки зрения безопасности. Следовательно, для построения системы с предсказуемым поведением, необходимо для задания начальных условий получить ответ на вопрос: сможет ли некоторый [[../Основные понятия и определения#Субъект доступа| субъект]] <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>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>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>Q_0</math> и общего права <math>R</math> решить является ли данная конфигурация безопасной. Для того, чтобы можно было доказать сформулированный критерий модель должна иметь ряд ограничений. Задача является разрешимой в одном из следующих случаев:
# Команда <math>\alpha_i</math> является монооперационной, то есть состоит не более чем из одной операции.
# Команда <math>\alpha_i</math> является монооперационной, то есть состоит не более чем из одной операции.
Строка 89: Строка 89:
Эти условия существенно ограничивают сферу применения модели, поскольку практически не существует систем, в которых не происходит создание или удаление сущностей.
Эти условия существенно ограничивают сферу применения модели, поскольку практически не существует систем, в которых не происходит создание или удаление сущностей.


Кроме того, все дискреционные модели уязвимы к атакам типа троянского коня, поскольку в модели вписан контроль операций доступа субъектов к объектам, но не поток между объектами.
Кроме того, все дискреционные модели уязвимы к атакам типа троянского коня, поскольку в модели вписан контроль операций доступа [[../Основные понятия и определения#Субъект доступа| субъектов]] к объектам, но не поток между объектами.


Основные преимущества:
Основные преимущества:

Версия от 19:23, 13 июня 2013

Модель Харрисона-Руззо-Ульмана является классической дискреционной моделью, реализует произвольное управление доступом субъектов к объектам и контроль за распределение прав доступа в рамках этой модели.

Субъектно-объектный взгляд

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

Пространство состояний системы

Эволюция системы в модели представляет собой траектории в пространстве состояний. Пространство состояний системы образуется в декартовом произведении множеств, составляющих ее субъектов, объектов и прав доступа. Текущее состояние - множества в этом пространстве определяется тройкой, состоящей из множества субъектов , объектов и матрицы прав доступа , описывающая текущие права доступа субъектов к объектам . Строки матрицы составляют субъекты , а столбцы - объекты .

Любая ячейка матрицы содержит набор прав субъекта к объекту , принадлежащий множеству прав доступа .

Поведение системы во времени моделируется переходами между различными состояниями. Переход осуществляется путем внесения изменений в матрицу с помощью команд вида:

    
       
       
       ...
       
   
       

где:

  • - имя команды;
  • - параметры команд,. являющиеся идентификаторами субъектов и объектов;
  • и - индексы субъектов и объектов;
  • - элементарная операция.

Элементарная операция, составляющая команду, выполняется только в том случае, если все условия, означающие присутствие указанных прав доступа в ячейках матрицы являются истинными.

Элементарные операции

В классической модели допустимы только 6 элементарных операций:

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

   
       
       
        если 
       
   
       
       
        если 
       
   
       
       
        для 
        для 
   
       
       
        для 
        для 
        для 
   
       
       
        для 
   
       
       
        для 

Поведение системы во времени моделируется с помощью последовательности состояний , в которой каждое последующее состояние является результатом применения некоторой команды из множества к предыдущему состоянию:

Каждое состояние определяется отношением доступа, которое существует между сущностями системы в виде множеств субъектов, объектов и матрицы прав. Поскольку для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа для заданного начального состояния системы, должна существовать возможность определить множество состояний, в которых она сможет из него попасть. Это позволит задавать такие начальные условия, при которых система никогда не сможет попасть в нежелательное состояние с точки зрения безопасности. Следовательно, для построения системы с предсказуемым поведением, необходимо для задания начальных условий получить ответ на вопрос: сможет ли некоторый субъект когда-либо приобрести права доступа для некоторого объекта . Исходя из изложенного критерия безопасности в модели Харрисона-Руззо-Ульмана для заданной системы начальное состояние является безопасным относительно права , если существует приминимая к последовательность команд, в результате которой право будет занесено в ячейку матрицы , в которой оно отсутствовало в состоянии .

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

  1. Команда является монооперационной, то есть состоит не более чем из одной операции.
  2. Команда является одноусловной или монотонной, то есть содержит не более одного условия и не содержит операций и .
  3. Команда не содержит операции .

Эти условия существенно ограничивают сферу применения модели, поскольку практически не существует систем, в которых не происходит создание или удаление сущностей.

Кроме того, все дискреционные модели уязвимы к атакам типа троянского коня, поскольку в модели вписан контроль операций доступа субъектов к объектам, но не поток между объектами.

Основные преимущества:

  • простота;
  • наглядность;
  • возможность формального доказательства.

Недостатки:

  • очень трудно администрировать.