Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Механизмы контроля доступа в операционных системах



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

Каждый пользователь и каждая группа пользователей имеют символьное имя, а также уникальный числовой идентификатор. При выполнении процедуры логического входа в систему пользователь сообщает свое символьное имя и пароль, а операционная система определяет соответствующие числовые идентификаторы пользователя и групп, в которые он входит. Все идентификационные данные, в том числе, имена и идентификаторы пользователей и групп, пароли пользователей, а также сведения о вхождении пользователя в группы, хранятся либо в специальном файле (характерно для Unix), либо специальной базе данных, как в ОС семейства Windows NT.

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

Определение прав доступа к ресурсу означает определение для каждого пользователя набор операций, которые ему разрешено применять к данному ресурсу. В разных операционных системах для одних и тех же типов ресурсов может быть определен свой список дифференцируемых операций доступа. Механизмы контроля доступа могут использоваться в современных операционных системах для контроля доступа к объектам любого типа, отличия заключаются лишь в наборе операций, характерных для того или иного класса объектов. Например, для файловых объектов этот список может включать следующие операции: создание файла, уничтожение файла, открытие файла, закрытие файла, чтение файла, запись в файл. Набор файловых операций операционной системы может состоять из большого количества элементарных операций, что позволяет весьма тонко управлять правами доступа пользователей, но создает значительную нагрузку на администратора. Возможен другой подход - набор включает всего несколько укрупненных операций. Пример «укрупненного» подхода демонстрируют операционные системы семейства Unix, в которых существуют всего три операции с файлами и каталогами: читать (read, г), писать (write, w) и выполнить (execute, х).

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

Концептуально права доступа описываются матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки — всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции. Практически же во всех операционных системах матрица прав доступа хранится в виде так называемых списков управления доступом (Access Control List, ACL), в которых описываются права на выполнение операций пользователей и групп пользователей по отношению к объекту (файлу, каталогу или другому защищаемому объекту). Для файла ( каталога) список управления доступа является частью его характеристик и хранится на диске в соответствующей области. Не все файловые системы поддерживают списки управления доступом. Примером является файловая система FAT, которая разрабатывалась для однопользовательской однопрограммной операционной системы MS-DOS и для нее задача защиты от несанкционированного доступа не актуальна.

Формат списка управления доступом можно представить в виде набора идентификаторов пользователей, в котором для каждого идентификатора указывается набор разрешенных операций с объектом. Список ACL состоит из элементов управления доступом (Access Control Element, АСЕ), причем каждый элемент ACE соответствует одному субъекту. 

Рассмотрим обобщенный пример, когда некоторый процесс, который выступает от имени пользователя с определенным идентификатором, пытается выполнить операцию записи (W) в файл. Файлом владеет пользователь с некоторым идентификатором пользователя. Операционная система, получив запрос на запись, находит характеристики безопасности файла (на диске или в буферной системной области) и последовательно сравнивает идентификатор процесса с идентификатором владельца файла и идентификаторами пользователей и групп в элементах АСЕ. Если идентификатор процесса будет совпадать с идентификатором в одном из элементов ACE и признак чтение (W) имеется в наборе разрешенных операций, то операционная система разрешает процессу выполнение операции. Описанная обобщенная схема хранения информации о правах доступа и процедуры проверки имеет в каждой операционной системе свои особенности, которые рассматриваются далее на примере операционных систем Unix и семейства Windows NT.

Контроль доступа в ОС Unix

В операционной системе Unix права доступа к файлу или каталогу определяются для трех субъектов: владельца файла (идентификатор User ID, UID); членов группы, к которой принадлежит владелец (Group ID, GID); всех остальных пользователей системы.

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

 Введем обозначения операций: r - чтение w - запись e – выполнение. Если владелец файла разрешил себе выполнение всех трех операций, для членов группы — чтение и выполнение, а для всех остальных пользователей — только выполнение, то девять характеристик безопасности файла выглядят следующим образом:

rwx r-х г--

 Суперпользователю позволены x все виды доступа поэтому его идентификатор (он имеет значение 0) не фигурирует в списках управления доступом.

С каждым процессом Unix связаны два идентификатора: пользователя, от имени которого был создан этот процесс, и группы, которой принадлежит данный пользователь. Эти идентификаторы носят название реального идентификатора пользователя (Real User ID, RUID) и реального идентификатора группы (Real Group ID, RGID).

Однако, при проверке прав доступа к файлу используются не эти идентификаторы, а так называемые эффективные идентификаторы пользователя (Effective User ID, EUID) и группы (Effective Group ID, EGID). Введение эффективных идентификаторов позволяет процессу выступать в некоторых случаях от имени пользователя и группы, отличных от тех, которые ему достались при рождении. В исходном состоянии эффективные идентификаторы совпадают с реальными идентификаторами.

Случаи, когда процесс выполняет системный вызов exec для запуска приложения, хранящегося в некотором файле, в Unix связаны со сменой процессом исполняемого кода. В рамках данного процесса начинает выполняться новый код, и если в характеристиках безопасности этого файла указаны признаки разрешения смены идентификаторов пользователя и группы, то происходит смена эффективных идентификаторов процесса. Файл имеет два признака разрешения смены идентификатора — Set User ID on execution (SUID) и Set Group ID on execution (SGID), которые разрешают смену идентификаторов пользователя и группы при выполнении данного файла. Этот механизм позволяет пользователю получать некоторые виды доступа, которые ему явно не разрешены. Разрешены эти виды доступа только с помощью вполне ограниченного набора приложений, хранящихся в файлах с установленными признаками смены идентификаторов.

Универсальная модель разделяемого ресурса позволяет в Unix применять одни и те же механизмы для контроля доступа к файлам, каталогам, принтерам, терминалам и разделяемым сегментам памяти.

 

Контроль доступа в операционных системах семейства Windows NT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вопросы для самопроверки

1.Основные требования к защищенной операционной системе.

2. Сущность организации комплексного подхода защиты информации в системе.

3.Определите понятия право доступа и привилегия.

4. Назначение списка управления доступом.

5. Что такое маска доступа.


Поделиться:



Последнее изменение этой страницы: 2019-03-22; Просмотров: 388; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.017 с.)
Главная | Случайная страница | Обратная связь