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

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

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

Непрочитанное сообщение Olej » 26 июл 2022, 10:10

Как оказывается, сверх колец защиты 0,1,2,3 - описанных в даташитах процессоров, начиная чуть ли не с 286, существуют аппаратные возможности с приоритетами выполнения выше чем уровень ядра операционной системы (кольцо 0).
Изображение
Кольца привилегий архитектуры x86. ME иногда условно относят к кольцу −3, режимы System Management Mode — к кольцу −2, а гипервизор — к кольцу −1. Каждый из перечисленных режимов имеет больше привилегий, чем ядро ОС.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кольца защиты процессора x86

Непрочитанное сообщение Olej » 26 июл 2022, 10:49

Olej писал(а):
26 июл 2022, 10:10
Кольца привилегий архитектуры x86. ME иногда условно относят к кольцу −3, режимы System Management Mode — к кольцу −2, а гипервизор — к кольцу −1. Каждый из перечисленных режимов имеет больше привилегий, чем ядро ОС.
По порядку...
MEI: -3
Intel Management Engine
Intel Management Engine Interface (IMEI или Intel ME) — автономная подсистема, встроенная почти во все чипсеты процессоров Intel с 2008 года. Она состоит из проприетарной прошивки, исполняемой отдельным микропроцессором. Так как чипсет всегда подключен к источнику тока (батарейке или другому источнику питания), эта подсистема продолжает работать даже когда компьютер отключен. Intel заявляет, что ME необходима для обеспечения максимальной производительности. Точный принцип работы по большей части не документирован, а исходный код обфусцирован с помощью кода Хаффмана, таблица для которого хранится непосредственно в аппаратуре, поэтому сама прошивка не содержит информации для своего раскодирования. Главный конкурент Intel, компания AMD, также встраивает в свои процессоры аналогичную систему AMD Secure Technology (раньше называвшуюся Platform Security Processor), начиная с 2013 года.
Начиная с ME 11 в основе лежит 32-битный x86-совместимый процессор на технологии Intel Quark с запущенной на нём операционной системой MINIX 3. Состояние ME хранится в разделе шины SPI с использованием файловой системы EFFS (Embedded Flash File System).
...
Компания Positive Technologies обнаружила, что прошивка ME версии 11 использует MINIX 3
...
ME имеет свой MAC-адрес и IP-адрес для своего дополнительного интерфейса с прямым доступом к контроллеру Ethernet. Каждый пакет Ethernet-трафика переадресуется в ME даже до достижения операционной системы хоста, причём такое поведение поддерживается многими контроллерами, настраиваемыми по протоколу MCTP.
Как вам такое с точки зрения безопасности? :lol:
В августе 2017 года компания Positive Technologies опубликовала метод отключения ME через недокументированный встроенный режим. Компания Intel подтвердила, что ME содержит возможность для государственных органов, таких как АНБ, переключения в режим высокодоверенной платформы (High-Assurance Platform, HAP) сразу после загрузки. Этот режим выключает все функции ME. Он авторизован для использования только государственными органами и предполагается только для машин, произведённых для них. Однако оказалось, что в большинстве продаваемых на рынке компьютеров можно включить этот режим.
В конце 2017 года несколько производителей ноутбуков объявили о своих намерениях поставлять ноутбуки с отключенным Intel ME:
- Компания Purism, SPC потребовала у Intel продавать процессоры без ME или же опубликовать исходный код ME, называя его «угрозой для цифровых прав пользователей». В марте 2017 года компания Purism сообщила, что нейтрализовала ME путём удаления большей части исполняемого кода из флеш-памяти. Позже, в октябре 2017 года, компания сообщила, что новые партии основанных на Debian ноутбуков линейки Librem будут выпускаться с нейтрализованным (через стирание большей части кода из флеш-памяти, как и сообщалось ранее), а также дополнительно выключенными через бит HAP модулями ME. Были выпущены обновления для существующих ноутбуков Librem.
- System 76 анонсировала в ноябре 2017 года о своих планах отключить ME в новых и текущих основанных на Ubuntu машинах через HAP-бит.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кольца защиты процессора x86

Непрочитанное сообщение Olej » 26 июл 2022, 10:53

Olej писал(а):
26 июл 2022, 10:49
По порядку...
SMM: -2
System Management Mode
Режим системного управления (англ. System Management Mode, SMM) — режим исполнения на процессорах x86/x86-64, при котором приостанавливается исполнение другого кода (включая операционные системы и гипервизор), и запускается специальная программа, хранящаяся в SMRAM в наиболее привилегированном режиме.

