Что такое кольца защиты процессора

Кольца защиты операционной системы

Что такое кольца защиты процессора. Смотреть фото Что такое кольца защиты процессора. Смотреть картинку Что такое кольца защиты процессора. Картинка про Что такое кольца защиты процессора. Фото Что такое кольца защиты процессораКольца защиты — архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий.

Уровни привилегий программ

Кольцо 0 — ядро операционной системы, системные драйверы
Кольцо 1 — программы обслуживания аппаратуры, драйверы, программы, работающие с портами ввода/вывода компьютера
Кольцо 2 — системы управления базами данных, расширения операционной системы
Кольцо 3 — прикладные программы, запускаемые пользователем

Уровни привилегий также часто называют кольцами защиты, которые изображаются в виде вложенных окружностей. Наиболее привилегированный уровень соответствует окружности с наибольшей степенью вложенности. Большинство современных ядер для архитектуры x86 используют всего два уровня привилегий — 0 и 3.

Поддержка нескольких колец защиты была одной из революционных концепций, включённых в ОС Multics, предшественника сегодняшних UNIX-подобных ОС. Однако, большинство UNIX-систем используют только 2 кольца, даже если аппаратные средства поддерживают больше режимов центрального процессора. Многие современные архитектуры центральных процессоров (включая популярную архитектуру x86) включают некоторые формы защиты. Но несмотря на это, операционная система Windows NT, также как и UNIX, полностью не используют эти возможности.

Механизм колец строго ограничивает пути, с помощью которых управление можно передать от одного кольца к другому, а также предписывает ограничения на операции доступа к памяти, которые могут быть произведены внутри кольца. Обычно существует некоторая инструкция (шлюз), которая передаёт контроль из менее защищённого в более защищённое (с меньшим номером) кольцо; это известно как запрос супервизора во многих операционных системах, использующих кольцевую архитектуру. Этот механизм разработан для того, чтобы ограничить возможности случайного или намеренного нарушения безопасности.

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

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

Гипервизор (англ. Hypervisor) или Монитор виртуальных машин (в компьютерах) — программа или аппаратная схема, обеспечивающая или позволяющая одновременное, параллельное выполнение нескольких операционных систем на одном и том же хост-компьютере. Гипервизор также обеспечивает изоляцию операционных систем друг от друга, защиту и безопасность, разделение ресурсов между различными запущенными ОС и управление ресурсами.

Источник

Кольца защиты

Что такое кольца защиты процессора. Смотреть фото Что такое кольца защиты процессора. Смотреть картинку Что такое кольца защиты процессора. Картинка про Что такое кольца защиты процессора. Фото Что такое кольца защиты процессора

Что такое кольца защиты процессора. Смотреть фото Что такое кольца защиты процессора. Смотреть картинку Что такое кольца защиты процессора. Картинка про Что такое кольца защиты процессора. Фото Что такое кольца защиты процессора

Кольца защиты — архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий можно изобразить в виде нескольких концентрических кругов. В этом случае системный режим (режим супервизора или нулевое кольцо, так называемое «кольцо 0»), обеспечивающий максимальный доступ к ресурсам, является внутренним кругом, тогда как режим пользователя с ограниченным доступом — внешним. Традиционно семейство микропроцессоров x86 обеспечивает четыре кольца защиты.

Архитектуре колец защиты обычно противопоставляют системы, основанные на мандатной адресации, обеспечивающей доступ к объекту по его описанию (англ. Capability-based security ).

Содержание

Реализация

Поддержка нескольких колец защиты была одной из революционных концепций, включённых в операционную систему Multics, предшественника сегодняшних UNIX-подобных операционных систем. Однако, большинство UNIX-систем используют только 2 кольца, даже если аппаратные средства поддерживают больше режимов центрального процессора.

