ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 08.11.2023
Просмотров: 278
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
22 можно привести использование ACL для описания прав доступа поль- зователей и групп к файлу в файловой системе NTFS в операционных системах семейства Windows NT.
Основу мандатной политики безопасности составляет мандат- ное управление доступом, которое подразумевает, что:
- все субъекты и объекты должны быть идентифицированы;
- задан линейно упорядоченный набор меток секретности;
- каждому объекту системы присвоена метка секретности, опре- деляющая ценность содержащейся в нем информации — его уровень
секретности;
- каждому субъекту системы присвоена метка секретности, определяющая уровень доверия к нему — его уровень доступа;
- решение о разрешении доступа субъекта к объекту принимает- ся исходя из типа доступа и сравнения метки субъекта и объекта.
Чаще всего мандатную политику безопасности описывают в терминах модели Белла–ЛаПадула, которая будет рассмотрена ниже в данном разделе.
Управление доступом, основанное на ролях, оперирует в терми- нах «роль», «пользователь», «операция». Вся информация рассматри- вается как принадлежащая организации (а не пользователю, ее со- здавшему). Решения о разрешении или отказе в доступе принимаются на основе информации о той функции (роли), которую пользователь выполняет в организации. Роль можно понимать как множество дей- ствий, которые разрешены пользователю для выполнения его долж- ностных обязанностей. Администратор описывает роли и авторизует пользователей на выполнение данной роли. Таким образом, ролевые модели содержат как признаки мандатных, так и признаки избира- тельных моделей.
1.4.1. Модель Харрисона–Рузо–Ульмана
Модель Харрисона–Рузо–Ульмана (матричная модель) исполь- зуется для анализа системы защиты, реализующей дискреционную политику безопасности. При этом система представляется конечным
23 автоматом, функционирующим согласно определенным правилам пе- рехода.
При использовании матричной модели доступа должны быть определены множества субъектов S, объектов O и прав доступа R. В качестве субъектов системы рассматриваются в первую очередь вы- полняющиеся программы, поэтому предполагается, что S
O. Усло- вия доступа субъекта s
S к объекту o
O определяются матрицей до- ступа. Пусть, например, множество прав доступа состоит из прав на чтение (r), запись (w), выполнение (e). Запрет будет соответствовать пустому множеству прав доступа (
). Тогда матрица доступа может быть такой, как представлено в табл. 1.1.
Т а б л и ц а 1 . 1
Пример матрицы доступа
o
1 o
2 o
3 o
4 s
1 rwe
rw rw s
2 e rwe r
Здесь мы предполагаем, что объекты o
1
, o
2
— это исполняемые файлы, которые после запуска становятся субъектами s
1
и s
2
Могут определяться и другие наборы прав, например, {чтение, запись, владение}.
При описании систем с большим числом объектов и субъектов размерность матрицы доступа может получиться весьма значитель- ной. Для ее снижения одинаковые по имеющимся правам субъекты и сходные по значимости объекты можно организовать в группы и да- вать разрешения группе субъектов на группу объектов.
Функционирование системы рассматривается с точки зрения изменений в матрице доступа. Модель определяет 6 примитивных операций: «создать»/«уничтожить» объект и субъект, «вне- сти»/«удалить» право доступа субъекта к объекту. Их описание при- ведено в табл. 1.2.
24
Т а б л и ц а 1 . 2
Элементарные операции модели Харрисона–Рузо–Ульмана
Операция
Результат операции
«создать» субъект s’, где s’
S
S’=S
{s’}; O’=O
{s’};
M’[s,o]= M[s,o] для всех s
S, o
O;
M’[s’,o]=
для всех o
O’, M’[s,s’]=
для всех s
S’
«создать» объект o’, где o’
O
S’=S; O’=O
{o’};
M’[s,o]= M[s,o] для всех s
S, o
O;
M’[s,o’]=
для всех s
S’
«уничтожить» субъект s’, где s’
S
S’=S\{s’}; O’=O\{s’};
M’[s,o]= M[s,o] для всех s
1 2 3 4 5 6 7 8 9 ... 24
S’, o
O’;
«уничтожить» объект o’, где o’
O
S’=S; O’=O\{o’};
M’[s,o]= M[s,o] для всех s
S’, o
O’;
«внести» право r’
R в
M[s’,o’], где s’
S, o’
O
S’=S; O’=O; M’[s,o]=M[s,o] для s
s’,s
S’, o
o’, o
O’;
M’[s’,o’]=M[s’,o’]
{r’}
«удалить» право r’
R из
M[s’,o’], где s’
S, o’
O
S’=S; O’=O; M’[s,o]=M[s,o] для s
s’,s
S’, o
o’, o
O’;
M’[s’,o’]=M[s’,o’]\ {r’}
Начальное состояние системы описывается множеством прав доступа R, множеством субъектов S, множеством объектов O (S
O, мощности указанных множеств |S| = i, |O| = j, i
j), матрицей доступа
M
i
j
(элемент матрицы, соответствующий субъекту s и объекту o обо- значается M[s,o] и является подмножеством множества прав доступа).
Конечное состояние (после выполнения операции) — S’, O’, M’, R
(множество прав доступа не изменяется).
Из примитивных операторов могут составляться команды. Ко- манда состоит из двух частей: условия, при котором она выполняется, и последовательности операторов.
Общий вид команды [3]:
25 command С (x
1
, …, x k
): if r
1
M[x s1
,x o1
] and … and r m
M[x sm
,x om
] then
α
1
;
…
α
n
; end, где r
1
, …, r m
R — права доступа, α
1
, …, α
n
— последовательность примитивных операторов. При выполнении команды система перехо- дит из состояния Q в новое состояние Q’. При этом, если хотя бы од- но из условий команды не выполнено, Q = Q’. Для примера рассмот- рим команду создания субъектом s файла f. Множество прав доступа
— чтение (read), запись (write), владение (own). Cчитаем, что для со- здания файла не требуется выполнения каких-либо дополнительных условий. command «создать файл» (s, f)
«создать» объект f;
«внести» право владения own в M[s,f];
«внести» право на чтение read в M[s,f];
«внести» право на запись write в M[s,f]; end.
Как показали результаты анализа данной модели безопасности, задача построения алгоритма проверки безопасности систем, реали- зующих дискреционную политику безопасности, не может быть ре- шена в общем случае.
Введем ряд определений.
Будем считать, что возможна утечка права r
R в результате выполнения команды c, если при переходе системы в конечное состо- яние Q’ выполняется примитивный оператор, вносящий r в элемент матрицы доступов M, до этого r не содержавший.
Начальное состояние Q
0
называется безопасным по отношению
к некоторому праву r, если невозможен переход системы в такое со- стояние Q, в котором может возникнуть утечка права r.
26
Система называется монооперационной, если каждая команда содержит только один примитивный оператор.
Для модели Харрисона–Рузо–Ульмана были доказаны следую- щие утверждения:
1. Существует алгоритм, который проверяет, является ли исход- ное состояние монооперационной системы безопасным для данного права r.
2. Задача проверки безопасности произвольных систем алгорит- мически неразрешима.
Таким образом, с одной стороны, общая модель Харрисона–
Рузо–Ульмана может выражать большое разнообразие политик дис- креционного доступа, но при этом не существует алгоритма проверки их безопасности. С другой стороны, можно предпочесть моноопера- ционную систему, для которой алгоритм проверки безопасности су- ществует, но данный класс систем является слишком узким. Напри- мер, монооперационные системы не могут выразить политику, даю- щую субъектам права на созданные ими объекты, т. к. не существует одной операции, которая и создает объект, и одновременно помечает его как принадлежащий создающему субъекту.
1.4.2. Модель Белла–ЛаПадула
Классической мандатной моделью безопасности является мо- дель Белла–ЛаПадула. В ней для описания системы используются:
S — множество субъектов (например, множество пользователей и программ);
O — множество объектов (например, множество файлов);
L — линейно упорядоченное множество уровней безопасности
(например, «общий доступ», «для служебного пользования», «секрет- но», «совершенно секретно»);
F: S
O
L — функция, определяющая уровень безопасности субъекта или объекта в данном состоянии;
V — множество состояний — множество упорядоченных пар
(F, M), где M — матрица доступа субъектов к объектам (матрица,
27 строки которой соответствуют субъектам системы, столбцы — объек- там, элемент матрицы M
so
, далее обозначаемый как M[s, o], описывает права на доступ субъекта s к объекту o).
Система описывается начальным состоянием v
0
V, множеством запросов R и функцией переходов T: (V
R)
V, описывающей пе- реход системы из состояния в состояние под действием запроса.
В модели Белла–ЛаПадула вводится определение двух свойств безопасности системы: безопасность по чтению и безопасность по за- писи.
Состояние (F, M) безопасно по чтению тогда и только тогда, ко- гда для
s
S,
o
O выполняется требование: чтение
M[s, o]
F(s)
F(o), т. е. субъект s может прочитать информацию из объекта o, только ес- ли уровень секретности o меньше или равен уровню доступа s. Дан- ное свойство безопасности также называется правилом запрета чте- ния с верхнего уровня.
Состояние (F, M) безопасно по записи тогда и только тогда, ко- гда для
s
S,
o
O выполняется требование: запись
M[s, o]
F(o)
F(s), т. е. субъект s может записать информацию в объект o, только если уровень секретности o выше или равен уровню доступа s. Данное свойство безопасности также называется правилом запрета записи на нижний уровень.
Состояние системы v
V безопасно тогда и только тогда, когда оно безопасно и по чтению, и по записи.
Система (v
0
, R, T) безопасна тогда и только тогда, когда ее начальное состояние v
0
безопасно и любое состояние, достижимое из v
0
после выполнения конечной последовательности запросов из R, также безопасно.
Большим достоинством модели Белла–ЛаПадула является то, что для нее доказана основная теорема безопасности. В общем случае, данная теорема формулируется следующим образом: если начальное
28 состояние системы безопасно, и все переходы из состояния в состоя- ние не нарушают ограничений, сформулированных политикой без- опасности, то любое состояние системы, достижимое за конечное число переходов будет безопасным. В случае модели Белла–ЛаПадула ограничения не позволяют нарушить безопасность по чтению и запи- си.
Основная теорема безопасности для модели Белла–ЛаПадула
Система (v
0
, R, T) (т. е. система с начальным состоянием v
0
, множеством запросов R, функцией переходов T) безопасна тогда и только тогда, когда состояние v
0
безопасно, и функция переходов T такова, что для
v
V, достижимого из состояния v
0
после выполне- ния конечной последовательности запросов из R (таких что
T(v, r) = v
*
, где v = (F, M) — исходное состояние, v
*
= (F
*
, M
*
) — со- стояние после перехода), для
s
S,
o
O выполняются следую- щие условия:
- если чтение
M
*
[s,o] и чтение
M[s,o], то F
*
(s)
F
*
(o);
- если чтение
M[s,o] и F
*
(s)
(o), то чтение
M
*
[s, o];
- если запись
M
*
[s, o] и запись
M[s, o], то F
*
(o)
F
*
(s);
- если запись
M[s, o] и F
*
(o) < F
*
(s), то запись
M
*
[s, o].
Кратко рассмотрим доказательство теоремы.
Необходимость. Если система безопасна, то начальное состоя- ние v
0
безопасно по определению. Пусть существует некоторое состо- яние v
*
, достижимое из v
0
путем выполнения конечного числа запро- сов из R и полученное в результате перехода из безопасного состоя- ния v: T(v, r) = v
*
. Тогда, если при таком переходе нарушено хотя бы одно из первых двух ограничений, накладываемых теоремой на функцию T, то состояние v
*
не будет безопасным по чтению. Если функция T нарушает одно из двух последних условий теоремы, то со- стояние v
*
не будет безопасным по записи. Таким образом, при нару- шении условий теоремы система становится небезопасной. Необхо- димость доказана.
29
Достаточность. Используем метод доказательства от против- ного. Пусть система небезопасна. В этом случае либо начальное со- стояние v
0
небезопасно, что противоречит условиям теоремы, либо должно существовать небезопасное состояние v
*
, достижимое из без- опасного начального состояния v
0
путем выполнения конечного числа запросов из R. В этом случае обязательно будет иметь место переход
T(v, r) = v
*
, при котором состояние v — безопасно, а v
*
— нет. Однако четыре условия теоремы делают такой переход невозможным.
Несмотря на достоинства модели Белла–ЛаПадула, при ее стро- гой реализации в реальных АС возникает ряд проблем.
1. Завышение уровня секретности, связанное с одноуровневой природой объектов и правилом безопасности по записи. Если субъект с высоким уровнем доступа хочет записать что-то в объект с низким уровнем секретности, то сначала приходится повысить уровень сек- ретности объекта, а потом осуществлять запись. Таким образом, даже один параграф, добавленный в большой документ субъектом с высо- ким уровнем доступа, повышает уровень секретности всего этого до- кумента. Если по ходу работы изменения в документ вносят субъекты со все более высоким уровнем доступа, уровень секретности доку- мента также постоянно растет.
2. Запись вслепую. Эта проблема возникает, когда субъект про- изводит операцию записи в объект с более высоким уровнем безопас- ности, чем его собственный. В этом случае после завершения опера- ции записи субъект не сможет проверить правильность выполнения записи при помощи контрольного чтения, так как ему это запрещено в соответствии с правилом безопасности по чтению.
3. Проблема удаленного чтения-записи. В распределенных си- стемах при удаленном чтении файла создаются два потока: от субъек- та к объекту (запросы на чтение, подтверждения, прочая служебная информация) и от объекта к субъекту (сами запрашиваемые данные).
При этом, например, если F(s) > F(o), то первый поток будет противо- речить свойству безопасности по записи. На практике для решения