Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Защитные механизмы операционных систем






 

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

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

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

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

Результат шифрования зависит не только от введенного пароля, но и от случайной последовательности битов, называемой привязкой (переменная salt) для исключения проблемы совпадающих паролей. Модифицированный алгоритм DES выполняется, имея входное значение в виде 64-битового блока нулей, с использованием пароля в качестве ключа, а на каждой следующей итерации входным параметром служит результат предыдущей итерации. Всего процедура повторяется 25 раз. Полученное 64-битовое значение преобразуется в 11 символов и хранится рядом с открытой переменной salt. В операционной системе Windows NT преобразование исходного пароля также осуществляется многократным применением алгоритма DES и алгоритма MD4. В процессе аутентификации представленный пользователем пароль кодируется и сравнивается с паролем, хранящимся на диске.

При удаленном доступе к системе нежелательно передавать пароль по сети в открытом виде. Одним из типовых решений является использование криптографических протоколов, например, протокола опознавания с подтверждением установления связи путем вызова – CHAP (Challenge Handshake Authentication Protoco l). Опознавание достигается сервером путем проверки пароля пользователя, осуществляющего к нему доступ. Пользователь инициирует диалог, передавая серверу свой идентификатор. Сервер посылает пользователю запрос (вызов), состоящий из идентифицирующего кода, случайного числа и имени узла сервера или имени пользователя. В ответ компьютер пользователя посылает сообщение, зашифрованное с помощью алгоритма одностороннего хеширования (например, алгоритма MD5). После получения ответа сервер при помощи той же функции с теми же аргументами шифрует собственную версию пароля пользователя. В случае совпадения результатов вход в систему разрешается. Незашифрованный пароль при этом по каналу связи не посылается.

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

После успешной регистрации система должна осуществлять авторизацию (authorization) – предоставление субъекту (процессам, пользователям) прав на доступ к объекту (ресурсам системы)[3]. Средства авторизации осуществляют контроль доступа пользователей к ресурсам системы и контроль возможности выполнения пользователем различных системных функций. Система контроля базируется на общей модели, которая называется матрицей доступа.

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

Различают два способа управления доступом:

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

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

- субъект может читать информацию только из объекта, уровень секретности которого не выше уровня секретности субъекта;

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

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

В модели дискреционного доступа используется понятие домена безопасности (protection domain). Домен определяет набор объектов и типов операций, которые могут производиться над объектом. Возможности выполнения операций над объектом определяют права доступа; каждое право представляет собой упорядоченную пару < object-name, rights – set >. Таким образом, домен определяет набор прав доступа. Например, если домен D имеет права доступа < f ile F, { read, write }> это означает, что процесс, выполняемый в домене D, может читать или писать в файл F, но не может выполнять других операций над этим объектом.

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

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

- каждый процесс может быть доменом, в этом случае набор доступных объектов определяется идентификацией процесса;

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

В большинстве операционных систем процесс выполняется в режиме ядра (kernel mode), поэтому он может выполнять привилегированные инструкции и иметь полный контроль над компьютерной системой. Если процесс выполняется в пользовательском режиме, он может вызывать только непривилегированные инструкции, следовательно, может выполняться только внутри определенного пространства памяти. Наличие этих двух режимов позволяет защитить ядро операционной системы (kernel domain) от пользовательских процессов (user domain). В мультипрограммных системах двух доменов недостаточно, так как появляется необходимость защиты пользователей друг от друга. В операционной системе UNIX домен связан с пользователем. Каждый пользователь обычно работает со своим набором объектов

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

Каждый столбец в матрице может быть реализован как список доступа для одного объекта (access control listACL) и пустые клетки могут не учитываться. В результате для каждого объекта образуется список упорядоченных пар < domain, rights-set >, который определяет все домены с непустыми наборами прав для данного объекта. Элементами списка могут быть процессы, пользователи или группы пользователей. В модели часто используется предоставление доступа по умолчанию для пользователей, права которых не указаны. Например, в UNIX все субъекты-пользователи разделены на три группы (владелец, группа и остальные), и для членов каждой группы контролируются операции чтения, записи и исполнения (rwx). В результате образуется ACL – 9-битовый код, который является атрибутом разнообразных объектов UNIX.

Каждая строка матрицы представляет собой субъект. Каждый субъект хранит список объектов и список допустимых операций для каждого объекта. Такой способ хранения назвали «мандаты» или «перечни возможностей» (capability list). Каждый пользователь обладает несколькими мандатами и может иметь право передавать их другим. Мандаты могут быть рассеяны по системе, поэтому представляют более серьезную угрозу для безопасности, чем списки контроля доступа и их хранение должно быть тщательно продумано.

Иногда для контроля доступа используется комбинированный способ. Например, в UNIX на этапе открытия файла происходит анализ ACL (операция open). В случае благоприятного исхода файл заносится в список открытых файлов, и при последующих операциях чтения-записи проверки прав доступа не происходит. Список открытых файлов соответствует capability list.

Иногда для контроля доступа используется схема lock-key, которая является компромиссом между списками прав доступа и перечнями возможностей. В этой схеме каждый объект имеет список уникальных битовых шаблонов (patterns), называемых locks. Аналогично каждый домен имеет список уникальных битовых шаблонов, называемых ключами (keys). Процесс, выполняющийся в домене, может получить доступ к объекту, только если домен имеет ключ, который соответствует одному из шаблонов объекта. Как и в случае мандатов, список ключей для домена должен управляться ядром операционной системы. Пользователям не разрешается проверять или модифицировать списки ключей (шаблонов).

В большинстве операционных систем для определения домена применяются идентификаторы пользователей. Переключение между доменами происходит при смене пользователей. Если большому количеству пользователей требуются определенные привилегии, то используются дополнительные механизмах смены домена. Например, для того чтобы получить доступ к сети рядовому пользователю в операционной системе UNIX предусмотрена для процессов установка бита set-uid. Сетевая программа после установки в ней бита получает привилегии создателя (а не пользователя), заставляя домен меняться на время своего исполнения.

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

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

- вход или выход из системы;

- операции с файлами (открыть, закрыть, переименовать, удалить);

- обращение к удаленной системе;

- смена привилегий или иных атрибутов безопасности (режима доступа, уровня благонадежности пользователя и пр.).

Примеры решений в области реализации механизмов защиты:

- разделение команд по уровням привилегий;

- сегментация адресного пространства процессов и организация защиты сегментов;

- защита процессов от взаимного влияния друг на друга за счет выделения каждому процессу личного виртуального пространства;

- особая защита ядра;

- контроль повторного использования объекта;

- наличие средств управления доступом;

- структурированность системы, явное выделение надежной вычислительной базы (совокупности защищенных компонентов), обеспечение компактности этой базы;

- следование принципу минимизации привилегий – каждому компоненту дается ровно столько привилегий, сколько необходимо для выполнения им своих функций;

- построение защищенной файловой системы.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.