Многие современные архитектуры центральных процессоров (включая популярную архитектуру x86) включают некоторые формы защиты. Но несмотря на это, операционная система Windows NT, также как и UNIX, полностью не используют эти возможности. Предшественница Windows NT операционная система OS/2 использовала три кольца: кольцо 0 для кода ядра и драйверов устройств, кольцо 2 для привилегированного кода (программы с доступом к операциям ввода-вывода), и кольцо 3 для непривилегированного кода (почти все пользовательские программы).

Оригинальная система Multics имела восемь колец защиты, но многие современные системы имеют, как правило, меньше. Процессор всегда знает, в каком кольце исполняется код, благодаря специальным машинным регистрам. В некоторых системах области виртуальной памяти также связаны с номерами колец, и более привилегированному кольцу даются специальные права (такие, как адресация реальной памяти в обход механизма виртуальной памяти).

Механизм колец строго ограничивает пути, с помощью которых управление можно передать от одного кольца к другому, а также предписывает ограничения на операции доступа к памяти, которые могут быть произведены внутри кольца. Обычно существует некоторая инструкция («ворота»), которая передаёт контроль из менее защищённого в более защищённое (с меньшим номером) кольцо; это известно как запрос супервизора во многих операционных системах, использующих кольцевую архитектуру. Этот механизм разработан для того, чтобы ограничить возможности случайного или намеренного нарушения безопасности.

Защита кольца может сочетаться с режимами процессора (режим master/kernel/privileged против режима slave/user/unprivileged) в некоторых системах. Операционные системы, выполняющиеся на аппаратном обеспечении, поддерживающем такие режимы, могут использовать оба способа защиты или только один из них.

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

Режим супервизора

Термином режим супервизора ( Supervisor mode ) разработчики и производители процессоров как правило называют наиболее привилегированный режим работы процессора. Чаще всего этот режим используется для выполнения кода ядра операционной системы. Обычно этот режим по функциональности соответствует 0-му кольцу защиты (Ring 0) в x86 процессорах, то есть предоставляет неограниченный доступ ко всем возможностям процессора, работе с периферией и так далее. Код, работающий в данном режиме, как правило, занимается управлением доступными аппаратными ресурсами, разделением их использования между отдельными задачами (процессами) и так далее, что и привело к такому названию режима.

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

Режим гипервизора

Некоторые современные процессоры могут предоставлять дополнительный режим работы, известный как режим гипервизора ( Hypervisor mode ). Как правило данный режим реализуется с целью поддержки технологий виртуализации на уровне аппаратного обеспечения. Это позволяет достигнуть не только одновременного выполнения нескольких задач, но и одновременного выполнения нескольких операционных систем на одном процессоре без существенных потерь производительности и без изменения самих операционных систем. Как правило при использовании данного режима полный доступ ко всем ресурсам возможен именно из режима гипервизора. В таком случае режим супервизора уже не является максимально привилегированным и ограничивает многие привилегированные операции. При выполнении привилегированных операций операционными системами в режиме супервизора управление передается специальной программе — гипервизору. Гипервизор осуществляет арбитраж использования имеющихся аппаратных ресурсов несколькими операционными системами аналогично тому как сами операционные системы осуществляют распределение ресурсов между несколькими задачами. По сути, гипервизор обычно является небольшим ядром, которое управляет распределением ресурсов между несколькими операционными системами и работает уровнем ниже, чем сами операционные системы. В силу этого в терминологии x86 данный режим как правило называют кольцом −1 (Ring −1).

Режим системного управления

Джоанна Рутковска опубликовала информацию об уязвимости «Blue Pill» позволяющей выполнить произвольный код в режиме SMM.

Модель взаимодействия между ЦП и уровнями абстракции ОС

Впервые режим SMM был реализован в МП 80386SL и i486SL. Начиная с Intel-486, этот режим стал обязательным элементом архитектуры IA-32. Режим SMM предназначен для выполнения некоторых действий с возможностью их полной изоляции от операционной системы. Процессор переходит в этот режим только аппаратно по сигналу SMI#. Никакого программного способа для перехода в этот режим не предусмотрено. При возникновении SMI прерывания код SMI обработчика выполняется в отдельном адресном пространстве (SMRAM). На время перехода в SMI режим контекст прерванного процесса сохраняется. Во время выполнения SMM обработчика все прерывания отключены. Код SMI обработчика может выполняться только в SMRAM памяти.

В 2006 году Лоик Дюфло (Loïc Duflot) представил очень любопытную атаку против механизма уровней безопасности OpenBSD, которая использовала режим SMM. В то время SMM режим не был защищен и существовала возможность записать в SMRAM произвольный код. Но затем производители систем начали защищать режим SMM. Для хранения исполняемого в SMM кода была выделена специальная область памяти, названная SMRAM, которая получила особую защиту со стороны чипсета (Memory Controller Hub, если быть точным). На большинстве современных систем уже весьма нетривиально выполнить код с привилегиями SMM. Для этого нужно найти «дыру» в чипсете или BIOS (даже если у нас есть доступ на уровне ядра). На самом деле, на Black Hat 2008 в Лас-Вегасе Шерри Спаркс (Sherri Sparks) и Шон Эмблтон (Shawn Embleton) сделали презентацию о руткитах SMM, но при этом ясно дали понять, что их руткиты можно загрузить только на старых системах (до 2006 года). Также на конференции обсуждалась «дыра» в BIOS Intel, которая позволяла выполнять произвольный код в режиме SMM. Затем были обнаружены ещё два способа пробиться в режим SMM на различных системах. Другая атака, которую обнаружили в конце 2008 года, срабатывала на большом количестве систем Intel (и потенциально на машинах со старыми BIOS).

Руткиты SMM (или руткиты кольца −2) требуют доступа к сильно защищённой памяти SMM, и на большинстве современных систем атакующему придётся использовать «дыры» (найти их весьма нетривиально).

Атаки SMM ограничиваются версией BIOS (или линейкой продуктов BIOS) и семейством чипсетов, например, линейкой 3- или 4- чипсетов Intel.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Кольца защиты (Операционные Системы)

Кольца защиты — архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий можно изобразить в виде нескольких концентрических кругов. В этом случае системный режим (режим супервизора или нулевое кольцо, так называемое «кольцо 0»), обеспечивающий максимальный доступ к ресурсам, является внутренним кругом, тогда как режим пользователя с ограниченным доступом — внешним

Содержание

Уровни привилегий программ

Что такое кольца защиты процессора. Смотреть фото Что такое кольца защиты процессора. Смотреть картинку Что такое кольца защиты процессора. Картинка про Что такое кольца защиты процессора. Фото Что такое кольца защиты процессора

Как распределить привилегии программ в операционной системе? Можно использовать, например, такое распределение: (см. Рис. 1)

Уровни привилегий также часто называют кольцами защиты, которые изображаются в виде вложенных окружностей. Наиболее привилегированный уровень соответствует окружности с наибольшей степенью вложенности. Большинство современных ядер для архитектуры x86 используют всего два уровня привилегий — 0 и 3.

Выполнение порядка 15 инструкции (а всего их нескольких десятков) возможно только в кольце 0. Другие инструкции имеют ограничения, связанные с допустимыми операндами. Если бы не существовало этих ограничений, то невозможно бы было обеспечить функционирование механизмов защиты, т.к. упомянутые инструкции могут их обойти или привести к другим негативным последствиям. Инструкции, на которые существуют ограничения, могут использоватся только в коде ядра. Попытка их выполнения за пределами нулевого кольца, приведет к исключению #GP (general-protection exception). Точно такое же исключение происходит, например, когда программа пытается обратиться к невалидным адресам памяти. Аналогичным образом, в зависимости от уровня привилегий осуществляется ограничение доступа к памяти и портам ввода / вывода.

Реализация

