Организация контроля доступа в ОС Windows NT

Система управления доступом в ОС Windows NT отличается высокой степенью гибкости, которая достигается за счет большого разнообразия субъектов и объ­ектов доступа, а также детализации операций доступа.

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

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

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

Для системы безопасности Windows NT характерно наличие большого количест­ва различных предопределенных (встроенных) субъектов досту-па – как отдель­ных пользователей, так и групп. Так, в системе всегда имеются та­кие пользовате­ли, как Administrator, System и Guest, а также группы
Users, Administrators, Account Operators, Server Operators, Everyone и другие. Смысл этих встроенных пользо­вателей и групп состоит в том, что они наделены не­которыми правами, облегчая администратору работу по созданию эффектив­ной системы разграничения до­ступа. При добавлении нового пользователя администратору остается только решить, к какой группе или группам отнести этого пользователя. Конечно, адми­нистратор может создавать новые группы, а также добавлять права к встроен­ным группам для реализации собственной политики безопасности, но во многих случаях встроенных групп оказывается вполне достаточно. Windows NT поддерживает три класса операций доступа, которые отличаются типом субъектов и объектов, участвующих в этих опе­рациях.

Разрешения (permissions) – это множество операций, которые могут быть определены для субъектов всех типов по отношению к объектам лю­бого типа: файлам, каталогам, принтерам, секциям памяти и т. д. Разрешения по своему назначению соответствуют правам доступа к файлам и каталогам в ОС UNIX.

Права (user rights) –определяются для субъектов типа группа на вы­полнение некоторых системных операций: установку системного времени, архивирова­ние файлов, выключение компьютера и т. п. В этих операциях участвует осо­бый объект доступа — операционная система в целом. В ос­новном именно права, а не разрешения отличают одну встроенную группу пользователей от другой. Некоторые права у встроенной группы являются также встроенны­ми – их у данной группы нельзя удалить. Остальные права встроенной груп­пы можно удалять (или добавлять из общего списка прав).

Возможности пользователей (user abilities) определяются для отдель­ных пользо­вателей на выполнение действий, связанных с формирова­нием их операци­онной среды, например изменение состава главного меню программ, возмож­ность пользоваться пунктом меню Run (выполнить) и т. п.

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

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

Проверка разрешений доступа процесса к объекту производится в Win­dows NT в основном в соответствии с общей схемой доступа, представленной на рис. 5. 17. При входе пользователя в систему для него создается так назы­ваемый токен доступа (access token), включающий идентификатор пользова­теля и идентифи­каторы всех групп, в которые входит пользователь. В токене также имеются: спи­сок управления доступом (ACL) по умолчанию, который состоит из разрешений и применяется к создаваемым процессом объектам; список прав пользователя на выполнение системных действий.

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

При запросе процессом некоторой операции доступа к объекту в
Win­dows NT управление всегда передается монитору безопасности, который сравнивает иден­тификаторы пользователя и групп пользователей из токена доступа с иденти­фикаторами, хранящимися в элементах ACL объекта. В от­личие от UNIX в эле­ментах ACL Windows NT могут существовать как списки разрешенных, так и списки запрещенных для пользователя операций.

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

Для смены в некоторых ситуациях процессом своих идентификаторов в Win­dows NT используется механизм олицетворения (impersonation).
В Win­dows NT существуют простые субъекты и субъекты-серверы. Простой субъ­ект – это про­цесс, которому не разрешается смена токена доступа и соответ­ственно смена иден­тификаторов. Субъект-сервер — это процесс, который работает в качестве сервера и обслуживает процессы своих клиентов (напри­мер, процесс файлового серве­ра). Поэтому такому процессу разрешается по­лучить токен доступа у процесса-клиента, запросившего у сервера выполне­ния некоторого действия, и использо­вать его при доступе к объектам.

В Windows NT однозначно определены правила, по которым вновь соз­даваемо­му объекту назначается список ACL. Если вызывающий код во время создания объекта явно задает все права доступа к вновь создаваемому объ­екту, то система безопасности приписывает этот ACL объекту.

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

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

Наследование разрешений употребляется наиболее часто при создании нового объекта. Особенно оно эффективно при создании файлов, так как эта операция выполняется в системе наиболее часто.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: