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

Материал из testwiki
Перейти к навигации Перейти к поиску

{{../Текст с двух сторон|←[[../Язык описания политики безопасности|Язык описания политики безопасности]]|[[../Модель Белла-ЛаПадулы|Модель Белла-ЛаПадулы]]→}} Модель Харрисона-Руззо-Ульмана является классической дискреционной моделью, реализует произвольное управление доступом [[../Основные понятия и определения#Субъект доступа| субъектов]] к [[../Основные понятия и определения#Объект доступа| объектам]] и контроль за распределение [[../Основные понятия и определения#Право доступа к информации| прав доступа]] в рамках этой модели.

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

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

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

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

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

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

   command α(x1,...,xn)
       ifr1inM[xs1,xo1]
       ifr2inM[xs2,xo2]
       ...
       ifrminM[xsm,xo2m]
   then
       op1,op2,...,opn

где:

  • α - имя команды;
  • xi - параметры команд,. являющиеся идентификаторами [[../Основные понятия и определения#Субъект доступа| субъектов]] и [[../Основные понятия и определения#Объект доступа| объектов]];
  • si и oi - индексы [[../Основные понятия и определения#Субъект доступа| субъектов]] и [[../Основные понятия и определения#Объект доступа| объектов]];
  • opi - элементарная операция.

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

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

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

  1. enterrintoM[s,o]
  2. deleterfromM[s,o]
  3. createsubjects
  4. createobjecto
  5. destroysubjects
  6. destroyobjecto

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

  • enter
   enterrintoM[s,o](sS,oO)
       o=o
       s=s
       M[xs,xo]=M[xs,xo] если (xs,xo)(s,o)
       M[s,o]=M[s,o]{r}
  • delete
   deleterfromM[s,o](sS,oO)
       o=o
       s=s
       M[xs,xo]=M[xs,xo] если (xs,xo)(s,o)
       M[s,o]=M[s,o]{r}
  • createobject
   createobjecto(oO)
       o=o{o}
       s=s
       M[xs,xo]=M[xs,xo] для (xs,xo)s×o
       M[xs,o]= для xsS
  • createsubject
   createsubjects(sS)
       o=o{o}
       s=s{s}
       M[xs,xo]=M[xs,xo] для (xs,xo)s×o
       M[xs,s]= для xsS
       M[s,xo]= для xoO
  • destroysubject
   destroysubjects(sS)
       o=o{o}
       s=s{s}
       M[xs,xo]=M[xs,xo] для (xs,xo)s×o
  • destroyobject
   destroyobjecto(oOS)
       o=o{o}
       s=s
       M[xs,xo]=M[xs,xo] для (xs,xo)s×o

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

Qn+1=C(Qn)

Каждое состояние определяется отношением доступа, которое существует между сущностями системы в виде множеств [[../Основные понятия и определения#Субъект доступа| субъектов]], [[../Основные понятия и определения#Объект доступа| объектов]] и матрицы прав. Поскольку для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа для заданного начального состояния системы, должна существовать возможность определить множество состояний, в которых она сможет из него попасть. Это позволит задавать такие начальные условия, при которых система никогда не сможет попасть в нежелательное состояние с точки зрения безопасности. Следовательно, для построения системы с предсказуемым поведением, необходимо для задания начальных условий получить ответ на вопрос: сможет ли некоторый [[../Основные понятия и определения#Субъект доступа| субъект]] S когда-либо приобрести права доступа R для некоторого [[../Основные понятия и определения#Объект доступа| объекта]] O. Исходя из изложенного критерия безопасности в модели Харрисона-Руззо-Ульмана для заданной системы начальное состояние Q0=(S0,O0,M0) является безопасным относительно права R, если не существует приминимая к Qo последовательность команд, в результате которой право R будет занесено в ячейку матрицы M, в которой оно отсутствовало в состоянии Q0.

Смысл данного критерия состоит в том, что для безопасной конфигурации системы [[../Основные понятия и определения#Субъект доступа| субъект]] S никогда не получит права доступа R к [[../Основные понятия и определения#Объект доступа| объекту]] O, если он не имел его изначально. Запрет внесения права R в ячейку матрицы не является решением задачи, в силу того, что удаление [[../Основные понятия и определения#Субъект доступа| субъекта]] или [[../Основные понятия и определения#Объект доступа| объекта]] приводит к уничтожению всех прав в соответствующей строке или столбце матрицы, но не влечет за собой уничтожение самого столбца или строки и сокращения размеров матрицы. Следовательно, если в какой-либо ячейке в начальном состоянии существовало право R и после удаления [[../Основные понятия и определения#Субъект доступа| субъекта]] или [[../Основные понятия и определения#Объект доступа| объекта]], к которому относилось это право, ячейка будет очищена, но впоследствии в результате создания [[../Основные понятия и определения#Субъект доступа| субъекта]] или [[../Основные понятия и определения#Объект доступа| объекта]] появиться вновь и в эту ячейку с помощью команды enter снова будет занесено право R, то это не будет означать нарушение безопасности. Доказано, что в общем случае не существует алгоритма, который может для любой системы, ее начального состояния Q0 и общего права R решить является ли данная конфигурация безопасной. Для того, чтобы можно было доказать сформулированный критерий модель должна иметь ряд ограничений. Задача является разрешимой в одном из следующих случаев:

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

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

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

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

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

Недостатки:

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

{{../Текст с двух сторон|←[[../Язык описания политики безопасности|Язык описания политики безопасности]]|[[../Модель Белла-ЛаПадулы|Модель Белла-ЛаПадулы]]→}}

Шаблон:BookCat