Что такое кольца защиты процессора. Смотреть фото Что такое кольца защиты процессора. Смотреть картинку Что такое кольца защиты процессора. Картинка про Что такое кольца защиты процессора. Фото Что такое кольца защиты процессора

Поддержка нескольких колец защиты была одной из революционных концепций, включённых в операционную систему Multics, предшественника сегодняшних UNIX-подобных операционных систем. Однако, большинство UNIX-систем используют только 2 кольца, даже если аппаратные средства поддерживают больше режимов центрального процессора. Многие современные архитектуры центральных процессоров (включая популярную архитектуру x86) включают некоторые формы защиты. Но несмотря на это, операционная система Windows NT, также как и UNIX, полностью не используют эти возможности.

Механизм колец строго ограничивает пути, с помощью которых управление можно передать от одного кольца к другому, а также предписывает ограничения на операции доступа к памяти, которые могут быть произведены внутри кольца. Обычно существует некоторая инструкция (шлюз), которая передаёт контроль из менее защищённого в более защищённое (с меньшим номером) кольцо; это известно как запрос супервизора во многих операционных системах, использующих кольцевую архитектуру. Этот механизм разработан для того, чтобы ограничить возможности случайного или намеренного нарушения безопасности.

Защита кольца может сочетаться с режимами процессора (режим master/kernel/privileged против режима slave/user/unprivileged) в некоторых системах. Операционные системы, выполняющиеся на аппаратном обеспечении, поддерживающем такие режимы, могут использовать оба способа защиты или только один из них. (см. Рис. 2) Эффективное использование архитектуры колец защиты требует тесного взаимодействия между аппаратными средствами и операционной системой. Операционные системы, разрабатывающиеся так, чтобы они работали на большом количестве платформ, могут иметь различную реализацию механизма колец на каждой платформе. Часто модель безопасности упрощают до двух уровней доступа: уровня «ядра» и уровня «пользователя», даже если аппаратные средства обеспечивают большую степень детализации уровней выполнения.

Режим супервизора

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

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

Гипервизор

Гипервизор (англ. Hypervisor) или Монитор виртуальных машин (в компьютерах) — программа или аппаратная схема, обеспечивающая или позволяющая одновременное, параллельное выполнение нескольких операционных систем на одном и том же хост-компьютере. Гипервизор также обеспечивает изоляцию операционных систем друг от друга, защиту и безопасность, разделение ресурсов между различными запущенными ОС и управление ресурсами.

Гипервизор также может (и обязан) предоставлять работающим под его управлением на одном хост-компьютере ОС средства связи и взаимодействия между собой (например, через обмен файлами или сетевые соединения) так, как если бы эти ОС выполнялись на разных физических компьютерах.

Гипервизор сам по себе в некотором роде является минимальной операционной системой (микроядром или наноядром). Он предоставляет запущенным под его управлением операционным системам сервис виртуальной машины, виртуализируя или эмулируя реальное (физическое) аппаратное обеспечение конкретной машины. И управляет этими виртуальными машинами, выделением и освобождением ресурсов для них. Гипервизор позволяет независимое «включение», перезагрузку, «выключение» любой из виртуальных машин с той или иной ОС. При этом операционная система, работающая в виртуальной машине под управлением гипервизора, может, но не обязана «знать», что она выполняется в виртуальной машине, а не на реальном аппаратном обеспечении.

Операционные системы на x86

Что такое кольца защиты процессора. Смотреть фото Что такое кольца защиты процессора. Смотреть картинку Что такое кольца защиты процессора. Картинка про Что такое кольца защиты процессора. Фото Что такое кольца защиты процессора

Тип сегментов

Поле TYPE дескриптора определяет способ, которым можно использовать тот или иной сегмент. Разделение сегментов на типы позволяет защититься от случайного или преднамеренного использования сегментов не по назначению.

