Избирательное и полномочное разграничение доступа, изолированная программная среда


2.2.1. Избирательное разграничение доступа

Система правил изби­рательного или дискреционного разграничения доступа (discretionary ac­cess control) формулируется следующим образом.

1. Для любого объекта операционной системы существует владе­лец.

2. Владелец объекта может произвольно ограничивать доступ дру­гих субъектов к данному объекту.

3. Для каждой тройки субъект-объект-метод возможность доступа определена однозначно.

4. Существует хотя бы один привилегированный пользователь (ад­министратор), имеющий возможность обратиться к любому объекту по лю­бому методу доступа. Это не означает, что этот пользователь может игно­рировать разграничение доступа к объектам и поэтому является супер­пользователем. Не всегда для реализации возможности доступа к объекту операционной системы администратору достаточно просто обратиться к объекту. Например, в Windows NT администратор для обращения к чужому (принадлежащему другому субъекту) объекту должен вначале объявить себя владельцем этого объекта, использовав привилегию администратора объявлять себя владельцем любого объекта, затем дать себе необходи­мые права, и только после этого администратор может обратиться к объ­екту. При этом использование администратором своей привилегии не ос­тается незамеченным для прежнего владельца объекта.

Последнее требование введено для реализации механизма удале­ния потенциально недоступных объектов.

При создании объекта его владельцем назначается субъект, соз­давший данный объект. В дальнейшем субъект, обладающий необходи­мыми правами, может назначить объекту нового владельца. Обычно при изменении владельца объекта допускается назначать новым владельцем объекта только субъекта, изменяющего владельца объекта. Другими сло­вами, субъект, изменяющий владельца объекта, может назначить новым владельцем объекта только себя. Такое ограничение вводится для того, чтобы владелец объекта не мог отдать "владение" объектом другому субъекту и тем самым снять с себя ответственность за некорректные дей­ствия с объектом.

Для определения прав доступа субъектов к объектам при избира­тельном разграничении доступа используется матрица доступа. Строки этой матрицы представляют собой объекты, столбцы - субъекты (или на­оборот). В каждой ячейке матрицы хранится совокупность прав доступа, предоставленных данному субъекту на данный объект.

Поскольку матрица доступа очень велика (типичный объем для со­временной операционной системы составляет несколько десятков мега­байтов), матрица доступа никогда не хранится в системе в явном виде. Для сокращения объема матрицы доступа используется объединение субъектов доступа в группы. Права, предоставленные группе субъектов для доступа к данному объекту, предоставляются каждому субъекту груп­пы.

Вместе с каждым объектом доступа хранятся его атрибуты защи­ты, описывающие, кто является владельцем объекта и каковы права дос­тупа к данному объекту различных субъектов. Атрибуты защиты фактиче­ски представляют собой совокупность идентификатора владельца объекта и строку матрицы доступа в кодированном виде.

На практике используются два способа кодирования строки матри­цы доступа.

1. Вектор доступа (UNIX) - вектор фиксированной длины, разби­тый на несколько подвекторов. Каждый подвектор описывает права досту­па к данному объекту некоторого субъекта. С помощью вектора доступа можно описать права доступа к объекту только фиксированного числа субъектов, что накладывает существенные ограничения на систему раз­граничения доступа.

2. Список доступа (VAX/VMS, Windows NT) - список переменной длины, элементами которого являются структуры, содержащие:

- идентификатор субъекта;

- права, предоставленные этому субъекту на данный объект;

- различные флаги и атрибуты.

Фактически вектор доступа представляет собой список доступа фиксированной длины и является частным случаем списка доступа.

Кодирование матрицы доступа в виде совокупности списков доступа позволяет реализовать более мощный и гибкий механизм разграничения доступа, однако требует гораздо больше оперативной и дисковой памяти для хранения атрибутов защиты объекта, усложняет техническую реали­зацию правил разграничения доступа и создает проблему, связанную с тем, что значения элементов списка доступа могут противоречить друг другу.

