Контроль доступа к файлам. Механизм контроля доступа и защиты от сбоев


 

Файлы – это частный, хотя и самый популярный, вид разделяемых ре­сурсов, доступ к которым операционная система должна контролировать. Существуют и другие виды ресурсов, с которыми пользователи работают в режиме совместного использования. Прежде всего, это различные внешние устройства: принтеры, модемы, графопостроители и т. п. Область памяти, используемая для обмена данными между процессами, также является при­мером разделяемого ресурса. Да и сами процессы в некоторых случаях вы­ступают в этой роли, например, когда пользователи ОС посылают процессам сигналы, на которые процесс должен реа­гировать.

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

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

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

У каждого объекта доступа существует владелец. Владельцем может быть как отдельный пользователь, так и группа пользователей. Владелец объекта имеет право выполнять с ним любые допустимые для данного объ­екта операции. Во многих операционных системах существует особый поль­зователь (superuser, root, administrator), который имеет все права по отноше­нию к любым объектам системы, не обязательно являясь их владельцем. Под таким именем работает администратор системы, которому необходим пол­ный доступ ко всем файлам и устройствам для управления политикой дос­тупа.

Различают два основных подхода к определению прав доступа.

Избирательный доступ имеет место, когда для каждого объекта сам владелец может определить допустимые операции с объектами. Этот подход называется также произвольным (от discretionary – предоставленный на соб­ственное усмотрение) доступом, так как позволяет администратору и вла­дельцам объектов определить права доступа произвольным образом, по их желанию. Между пользователями и группами пользователей в системах с из­бирательным доступом нет жестких иерархических взаимоотношений, то есть взаимоотношений, которые определены по умолчанию и которые нельзя изменить. Исключение делается только для администратора, по умолчанию наделяемого всеми правами.

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

Мандатный способ доступа близок к схемам, применяемым для доступа к секретным документам: пользователь может вхо­дить в одну из групп, отличающихся правом на доступ к документам с соот­ветствующим грифом секретности, например, «для служебного пользования», «секретно», «совер­шенно секретно» и «государственная тайна». При этом пользователи группы «совершенно секретно» имеют право работать с документами «секретно» и «для служебного пользования», так как эти виды доступа разрешены для бо­лее низких в иерархии групп. Однако сами пользователи не распоряжаются правами доступа – этой возможностью наделен только особый чиновник уч­реждения.

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

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

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

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

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

Для файло­вых объектов этот список может включать следующие операции:

- создание файла;

- уничтожение файла;

- открытие файла;

- закрытие файла;

- чтение файла;

- запись в файл;

- дополнение файла;

- поиск в файле;

- получение атрибутов файла;

- установка новых значений атрибутов;

- переименование;

- выполнение файла;

- чтение каталога;

- смена владельца;

- изменение прав доступа.

Набор файловых операций ОС может состоять из большого количества эле­ментарных операций, а может включать всего несколько укрупненных операций. Приведенный выше список является примером первого подхода, который позволяет весьма тонко управлять правами доступа пользователей, но создает значи­тельную нагрузку на администратора. Пример укрупненного подхода демонст­рируют операционные системы семейства UNIX, в которых существуют всего три операции с файлами и каталогами: читать (read, r), писать (write, w) и выполнить (execute, x). Хотя в UNIX для операций ис­пользуется всего три названия, в действительности им соответствует гораздо больше операций. Например, содержание операции выполнить зависит от того, к какому объекту она применяется. Если операция выполнить файл ин­туитивно понятна, то операция выполнить каталог интерпретируется как поиск в каталоге определенной записи. Поэтому администратор UNIX, по сути, располагает большим списком операций, чем это кажется на первый взгляд.

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

В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки — всем пользователям, а на пересечении строк и столбцов указыва­ются разрешенные операции (рис. 6,3).

    modern.txt   win.exe   class. dbf   unix.ppt  
kira   читать   выполнять —   выполнять  
genua   читать   выполнять   —   выполнять читать
nataly   читать   —   —   выполнять читать
victor   Читать писать создать   —  

Рис. 6.3. Матрица прав доступа

Практически во всех операционных системах матрица прав доступа хранится «по частям», то есть для каждого файла или каталога создается так называемый список управления доступом (Access Control List, ACL), в котором описываются права на выполнение операций пользователей и групп пользователей по отношению к этому файлу или каталогу. Список управления доступа является частью характеристик файла или каталога и хранится на диске в соответствующей области, например в индексном дескрипторе inode файловой системы ufs. He все файловые системы поддерживают списки управления доступом, например, его не поддерживает файловая система FAT, так как она разрабатывалась для одно­пользовательской однопрограммной операционной системы MS-DOS, для кото­рой задача защиты от несанкционированного доступа не актуальна.



Дата добавления: 2018-11-26; просмотров: 659;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.012 сек.