5. Определение
начального состояния. Математически
начальное состояние выражается как
множество начальных значений всех переменных
состояния системы. Простейшим начальным
состоянием является состояние вообще
без каких-либо субъектов и объектов. При
этом нет необходимости определять начальные
значения каких-либо других переменных
состояния, поскольку состояние будет
безопасным независимо от их значений.
Более реалистичное безопасное начальное
состояние предполагает наличие некоторого
начального (произвольного) множества
субъектов и объектов.
6. Доказывается,
что начальное состояние безопасно
в соответствии с определением.
Модель
безопасности Белл-Ла Падула
Одна из первых
моделей безопасности - и впоследствии
наиболее часто используемой - была разработана
Дэвидом Беллом и Леонардо Ла Падула для
моделирования работы компьютера.
Рассмотрим
систему из двух файлов и двух процессов
(рис.2.2). Один файл и один процесс являются несекретными, другой файл и процесс
- секретными.
Простое правило
безопасности предотвращает чтение секретного файла несекретным процессом.
Оба процесса могут читать и записывать
данные в несекретный файл. Однако,
легко может произойти нарушение правил
управления доступом, если секретный процесс считает информацию из секретного файла и запишет ее в несекретный файл. Это эквивалентно
неавторизованному уменьшению класса
доступа информации, хотя при этом не изменяется
класс доступа ни одного файла.
Рис.2.2.
Когда процесс
записывает информацию в файл, класс доступа
которого меньше, чем класс доступа процесса,
имеет место так называемый процесс записи
вниз. Ограничение, направленное на исключение
нисходящей записи получило в модели Белл-Ла
Падула название *-свойства или свойства ограничения.
Таким образом,
модель многоуровневой безопасности имеет
два основных свойства:
- простая безопасность: субъект может
только читать объект, если класс доступа
субъекта доминирует над классом доступа
объекта. Другими словами, субъект может
читать "вниз", но не может читать
"вверх";
- свойство ограничения: субъект может
только записать в объект, если класс доступа
субъекта превосходит класс доступа объекта.
Субъект может записывать "вверх",
но не может записать "вниз".
Процесс не может
ни читать объект с высшим классом доступа
(свойство простой безопасности), ни записать
объект с низшим классом доступа (*-свойство
или свойство ограничения) (рис.2.3).
При формализации
многоуровневого управления безопасностью,
модель Белл-Ла Падула определяет структуру
класса доступа и устанавливает упорядочивание
отношений между классами доступа (доминирование).
Кроме того определяются два уникальных
класса доступа: SYSTEM HIGH, который превосходит
все остальные классы доступа, и SYSTEM LOW, который превосходят
все другие классами. Изменения классов
доступа в рамках модели Белл-Ла Падула не допускаются.
Рис.2.3.
Управление
доступом в модели Белл-Ла Падула происходит как с использованием
матрицы управления доступом, так и с использованием
меток безопасности и ранее приведенных
правил простой безопасности и свойства
ограничения.
В дополнение
к имеющимся режимам доступа чтения и
записи, матрица управления доступом включает
режимы добавления, исполнения и управления
- причем последний определяет, может ли
субъект передавать другим субъектам
права доступа, которыми он обладает по
отношению к объекту.
Управление
при помощи меток безопасности усиливает
ограничение предоставляемого доступа
на основе сравнения атрибутов класса
доступа субъектов и объектов.
В модели Белл-Ла
Падула определено около двадцати функций
(правил операций), выполняемых при модификации
компонентов матрицы доступа, при запросе
и получении доступа к объекту (например
при открытии файла), создании и удалении
объектов; при этом для каждой функции
доказывается сохранение ею, в соответствии
с определением, безопасного состояния.
Лишь немногие разработки безопасных
систем использовали функции, предложенные
Белл и Ла Падула, чаще использовались
собственные функции, разработанные на
основе функций модели Белл-Ла Падула. Поэтому в настоящее время,
когда говорят о модели Белл-Ла Падула, имеются в виду только
простое условие безопасности и свойство
ограничения, а не функции, составляющие
основу модели, и их доказательства.
Анализ
информационных потоков
Помимо выполнения
основной своей задачи - математически
точного представления требований правил
управления доступом, модель управления
доступом используется в процессе разработки
системы для выполнения так называемого
анализа информационного потока. Анализ
информационного потока - это общая технология
для анализа путей утечки информации в
системе (Lampson, 1973; Denning, 1983); она применима
к любой модели безопасности.
Информационный
поток может рассматриваться как отношение
причина-следствие между двумя переменными
A и B. Считается, что в любой функции, где
модифицируется B и упоминается A, существует
поток от переменной A к переменной B (записывается
в виде A->B), если какая-либо информация
о старом значении A может быть получена
путем анализа нового значения B.
Модель управления
доступом плохо пригодна для выявления
таких слабостей в безопасности, как скрытые
каналы, которые по сути являются незапланированными
(и в большинстве своем незаконными) информационными
потоками. Вполне возможна ситуация, когда
модель управления доступом, безупречная
с точки зрения определений и доказательств,
может содержать массу скрытых каналов,
благодаря которым все усилия по реализации
установленной политики безопасности
теряют смысл.
Скрытые каналы
достаточно эффективно выявляются в процессе
анализа информационного потока, для которого
основой может служить модель безопасности.
Следует учитывать,
что формальный анализ потока - занятие
весьма трудоемкое, поскольку проверяется
каждая ссылка на каждую переменную состояния
в модели. Анализ потока нельзя считать
полноценным без рассмотрения каждой
переменной, поскольку очень легко упустить
скрытый канал именно через переменную,
выпавшую из рассмотрения. Правила для
определения возможности информационного
потока сложны и трудны для применения
вручную.
На практике
анализ потока редко выполняется для системы
на уровне абстрактной модели. Хотя анализ
потока в модели может, конечно, выявить
многие потенциальные нарушения потока,
он может также и упустить ряд таких нарушений.
Это возможно потому, что модель оставляет
вне рассмотрения очень много деталей
системы, например, таких как переменные
состояния и функции, которые не влияют
на безопасное состояние системы и, по
определению, не включаются в состав модели
безопасности. Именно эти внутренние переменные
состояния обеспечивают возможность возникновения
скрытых каналов.
С другой стороны,
анализ информационного потока, выполненный
на уровне модели системы, дает возможность
выявить и устранить нежелательные скрытые
каналы до того, как разработчики приступят
к выполнению последующих шагов формального
метода разработки системы.
Поскольку существуют
строгие правила и методы определения
потенциальных потоков, их синтаксического
анализа и доказательства допустимости,
иногда говорят о модели информационного
потока (см.выше), что представляется не
совсем верным, поскольку формальная модель
безопасности имеет собственное назначение
помимо того, чтобы служить основой для
проведения анализа информационного потока.
Разработка
и доказательство модели управления доступом
системы является важным этапом в формальном
методе разработки системы. Сам формальный
метод разработки можно ограничить этапом
формального моделирования, после которого
следует практическая реализация системы.
В более полном
варианте метод формальной разработки
включает также этап создания формальной спецификации.
Спецификация отличается от модели тем,
что помимо переменных и функций, относящихся
к обеспечению безопасности, описывает
переменные и функции, реализующие в системе
иные задачи. При этом следует отметить,
что соответствие формальной спецификации
разработанной ранее модели безопасности
строго доказывается.
2.5
Системы разграничения доступа
Основную роль в обеспечении
внутренней безопасности компьютерных
систем выполняют системы управления
доступом (разграничения доступа) субъектов
к объектам доступа, реализующие концепцию
единого диспетчера доступа (в английском
варианте "reference monitor"- дословно, монитор
ссылок).
Диспетчер доступа
Сущность концепции диспетчера
доступа состоит в том, что некоторый абстрактный
механизм является посредником при всех
обращениях субъектов к объектам (Рис.2.4).
Рис. 2.4.
Диспетчер доступа должен
выполнять следующие функции:
- проверять права доступа каждого субъекта
к любому объекту на основании информации,
содержащейся в базе данных защиты (правил
разграничения доступа);
- при необходимости регистрировать факт
доступа и его параметры в системном журнале.
Основными требованиями
к реализации диспетчера доступа являются:
- требование полноты контролируемых операций,
согласно которому проверке должны подвергаться
все операции всех субъектов над всеми
объектами системы. Обход диспетчера предполагается
невозможным;
- требование изолированности, то есть
защищенности диспетчера от возможных
изменений субъектами доступа с целью
влияния на процесс его функционирования;
- требование формальной проверки правильности
функционирования;
- минимизация используемых диспетчером
ресурсов.
В самом общем виде работа
средств управления доступом субъектов
к объектам основана на проверке сведений,
хранимых в базе данных защиты.
Под базой данных защиты (security
database) понимают базу данных, хранящую информацию
о правах доступа субъектов системы к
объектам и другим субъектам.
Для внесения изменений
в базу данных защиты система разграничения
доступа должна включать средства для
привилегированного пользователя (администратора
безопасности) по ведению этой базы. Такие
средства управления доступом должны
обеспечивать возможность выполнения
следующих операций:
- добавления и удаления объектов и субъектов;
- просмотра и изменения соответствующих
прав доступа субъектов к объектам.
Форма представления базы
данных защиты может быть различной.
Основу базы данных защиты
в общем случае составляет матрица доступа
или ее представления (см. табл. 3) Каждый
элемент этой матрицы представляет собой
кортеж, определяющий права доступа (для
всех возможных видов доступа) каждого
субъекта к каждому объекту или другому
субъекту.
Сложность управления доступом
(ведения матрицы доступа) в реальных системах
связана не только с большой размерностью
матрицы (большим числом субъектов и объектов)
и высоким динамизмом ее корректировки,
но и с необходимостью постоянного отслеживания
при таких корректировках большого числа
зависимостей между значениями определенных
кортежей. Наличие таких зависимостей
связано с объективно существующими в
предметной области ограничениями и правилами
наследования полномочий в иерархии объектов
и субъектов. Например, пользователь должен
наследовать полномочия группы пользователей,
в которую он входит; права доступа некоторого
пользователя к каталогам и файлам не
должны превышать соответствующие его
права по доступу к диску, на котором они
размещены и т.п.).
При полномочном управлении
доступом (категорирование объектов и
субъектов и введение ограничений по доступу
установленных категорий субъектов к
объектам различных категорий) на матрицу
доступа накладываются дополнительные
зависимости между значениями прав доступа
субъектов.
Существующие ограничения
и зависимости между полномочиями существенно
усложняют процедуры ведения матриц доступа.
Это привело к возникновению большого
числа способов неявного задания матрицы
(списки доступа, перечисление полномочий,
атрибутная схема и т.п.).
Основные критерии оценки
эффективности различных способов неявного
задания следующие:
- затраты памяти на хранение образа матрицы
доступа;
- время на выборку (вычисление) значений
полномочий (элементов кортежей);
- удобство ведения матрицы при наличии
ограничений и зависимостей между значениями
ее кортежей (простота и наглядность, количество
требуемых операций при добавлении/удалении
субъекта или объекта, назначении/модификации
полномочий и т.п.).
Рассмотрим основные способы
неявного задания матрицы доступа.
Списки управления доступом к объекту
В данной схеме полномочия
доступа к объекту представляются в виде
списков (цепочек) кортежей для всех субъектов,
имеющих доступ к данному объекту. Это
равносильно представлению матрицы по
столбцам с исключением кортежей, имеющих
все нулевые значения.
Такое представление матрицы
доступа получило название "списка
управления доступом" (access control list). Этот
вид задания матрицы реализован в сетевой
ОС Novell NetWare.
Достоинства:
- экономия памяти, так как матрица доступа
обычно сильно разрежена;
- удобство получения сведений о субъектах,
имеющих какой либо вид доступа к заданному
объекту;
Недостатки:
- неудобство отслеживания ограничений
и зависимостей по наследованию полномочий
субъектов;
- неудобство получения сведений об объектах,
к которым имеет какой либо вид доступа
данный субъект;
- так как списки управления доступом связаны
с объектом, то при удалении субъекта возможно
возникновение ситуации, при которой объект
может быть доступен несуществующему
субъекту.
Списки полномочий субъектов
В данной модели полномочия
доступа субъекта представляются в виде
списков (цепочек) кортежей для всех объектов,
к которым он имеет доступ (любого вида).
Это равносильно представлению матрицы
по строкам с исключением кортежей, имеющих
нулевые значения.