При создании нового объекта владелец объекта должен определить права доступа различных субъектов к этому объекту. Если владелец объ­екта не сделал этого, то либо новому объекту назначаются атрибуты за­щиты по умолчанию, либо новый объект наследует атрибуты защиты от родительского объекта (каталога, контейнера и т.д.).

Избирательное разграничение доступа является наиболее распро­страненным механизмом разграничения доступа. Вместе с тем защищенность ОС, подсистема защиты которой реализует только избира­тельное разграничение доступа, во многих случаях недостаточна. В США запрещено хранить информацию, содержащую государственную тайну, в компьютерных системах, поддерживающих только избирательное разгра­ничение доступа.

2.2.2. Изолированная программная среда

Изолированная или замк­нутая программная среда представляет собой расширение модели изби­рательного разграничения доступа. Здесь правила разграничения доступа формулируются следующим образом.

1. Для любого объекта ОС существует владе­лец.

2. Владелец объекта может произвольно ограничивать доступ дру­гих субъектов к данному объекту.

3. Для каждой четверки субъект-объект-метод-процесс возможность доступа определена однозначно.

4. Существует хотя бы один привилегированный пользователь (ад­министратор), имеющий возможность обратиться к любому объекту по лю­бому методу.

5. Для каждого субъекта определен список программ, которые этот
субъект может запускать.

При использовании изолированной программной среды права субъ­екта на доступ к объекту определяются не только правами и привилегиями субъекта, но и процессом, с помощью которого субъект обращается к объ­екту.

Изолированная программная среда существенно повышает защи­щенность ОС от разрушающих программных воздейст­вий, включая программные закладки и компьютерные вирусы. Кроме того, при использовании данной модели повышается защищенность целостно­сти данных, хранящихся в системе. В то же время изолированная про­граммная среда создает определенные сложности в администрировании операционной системы. Например, при инсталляции нового программного продукта администратор должен модифицировать списки разрешенных программ для пользователей, которые должны иметь возможность рабо­тать с этим программным продуктом.

Изолированная программная среда не защищает от утечки конфи­денциальной информации.

2.2.3. Полномочное разграничение доступа без контроля информа­ционных потоков

Полномочное или мандатное разграничение доступа (mandatory access control) обычно применяется в совокупности с избира­тельным. При этом правила разграничения доступа формулируются следующим образом.

1. Для любого объекта ОС существует владе­лец.

2. Владелец объекта может произвольно ограничивать доступ дру­гих субъектов к данному объекту.

3. Для каждой тройки субъект-объект-метод возможность доступа определена однозначно.

4. Существует хотя бы один привилегированный пользователь (ад­министратор), имеющий возможность удалить любой объект.

5. В множестве объектов доступа ОС выделяется подмножество объектов полномочного разграничения доступа. Каж­дый объект полномочного разграничения доступа имеет гриф секретно­сти. Чем выше числовое значение грифа секретности, тем секретнее объ­ект. Нулевое значение грифа секретности означает, что объект несекре­тен. Если объект не является объектом полномочного разграничения дос­тупа или если объект несекретен, администратор может обратиться к нему по любому методу, как и в предыдущей модели разграничения доступа.

6. Каждый субъект доступа имеет уровень допуска. Чем выше чи­словое значение уровня допуска, тем больший допуск имеет субъект. Ну­левое значение уровня допуска означает, что субъект не имеет допуска. Обычно ненулевое значение допуска назначается только субъектам-пользователям и не назначается субъектам, от имени которых выполняют­ся системные процессы.

7. Если объект является объектом полномочного разграничения доступа, гриф секретности объекта строго выше уровня допуска субъекта, обращающегося к нему, субъект открывает объект в режиме, допускающем чтение информации, то доступ субъекта к объекту запрещен независимо от состояния матрицы доступа.

К объектам полномочного разграничения доступа обычно относят только файлы. Часто множество объектов полномочного разграничения доступа лежит в множестве всех файлов, но не совпадает с ним. В идеале к объектам полномочного разграничения доступа следует относить файлы, в которых может храниться секретная информация, и не относить файлы, в которых секретная информация храниться не может (например, файлы программ).

В данной модели разграничения доступа администраторам ОС, как правило, назначается нулевой уровень допуска.