Технология SMM была впервые реализована в микропроцессоре Intel 386 SL. Изначально SMM работал только на специальных процессорах (SL), но в 1992 году была внедрена в 80486 и Intel Pentium. AMD реализовала технологию в Enhanced Am486 (1994). Все более современные x86/x86-64 процессоры поддерживают её.
Операционная система работает в защитном «Кольце 0»; однако, гипервизор (в системах VT/AMD-v) является более привилегированным, и режим исполнения гипервизора условно называется «Кольцом −1». Соответственно, SMM, являющимся более приоритетным, чем гипервизор, условно называют «Кольцом −2». Код, работающий в режиме SMM, получает неограниченный доступ ко всей системной памяти, включая память ядра и память гипервизора.
SMM активируется при помощи прерываний SMI (system management interrupt — прерывание системного управления), которое возникает:

- По сигналу от чипсета или периферии на материнской плате. Используется выделенный контакт процессора SMI#.
- Программный SMI, посланный системным ПО через порт ввода-вывода (часто используется порт номер B2).
- Запись по адресу ввода-вывода, для которого микропрограммно установлена необходимость активации SMM.

На ближайшей границе инструкций после получения сигнала SMI#, процессор сохраняет своё состояние в памяти и переходит в SMM. Для выхода из SMM и восстановления состояния процессора используется инструкция RSM (0F AA).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: кольца защиты процессора x86

Непрочитанное сообщение Olej » 26 июл 2022, 11:44

Olej писал(а):
26 июл 2022, 10:49
По порядку...
Гипервизор: -1
Технологии аппаратной виртуализации
Как работает аппаратная виртуализация

Необходимость поддержки аппаратной виртуализации заставила производителей процессоров несколько изменить их архитектуру за счет введения дополнительных инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем. Этот набор дополнительных инструкций носит название Virtual Machine Extensions (VMX). VMX предоставляет следующие инструкции: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXON и VMXOFF.

Процессор с поддержкой виртуализации может работать в двух режимах root operation и non-root operation. В режиме root operation работает специальное программное обеспечение, являющееся «легковесной» прослойкой между гостевыми операционными системами и оборудованием — монитор виртуальных машин (Virtual Machine Monitor, VMM), носящий также название гипервизор (hypervisor). Слово «гипервизор» появилось интересным образом: когда-то очень давно, операционная система носила название «supervisor», а программное обеспечение, находящееся «под супервизором», получило название «гипервизор».

Чтобы перевести процессор в режим виртуализации, платформа виртуализации должна вызвать инструкцию VMXON и передать управление гипервизору, который запускает виртуальную гостевую систему инструкцией VMLAUNCH и VMRESUME (точки входа в виртуальную машину). Virtual Machine Monitor может выйти из режима виртуализации процессора, вызвав инструкцию VMXOFF.
Изображение
Каждая из гостевых операционных систем запускается и работает независимо от других и является изолированной с точки зрения аппаратных ресурсов и безопасности.
Глава 1. Основы виртуализации
Гипервизоры

Для виртуализации самой ОС применяется специальная порция программного обеспечения, носящего название гипервизора. Гипервизор сам по себе облдает двумя частями:

Virtual Machine Monitor (VMM) (Монитор Виртуальной Машины): Используется для отделения и эмуляции набора привилегированных инструкций (которые может исполнять лишь само ядро его операционной системы).

Device model (Модель Устройства): Используется для виртуализации имеющихся устройств ввода/ вывода.
В 2005 x86 окончательно превратились в поддерживающие виртуализацию. Они ввели ещё одно дополнительное кольцо, именуемое Кольцом -1, которое также носит название режим корня VMX (virtual machine extensions, расширения виртуальной машины). Необходимый VMM запускается в режиме корня VMX, а все гости исполняются в не корневом режиме.

Это означает, что все гости могут запускаться в Кольце 0 и, для большинства инструкций нет ловушек. Необходимые для выполнения привилегированные/ секретные инструкции исполняются через VMM в режиме корня через соответствующую ловушку. Мы называем такие переключения Выходами ВМ (VM Exits, то есть установленный VMM приступает к исполнению инструкций из соответствующего гостя) и Входами ВМ (VM Entries, соответствующая ВМ получает управление из установленного VMM).

Ответить

Вернуться в «Железо для Linux»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя