
- •Конспект лекций по курсу операционные системы
- •1.2. Операционная среда
- •1.4. Процессы и потоки
- •1.5. Файлы и файловые системы
- •1.6. Память
- •2. Управление процессами 2.1. Концепция процесса
- •2.2. Идентификатор, дескриптор и контекст процессов.
- •2.5. Понятие приоритета и очереди процессов
- •2.8. Понятие событийного программирования
- •2.9. Средства коммуникации процессов
- •2.10. Способы реализации мультипрограммирования.
- •3. Управление памятью 3.1. Организация памяти. Адресное пространство.
- •3.2. Методы управления памятью
- •3.3. Принципы организации виртуальной памяти
- •3.4. Сегментная организация памяти
- •3.5. Страничная организация памяти
- •3.6. Ускорение работы страничной памяти
- •3.7. Принципы замещения страниц
- •3.8. Алгоритмы замещения страниц
- •4. Управление вводом-выводом 4.1. Прерывания от внешних устройств Смотри пункт 1.3 4.2. Классификация устройств ввода-вывода Классификация по способу вывода
- •4.3. Основные принципы организации ввода — вывода
- •4.6. Закрепление устройств, общие устройства ввода-вывода.
- •4.7. Основные системные таблицы ввода-вывода
- •4.8. Синхронный и асинхронный ввод вывод
- •4.9. Организация внешней памяти на магнитных дисках
- •4.10. Кэширование операций ввода вывода при работе с накопителями на магнитных дисках
- •5. Принципы построения и классификация 5.1. Принципы построения
- •5.4. Классификация ос
- •6. Защита от сбоев и несанкционированного доступа
- •6.1. Анализ угроз и уязвимостей ос
- •6.2. Основы криптографии
- •6.3. Механизмы защиты
- •6.4. Надежные вычислительные системы
- •6.6. Инсайдерские атаки
- •6.10. Средства зашиты от вредоносных программ
6.3. Механизмы защиты
Механизмы защиты должны обеспечивать ограничение доступа субъектов к объектам: во-первых, доступ к объекту должен быть разрешен только для определенных субъектов, во-вторых, даже имеющему доступ субъекту должно быть разрешено выполнение только определенного набора операций. Для обеспечения защиты могут применяться следующие механизмы:
-
кодирование объектов
-
сокрытие местоположения объектов
-
инкапсуляция объектов.
Кодирование предполагает шифрование информации, составляющей объект. Любой субъект может получить доступ к информации, но воспользоваться ею может лишь привилегированный субъект, знающий ключ к коду. Другой вариант защиты через кодирование предполагает, что расшифровка информации производится системными средствами, но только для привилегированных субъектов. Кодирование не защищает объект от порчи, поэтому оно может использоваться только для защиты узкого класса специфических объектов или в качестве дополнительного средства в сочетании с другими механизмами защиты. Рассмотрение способов кодирования не входит в задачи нашего пособия, оно должно происходить при изучении курса Защита информации. Сокрытие местоположения объекта предполагает, что адрес объекта в памяти системы известен только тем субъектам, которые имеют право доступа к объекту. Такие привилегированные субъекты могут выполнять любые операции над объектом. Непривилегированные субъекты могут запрашивать доступ к объекту и получать некий внутренний идентификатор объекта. Используя этот идентификатор, они могут выполнять над объектом ограниченный набор операций, но не непосредственно, а обращаясь к привилегированным субъектам. Примером такого механизма является сокрытие дескрипторов ресурсов. Местоположение адрес в памяти дескрипторов известно ОС, прикладные же процессы получают манипулятор ресурса, который, как правило, адресует дескриптор только косвенно через таблицы. Если сокрытие является единственным механизмом защиты, то защиту нельзя назвать непроницаемой. Субъект может получить адрес объекта случайно или намеренно получив доступ к внутренней документации. Инкапсуляция предполагает полное закрытие для субъектов возможности оперирования с внутренним содержимым объектов. Субъект даже не должен знать структуры этого содержимого. Для каждого объекта, однако, определено множество допустимых операций над ним, которые реализуются монитором объекта. Объект, таким образом, предстает в виде черного ящика с четко специфицированными входами и выходами и с абсолютно непроницаемыми стенками. Механизм инкапсуляции может обеспечивать наиболее полную защиту, но его реализация требует решения двух важных вопросов: во-первых, как обеспечить непрозрачность стенок, во-вторых, как принимать решения о предоставлении доступа или об отказе в нем. Непроницаемость ящика обеспечивается чаще всего средствами защиты памяти. Область памяти, в которой расположен объект, делается недоступной для любых субъектов, кроме монитора, реализующего операции над объектом. Как мы знаем см. главу 3, защита памяти поддерживается аппаратными средствами вычислительных систем, и защита объектов, таким образом, представляется реализованной на аппаратном уровне. Надежность такой защиты, однако, в значительной степени иллюзорна. Во-первых, память также представляет собой объект, нуждающийся в защите. От того, насколько сама защита памяти защищена от перепрограммирования ее произвольным субъектом, зависит эффективность всей системы защиты в целом. Во-вторых, аппаратно поддерживается только конечное число уровней защиты памяти, на практике же используются только два уровня: доступ к ограниченному подмножеству адресов и полный доступ. Если в системе имеется большое количество объектов разного типа, то каждый тип обеспечивается своим монитором. Если все мониторы работают с полным доступом, то нет гарантии в том, что монитор в результате, например, ошибки в нем не воздействует на объект, не предусмотренный в данной операции. Наиболее надежным образом защита памяти достигается при помощи изоляции адресных пространств процессов и мониторов. Если таблицы дескрипторов ресурсов и сами ресурсы располагаются в отдельных адресных пространствах, то процесс просто не может получить к ним доступа, а может воздействовать на них только косвенно, передавая в системном вызове индекс элемента в недоступной для него таблице. Адресные пространства различных мониторов тоже могут быть изолированы друг от друга, что при надежной изоляции исключит воздействие ошибки в мониторе на другие ресурсы.