Нетрудно заметить, что, за исключением правила 4, данная модель сводится к предыдущей. Действительно, введем группы пользователей "Пользователи, имеющие уровень допуска 0", "Пользователи, имеющие уровень допуска 1" и т.д. и определим к каждому объекту доступ соответ­ствующей группы согласно правилу 7. Получаем избирательное разграни­чение доступа. Тем не менее, эта модель разграничения доступа имеет одно существенное отличие от предыдущей. В данной модели админист­ратор не имеет права читать секретную информацию, и, таким образом, его права несколько ограничены по сравнению с предыдущей моделью.

Поскольку данная модель не дает ощутимых преимуществ по срав­нению с предыдущей и, в то же время, существенно сложнее ее в техниче­ской реализации, на практике данная модель используется крайне редко.

2.2.4. Полномочное разграничение доступа с контролем информа­ционных потоков

Правила разграничения доступа в данной модели формулируются следующим образом.

1. Для любого объекта ОС существует владе­лец.

2. Владелец объекта может произвольно ограничивать доступ других субъектов к данному объекту.

3. Для каждой четверки субъект-объект-метод-процесс возможность доступа определена однозначно в каждый момент времени. При изменении состояния процесса со временем возможность предоставления доступа также может измениться, т.е. если в некоторый момент времени к некоторому объекту разрешен доступ некоторого субъекта посредством некоторого процесса, это не означает, что в другой момент времени доступ тоже будет разрешен. В каждый момент времени возмож­ность доступа определена однозначно – никаких случайных величин здесь нет. Поскольку права процесса на доступ к объекту меняются с течением времени, они должны проверяться не только при открытии объекта, но и перед выполнением над объектом таких операций, как чтение и запись.

4. Существует хотя бы один привилегированный пользователь (администратор), имеющий возможность удалить любой объект.

5. В множестве объектов выделяется множество объектов полно­мочного разграничения доступа. Каждый объект полномочного разграни­чения доступа имеет гриф секретности. Чем выше числовое значение грифа секретности, тем секретнее объект. Нулевое значение грифа секретности означает, что объект несекретен. Если объект не является объектом полномочного разграничения доступа или если объект несекретен, администратор может обратиться к нему по любому методу, как и в предыдущей модели разграничения доступа.

6. Каждый субъект доступа имеет уровень допуска. Чем выше числовое значение уровня допуска, тем больший допуск имеет субъект. Нулевое значение уровня допуска означает, что субъект не имеет допуска. Обычно ненулевое значение допуска назначается только субъектам-пользователям и не назначается субъектам, от имени которых выполняются системные процессы.

7. Если объект является объектом полномочного разграничения доступа, гриф секретности объекта строго выше уровня допуска субъекта, обращающегося к нему, субъект открывает объект в режиме, допускающем чтение информации, то доступ субъекта к объекту должен быть запрещен независимо от со­стояния матрицы доступа. Это - так называемое правило NRU (Not Read Up – не читать выше).

8. Каждый процесс операционной системы имеет уровень конфи­денциальности, равный максимуму из грифов секретности объектов, от­крытых процессом на протяжении своего существования. Уровень конфи­денциальности фактически представляет собой гриф секретности инфор­мации, хранящейся в оперативной памяти процесса.

9. Если объект является объектом полномочного разграничения доступа, гриф секретности объекта строго ниже уровня конфиденциальности
процесса, обращающегося к нему, субъект собирается записывать в объект информацию, то доступ субъекта к объекту должен быть запрещен независимо от состояния матрицы доступа. Это правило разграничения доступа предотвращает утечку секретной информации. Это - так называемое правило NWD (Not Write Down – не записывать ниже).

10. Понизить гриф секретности объекта полномочного разграниче­ния доступа может только субъект, который:

- имеет доступ к объекту согласно правилу 7;

- обладает специальной привилегией, позволяющей ему понижать грифы секретности объектов.

При использовании данной модели разграничения доступа сущест­венно страдает производительность операционной системы, поскольку права доступа к объекту должны проверяться не только при открытии объ­екта, но и при каждой операции чтения/записи.

