Основной единицей защиты является сегмент. Сегменты, определенные в дескрипторных таблицах, теоретически адресуемые. Однако выбранный сегмент может быть недоступным для некоторых операций из-за дополнительных проверок защиты осуществляемых процессором. При каждом обращении к сегменту проверяются атрибуты защиты. В их число входят уровень привилегий, предел, тип сегмента и права.
Уровни привилегий используются для защиты сегментов ОС и сегментов отдельных задач от несанкционированного доступа со стороны других пользовательских задач.
Предел определяет границы сегмента. С его помощью процессор обнаруживает такие распространенные ошибки, как переполнение стека, неверные указатели и индексы массивов, неправильные адреса вызовов и переходов.
Тип сегмента помогает процессору проверять соответствие сегмента исполняемой команде. В частности, в сегмент кода нельзя записывать, а с сегментом таблицы LDT и сегментом TSS нельзя явно производить операции считывания, записи и выполнения.
Права, которыми может быть помечен дескриптор, ограничивают множество операций, которое можно производить с его сегментом. Например, исполняемый сегмент кода дополнительно может быть отмечен как читаемый, а доступный для чтения сегмент данных как сегмент с разрешенной записью.
Заметим, что в случае разделения сегментов различные дескрипторы одного и того же сегмента, т.е. синонимы, могут иметь различные атрибуты защиты, позволяя, например, одной задаче считывать и записывать, а другой только считывать. Синонимы позволяют операционной системе преодолевать механизм защиты, если это необходимо.
Рассмотрим отдельные аспекты защиты подробнее.
1. Проверка привилегированности сегмента назначения при межсегментных переходах.
В защищенном режиме для индивидуальной защиты сегментов используют уровни привилегий.
Привилегии - это свойство, которое определяет, какие программы можно выполнять и к каким данным возможен доступ в каждый конкретный момент времени. Безопасность системы поддерживается на уровне целостности информации. Привилегии и защита стали необходимы программистам в условиях множественного использования оборудования. Концепция привилегий является центральной для нескольких аспектов защиты. В приложении к процедурам привилегии являются степенью доверия данной процедуре, при которой не делаются ошибки, которые могут повлиять на другие процедуры и данные. В приложении к данным привилегии являются той степенью защиты, которой следует обладать структуре данных, чтобы не пострадать от процедуры с меньшей степенью доверия. Таким образом, уровень привилегий программы определяет конкретное подмножество сегментов адресного пространства, к которому программа может обращаться. Попытка задачи использовать сегмент с более высоким уровнем привилегий приводит к особому случаю защиты.
Привилегии устанавливаются программами операционной системы в байте доступа дескриптора сегмента при заполнении дескрипторных таблиц. В защищенном режиме процессора установлены четыре уровня привилегий: 0, 1, 2 и 3 (0 - самый привилегированный). Уровни привилегий удобно интерпретировать в виде колец защиты. Чем выше уровень привилегий, тем более привилегированна программа и тем защищенные данные.
Уровни привилегий с номерами 0, 1, 2 отводятся для системных программ ОС, которые в зависимости от требований к их защищенности можно разделить на три уровня. Наиболее защищенная часть - ядро операционной системы - имеет уровень 0. В ядро входит часть операционной системы, обеспечивающая инициализацию работы компьютера, управление доступом к памяти, защиту и ряд других важных функций, нарушение которых препятствует правильной работе процессора. Основная часть программ операционной системы (утилиты) должна иметь уровень 1. К уровню 2 обычно относят ряд служебных программ операционной системы, например, драйверы внешних устройств, системы управления базами данных, специализированные системы программирования и др. Пользовательским программам, как правило, присваивается 3 (низший) уровень привилегий.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.