3. Формальные политики безопасности
3.1 Понятие формальной политики безопасности
Рассматривая вопросы безопасности информации в компьютерных системах можно говорить о наличии некоторых «желательных» состояний данных систем. Эти желательные состояния (описанные в терминах модели собственно компьютерной системы, например, в терминах субъектно-объектной модели) описывают «защищенность» системы. Понятие
«защищенности» принципиально не отличается от любых других свойств технической системы, например, «надежной работы», и является для системы внешним, априорно заданным. Особенностью понятия «защищенность» является его тесная связь с понятиями
«злоумышленник» (как обозначение внешней причины для вывода системы из состояния
40
«защищенности») или «угроза» (понятие, обезличивающее причину вывода системы из защищенного состояния из-за действий злоумышленника).
При рассмотрении понятия «злоумышленник» практически всегда выделяется объект его воздействия - часть системы, связанная с теми или иными действиями злоумышленника
(«объект атаки»). Следовательно, можно выделить три компоненты, связанные с нарушением безопасности системы:
1. «злоумышленник» - внешний по отношению к системе источник нарушения свойства «безопасность»;
2. «объект атаки» - часть, принадлежащая системе, на которую злоумышленник производит воздействие;
3. «канал воздействия» - среда переноса злоумышленного воздействия.
Интегральной характеристикой, описывающей свойства защищаемой системы, является политика безопасности - качественное (или качественно-количественное)
описание свойств защищенности, выраженное в терминах, описывающих систему. Описание политики безопасности может включать или учитывать свойства злоумышленника и объекта атаки.
Описание политики безопасности включает:
1. Множество возможных операций над объектами.
2.Для каждой пары «субъект-объект» (Si,0j) назначение множества разрешенных операций, являющегося подмножеством всего множества возможных операций. Операции связаны обычно с целевой функций защищаемой системы (т.е. с категорией, описывающей назначение системы и решаемые задачи), например, операциями «создание объекта»,
«удаление объекта», «перенос информации от произвольного объекта к предопределенному - чтение» и т. д.
Можно сформулировать две аксиомы защищенных компьютерных систем (АС):
Аксиома 1. В защищенной АС всегда присутствует активная компонента (субъект), выполняющая контроль операций субъектов над объектами. Данная компонента фактически отвечает за реализацию некоторой политики безопасности.
Аксиома 2. Для выполнения в защищенной АС операций над объектами необходима дополнительная информация (и наличие содержащего ее объекта) о разрешенных и запрещенных операциях субъектов с объектами.
В данном случае мы оперируем качественными понятиями «контроль», «разрешенная и запрещенная операция», данные понятия будут раскрыты и проиллюстрированы ниже.
Существует дополнительная аксиома.
Аксиома 3. Все вопросы безопасности информации описываются доступами субъектов к объектам.
Важно заметить, что политика безопасности описывает в общем случае нестационарное состояние защищенности. Защищаемая система может изменяться, дополняться новыми компонентами (субъектами, объектами, операциями субъектов над объектами). Очевидно, что политика безопасности должна быть поддержана во времени, следовательно. в процесс изучения свойств защищаемой системы должны быть добавлены процедуры управления безопасностью.
С другой стороны, нестационарность защищаемой АС, а также вопросы реализации политики безопасности в конкретных конструкциях защищаемой системы (например, программирование контролирующего субъекта в командах конкретного процессора компьютера) предопределяют необходимость рассмотрения задачи гарантирования заданной политики безопасности.
В результате, можно сказать, что компьютерная безопасность решает четыре класса взаимосвязанных задач:
1. Формулирование и изучение политик безопасности.
2. Реализация политик безопасности.
3.Гарантирование заданной политики безопасности.
41
Типовой жизненный цикл АС состоит из следующих стадий:
1. Проектирование АС и проектирование политики безопасности.
2. Моделирование ПБ и анализ корректности ПБ, включающий усыновление адекватности политики безопасности и целевой функции СС.
3. Реализация ПБ и механизмов ее гарантирования, а также процедур и механизмов управления безопасностью.
4. Эксплуатация защищенной системы.
Рассмотрим подробно подходы к решению поставленных задач.
3.2. Понятие доступа и монитора безопасности В теории компьютерной безопасности практически всегда рассматривается модель произвольной АС в виде конечного множества элементов. Указанное множество можно разделить на два подмножества: множество объектов и множество субъектов. Данное разделение основано на свойстве элемента «быть активным» или «получать управление»
(применяются также термины «использовать ресурсы» или «пользоваться вычислительной мощностью»). Оно исторически сложилось на основе модели вычислительной системы, принадлежащей фон Нейману, согласно которой последовательность исполняемых инструкций (программа, соответствующая понятию «субъект») находится в единой среде с данными (соответствующими понятию «объект»).
Модели, связанные с реализацией ПБ, не учитывают возможности субъектов по изменению АС, которые могут привести к изменению ее свойств и как предельный случай к полной неприменимости той или иной модели к описанию отношений «субъект-объект» в измененной АС.
Этот факт не является недостатком политики безопасности. Достоверность работы механизмов реализации политики безопасности считается априорно заданной, поскольку в противном случае невозможна формализация и анализ моделей. Однако вопрос гарантий политики безопасности является ключевым как в теории, так и в практике. Рассматривая активную роль субъектов в АС, необходимо упомянуть о ряде важнейших их свойств, на которых базируется излагаемая ниже модель.
Во-первых, необходимо заметить, что человек-пользователь воспринимает объекты и получает
информацию о состоянии АС через субъекты, которыми он управляет и которые производят отображение информации в воспринимаемом человеком виде.
Во-вторых, угрозы компонентам АС (АС рассматривается в модели потоков или состояний исходят от субъектов как активной компоненты, порождающей потоки и изменяющей состояние объектов в АС.
В-третьих, субъекты могут влиять друг на друга через изменяемые ими объекты, связанные с другими субъектами, порождая в конечном итоге в системе субъекты (или состояния системы), которые представляют угрозу для безопасности информации или для работоспособности самой системы.
Будем считать разделение АС на субъекты и объекты априорным. Будем считать также, что существует априорный безошибочный критерий различения субъектов и объектов в АС (по свойству активности). Кроме того, считаем в условиях всех утверждений, что декомпозиция АС на субъекты и объекты фиксирована.
Подчеркнем отличие понятия субъекта компьютерной системы от человека- пользователя следующим определением.
Пользователь - лицо (физическое лицо), аутентифицируемое некоторой информацией и управляющее субъектом компьютерной системы через органы управления ЭВМ.
Пользователь АС является, таким образом, внешним фактором, управляющим состоянием субъектов: В связи с этим далее будем считать пользовательское управляющее воздействие таким, что свойства субъектов, сформулированные в ниже приводимых определениях, не
42 зависят от него (т. е. свойства субъектов не изменяемы внешним управлением). Смысл данного условия состоит в предположении того факта, что пользователь, управляющий программой, не может через органы управления изменить ее свойства (условие неверно для систем типа компиляторов,
средств разработки, отладчиков и др.).
Будем также полагать, что в любой дискретный момент времени множество субъектов
АС не пусто (в противном случае соответствующие моменты времени исключаются из рассмотрения и рассматривается отрезки с ненулевой мощностью множества субъектов).
Аксиома 4. Субъекты в АС могут быть порождены только активной компонентой
(субъектами) из объектов.
Специфицируем механизм порождения новых субъектов следующим определением.
Определение 1. Объект Oi называется источником для субъекта Sm, ели существует субъект Sj, в результате воздействия которого на объект Oi в компьютерной системе возникает субъект Sm.
Субъект Sj, порождающий новый субъект из объекта Oi, в свою очередь, называется активизирующим субъектом для субъекта Sm, Sm назовем порожденным объектом.
Введем обозначение:
Create (Sj, Oi)»>Sк - из объекта Oi порожден объект Sk при активизирующем воздействии субъекта Sj. Create назовем операцией порождения субъектов
(см. рис. 1).
Операция Create задает отображение декартова произведения множеств субъектов и объектов на объединение множества субъектов пустым множеством. Заметим также, что в АС действует дискретное время и фактически новый субъект Sk порождается в момент времени t+1 относительно момента t, в который произошло воздействие порождающего субъекта на объект-источник.
Очевидно, что операция порождения субъектов зависит как от свойств активизирующего субъекта, так и от содержания объекта-уточника.
Считаем, что если Create(Sj, Oi)-> NULL (конструкция NULL далее обозначает пустое множество), то порождение нового субъекта из объекта Oi при активизирующем воздействии
Sj невозможно. Так, практически во всех операционных средах существует понятие исполняемого файла - объекта, могущего быть источником для порождения субъекта.
Например, для MS DOS файл edit.com является объектом источником для порождения субъекта-программы текстового редактора, а порождающим субъектом является, как правило, командный интерпретатор shell (объект-источник command.com). Из архитектуры фон
Неймана следует также, что с любым субъектом связан (или ассоциирован) некоторый объект
(объекты), отображающий его состояние, - например, для активной программы (субъекта) ассоциированным объектом будет содержание участка оперативной памяти с исполняемым кодом данной программы.
Определение 2. Объект Oi в момент времени t ассоциирован субъектом Sm, если состояние объекта Oi повлияло на состояние субъекта в следующий момент времени (т.е. субъект Sm использует ин формацию, содержащуюся в объекте Oi).
Введем обозначение "множество объектов {0m}t ассоциировано субъектом Si в момент времени t": Si( {0m}t).
В данном случае определение не в полной мере является формально строгим, поскольку состояние субъекта описывается упорядоченной
совокупностью ассоциированных с ним объектов, а ассоциированный объект выделяется по принципу влияния на состояние субъекта, т. е. в определении прослеживается некая рекурсия. С другой стороны, известны рекурсивные определения различных объектов (например, дерева). Зависимость от времени позволяет однозначно выделять ассоциированные объекты том случае, если в начальный момент ассоциированный объект можно определить однозначно (как правило, это вектор исполняемого кода и начальные состояния ряда переменных программы).
43
Рис. 3.1. Порождения субъекта и понятие потока
Субъект в общем случае реализует некоторое отображение множества ассоциированных объектов в t-ный момент времени на множество ассоциированных объектов в t+l-ный момент времени. В связи с этим можно выделить ассоциированные объекты, изменение которых изменяет вид отображения ассоциированных объектов (объекты, содержащие, как правило, код программы - функционально ассоциированные), и ассоциированные объекты-данные (являющиеся аргументом операции, но не изменяющие вида отображения). Далее под ассоциированными объектами понимаются функционально ассоциированные объекты, в иных случаях делаются уточнения.
Следствие (к определению 2). В момент порождения субъекта Sm из объекта Oi он является ассоциированным объектом для субъекта Sm.
Необходимо заметить, что объект-источник может быть ассоциированным для активизирующего субъекта, тогда порождение является автономным (т. е. не зависящим от свойств остальных субъектов и объектов). Если же объект-источник является неассоциированным (внешним) для активизирующего субъекта, то порождение не является автономным и зависит от свойств объекта-источника.
Свойство субъекта "быть активным" реализуется и в возможности выполнения действий над объектами. При этом необходимо отметить, что пассивный статус объекта необходимо требует существования потоков информации от объекта к объекту (в противном случае невозможно говорить об изменении объектов), причем данный поток инициируется субъектом.
Определение 3. Потоком информации между объектом Оm и объектом Oj называется произвольная операция над объектом Oj, реализуемая в субъекте Si и зависящая от Оm.
Заметим, что как Oj, так и Оm могут быть ассоциированными или ассоциированными объектами, а также «пустыми» объектами (NULL).
Обозначения: Stream (Si, 0m)-> Oj - поток информации от объекта Оm к объекту Oj.
При этом будем выделять источник (Оm) и получатель приемник) потока (Oj). В определении подчеркнуто, что поток информации рассматривается не между субъектом и объектом, а между объектами, например, объектом и ассоциированными объектами субъекта либо между двумя объектами), а активная роль субъекта выражается в реализации данного потока (это означает, что операция порождения (отека локализована в субъекте и отображается состоянием его функционально ассоциированных объектов). Отметим, что операция Stream может создавать новый объект или уничтожать его. На рис.2 схематически изображены
44 различные виды потоков.
Рис. 3.2. Примеры потоков в АС
Далее будем для краткости говорить о потоке, подразумевая веденное понятие потока информации.
Понятие ассоциированных с субъектом объектов, как легко видеть из нижеизложенного, не является искусственной конструкцией. Корректно говорить о потоках информации можно лишь между одинаковыми сущностями, т.е. объектами. Кроме того, в ассоциированных объектах отображается текущее состояние субъекта. Отображения Stream и
Create описываются с точки зрения разделения на субъекты и объекты все события
(изменения субъектов и объектов), происходящие в АС.
Из данного определения также следует, что поток всегда инициируется(порождается) субъектом.
Определение 4. Доступом субъекта Si к объекту Oj будем называть порождение потока информации между некоторым объектом (например, ассоциированным с субъектом объектами Si(0m)) и объектом Oj .
Выделим все множество потоков Р для фиксированной декомпозиции АС на субъекты и объекты во все моменты времени (все множество потоков является объединением потоков по всем моментам дискретного времени) и произвольным образом разобьем его на два непересекающихся подмножества: N и L, Р = N U L.
Обозначим
N-подмножество потоков, характеризующее несанкционированный доступ;
L - подмножество потоков, характеризующих легальный доступ.
Дадим некоторые пояснения к разделению множеств L и N. Понятие «безопасности» подразумевает наличие и некоторого состояния «опасности» - нежелательных состояний какой-либо системы (в данном случае АС). Будем считать парные категории типа «опасный - безопасный» априорно заданными для АС и описываемыми политикой безопасности, а результатом применения политики безопасности к АС - разделение на множество «опасных»
45 потоков N и множество «безопасных» L. Деление на L и N может описывать как свойство целостности (потоки из N нарушают целостность АС) или свойство конфиденциальности
(потоки из N нарушают конфиденциальность АС), так и любое другое произвольное свойство.
Определение 5. Правила разграничения доступа субъектов к объектам есть формально описанные потоки, принадлежащие подмножеству L.
В предлагаемой субъектно-ориентированной модели не производится уточнений известных моделей политик безопасности (политика безопасности описывает только критерии разбиения на множества L и N), но формулируются условия корректного существования элементов АС, обеспечивающих реализацию той или иной политики безопасности. Поскольку критерий разбиения на множества L и N не связан со следующими далее утверждениями
(постулируется
лишь наличие субъекта, реализующего фильтрацию потоков), то можно говорить об инвариантности субъектно-ориентированной модели относительно любой принятой в АС политики безопасности (не противоречащей условиям утверждений).
Определение 6. Объекты Oi и Oj тождественны в момент времени t, если они совпадают как слова, записанные в одном языке.
Например, при представлении в виде байтовых последовательностей объекты 01=
(О11, 012, ..., O1m) и 02=(021 022, , 02k) одинаковы, если m=k и О1i = 02i для всех i от 1 до k
(Оij- байты).
Для введения понятия тождественности субъектов условимся о наличии процедуры сортировки ассоциированных объектов, которая позволяет говорить о возможности попарного сравнения. На практике всегда существует алгоритм, обеспечивающий возможность попарного сравнения и зависящий от конкретной архитектуры АС. Например, достаточно легко выделить и попарно сравнивать, например, участки активной памяти, отвечающие коду программ (отличающиеся абсолютным адресом загрузки в оперативную память) или содержанию ценных и массивов.
Определение 7. Субъекты Si и Sj тождественны в момент времени попарно тождественны все ассоциированные с ними объекты.
Следствие (из определений 6 и 7). Порожденные субъекты тождественны, если тождественны порождающие субъекты и объекты-
Верность данного следствия вытекает из тождества функционально ассоциированных объектов в порождающих субъектах, которые отвечают за порождение нового субъекта, а также из тождества аргументов (ассоциированных объектов-данных), которые отвечают объектам- источникам.
Для разделения всего множества потоков в АС на подмножества L необходимо существование активной компоненты (субъекта), который:
- активизировался бы при возникновении любого потока;
- производил бы фильтрацию потоков в соответствии с принадлежностью множествам L или N.
Заметим, что если существует Stream (Si, 0j)->0m и существует Stream( Sk, 0m)->0i, то существует и Stream ((Si, Sk), 0j)->0i, т. e. Отношение «между объектами существует поток» является транзитивным (относительно пары субъектов). Именно в этом смысле будем говорить об участи субъекта (Sk) в потоке (если От является ассоциированным объектом субъекта, не тождественного Si). Введем несколько определений.
Определение 8. Монитор обращений (МО) - субъект, активизирующийся при возникновении потока от любого субъекта к любому объекту.
Можно выделить два вида МО:
Индикаторный МО - устанавливающий только факт обращения - к объекту.
МО - субъект, функционирующий таким образом, что при возникновении потока от ассоциированного объекта От Si (Si(0m)) к объекту Oj и обратно существует ассоциированный с МО объект 0m0 (в данном случае речь идет об ассоциированных объектах-данных), тождественный объекту От или Si(0m). Содержательный МО полностью
46 участвует в потоке от субъекта к объекту (в том смысле, что информация проходит через его ассоциированные объекты-данные и существует тождественное отображение объекта на какой-либо ассоциированный объект МО).
Теперь сформулируем понятие монитора безопасности (в литературе также применяется понятие монитора ссылок). Это понятие связано с упоминаемой выше задачей фильтрации потоков. Поскольку целью является обеспечение безопасности АС, то и целевая функция монитора — фильтрация с целью обеспечения безопасности (отметим еще раз, что разделение на N и L задано априорно).
Определение 9. Монитор безопасности объектов (МБО) -монитор обращений, который разрешает поток, принадлежащий только множеству легального доступа L. Разрешение потока в данном случае понимается как выполнение операции над объектом - получателем потока, а запрещение -как невыполнение (т.е. неизменность объекта -получателя потока).
Монитор безопасности объектов фактически является механизмом реализации политики безопасности в АС. Обратимся теперь к основным моделям работы МБО.