- •Тема 7. Математические модели анализа политики безопасности информации
- •Москва – 2010
- •Введение
- •1. Основные понятия и определения политики безопасности информации.
- •1.1. Понятие политики безопасности
- •1.2. Понятия доступа и монитора безопасности
- •1.3. Понятие ядра безопасности.
- •2. Математические модели анализа дискреционной политики безопасности информации
- •2.1. Модель матрицы доступов Харрисона-Руззо-Ульмана
- •Рассмотрим вопросы безопасности системы.
- •2.2. Типизованная матрица доступов
- •2.3. Модель распространения прав доступа Take-Grant
- •2.4. Модель Харрисона-Руззо-Ульмана.
- •3. Математические модели мандатной политики управления доступом
- •3.1. Классическая модель системы безопасности Белла-ЛаПадула
- •3.2. Модель безопасности Мак-Лина (безопасная функция перехода)
- •С точки зрения модели уполномоченных субъектов система (vo,r, Ta) считается безопасной в том случае, если:
- •Модель совместного доступа
- •3.3. Модель совместного доступа с уполномоченными объектами
- •3.4. Решетка мандатных моделей безопасности
- •3.5. Применение мандатных моделей безопасности.
1.3. Понятие ядра безопасности.
Ядро безопасности — это «минимальный, защищенный элемент программных средств, корректная работа которого достаточна, чтобы гарантировать введение необходимых ограничений на доступ ...»
Вместо того чтобы быть распыленными по всему программному обеспечению системы, все механизмы защиты собираются в ядро, так что с точки зрения контроля корректности работы существующих средств обеспечения безопасности необходимо принимать во внимание только это ядро.
Типичная крупная операционная система содержит миллионы команд 5 млн. строк в кодах Ассемблера.
Проверка того, что большие системы программного обеспечения данной полностью свободны от ошибок или проявления аномалий, невозможна.
Почти ни одна программа в настоящее время не является безошибочной и не разработана еще ни одна операционная система, достаточно простая и малая, чтобы ее до деталей мог понять один человек.
В этом состоит проблема ограничений, которая положена в основу рассмотренных моделей конечных состояний. К сожалению, не существует алгоритма, который может решить для произвольной системы защиты вопрос о том, будет ли происходить утечка информации в системе.
Концепция изолированной программной среды является расширением зарубежных подходов к реализации ядра безопасности.
Как правило модель функционирования ядра безопасности изображается в виде схемы, где "база данных защиты" означает объект, содержащий информацию о потоках множества L (защита по "белому списку" - разрешения на потоки) или множества N (защита по "черному списку" - запрещение на потоки). Классическая схема ядра безопасности приведена на рис. 3.1.
Рис.3.1. Классическая схема ядра безопасности.
Для учета влияния субъектов в компьютерной системе необходимо рассматривать расширенную схему взаимодействия элементов системы реализации и гарантирования политики безопасности, то есть учитывать, хотя бы роль монитора безопасности субъектов при порождении субъектов из объектов.
2. Математические модели анализа дискреционной политики безопасности информации
2.1. Модель матрицы доступов Харрисона-Руззо-Ульмана
Рассмотрим основные положения модели.
Модель матрицы доступов Харрисона-Руззо-Ульмана (HRU) используется для анализа системы защиты, реализующей дискреционную политику безопасности, и ее основного элемента-матрицы доступов. При этом система защиты представляется конечным автоматом, функционирующим согласно определенным правилам перехода.
Модель HRU была впервые предложена в 1971 г. Формальное описание модели появилось в 1976 г, которым мы и будем руководствоваться.
Обозначим:
О-множество объектов системы;
S-множество субъектов системы (S O);
R- множество прав доступа субъектов к объектам,
Например права на чтение (read),
права на запись (write),
владения (own);
М — матрица доступа, строки которой соответствуют субъектам, а столбцы - объектам;
М [s. о] R - права доступа субъекта s к объекту о.
Условимся отдельный автомат, построенный согласно положениям модели HRU, называть системой.
Функционирование системы будем рассматривать только с точки зрения изменений в матрице доступа.
Возможные изменения определяются шестью примитивными операторами:
1."Внести" право r R в M[s, о] - добавление субъекту s права доступа r
объекту о.( При этом в ячейку M[s,o] матрицы доступов добавляется элемент r).
2."Удалить" право г R из М [s, о] - удаление у субъекта s права доступа
r к объекту о.( При этом из ячейки M[s,o] матрицы доступов удаляется элемент r).
3."Создать" субъекта s'-добавление в систему нового субъекта s'. (При этом в матрицу доступов добавляются новые столбец и строка).
4. "Создать" объект о' - добавление в систему нового объекта о'. (При этом в матрицу доступов добавляется новый столбец).
5. "Уничтожить" субъекта s'-удаление из системы субъекта s'.(При этом из матрицы доступов удаляются соответствующие столбец и строка).
6. "Уничтожить" объект о'- удаление из системы объекта о'. (При этом из
матрицы доступов удаляется соответствующий столбец).
В результате выполнения примитивного оператора осуществляется переход системы из состояния Q=(S,O,M) в новое состояние Q' = (S', О', М').
Данный переход обозначим через Q - Q'.
Таблица 1
Примитивный оператор модели HRU |
Условия выполнения |
Новое состояние системы |
"Внести" право r R в M[s,o] |
s S, о O |
S'=S, 0'=0, M'[s,o]=M[s,o] {r) (s', o') (s, o) M'[s'. o']=M[s', o] |
"Удалить" право r R из M[s,o] |
s S, o О |
S'=S, 0'=0, M'[s,o]=M[s,o]\ {r}, (s', o') (s, o) M'[s',o']=M[s',o'] |
"Создать" субъект s' |
s' S |
S'=S {s'}, 0'=0 {s'}, (s, o) SxOM'[s,o]=M[s, o], o O'M'[s',o]=0, s S'M'[s,s']=0 |
"Создать" объект о' |
о' 0 |
S'=S, 0'=0 {o'}, (s, o) SxOM'[s, o]=M[s, o], s S'M'[s,o']=0 |
"Уничтожить"субъект s' |
s' S |
S'=S/{s'}, 0'=0/{s'}, (s, o) S'x 0' M'[s, o]=M[s, o] |
"Уничтожить" объект о' |
o' O o' S |
S'=S, 0'=0/{o'}, (s, o) S'x 0'M'[s,o]=M[s,o] |
Из примитивных операторов могут составляться команды.
Каждая команда состоит из двух частей:
1. условия, при котором выполняется команда;
2. последовательности примитивных операторов.
Таким образом, запись команды имеет вид:
command С (x1, ...,xk)
if г1 M [Xs1, Xo1 ] and ... and rm M [Xsm, Хom] then
1 ;
…
n ,
end
Здесь r1, ....,rm R- права доступа, 1, .... n- последовательность примитивных операторов. Следует отметить, что условия в теле команды необязательны.
При выполнении команды C(x1, ...,xk) система осуществляет переход из состояния Q в новое состояние Q'.
Данный переход обозначим через Q-c(x1,…,xk)О'.
При этом справедливо:
• Q'=Q, если одно из условий команды C(x1,.... хk) не выполнено;
• Q'=Qn, если все условия команды C(x1,.... хk) выполняются и существуют состояния Q1,..., Qn : Q=Qo|- 1Q1|- 2 ... |- n Qn.
Пример 1. Команда создания субъектом s личного файла f.
command "создать файл"(s, f):
“создать" объект f,
“внести" право владения own в M[s, f};
“внести" право на чтение read в M[s, f];
“внести" право на запись write в M[s,f]',
end
Пример 2. Команда передачи субъекту s' права read на файл f его владельцем субъектом s.
command "передать право чтения" (s, s', f):
if own M[s,f] then
"внести" право read в M[s', f].
end