Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
chast3.doc
Скачиваний:
14
Добавлен:
06.11.2018
Размер:
662.53 Кб
Скачать

Правила разграничения доступа

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

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

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

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

  3. Любой объект доступа должен иметь владельца - присутствие ничейных объектов – объектов, не имеющих владельца, недопустимо.

  4. Присутствие недоступных объектов – объектов, к которым не может обратиться ни один субъект доступа ни по одному методу доступа, непозволительно. Недоступные объекты фактически бесполезно растрачивают аппаратные ресурсы компьютера.

  5. Утечка конфиденциальной информации недопустима. Поскольку защита от этой угрозы труднореализуема, данное требование предъявляется согласно «Оранжевой книге» только к системам класса защищенности В1 и выше.

Рассмотрим наиболее типичные модели разграничения доступа.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При использовании изолированной программной среды права субъекта на доступ к объекту определяются не только правами и привилегиями субъекта, но и процессом, с помощью которого субъект обращается к объекту. Можно, например, разрешить обращаться к файлам с расширением .doc только программам Word, Word viewer и WordPad.

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

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

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

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

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

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

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

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

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

  7. Если:

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

  • гриф секретности объекта строго выше уровня допуска субъекта, обращающегося к нему,

  • субъект открывает объект в режиме, допускающем чтение информации,

  • то доступ субъекта к объекту запрещен независимо от состояния матрицы доступа.

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

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

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

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

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

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

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

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

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

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

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

  7. Если:

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

  • гриф секретности объекта строго выше уровня допуска субъекта, обращающегося к нему,

  • субъект открывает объект в режиме, допускающем чтение информации,

  • то доступ субъекта к объекту должен быть запрещен независимо от состояния матрицы доступа. Это – так называемое правило NRU (Not Read Upне читать выше).

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

  2. Если:

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

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

  • субъект собирается записывать в объект информацию,

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

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

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

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

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

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

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

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

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