В. Столлингс - Операционные системы (1114679), страница 154
Текст из файла (страница 154)
Когда начальный пользовательский процесс порождает какие-нибудь другие процессы, новый объект-процесс наследует тот же маркер доступа. Маркер доступа имеет два предназначения. 1. Благодаря ему вся информация по безопасности хранится вместе, что способствует ускорению подтверждения доступа. Когда какой-нибудь связанный с пользователем процесс пытается получить доступ, подсистема безопасности может использовать связанный с процессом маркер, чтобы определить привилегии доступа, которыми обладает данный пользователь. 2. Наличие маркера доступа позволяет процессу в определенных рамках изме нять свои характеристики безопасности, не влияя при этом на работу дру гих процессов, запущенных от имени данного пользователя.
Основное значение второго пункта состоит в том, что маркер доступа должен иметь дело с привилегиями, которые могут быть связаны с пользователем. Маркер доступа указывает, какие привилегии разрешено иметь пользователю. Как правило, для каждой из этих привилегий маркер инициализиру ется состоянием запрета. Впоследствии, если одному из процессов пользовате ля нужно выполнить привилегированную операцию, этот процесс может включить соответствующую привилегию и попытаться получить доступ.
Ино гда нежелательно хранить всю информацию по безопасности, касающуюся пользователя, в одном месте системы, потому что в этом случае предоставление привилегии одному процессу приводит к тому, что данная привилегия предоставляется всем остальным процессам. С каждым объектом, для которого возможен межпроцессный доступ, связан дескриптор защиты.
Основным компонентом дескриптора защиты является список контроля доступа, в котором права доступа к данному объекту указываются для различных пользователей и для различных групп пользователей. Когда процесс пытается получить доступ к этому объекту, идеЖгификатор защиты этого процесса сравнивается со списком управления доступом объекта и определяется, разрешен ли доступ. Когда приложение открывает ссылку на подлежащий защите объект, Ж2К проверяет, предоставляет ли дескриптор защиты объекта доступ пользователю, которому принадлежит приложение. Если проверка проходит, система Ю2К помещает предоставленные в результате права доступа в кэйт.
Важным аспектом безопасности операционной системы %'2К является концепция заимствования прав, упрощающая использование безопасности в среде клиент/сервер. Если клиент и сервер общаются между собой с помощью вызова удаленных процедур, сервер может временно принять параметры клиента, чтобы суметь оценить возможность доступа с правами клиента. После обработки обращения сервер возвращается к своему собственному состоянию. Маркер доступа На рис. 15.11,а показана общая структура маркера доступа, в который входят такие параметры. Идентификатор защиты.
Уникальным образом идентифицирует пользователя в рамках всех машин сети. Идентификатор защиты, как правило, соответствует регистрационному имени пользователя. Идентификаторы защиты групп. Список групп, в которые входит пользователь. Группа — это просто набор идентификаторов пользователей, который идентифицируется при контроле доступа как группа.
Каждая группа обладает собственным идентификатором защиты. доступ к объекту можно определять на основе группового идентификатора защиты, персонального идентификатора защиты или их комбинации. ° Привилегии. Список системных сервисов, важных для безопасности, к которым может обратиться данный пользователь.
Примером является созда- Часгь 7. Безопасность Глаза 15. Безопасность ние маркера. Другой пример — назначение привилегий резервирования. Пользователям, обладающим этими привилегиями, разрешено пользоваться средствами создания резервных копий для резервного копирования файлов, которые им нельзя читать. Большинство пользователей не обладают никакими привилегиями. ° Владелец по умолчанию. Если процесс создает другой объект, в данном поле указывается владелец нового объекта.
Чаще всего пользователем нового процесса является пользователь родительского процесса. Однако пользователь может указать, что по умолчанию пользователем любого процесса, порожденного данным процессом, является идентификатор безопасности группы, к которой принадлежит пользователь. ° Список контроля доступа по умолчанию. Это начальный список средств защиты, которые применяются к объекту, создаваемому данным пользователем.
Впоследствии пользователь может изменить список контроля доступа любого объекта, которым он владеет или который принадлежит группе пользователя. б) Дескриптор защити а) Список контроли достттв )АС).) Рис. 15.11. Структуры безопасности операционной сиснтемы Иттнс1оив 2000 Дескрипторы безопасности На рис. 15.11,б показана общая структура дескриптора защиты, который, содержит в себе такие параметры. Флаги. Определяют тип и содержимое дескриптора защиты. Флаги указывают на наличие (или отсутствие) системного списка контроля доступа и списка разграничительного доступа, на то, помещены ли эти списки в объект по умолчанию и какая адресация используется в указателях дескриптора. абсолютная или относительная.
Относительные дескрипторы требуются для объектов, которые передаются по сети. Примером такого объекта является информация, передаваемая при удаленном вызове процедуры. ° Владелец. Вообще говоря, владелец может выполнить с дескриптором за- щиты любое действие. В роли пользователя может выступать индивидуаль- ный или групповой дескриптор защиты.
Владелец имеет право и изменять список разграничительного контроля доступа. е Системньгя список контроля доступа (Эузт,еш Ассеев Сопт,го1 1ав1 — ЯАС1.) В этом списке Указано, опеРации какого вида должны генеРиРовать ообвать с щения аудита. Чтобы выполнять операции чтения или записи с ВАС1„како го-либо объекта, приложение должно иметь соответствующие привилегии в своем маркере доступа, Это нужно, чтобы предотвратить чтение несанкцио нированными приложениями системных списков контроля доступа ' а 'в результате чего они смогут избежать создания записей аудита), а также запись в них (что может привести к созданию слишком большого количества записей аудита, в которых затеряется запись о незаконной операции).
е Список разграничительного контроля доступа (Х)1зсгеИопагу Ассевз Соп$го1 1.)з1 — ВАС1). Определяет, какие пользователи и группы могут получить доступ к данному объекту и для каких операций. Этот список состоит из записей контроля доступа (Ассезз Соп1го1 Ептгу — АСЕ). Когда создается объект, процесс-создатель может в качестве владельца назначить этому объекту в его маркере доступа собственный идентификатор защиты или идентификатор защиты своей группы.
Следовательно, любой процесс, которому предоставлено право изменять владельца объекта, может это .делать, но с определенными ограничениями. Это ограничение нужно, чтобы пользователь не смог замести следы после того, как он попытается предпринять какие- нибудь несанкционированные действия. Рассмотрим подробнее структуру списков контроля доступа, так как оии лежат в основе средства контроля доступа операционной системы %'2К (Рис. 15.11,е). Каждый список состоит из общего заголовка и переменного количества элементов контроля доступа. В каждом элементе указан индивидуальный или групповой идентификатор защиты, а также маска доступа, в которой определены права, которые должны быть предоставлены данному идентификатору защиты. При попытке процесса получить доступ к объекту диспетчер объектов исполняющей системы Ж2К считывает в маркере доступа индивидуальные и групповые идентификаторы защиты, а затем просматривает список разграничительного контроля доступа объекта.
Если обнаружено совпадение (т.е. если найден элемент контроля доступа, идентификатор защиты которого совпадает с идентификатором защиты, обнаруженным в маркере доступе) ), значит, этот процесс обладает правами доступа, установленными маской доступа данного элемента контроля доступа. На рис. 15.12 показано содержимое маски доступа. В 16 младших значатц х Разрядах указываются права доступа, применяющиеся к объектам опре- ЩИХ де:тенного типа. Например, в нулевом разряде объекта-Файла задается доступ по чтсни тонию„а в нулевом разряде объекта-события задается доступ для запроса статуса события. В 16 старших разрядах маски содержатся биты, применимые к объектам всех видов Синхронизация.
Разрешает синхронизацию выполнения с некоторым связанным с данным объектом событием. В частности, объект может быть использован в функции ожидания. Главе 15. Безопасность Правонаудаление Контроль чтения Запись ОДС Разрешение изменения владельца Разрешение синхронизации а Специфические права доступа Стандартные правадоступа Доступ к систенноыу списку контроля доступа Максимальное разрешение Полный общий доступ Общий доступ для выполнения Общий доступ для записи Общий доступ для чтения Рис.
15.12. Маска достпупо ° Разрешение на изменение владельца. Позволяет программе изменять владельца объекта, Иногда зто оказывается полезным, так как владелец объекта всегда может менять защиту своего объекта (владельцу нельзя отказывать в доступе для записи параметров избирательного контроля доступа). ° Разрешение на изменение списка избирательного контроля доступа. Позволяет приложению изменять ВАСт., меняя таким образом защиту объекта. ° Контроль чтения. Позволяет приложению обращаться к полям в дескрипторе защиты, в которых указан владелец данного объекта и его 1)АСХ. ° Разрешение на удаление. Позволяет приложению удалять объект. Кроме того, в старшей половине маски доступа содержатся общие права достуа четырех видов. С помощью этих битов легко устанавливать специфические права .. оступа к различным объектам других типов.