Матричная модель харрисона доклад

Обновлено: 02.07.2024

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

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

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

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

    e n t e r
      d e l e t e
        c r e a t e o b j e c t
          c r e a t e s u b j e c t
            d e s t r o y s u b j e c t
              d e s t r o y o b j e c t

            Каждое состояние определяется отношением доступа, которое существует между сущностями системы в виде множеств субъектов, объектов и матрицы прав. Поскольку для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа для заданного начального состояния системы, должна существовать возможность определить множество состояний, в которых она сможет из него попасть. Это позволит задавать такие начальные условия, при которых система никогда не сможет попасть в нежелательное состояние с точки зрения безопасности. Следовательно, для построения системы с предсказуемым поведением, необходимо для задания начальных условий получить ответ на вопрос: сможет ли некоторый субъект S когда-либо приобрести права доступа R для некоторого объекта O . Исходя из изложенного критерия безопасности в модели Харрисона-Руззо-Ульмана для заданной системы начальное состояние Q 0 = ( S 0 , O 0 , M 0 ) =(S_,O_,M_)> является безопасным относительно права R , если не существует приминимая к Q o > последовательность команд, в результате которой право R будет занесено в ячейку матрицы M , в которой оно отсутствовало в состоянии Q 0 > .

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

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

            Разработанная в 1971 г. модель Харрисона-Руззо-Ульмана [16] формализует упоминавшееся ранее понятие матрицы доступа – таблицы, описывающей права доступа субъектов к объектам (рис. 2.3.1.1).

            Строки матрицы доступа соответствуют субъектам, существующим в системе, а столбцы – объектам. На пересечении строки и столбца указаны права доступа соответствующего субъекта к данному объекту: например, на рис. 2.3.1.1 субъект subj 3 обладает правами чтения и записи по отношению к объекту obj 3.

            Введём следующие обозначения:

            • S – множество возможных субъектов,
            • O – множество возможных объектов (напомним, что S ⊂ O);
            • R=1, …, rn> – конечное множество прав доступа
            • O×S × R - пространство состояний системы;
            • M – матрица прав доступа, описывающая текущие права доступа субъектов к объектам;
            • Q=(S, O, M) – текущее состояние системы;
            • M[s,o] - ячейка матрицы, содержащая набор прав доступа субъекта s ⊂ S к объекту о ⊂ О

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

            Здесь α - имя команды; xt - параметры команды, представляющие собой идентификаторы субъектов и объектов, орi,— элементарные операции.

            Элементарные операции op1. opn будут выполнены в том случае, если выполняются все без исключения условия из блока if … then.

            При описании элементарных операций мы будем полагать, что в результате выполнения операции система переходит из состояния Q=(S, О, М) в состояние Q’=(S’,0’,M’).

            ⊂ S,o ⊂ O) - удаление у субъекта s права г по отношению к объекту о. Изменения в состоянии системы:

            Приведём несколько примеров команд:

            1. Создание файла
              Пользователь p создаёт файл f и получает на него права владения, чтения и записи.
              command create_file (p, f)
              create object f,
              enter own into M[p, f],
              enter r into M[p, f],
              enter w into M[p, f],
              end
            2. Создание процесса.
              Процесс p создаёт процесс q и получает на него право чтения, записи и владения, передавая процессу q права записи и чтения по отношению к самому себе.
              command exec_process(p, q)
              create subject q,
              enter own into M[p, q],
              enter r into M[p, q],
              enter w into M[p, q],
              enter r into M[q, p], enter w into M[q, p],
              end
            3. Передача права чтения по отношению к файлу
              Право чтения на файл f передаётся владельцем p субъекту q.
              command grant_read(p, q, f)
              if own in M[p, f]
              then enter r into M[q, f],
              end

            Формальное описание системы в модели Харрисона-Руззо-Ульмана выглядит следующим образом. Система ∑ = (Q,R,C) состоит из следующих элементов:

            1. Конечный набор прав доступа R=1 . rn>.
            2. Конечный набор исходных субъектов S0=1 . sl>.
            3. Конечный набор исходных объектов О0=1, . оm>.
            4. Исходная матрица доступа М0.
            5. Конечный набор команд С = i(x1. xk)> .

            Поведение системы во времени рассматривается как последовательность состояний , каждое последующее состояние является результатом применения некоторой команды к предыдущему: Qn+i=Cn(Qn).

            Для заданной системы начальное состояние Q0=0, О0, М0> называется безопасным относительно права r, если не существует применимой к Q0 последовательности команд, в результате выполнения которой право r будет занесено в ячейку матрицы М, в которой оно отсутствовало в состоянии Qo.

            Другими словами это означает, что субъект никогда не получит право доступа г к объекту, если он не имел его изначально.

            Если же право г оказалось в ячейке матрицы М, в которой оно изначально отсутствовало, то говорят, что произошла утечка права r.

            Рассмотрим пример [17]. Пусть система допускает использование двух прав доступа: R=, где г - чтение, а w - запись, и пусть система описывается следующими командами:

            1. Создание субъекта
              command create (s, о)
              create subject о,
              enter r into M[s, о],
              enter w into M[s, o],
              end
              Команда разрешает создание нового субъекта с одновременным получением по отношению к нему прав доступа на чтение и на запись.
            2. Получение прав доступа
              command takex(s, о, р)
              if r in M[s, о] and
              х in М[о, р]

            Как видим, в результате выполнения шагов 1-5 субъект s обходным путём получает право доступа а по отношению к субъекту о - т.е. происходит утечка права а - а это значит, что исходное состояние не является безопасным.

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

            истема ∑ = (Q,R,C) называется монооперационной, если каждая команда at е С выполняет один примитивный оператор.

            Теорема . Существует алгоритм, который проверяет, является ли исходное состояние монооперационной системы безопасным для данного права а.

            Покажем, что число последовательностей команд системы, которое необходимо проверить, является ограниченным. В этом случае проверка безопасности исходного состояния системы сведётся к полному перебору всех последовательностей и проверке конечного состояния каждой из них на отсутствие утечки права а.

            Заметим, что команды delete и destroy можно не рассматривать, поскольку нас интересует наличие права а, а не его отсутствие. Аналогично, нет необходимости рассматривать более одного оператора create: система является монооперационной, и одна команда не может одновременно создать объект или субъект и модифицировать его права доступа, поскольку путём замены параметров можно ограничиться работой с последовательностями команд, которые оперируют над существующими субъектами и объектами. Единственная команда create будет необходима на случай, если в начальном состоянии в системе не было ни одного субъекта.

            Итак, пусть с1, с2, . сn — последовательность команд, в результате выполнения которой происходит утечка права а. Упростим эту последовательность команд следующим образом:

            1. Удалим все команды delete и destroy.
            2. Добавим в начало последовательности С1, C2 . Cn, —, с„ команду Sinit вида create subject.
            3. Проходя последовательность команд справа налево, последовательно удалим все команды вида create subject и заменим все ссылки на создаваемые с помощью этих команд субъекты ссылкой на Sinit.
            4. Аналогично удалим все команды вида create object, заменяя ссылки на создаваемые с помощью этих команд объекты ссылками на Sinit.
            5. Удалим все команды вида enter, вносящие право а в ячейку, которая уже содержит это право.

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

            Команды вида create object, destroy subject, destroy object и delete в последовательности отсутствуют. Команда create subject присутствует в единственном числе. Максимальное число команд вида enter равно |R|(|S0+1)(|О0|+1). Тем самым, общее число возможных команд равно R(S0 +1)(O0 +1) + 1 – а значит, количество последовательностей команд ограничено

            К сожалению, расширить полученный результат на произвольные системы невозможно.

            Теорема . Для систем общего вида задача определения того, является ли исходное состояние системы безопасным для данного права a, является вычислительно неразрешимой.

            Для доказательства этого утверждения достаточно свести задачу проверки безопасности системы к заведомо неразрешимой задаче остановки машины Тьюринга.

            Классическая модель Харриона-Руззо-Ульмана до сих пор широко используется при проведении формальной верификации корректности построения систем разграничения доступа в высоко защищённых автоматизированных системах. Развитие моделей дискреционного управления доступом [18, 19] заключается преимущественно в построении всевозможных модификаций модели Харрисона-Руззо-Ульмана, а также в поиске минимально возможных ограничений, которые можно наложить на описание системы, чтобы вопрос её безопасности был вычислительно разрешимым.

            2.3.2. Модель Белла-ЛаПадулы

            Данная модель была предложена в 1975 году [20] для формализации механизмов мандатного управления доступом. Мандатный принцип разграничения доступа, в свою очередь, ставил своей целью перенести на автоматизированные системы практику секретного документооборота, принятую в правительственных и военных структурах, когда все документы и допущенные к ним лица ассоциируются с иерархическими уровнями секретности.

            В модели Белла-ЛаПадулы по грифам секретности распределяются субъекты и объекты, действующие в системе, и при этом выполняются следующие правила:

            1. Простое правило безопасности (Simple Security, SS).
              Субъект с уровнем секретности x5 может читать информацию из объекта с уровнем секретности xo тогда и только тогда, когда x5 преобладает над xo.
            2. *-свойство (*-property).
              Субъект с уровнем секретности x5 может писать информацию в объект с уровнем секретности xo в том и только в том случае, когда xo преобладает над x5.

            Для первого правила существует мнемоническое обозначение No Read Up, а для второго – No Write Down.

            Диаграмма информационных потоков, соответствующая реализации модели Белла-ЛаПадулы в системе с двумя уровнями секретности, приведена на рис. 2.3.2.1.

            Перейдём к формальному описанию системы. Введём следующие обозначения:

            • S - множество субъектов;
            • О - множество объектов, S с О;
            • R= - множество прав доступа, г - доступ на чтение, w - доступ на запись;
            • L= - множество уровней секретности, U- Unclassified, SU -Sensitive but unclassified, S - Secret, TS - Top secret;
            • Λ = (L, ≤,•, Θ ) - решётка уровней секретности;
            • V - множество состояний системы, представляемое в виде набора упорядоченных пар (F, М), где:
              • F :S U O -> L - функция уровней секретности, ставящая в соответствие каждому объекту и субъекту в системе определённый уровень секретности;
              • М- матрица текущих прав доступа.

              становимся более подробно на решётке уровней секретности. Напомним, что решёткой Λ называется алгебраическая система вида (L, ≤,•, Θ ) , где:

              • ≤ - оператор, определяющий частичное нестрогое отношение порядка для уровней секретности;
              • • - оператор наименьшей верхней границы;
              • Θ - оператор набольшей нижней границы.

              Отношение ≤ обладает следующими свойствами:

              1. Рефлексивность:
                V a ∈ L : а ≤ а . С точки зрения уровней безопасности это означает, что разрешена передача информации между субъектами и объектами одного уровня безопасности.
              2. Антисимметричность:
                V а12 ∈ L: ((a1 ≤ а2) & (а2 ≤ a1))—>а21. Антисимметричность в нашем случае означает, что если информация может передаваться как от субъектов и объектов уровня А к субъектам и объектам уровня В, так и от субъектов и объектов уровня В к субъектам и объектам уровня А, то эти уровни эквивалентны.
              3. Транзитивность:
                V а 12,a3 ∈ L : ( (a 1 ≤ а 2 ) & (а 2 ≤ a3 ) ) -> а1 ≤ а3. Транзитивность означает, что если информации может передаваться от субъектов и объектов уровня А к субъектам и объектам уровня В, и от субъектов и объектов уровня В к субъектам и объектам уровня С, то она может передаваться от субъектов и объектов уровня A к субъектам и объектам уровня С.

              Операторы наименьшей верхней границы • и наибольшей нижней границы Θ определяются следующим образом:

              Нетрудно показать, что для каждой пары V а 12 ∈ L существует единственный элемент наименьшей верхней границы и единственный элемент наибольшей нижней границы.

              Заметим, что в качестве уровней безопасности совершенно не обязательно выбирать целые числа, в ряде случаев удобнее использовать более сложные структуры. За счёт этого, например, в пределах каждого уровня секретности можно реализовать категории секретности (см. рис. 2.3.2.2). В этом случае наличие допуска к той или иной категории информации может служить дополнительным механизмом безопасности, ограничивающим доступ к защищаемым субъектам или объектам.

              • Система I = ( ν 0,R,T)в модели Белла-ЛаПадулы состоит из следующих элементов:
              • ν 0 - начальное состояние системы; R - множество прав доступа;
              • Т : V х R —> V - функция перехода, которая в ходе выполнения запросов переводит систему из одного состояния в другое.

              Изменение состояний системы во времени происходит следующим образом: система, находящаяся в состоянии v е V, получает запрос на доступ гей и переходит в состояние ν* = Т( ν , r).

              Состояние νn называется достижимым в системе ∑ = ( ν 0 ,R,T), если существует последовательность <(r0, ν0). (rn-1, νn-1), (rn, ν n )>:T(ri, νi )= νi+1 V i=0,n-1 Начальное состояние ν 0 является достижимым по определению.

              Состояние системы (F, М) называется безопасным по чтению (или simple-безопасным), если для каждого субъекта, осуществляющего в этом состоянии доступ по чтению к объекту, уровень безопасности субъекта доминирует над уровнем безопасности объекта:

              V s ∈ S, V o ∈ О, r ∈ M[s, о] -> F(o) ≤ F(s).

              Состояние (F, М) называется безопасным по записи (или * - безопасным) в случае, если для каждого субъекта, осуществляющего в этом состоянии доступ по записи к объекту, уровень безопасности объекта доминирует над уровнем безопасности субъекта:

              V s ∈ S, V o ∈ О : w ∈ M[s,o] -> F(s) ≤ F(o).

              Состояние (F, М) называется безопасным, если оно безопасно по чтению и по записи.

              Наконец, система ∑ = ( ν 0 ,R,T) называется безопасной, если её начальное состояние ν 0 безопасно, и все состояния, достижимые из v0 путём применения конечной последовательности запросов из R, безопасны.

              Теорема (Основная теорема безопасности Белла-ЛаПадулы). Система ∑ = ( ν 0 ,R,T) безопасна тогда и только тогда, когда выполнены следующие условия:

              1. Начальное состояние ν 0 безопасно.
              2. Для любого состояния ν , достижимого из ν 0 путём применения конечной последовательности запросов из R, таких, что T( ν ,r) = ν* , ν =(F, М) и ν* =(F*, М*) , для V s ∈ S, V o ∈ О выполнены условия:
                1. Если r ∈ M*[s,o] и r ∉ M[s,o], то F*(o) ≤ F*(s).
                2. Если r ∈ M*[s,o] и F*(s) r ∈ M*[s,o]
                3. Если w ∈ M*[s,o] и w ∉ M[s,o], то F*(o) ≤ F*(s).
                4. Если w ∈ M*[s,o] и F*(s) ∈ M*[s,o]

                Доказательство: Пусть система ∑ = ( ν 0 ,R,T) безопасна. В этом случае начальное состояние Vo безопасно по определению. Предположим, что существует безопасное состояние ν *, достижимое из состояния ν : T( ν ,r) = ν* , и для данного перехода нарушено одно из условий 1-4. Легко заметить, что в случае, если нарушены условия 1 или 2, то состояние ν * будет небезопасным по чтению, а если нарушены условия 3 или 4 - небезопасным по записи. В обоих случаях мы получаем противоречие с тем, что состояние ν * является безопасным.

                Докажем достаточность утверждения. Система ∑ = ( ν 0 ,R,T) может быть небезопасной в двух случаях:

                1. В случае если начальное состояние ν 0 небезопасно. Однако данное утверждение противоречит условию теоремы.
                2. Если существует небезопасное состояние ν *, достижимое из безопасного состояния ν 0 путём применения конечного числа запросов из R. Это означает, что на каком-то промежуточном этапе произошёл переход Т( ν , r) = ν *, где ν - безопасное состояние, а ν * - небезопасное. Однако условия 1-4 делают данный переход невозможным.

                Отметим, что изложенная модель в силу своей простоты имеет целый ряд серьёзных недостатков. Например, никак не ограничивается вид функции перехода T – а это означает, что можно построить функцию, которая при попытке запроса на чтения к объекту более высокого уровня секретности до проверки всех правил будет понижать уровень секретности объекта. Другим принципиальным недостатком модели Белла-ЛаПадулы является потенциальная возможность организации скрытых каналов передачи информации. Тем самым, дальнейшее развитие моделей мандатного управления доступом было связано с поиском условий и ограничений, повышающих её безопасность.

                В настоящее время модель Белла-ЛаПадулы и другие модели мандатного управления доступом [18, 19] широко используются при построении и верификации автоматизированных систем, преимущественно предназначенных для работы с информацией, составляющей государственную тайну.

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

                Это частный случай реализации модели машины состояний. Состояния безопасности системы представлены в виде таблицы, содержащей по одной строке для каждого субъекта системы и по одной колонке для каждого субъекта и объекта (таблица 1).

                Каждое пересечение в массиве определяет режим доступа данного субъекта к каждому объекту или другому субъекту системы.


                • О - множество объектов системы;

                • S - множество субъектов системы (SczO);

                • R - множество видов прав доступа субъектов на объекты, например права на чтение (read), на запись (write), владения (own);

                • М - матрица доступов, строки которой соответствуют субъектам, а столбцы соответствуют объектам. M[s, о]

                • qR - права доступа субъекта 5на объект о.



                • R— право чтения;

                • W — право записи;

                • D — право удаления.

                Модель Белла — Лападулы имеет следующие правила организации информационного потока.

                1. Простое свойство безопасности (The simple security property) — процесс, запущенный на уровне безопасности k, может проводить операцию чтения только в отношении объектов своего или более низкого уровня. К примеру, генерал может читать документы лейтенанта, но лейтенант не может читать генеральские документы.


                Рисунок 1 Многоуровневая модель безопасности Белла — Лападулы

                Модель Белла — Лападулы относится к организационной структуре, но в конечном счете она должна быть реализована операционной системой. Один из способов реализации заключается в назначении каждому пользователю уровня безопасности, который должен храниться вместе с другими относящимися к пользователю данными, например UID и GID. После входа в систему пользовательская оболочка приобретет пользовательский уровень безопасности, который будет унаследован всеми ее дочерними процессами. Если процесс, выполняющийся на уровне безопасности k, попытается открыть файл или другой объект, уровень безопасности которого выше k, то операционная система должна отклонить попытку открытия файла. По аналогии с этим должны отклоняться и все попытки открыть для записи любой объект, уровень безопасности которого ниже, чем k.

                Ролевая модель безопасности появилась как результат развития дискреционной модели. Однако она обладает новыми по отношению к исходной модели свойствами: управление доступом в ней осуществляется как на основе определения нрав доступа для ролей, гак и путем сопоставления ролей пользователям и установки правил, регламентирующих использование ролей во время сеансов.Ролевая модель безопасности появилась как результат развития дискреционной модели. Однако она обладает новыми по отношению к исходной модели свойствами: управление доступом в ней осуществляется как на основе определения нрав доступа для ролей, гак и путем сопоставления ролей пользователям и установки правил, регламентирующих использование ролей во время сеансов.

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

                - для каждой роли указывается набор полномочий (разрешений на доступ к различным объектам системы);

                - каждому пользователю сопоставляется список доступных ему

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

                U — множество пользователей;

                R — множество ролей;

                Р — множество полномочий (разрешений) на доступ к объектам системы;

                Ролям сопоставляются полномочия, а пользователям — роли. Это задается путем определения следующих множеств:

                PAczPxR — определяет множество полномочий, установленных ролям (для наглядности условно может быть представлено в виде матрицы доступа);

                UA^U х /? — устанавливает соответствие между пользователями и доступными им ролями.

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

                user: S ->U — для каждого сеанса s eS эта функция определяет пользователя, который осуществляет этот сеанс работы с системой: user(s) = и I и е I);

                roles — для каждого сеанса s е S данная функция определяет подмножество ролей, которые могут быть одновременно доступны пользователю в ходе этого сеанса: roles(s) = I (user(s r<) е UA>;

                В качестве критерия безопасности ролевой модели используется следующее правило:

                система считается безопасной, если любой пользователь системы, работающий в сеансе s е S, может осуществлять действия, требующие полномочия р е Р, только в том случае, если р е permissions^).

                Существует несколько разновидностей ролевых моделей управления доступом, различающихся видом функций user, roles и permissions, а также ограничениями, накладываемыми на множества РАи UA.

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

                Могут быть определены взаимоисключающие роли (т. е. такие роли, которые не могут быть одновременно назначены одному пользователю). Также может вводиться ограничение на одновременное использование ролей в рамках одной сессии, количественные ограничения при назначении ролей и полномочий, может производиться группировка ролей и полномочий.

                - связь (передача данных);

                - криптографическая поддержка (криптографическая защита);

                - защита данных пользователя;

                - идентификация и аутентификация;

                - доступ к объекту оценки;

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

                Система обработки информации представляется в виде совокупности активных субъектов S, пассивных объектов O и конечного множества прав доступа R=1, …, rn> (рисунок 8.1.1). Субъекты осуществляют доступ к информации, объекты содержат информацию, права доступа означают полномочия на выполнение соответствующих действий (чтение, запись, выполнение). Еще одним моментом является то, что все субъекты являются одновременно и объектами, это позволяет представлять права доступа между субъектами .

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

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

                Будем описывать команды в следующем виде:

                Рисунок 8.1.1 — Дискреционная модель безопасности Харрисона-Руззо-Ульмана

                Здесь — имя команды; — параметры команды, являющиеся идентификаторами субъектов и объектов; si и oi — индексы субъектов и объектов; opi — элементарные операции, описанные ниже.

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

                Классическая модель допускает только следующие элементарные операции:

                · enter r into M[s,o] — добавление субъекту s права г для объекта о;

                · delete r from M[s,o] — удаление у субъекта а права г для объекта о;

                · create subject s — создание нового субъекта s;

                · create object о — создание нового объекта о;

                · destroy subject s — удаление существующего субъекта s;

                · destroy object о — удаление существующего объекта о.

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

                enter r into M[s, о] (где s Î S, о Î O )

                delete r from M[s, о] (где s Î S, о Î O )

                create subject s (где s Ï S)

                destroy subject s (где s Î S)

                create object o (где o Ï O)

                destroy object o (где o Î O)

                Формальное описание системы состоит из следующих элементов:

                · конечный набор прав доступа R=1,…, rn>;

                · исходная матрица доступа, содержащая права доступа субъектов к объектам — М0;

                · конечный набор команд C=i(x1. xk)>, каждая из которых состоит из условий выполнения и интерпретации в терминах вышеперечисленных элементарных операций.

                Поведение системы во времени моделируется с помощью последовательности состояний i>, в которой каждое последующее состояние является результатом применения некоторой команды из множества C к предыдущему Qn+1= Cn(Qn). Таким образом, для заданного начального состояния только от условий команд из С и составляющих их операций зависит, сможет ли система попасть в то или иное состояние, или нет. Каждое состояние определяет отношения доступа, которые существуют между сущностями системы в виде множества субъектов, объектов и матрицы прав. Поскольку для обеспечения безопасности необходимо наложить запрет на некоторые отношения доступа, для заданного начального состояния системы должна существовать возможность определить множество состояний, в которые она сможет из него попасть. Это позволит задавать такие начальные условия (интерпретацию команд С, множество объектов О0, субъектов S0 и матрицу доступа M0), при которых система никогда не сможет попасть в состояния, нежелательные с точки зрения безопасности.




                Система обработки информации представляется в виде совокупности активных субъектов S, пассивных объектов O и конечного множества прав доступа R=1, …, rn> (рисунок 8.1.1). Субъекты осуществляют доступ к информации, объекты содержат информацию, права доступа означают полномочия на выполнение соответствующих действий (чтение, запись, выполнение). Еще одним моментом является то, что все субъекты являются одновременно и объектами, это позволяет представлять права доступа между субъектами .

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

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

                Будем описывать команды в следующем виде:

                Рисунок 8.1.1 — Дискреционная модель безопасности Харрисона-Руззо-Ульмана

                Здесь — имя команды; — параметры команды, являющиеся идентификаторами субъектов и объектов; si и oi — индексы субъектов и объектов; opi — элементарные операции, описанные ниже.

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

                Классическая модель допускает только следующие элементарные операции:

                · enter r into M[s,o] — добавление субъекту s права г для объекта о;

                · delete r from M[s,o] — удаление у субъекта а права г для объекта о;

                · create subject s — создание нового субъекта s;

                · create object о — создание нового объекта о;

                · destroy subject s — удаление существующего субъекта s;

                · destroy object о — удаление существующего объекта о.

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

                Модель Харрисона–Руззо–Ульмана (HRU) разработана и впервые предложена в 1971 г., а в 1976 г. появилось ее формальное описание. Она используется для анализа системы защиты, реализующей дискреционную политику безопасности, и ее основного элемента – матрицы доступов. При этом система защиты представляется конечным автоматом, функционирующим согласно определенным правилам перехода.

                Обозначим: O – множество объектов системы; S – множество субъектов системы (S≤ O); R – множество прав доступа субъектов к объектам, например права на чтение (read), на запись (write), владения (own); M – матрица доступа, строки которой соответствуют субъектам, а столбцы – объектам; M[s, о] ≤ R – права доступа субъекта s к объекту о. Отдельный автомат, построенный согласно положениям модели HRU, будем называть системой. Функционирование системы рассматривается только с точки зрения изменений в матрице доступа. Возможные изменения определяются шестью примитивными операторами:

                В результате выполнения примитивного оператора а осуществляется переход системы из состояния Q = (S, О, M) в новое состояние Q ' = (S ', O ', M ') (табл. 5.2). Данный переход обозначим через Q ├ α Q '.

                Таблица 1Таблица переходов из состояния состояние модели HRU


                Из примитивных операторов могут составляться команды. Каждая команда состоит из двух частей: условия, при котором выполняется команда, и последовательности примитивных операторов.

                Модель системы безопасности Бэлла-Лападула (Пример мандатного разграничения доступа).

                Классическая модель Белла–Лападула (БЛ) построена для анализа систем защиты, реализующих мандатное (полномочное) разграничение доступа. Модель БЛ была предложена в 1975 г.Пусть определены конечные множества: S – множество субъектов системы (например, пользователи системы и программы); О – множество объектов системы (например, все системные файлы); R = (read, write, append, execute) множество видов доступа субъектов из S к объектам из О, где read – доступ на чтение, write – на запись, append – на запись в конец объекта, execute – на выполнение.


                В = b S × O × R> – множество возможных множеств текущих доступов в системе;


                М = sо М – матрица разрешенных доступов, где Мso R – разрешенный доступ

                субъекта s к объекту о;

                L – множество уровней секретности, например L = U, С, S, TS>, где U

                Н – текущий уровень иерархии объектов;

                V = В × М × F × Н – множество состояний системы;

                Q – множество запросов системе;

                D – множество решений по запросам, например уеs, по, error>;

                W Q × D × V × V – множество действий системы, где четверка (q, d, v2, v1) W оз-

                начает, что система по запросу q с ответом d перешла из состояния v1 в состояние v2;

                No – множество значений времени No = 0, 1, 2, . >;

                Х – множество функций x: NoQ, задающих все возможные последовательности запросов к системе;

                Z – множество функций z: NoV, задающих все возможные последовательности состояний системы.

                Безопасность системы определяется с помощью трех свойств:

                ss – свойства простой безопасности (simple security);

                ds – свойства дискретной безопасности (discretionary security).

                Оперируя этими свойствами и их сочетаниями возможно построение защиты систе-

                мы любой сложности.

                Читайте также: