Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lecter / Защита инф. 1 раздел..doc
Скачиваний:
169
Добавлен:
10.02.2016
Размер:
280.06 Кб
Скачать

1.3.Типовая архитектура подсистемы защиты операционной системы Основные функции подсистемы защиты операционной системы

Основные функции, выполняемые подсистемой защиты операционной системы.

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

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

3.Аудит.Операционная система регистрирует в специальном журнале события, потенциально опасные для поддержания безопасности системы. Записи об этих событиях могут просматривать в дальнейшем только администраторы операционной системы.

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

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

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

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

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

Разграничение доступа к объектам операционной системы

Основные определения

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

Методом доступак объекту называется операция, определенная для некоторого объекта. Например, для файлов могут быть определены методы доступа "чтение", "запись" и "добавление" (дописывание информации в конец файла).

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

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

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

Итак, объект доступа -это то, к чему осуществляется доступ, субъект доступа -это тот, кто осуществляет доступ, и метод доступа -это то, как осуществляется доступ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7. Если:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7.Если:

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

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

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

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

9.Если:

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

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

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

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

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

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

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

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

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

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