- •Безопасность
- •Аппаратное обеспечение
- •Программное обеспечение
- •Линии связи и сети
- •15.2. Защита
- •Защита памяти
- •Контроль доступа, ориентированный на пользователя
- •Контроль доступа, ориентированный на данные
- •15.3. Взломщики
- •Методы вторжения
- •Защита паролей
- •Уязвимость паролей
- •Контроль доступа
- •Стратегии выбора паролей
- •Выявление вторжений
- •15.4. Зловредное программное обеспечение
- •Зловредные программы
- •Логические бомбы
- •Троянские кони
- •Природа вирусов
- •Виды вирусов
- •Макровирусы
- •Подходы к борьбе с вирусами
- •Обобщенное дешифрование
- •Цифровая иммунная система
- •15.5. Системы с доверительными отношениями
- •Защита от троянских коней
- •15.6. Безопасность операционной системы windows 2000
- •15.7. Резюме, ключевые термины и контрольные вопросы
- •Контрольные вопросы
- •15.8. Рекомендуемая литература
- •Приложение. Шифрование
- •Стандартное шифрование
- •Стандарт шифрования данных
- •Тройной алгоритм шифрования данных
- •Улучшенный стандарт шифрования
- •Шифрование с открытым ключом
- •А.2. Архитектура протоколов tcp/ip
- •Уровни протокола tcp/ip
- •Приложения tcp/ip
- •Б.1. Мотивация
- •Б.З. Преимущества объектно-ориентированного подхода
- •Б.2. Объектно-ориентированные концепции
- •Структура объектов
- •Классы объектов
- •Наследование
- •Полиморфизм
- •Включение
- •Список литературы
15.2. Защита
В основе многозадачности лежит способность системы предоставлять пользователям возможность совместного использования ресурсов. Объектом совместного использования является не только процессор, но и такие элементы, как:
память;
устройства ввода-вывода, например диски и принтеры;
программы;
данные.
Возможность совместного использования ресурсов предполагает их защиту. В [PFLE97] указано, что операционная система может обеспечить разные степени защиты.
Отсутствие защиты. Этот вариант подходит, если соответствующие процедуры выполняются во времени раздельно.
Изоляция. При этом подходе каждый процесс работает отдельно от других процессов, не используя совместно с ними никаких ресурсов и не обмениваясь информацией. Каждый процесс имеет свое собственное адресное пространство, свои файлы и другие объекты.
Полное разделение или полное его отсутствие. Владелец объекта (например, файла или сегмента памяти) объявляет его открытым либо закрытым. В первом случае доступ к объекту может получить любой процесс; во втором — доступ к этому объекту предоставляется только его владельцу.
Совместное использование с ограничением доступа. Операционная система проверяет дозволенность доступа каждого отдельного пользователя к каждому отдельному объекту. В этом смысле операционная система выступает в роли стража, гарантируя, что доступ к объектам получат только авторизованные пользователи.
Совместное использование с помощью динамических возможностей. Этот вариант расширяет концепцию контроля доступа, позволяя динамически создавать права совместного использования объектов.
Ограниченное использование объекта. При этой форме защиты ограничивается не столько доступ к объекту, сколько его использование. Например, пользователю может быть разрешено просматривать важный документ, но не распечатывать его. Приведем еще один пример: пользователь имеет доступ к базе данных, при котором он может извлекать статистические сводки, но не имеет возможности определять значения отдельных величин.
Выше перечислены различные варианты защиты в порядке возрастания сложности их реализации, что соответствует качеству предоставляемой защиты. Конкретная операционная система может предоставлять защиту разной степени для разных объектов, пользователей или приложений.
Требуется, чтобы в операционной системе поддерживался баланс между возможностями совместного использования компонентов компьютерной системы, способствующего повышению эффективности ее использования, и степенью защищенности ресурсов отдельных пользователей. В этом разделе рассмотрены некоторые механизмы, с помощью которых в операционной системе обеспечивается защита.
Защита памяти
В многозадачной среде защита памяти становится важной проблемой. Здесь возникают вопросы, связанные не только с безопасностью, но и с правильной работой различных активных процессов. Если один из процессов неосторожно запишет что-то в область памяти другого процесса, то этим он может нарушить работу последнего.
Разделение пространства памяти между различными процессами легко осуществляется при использовании схемы виртуальной памяти. Эффективным средством управления основной памятью является сегментная или страничная организация памяти, либо комбинированный вариант, в котором сочетаются оба вида организации. Если нужно обеспечить полную изоляцию, то операционной системе достаточно просто убедиться, что каждый сегмент или каждая страница доступна только тому процессу, которому она предоставлена. Этого легко добиться, потребовав, чтобы в таблицах страниц и/или сегментов не было повторяющихся элементов.
Если совместное использование разрешено, то один и тот же сегмент, или страница может появиться в нескольких таблицах. Этот тип совместного использования легче всего осуществить в системе, поддерживающей сегментацию или комбинацию сегментации с разбивкой на страницы, В этом случае сегментная структура видима приложению, которое может объявлять отдельные сегменты доступными или недоступными для совместного использования. В среде с чисто страничной организацией памяти труднее провести черту между двумя областями памяти, потому что структура памяти прозрачна для приложения.
Примером аппаратной поддержки защиты памяти является система защиты, установленная на машинах семейства IBM System/370, работающих под управлением операционной системы OS/390, На этих машинах каждому страничному блоку основной памяти отвечает 7-битовый управляющий ключ, значение которого может устанавливаться операционной системой. Два бита этого ключа указывают на то, делались ли запросы и изменения страницы, занимающей данный блок; эти биты используются алгоритмом замещения страниц. Остальные биты, четыре из которых являются разрядами управления доступом и один — разрядом защиты от выборки, используются механизмом защиты. Чтобы получить разрешение на доступ к какой-либо странице, в обращениях процессора к памяти и в обращениях устройства прямого доступа к памяти (Direct Memory Access — DMA) должен использоваться соответствующий ключ. В разряде защиты от выборки указывается, дает ли ключ управления доступом право записи или право чтения и записи. В процессоре имеется регистр под названием "слово состояния программы" (Program Status Word — PSW), который содержит управляющую информацию, имеющую отношение к выполняющемуся в данное время процессу. Составляющим элементом этого слова является 4-битовый ключ PSW. Если процесс пытается получить доступ к странице или начинает операцию с участием прямого доступа к памяти, текущий ключ PSW сравнивается с кодом доступа. Разрешение на запись будет получено только при условии совпадения ключей. Если бит выборки установлен, то ключ PSW должен соответствовать ключу доступа для чтения.