Модель low-water-mark (LWM)
Данная модель является конкретизацией модели Белла-ЛаПадула и примером того, что происходит, когда изменения уровня конфиденциальности объекта возможны. Политика безопасности задается в следующих предположениях:
все компоненты ИС классифицированы по уровню конфиденциальности, fs(S) – уровень доступа субъекта, fc(S) – текущий уровень доступа субъектов, fo(O) – гриф (уровень) конфиденциальности объекта;
поток информации (в данном случае рассматриваются потоки от объектов к ассоциированным объектам некоторого субъекта) разрешен только “снизу вверх” (в смысле повышения уровня конфиденциальности).
В рассматриваемой системе – один объект, три операции с объектом, включающие запросы на доступ: read, write, reset. Эти операции используются несколькими субъектами (процессами), имеющими фиксированные уровни секретности. Напомним формальное требование политики о том, что информация может двигаться только “снизу вверх”. Поток информации возможен тогда и только тогда, когда реализуется доступ субъекта к объекту вида w или r.
Уровень объекта О в LWM может меняться: при команде write может снизиться, а при команде reset подняться следующим образом. По команде reset класс объекта поднимается и становится максимальным в линейном порядке. После этого все субъекты приобретают право w, но право read имеют только субъекты, находящиеся на максимальном уровне. При команде write гриф объекта снижается до уровня субъекта, давшего команду w. При снижении уровня секретности объекта вся прежняя информация в объекте стирается и записывается информация процессом, вызвавшим команду write. Право write имеет любой субъект, у которого fs(S) не больше fo(O), где fo(O) – текущий уровень объекта. Право reset имеет только тот субъект, который не имеет право write. Право read имеет любой субъект, для которого fs(S) больше либо равно fo(O).
Откажемся от условия, что при команде write в случае снижения уровня объекта его содержимое стирается (например, оно становится равным нулевому слову). Ясно, что в этом случае возможна утечка информации. В самом деле, любой процесс нижнего уровня, запросив объект для записи, снижает гриф объекта, а получив доступ w, получает возможность r. Возникает канал утечки с понижением грифа. Данный пример показывает, что определение безопасного состояния в модели Белла-ЛаПадула неполное и смысл этой модели только в перекрытии каналов указанных видов. Если процесс снижения грифа объекта работает неправильно, то система перестает быть безопасной.
Рассмотрим пример, поясняющий политику безопасности в модели LWM.
Пусть в системе имеется три файла – F1, F2 и F3. Гриф секретности их соответственно 1, 2, 3 (считаем, что конфиденциальность растет с ростом грифа). Субъект имеет категорию доступа 2. Зададим объект отображения текущего грифа m. При открытии файла (если операция возможна) в момент времени t + 1 для выполнения операций Read или Write ему присваивается значение максимума из текущего его значения и грифа открываемого файла. Mt +1 = MAX(mt, Fit +1). Правила чтения и записи остаются без изменений.
Далее разрешение или запрещение операций происходит с учетом измененного грифа объекта m согласно правилам чтения и записи “вверх” и “вниз”.
Пусть в нулевой момент времени m = 1. Открывается файл F3 (гриф 3), открытие невозможно – категория субъекта равна 2 (ниже грифа файла) – m не меняется.
Пусть открыт файл F2, следовательно m = 2. Чтение из файлов F1 и F2 возможно (их гриф не превосходит m). Запись возможна только в файл F2 (m больше либо равно грифу файла). Тем самым потоки информации от файлов с высоким грифом к файлам с низким грифом невозможны.
Модель Лендвера
Для понимания правил и ограничений безопасности в модели Лендвера приведем необходимые описания понятий.
Классификация – обозначение, накладываемое на информацию, отражающее ущерб, который может быть причинен несанкционированным доступом; включает уровни: TOP SECRET, SECRET и т.д.
Степень доверия пользователю – уровень благонадежности пользователя (априорно заданная характеристика).
Пользовательский идентификатор – строка символов, используемая для того, чтобы отметить пользователя системы.
Роль – работа пользователя в ИС. Пользователь в данный момент всегда ассоциирован как минимум с одной ролью из нескольких, и он может менять роль в течение сессии. Для действий в данной роли пользователь должен быть уполномочен. Некоторые роли могут быть связаны только с одним пользователем в данный момент времени. С любой ролью связана способность выполнения определенных операций.
Объект – одноуровневый блок информации. Это минимальный блок информации в системе, который имеет классификацию (может быть раздельно поименован).
Контейнер – многоуровневая информационная структура. Имеет классификацию и может содержать объекты (каждый со своей классификацией) и/или другие контейнеры. Различие между объектом и контейнером базируется на типе, а не на текущем содержимом.
Сущность – объект или контейнер.
Требование степени доверия объектов – атрибут некоторых контейнеров, для которых важно требовать минимум степени доверия, т.е. пользователь, не имеющий соответствующего уровня благонадежности, не может просматривать содержимое контейнера. Такие контейнеры помечаются соответствующим атрибутом.
Идентификатор – имя сущности без ссылки на другие сущности. Ссылка на сущность прямая, если это идентификатор сущности. Ссылка на сущность косвенная, если это последовательность двух или более имен сущностей (из которых только первая – идентификатор). Пример: “текущее сообщение, первый абзац, вторая строка”.
Операция – функция, которая может быть применена к сущности. Некоторые операции могут использовать более одной сущности (пример: операция копирования).
Множество доступа – множество троек (пользовательский идентификатор или роль, операция, индекс операнда), которое связано с сущностью.
Система, реализующая модель безопасности Лендвера, должна реализовывать приводимые ниже ограничения (ограничения запрещают пользователю операции, нарушающие эти ограничения). Часть этих ограничений должна реализовываться пользователями системы (правила безопасности), а часть – системой (ограничения безопасности).
Правила безопасности
А1. Администратор безопасности системы присваивает уровни доверия, классификацию устройств и правильные множества ролей.
А2. Пользователь вводит корректную классификацию, когда изменяет или вводит информацию.
A3. В пределах классификации пользователь классифицирует сообщения и определяет набор доступа для сущностей, которые он создает, так что только пользователь с требуемой благонадежностью может просматривать информацию.
А4. Пользователь должным образом контролирует информацию объектов, требующих благонадежности.
Ограничения безопасности
В1. Авторизация – пользователь может запрашивать операции над сущностями, только если пользовательский идентификатор или текущая роль присутствует в множестве доступа сущности вместе с этой операцией и с этим значением индекса, соответствующим позиции операнда, в которой сущность относят к требуемой операции.
В2. Классификационная иерархия – классификация контейнера всегда по крайней мере больше или равна классификации сущностей, которые он содержит.
В3. Изменения в объектах – информация, переносимая из объекта всегда содержит классификацию объекта. Информация, вставляемая в объект, должна иметь классификацию ниже классификации этого объекта.
В4. Просмотр – пользователь может просматривать (на некотором устройстве вывода) только сущности с классификацией меньше, чем классификация устройства вывода и степень доверия к пользователю.
В5. Доступ к объектам, требующим степени доверия, – пользователь может получить доступ к косвенно адресованной сущности внутри объекта, требующего степени доверия, только если его степень доверия не ниже классификации контейнера.
В6. Преобразование косвенных ссылок – пользовательский идентификатор признается законным для сущности, к которой он обратился косвенно, только если он авторизован для просмотра этой сущности через ссылку.
В7. Требование меток – сущности, просмотренные пользователем, должны быть помечены его степенью доверия.
В8. Установка степеней доверия, ролей, классификации устройств – только пользователь с ролью администратора безопасности системы может устанавливать данные значения. Текущее множество ролей пользователя может быть изменено только администратором безопасности системы или этим пользователем.
В9. Понижение классификации информации – никакая классифицированная информация не может быть понижена в уровне своей классификации, за исключением случая, когда эту операцию выполняет пользователь с ролью “пользователь, уменьшающий классификацию информации”.
В10. Уничтожение информации – операция уничтожения информации проводится только пользователем с ролью “пользователь, уничтожающий информацию”.
Модель Лендвера достаточно близка категориям объектно-ориентированного программирования и описывает иерархические объекты в ИС. Однако полная реализация данной модели представляется достаточно сложной.