Сегмент кода может быть закрыт для чтения установкой бита R в байте доступа. Такие сегменты можно только выполнять, но нельзя читать. В сегмент кода нельзя записывать какие-либо данные. В регистр CS можно загружать только такие селекторы, которые относятся к сегментам кода.

Сегменты данных могут быть закрыты для записи установкой бита W в байте доступа. Сегменту данных нельзя передать управление, загрузив его селектор в регистр CS.

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

Границы сегментов

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

Процессор i80286 позволяет создавать сегменты любого размера в пределах 64 килобайт (процессоры i80386 и i80486 могут работать с сегментами размером 4 гигабайта). Кроме того, он следит за тем, чтобы при адресации памяти не происходил выход за границы сегмента.

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

Интерпретация поля предела зависит от состояния бита D поля доступа. Для сегментов стеков необходимо устанавливать поле D равным 1. В этом случае попытка записи в переполненный стек вызовет прерывание программы. В ответ на это прерывание операционная система может, например, выделить дополнительную память для стека.

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

Источник

Кольца защиты (безопасность)

Что такое кольца защиты процессора. Смотреть фото Что такое кольца защиты процессора. Смотреть картинку Что такое кольца защиты процессора. Картинка про Что такое кольца защиты процессора. Фото Что такое кольца защиты процессора

Кольца защиты — архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий можно изобразить в виде нескольких концентрических кругов. В этом случае системный режим (режим супервизора или нулевое кольцо, т.н. «кольцо 0»), обеспечивающий максимальный доступ к ресурсам, является внутренним кругом, тогда как режим пользователя с ограниченным доступом — внешним. Традиционно семейство микропроцессоров

Архитектуре колец защиты обычно противопоставляют системы, основанные на «возможностях» (англ. Capability-based security ).

Содержание

Реализация

Поддержка нескольких колец защиты была одной из революционных концепций, включённых в операционную систему

Многие современные архитектуры центральных процессоров (включая популярную архитектуру Windows NT, также как и OS/2 использовала три кольца: кольцо 0 для кода ядра и драйверов устройств, кольцо 2 для привилегированного кода (программы с доступом к операциям ввода-вывода), и кольцо 3 для непривилегированного кода (почти все пользовательские программы).

Оригинальная система Multics имела восемь колец защиты, но многие современные системы имеют как правило меньше. Процессор всегда знает в каком кольце исполняется код, благодаря специальным машинным регистрам. В некоторых системах области виртуальной памяти также связаны с номерами колец, и более привилегированному кольцу даются специальные права (такие как адресация реальной памяти в обход механизма виртуальной памяти).

Механизм колец строго ограничивает пути, с помощью которых управление можно передать от одного кольца к другому, а также предписывает ограничения на операции доступа к памяти, которые могут быть произведены внутри кольца. Обычно существует некоторая инструкция («ворота»), которая передаёт контроль из менее защищённого в более защищённое (с меньшим номером) кольцо; это известно как запрос супервизора во многих операционных системах, использующих кольцевую архитектуру. Этот механизм разработан для того, чтобы ограничить возможности случайного или намеренного нарушения безопасности.

Защита кольца может сочетаться с режимами процессора (режим master/kernel/privileged против режима slave/user/unprivileged) в некоторых системах. Операционные системы, выполняющиеся на аппаратном обеспечении, поддерживающем такие режимы, могут использовать оба способа защиты или только один из них.

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

Режим супервизора

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

Термином режим супервизора разработчики и производители процессоров как правило называют наиболее привилегированный режим работы процессора. Чаще всего этот режим используется для выполнения ядра операционной системы. Обычно этот режим по функциональности соответствует 0-му кольцу защиты (Ring 0) в x86 процессорах, т.е. предоставляет неограниченный доступ ко всем возможностям процессора, работе с периферией и так далее. Код, работающий в данном режиме, как правило, занимается управлением доступными аппаратными ресурсами, разделением их использования между отдельными задачами (процессами) и так далее, что и привело к такому названию режима.

Режим гипервизора

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *