Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТИБиМЗИ-Л7_2012.doc
Скачиваний:
64
Добавлен:
13.11.2019
Размер:
988.67 Кб
Скачать

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) SxOM'[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) SxOM'[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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]