Кроме того, данная модель разграничения доступа создает пользо­вателям определенные неудобства, связанные с тем, что если уровень конфиденциальности процесса строго выше нуля, то вся информация в памяти процесса фактически является секретной и не может быть записа­на в несекретный объект. Если процесс одновременно работает с двумя объектами, только один из которых является секретным, процесс не может записывать информацию из памяти во второй объект. Эта проблема ре­шается посредством использования специального программного интер­фейса (API) для работы с памятью. Области памяти, выделяемые процес­сам, могут быть описаны как объекты полномочного разграничения досту­па, после чего им могут назначаться грифы секретности. При чтении сек­ретного файла процесс должен считать содержимое такого файла в сек­ретную область памяти, используя для этого функции операционной сис­темы, гарантирующие невозможность утечки информации. Для работы с секретной областью памяти процесс также должен использовать специ­альные функции. Поскольку утечка информации из секретных областей памяти в память процесса невозможна, считывание процессом секретной информации в секретные области памяти не отражается на уровне конфи­денциальности процесса. Если же процесс считывает секретную инфор­мацию в область памяти, не описанную как объект полномочного разгра­ничения доступа, повышается уровень конфиденциальности процесса.

Из вышеизложенного следует, что пользователи операционных сис­тем, реализующих данную модель разграничения доступа, вынуждены ис­пользовать программное обеспечение, разработанное с учетом этой мо­дели. В противном случае пользователи будут испытывать серьезные про­блемы в процессе работы с объектами операционной системы, имеющими ненулевой гриф секретности. Пусть, например, пользователь работает в среде Windows с установленным дополнительным пакетом защиты, реали­зующим данную модель разграничения доступа. Пользователь открывает с помощью Microsoft Word два документа, один из которых является секретным. Уровень конфиденциальности процесса winword.exe повышается, и пользователь теряет возможность сохранить изменения, внесенные им в данном сеансе работы в несекретный документ.

Также вызывает определенные проблемы вопрос о назначении грифов секретности создаваемым объектам. Если пользователь создает новый объект с помощью процесса, имеющего ненулевой уровень конфи­денциальности, пользователь вынужден присвоить новому объекту гриф секретности не ниже уровня конфиденциальности процесса. Во многих ситуациях это неудобно.

2.2.5. Сравнительный анализ приведенных моделей разграничения доступа

Каждая из приведенных моделей разграничения доступа имеет свои достоинства и недостатки. Таблица 2.2.1 позволяет провести их сравнитель­ный анализ. Из таблицы видно, что модель полномочного разграничения доступа без контроля информационных потоков уступает по всем пара­метрам модели избирательного разграничения доступа. Поэтому приме­нять полномочное разграничение доступа без контроля информационных потоков нецелесообразно ни в каких ситуациях.

Таблица 2.2.1

Свойства модели Избиратель­ное разгра­ничение дос­тупа Изолиро­ван­ная програм­мная среда Полномочное разграничение доступа
без контро­ля потоков с контролем потоков
Защита от утечки ин­формации Отсутствует Отсутствует. Отсутствует Имеется
Защищенность от раз­рушающих воздейст­вий Низкая Высокая Низкая Низкая
Сложность реализации Низкая Средняя Средняя Высокая
Сложность админист­риро­вания Низкая Средняя Низкая Высокая
Затраты ресурсов ком­пьютера Низкие Низкие Низкие Высокие
Использование про­граммного обеспече­ния, разработанного для других систем Возможно Возможно Возможно Проблематич­но

Если для организации чрезвычайно важно обеспечение защищен­ности системы от несанкционированной утечки информации, без полно­мочного разграничения доступа с контролем информационных потоков просто не обойтись. В остальных ситуациях применение этой модели не­целесообразно из-за резкого ухудшения эксплуатационных качеств опера­ционной системы. Что касается изолированной программной среды, то ее целесообразно использовать в случаях, когда очень важно обеспечивать целостность программ и данных операционной системы. В остальных си­туациях простое избирательное разграничение доступа наиболее эффек­тивно.