Выключаем Intel ME 11, используя недокументированный режим

В ходе исследования внутренней архитектуры Intel Management Engine (ME) 11-й версии был обнаружен механизм, отключающий эту технологию после инициализации оборудования и запуска основного процессора. О том, как мы нашли этот недокументированный режим, и о его связи с государственной программой построения доверительной платформы High Assurance Platform (HAP) мы расскажем в этой статье.
Авторы предупреждают, что использование данных знаний на практике может повлечь за собой повреждение вычислительной техники, и не несут за это никакой ответственности, а также не гарантируют работоспособность или неработоспособность чего-либо и не рекомендуют экспериментировать без наличия SPI-программатора.
Введение
Intel Management Engine — это закрытая технология, которая представляет собой интегрированный в микросхему Platform Controller Hub (PCH) микроконтроллер с набором встроенных периферийных устройств. Именно через PCH проходит почти все общение процессора с внешними устройствами, следовательно Intel ME имеет доступ практически ко всем данным на компьютере и возможность исполнения стороннего кода позволяет полностью скомпрометировать платформу. Такие безграничные возможности привлекают исследователей не первый год, но сейчас интерес к технологии Intel ME значительно вырос. Одной из причин этого является переход данной подсистемы на новую аппаратную (x86) и программную (доработанный MINIX в качестве операционной системы) архитектуру. Применение платформы x86 позволяет использовать всю мощь средств анализа бинарного кода, что ранее было затруднительно, так как до 11-й версии использовалось ядро с малораспространенной системой команд — ARC. К сожалению, анализ Intel ME 11-й версии был затруднен тем, что исполняемые модули упакованы кодом Хаффмана с неизвестными таблицами. Но нашей исследовательской группе (Дмитрий Скляров, Марк Ермолов, Максим Горячий) удалось их восстановить (утилиту для распаковки образов можно найти на нашей странице в GitHub).
После распаковки исполняемых модулей мы приступили к изучению программной и аппаратной «начинки» Intel ME. Наша команда занимается этим уже достаточно продолжительное время, и мы накопили большой объем материалов, которые было решено опубликовать. Это первая статья из цикла статей, посвященных внутреннему устройству и особенностям работы Intel ME, и в ней мы расскажем, как отключить основную функциональность подсистемы. Этот вопрос терзает специалистов, так как ее отключение позволило бы снизить риски утечки данных, например в случае обнаружения в этой технологии уязвимости нулевого дня.
Как выключить ME
Как выключить ME — этот вопрос часто задают некоторые владельцы компьютеров x86-архитектуры. Тема деактивации неоднократно поднималась, в том числе и исследователями нашей компании.
Актуальности этому вопросу добавляет недавно обнаруженная критическая (9,8 из 10) уязвимость в Intel Active Management Technology (AMT) — технологии, которая базируется на Intel ME.
Сразу огорчим читателя — полностью выключить ME на современных компьютерах невозможно. Это связано прежде всего с тем, что именно эта технология отвечает за инициализацию, управление энергопотреблением и запуск основного процессора. Сложности добавляет и тот факт, что часть кода «жестко прошита» внутри микросхемы PCH, которая выполняет функции южного моста на современных материнских платах. Основным средством энтузиастов, которые «борются» с данной технологией, является удаление всего «лишнего» из образа flash-памяти при сохранении работоспособности компьютера. Но сделать это не так просто, так как, если встроенный в PCH код не найдет во flash-памяти модули ME или определит, что они повреждены, система запущена не будет. Уже несколько лет в сети развивается проект me_cleaner, в рамках которого доступна специальная утилита, позволяющая удалить большую часть образа и оставить только жизненно необходимые для основной системы компоненты. Но даже если система запустилась, радоваться рано — приблизительно через 30 минут может произойти автоматическое отключение, так как при некоторых сбоях ME переходит в Recovery-режим, в котором не функционирует больше некоторого фиксированного времени. В итоге процесс очистки усложняется. Например, до 11-й версии удавалось уменьшить размер образа до 90 KБ, но в 11-й — уже только до 650 КБ.

Рисунок 1. Поддержка архитектур Skylake+ в me_cleaner
Секреты в QResource
Intel дает производителям материнских плат возможность задать небольшое количество параметров ME. Для этого компания предоставляет производителям оборудования специальный набор программного обеспечения, в который входят такие утилиты, как Flash Image Tool (FIT) для настройки параметров ME и Flash Programming Tool (FPT), реализующая поддержку программирования flash-памяти напрямую через встроенный SPI-контроллер. Данные программы недоступны конечному пользователю, но их без труда можно найти в интернете. Из этих утилит можно извлечь большое количество файлов формата XML (подробное Intel ME: The Way oftheStatic Analysis), изучение которых позволяет узнать много интересного: структуру прошивки ME и описание PCH strap — специальных конфигурационных битов для различных подсистем, интегрированных в микросхему PCH.

Рисунок 2. Упакованные XML-файлы
Нас заинтересовало одно из таких полей с именем «reserve_hap», так как напротив него имелся комментарий — High Assurance Platform (HAP) enable.

Рисунок 3. PCH strap для High Assurance Platform
Поиск в Google не был долгим. Буквально вторая ссылка говорит, что такое название носит программа по созданию доверительных платформ, связанная с Агентством национальной безопасности (АНБ) США. Презентацию с описанием программы можно найти тут. Нашей первой мыслью было поставить этот бит и посмотреть, что будет. Это может сделать любой желающий, если у него есть SPI-программатор или доступ в Flash Descriptor (на многих материнских платах некорректно выставлены права доступа к регионам flash-памяти).

Рисунок 4. Статус ME после активации HAP-бита
После загрузки платформы утилита meinfo сообщает странный статус — Alt Disable Mode. Беглые проверки показали, что ME не отвечает на команды и никак не реагирует на воздействия из операционной системы. Мы решили разобраться, как система переходит в этот режим и что он означает. К этому времени у нас уже была проанализирована основная часть модуля BUP, который отвечает за начальную инициализацию платформы и, исходя из вывода meinfo, устанавливает этот статус. Для понимания алгоритма работы BUP необходимо более подробно описать программное окружение Intel ME.
Программная часть Intel ME 11
Начиная с PCH 100-й серии компания Intel полностью переработала эту микросхему. Был осуществлен переход на новую архитектуру встроенных микроконтроллеров — с ARCompact компании ARC на x86. За основу был выбран 32-битный микроконтроллер Minute IA (MIA), который используется в микрокомпьютерах Intel Edison и SoC Quark. Он основан на дизайне весьма старого, скалярного микропроцессора Intel 486 с добавлением системы команд (ISA) от процессора Pentium. Однако для PCH компания выпускает данное ядро с применением 22-нм полупроводниковой технологии, получая высокую энергоэффективность микроконтроллера. Таких ядер в новом PCH три: Management Engine (ME), Integrated Sensors Hub (ISH) и Innovation Engine (IE). Последние два могут активироваться и деактивироваться в зависимости от модели PCH и целевой платформы, а ME-ядро работает всегда.

Рисунок 5. Три x86-процессора в PCH
Такие глобальные изменения потребовали изменения и программной составляющей ME. В частности, в качестве основы для операционной системы был выбран MINIX (ранее ThreadX RTOS). Теперь прошивка ME включает полноценную операционную систему со своими процессами, потоками, диспетчером памяти, драйвером аппаратных шин, файловой системой и многим другим. В ME интегрирован аппаратный криптопроцессор, поддерживающий алгоритмы SHA256, AES, RSA, HMAС. Доступ к оборудованию для пользовательских процессов производится посредством локальной таблицы дескрипторов (LDT). Через LDT организовано также и адресное пространство процесса — оно является всего лишь частью глобального адресного пространства ядра, границы которого заданы в локальном дескрипторе. Таким образом, ядру не нужно переключаться на память разных процессов (меняя каталоги страниц), как, например, в Microsoft Windows или Linux.
На этом закончим обзор программного окружения Intel ME и рассмотрим более подробно, как происходит загрузка операционной системы и модулей.
Стадии загрузки Intel ME
Запуск начинается с программы ROM, которая содержится во встроенной в PCH статической памяти. К сожалению, способ прочесть или перезаписать эту память широкой общественности не известен, но в интернете можно найти «предпродажные» версии прошивки ME с разделом ROMB (ROM BYPASS), который, по нашему предположению, дублирует функции ROМ. Таким образом, исследуя такие прошивки, можно восстановить основную функциональность программы первичной инициализации.
Изучение ROMB позволяет понять назначение ROM — выполнение начальной инициализации оборудования, например SPI-контроллера, проверка цифровой подписи заголовка раздела FTPR, загрузка модуля RBE, который расположен уже во flash-памяти. RBE, в свою очередь, проверяет контрольные суммы модулей KERNEL, SYSLIB, BUP и передает управление на точку входа в ядро.
Следует заметить, эти три сущности — ROM, RBE и KERNEL — выполняются на нулевом уровне привилегий (в ring-0) ядра MIA.

Рисунок 6. Проверка целостности SYSLIB, KERNEL и BUP в RBE
Первый процесс, который создается ядром, — это BUP, который уже выполняется в своем адресном пространстве, в ring-3. Других процессов ядро по своей инициативе не запускает, этим занимается сам BUP, а также отдельный модуль LOADMGR, к нему вернемся позже. Назначение BUP (platform BringUP) — это инициализация всего аппаратного окружения платформы (в том числе процессора), выполнение первичных функций управления энергопитанием (например, запуск системы по нажатию кнопки включения) и запуск все остальных процессов ME. Таким образом, можно с уверенностью говорить, что PCH в 100-й серии и выше просто физически не имеют возможности запуска без корректной прошивки ME. Во-первых, BUP инициализирует контроллер управления энергопитанием (power management controller, PMC) и ICC-контроллер. Во-вторых — запускает целую вереницу процессов; часть из них «жестко прошита» в коде (SYNCMAN, PM, VFS), а другая часть содержится в InitScript (аналог автозапуска), который хранится в заголовке тома FTPR и защищен цифровой подписью.

Рисунок 7. Запуск SYNCMAN и PM
Таким образом, BUP считывает InitScript и запускает все процессы, которые удовлетворяют типу запуска ME и являются IBL-процессами.

Рисунок 8. Обработка InitScript

Рисунок 9. Список модулей c флагом IBL
В случае если запуск процесса не удался, BUP не будет запускать систему или переведет ее в Recovery режим, в котором произойдет автоматическое отключение питания после нескольких десятков минут. Как можно видеть на иллюстрации, последним в списке IBL-процессов является LOADMGR. Именно он дает старт оставшимся процессам, но в отличие от BUP, если в процессе запуска модуля происходит ошибка, LOADMGR просто перейдет к следующему.
Таким образом, первый вариант ограничить функционирование Intel ME — удалить все модули, которые не имеют флаг IBL в InitScript, что позволит существенно уменьшить размер прошивки. Но первоначально мы хотели выяснить, что происходит с ME в режиме HAP. Для этого рассмотрим программную модель BUP подробнее.

Рисунок 10. Схема запуска модулей в ME
BringUP
Если присмотреться к алгоритму работы модуля BUP, можно сказать, что внутри него реализован классический конечный автомат. Выполнение функционально разделено на две составляющие: стадии инициализации (представляют собой тот самый конечный автомат) и выполнение сервисных запросов других процессов после инициализации системы. Число стадий инициализации разное, в зависимости от платформы и SKU (TXE, CSME, SPS, consumer, corporate), но основные, общие для всех версий, все же можно выделить.
Первая стадия
На начальной стадии происходит создание внутренней диагностической файловой системы sfs (SUSRAM FS — файловая система, расположенная в энергозависимой памяти), считывание конфигурации, и, самое главное, получение информации от PMC о том, что привело к данному старту — включение питания платформы, глобальный перезапуск всей платформы, перезапуск только ME или же пробуждение из состояния сна. Эта стадия называется boot flow determination. От нее зависят последующие стадии работы конечного автомата инициализации. Кроме того, поддерживаются несколько режимов работы: нормальный и набор сервисных режимов, при которых ME штатно не функционирует — HAP, HMRFPO, TEMP_DISABLE, RECOVERY, SAFE_MODE, FW_UPDATE и FD_OVERRIDE.
Вторая стадия
На следующей стадии происходят инициализация ICC-контроллера и загрузка ICC-профиля (отвечает за тактовые частоты основных потребителей), инициализация Boot Guard и начало циклического опроса подтверждения запуска процессора.
Третья стадия
BUP ожидает сообщение от PMC о том, что основной процессор запустился. После этого BUP запускает асинхронный цикл опроса PMC на предмет возникновения событий энергопитания (перезапуск или отключение платформы) и переходит к следующей стадии. Если такое событие произошло, BUP выполнит запрашиваемое действие в момент перехода между стадиями инициализации.
Четвертая стадия
На этой стадии происходит инициализация внутреннего оборудования. Также BUP запускает цикл опроса heci (специального устройства, предназначенного для получения команд от BIOS или операционной системы) на предмет получения DID (DRAM Init Done message) от BIOS. Именно это сообщение позволяет ME понять, что основной BIOS инициализировал оперативную память и зарезервировал для ME специальный регион, UMA, и после этого перейти к следующей стадии.
Пятая стадия
Как только DID получен, BUP, в зависимости от режима работы, который определяется по разным составляющим, либо запускает IBL-процессы из InitScript (при нормальном режиме работы), либо зависает в цикле, выйти из которого он может только при получении сообщения от PMC, например, в результате запроса на перезагрузку или выключение системы.
Именно на этой стадии мы и находим обработку HAP, причем в этом режиме BUP не выполняет InitScript, а зависает. Таким образом, остальная последовательность действий при нормальном режиме работы не имеет отношения к HAP и нами рассматриваться не будет. Главное, что хочется отметить: в режиме HAP BUP выполняет всю инициализацию платформы (ICC, Boot Guard), но не запускает основные процессы ME.

Рисунок 11. Определение режима HAP

Рисунок 12. Перевод ME в пятую стадию, что равноценно зависанию

Рисунок 13. Пятая стадия
Установка HAP-бита
Исходя из вышесказанного, второй вариант отключения состоит в установке HAP-бита и удалении или повреждении всех модулей, кроме тех, которые необходимы BUP для старта — RBE, KERNEL, SYSLIB, BUP. Сделать это можно просто убрав их из CPD-раздела FTPR и пересчитав контрольную сумму заголовка CPD (подробнее структура прошивки ME описана тут).
Остается еще один вопрос: как установить этот бит? Можно воспользоваться конфигурационными файлами FIT и определить, где он расположен в образе, но есть путь проще. Если открыть FIT, то в секции ME Kernel можно найти некий параметр Reserved. Именно этот бит и отвечает за включение режима HAP.

Рисунок 14. Бит активации режима HAP
HAP и Boot Guard
Нами также был найден код в BUP, который при активированном режиме HAP устанавливает дополнительный бит в политиках Boot Guard. К сожалению, выяснить, чем управляет этот бит, нам пока не удалось.

Рисунок 15. Установка дополнительного бита для Boot Guard
Поддержка ME 11 в me_cleaner
Пока эта статья готовилась к печати, разработчики обновили me_cleaner, в результате чего он стал так же удалять из образов все модули, кроме RBE, KERNEL, SYSLIB и BUP, но без установки HAP-бита, что вводит ME в режим «TemporaryDisable». Нам стало любопытно, что происходит при таком подходе.
Мы выяснили, что удаление разделов с файловой системой ME приводит к ошибке при чтении файла cfg_rules. Данный файл содержит ряд различных настроек системы. Среди них, как мы полагаем, есть флаг, который мы назвали «bup_not_temporary_disable». Если он не установлен, вся подсистема переводится в режим TemporaryDisable, а так как этот флаг – глобальная переменная, по умолчанию инициализированная нулем, то ошибка чтения расценивается как конфигурация, требующая отключения.
Отметим также, что мы проверили также прошивки от серверной и мобильной версии ME (SPS 4.x и TXE 3.x). В серверной версии этот флаг всегда устанавливается в 1, а в мобильно не анализируется. Из вышесказанного следует, что данный способ не сможет работать на серверных и мобильных версиях (Apollo Lake) ME.

Рисунок 16. Чтение файла cfg_rules
Вместо заключения
Таким образом, мы нашли недокументированный PCH strap, который позволяет перевести Intel ME в режим отключения на ранней стадии. Хотя физическое удаление модулей из образа с сохранением работоспособности неявно доказывает, что этот режим производит отключение ME, бинарный анализ не оставляет поводов для сомнений. C большой долей уверенности можно сказать, что выйти из этого режима Intel ME уже не в состоянии, так как в модулях RBE, KERNEL и SYSLIB не найдено кода, который позволяля бы это осуществлять. Также мы считаем, что ROM, интегрированный в PCH, практически не отличается от ROMB, в котором тоже не найдено ничего похожего. Таким образом, HAP позволит защититься от уязвимостей, присутствующих во всех модулях, кроме RBE, KERNEL, SYSLIB, ROM и BUP, но, к сожалению, от эксплуатации ошибок на более ранних этапах этот режим не предохранит.
Мы ознакомили представителей Intel с деталями исследования. Их ответ подтвердил нашу догадку о связи недокументированного режима с программой High Assurance Platform. С разрешения компании приведем отрывок из ответа:
Mark/Maxim,
In response to requests from customers with specialized requirements we sometimes explore the modification or disabling of certain features. In this case, the modifications were made at the request of equipment manufacturers in support of their customer’s evaluation of the US government’s “High Assurance Platform” program. These modifications underwent a limited validation cycle and are not an officially supported configuration.
Мы полагаем, что данный механизм — удовлетворение обычной просьбы любой правительственной службы, которая хочет уменьшить вероятность утечки по побочным каналам. Но остается главный вопрос: как HAP влияет на функционирование Boot Guard? Из-за закрытости этой технологии ответить на этот вопрос пока не представляется возможным, но мы надеемся, что в скором будущем нам это удастся.
Авторы: Горячий Максим, Ермолов Марк
- intel ME
- отключение intel me
- Блог компании Positive Technologies
- Информационная безопасность
[Материнская плата] Intel® Management Engine руководство по обновлению(ME)
[Материнская плата] Intel® Management Engine руководство по обновлению(ME) Примечание: релизы платформ Intel, которые могут быть затронуты, подвержены риску проблем с безопасностью. Обновите прошивку Intel ME, используя инструмент Intel ME. Как установить Intel® Management Engine Firmware (1) Как проверить версию ME? Включив компьютер, откройте настройки BIOS через клавишу F2 или Del и проверьте параметр «ME FW Version» на вкладке «Main» в «Расширенном» режиме.
(2) Как найти Intel ME Последние версии программного обеспечения, руководств, драйверов и прошивок можно получить в Центре Загрузок ASUS *Как проверить название модели: https://www.asus.com/ru/support/FAQ/1046543 (3) Порядок действий 1. Загрузите последнюю версию файла Intel ME согласно моели материнской платы из Центра Загрузок ASUS и сохраните. Введите название модели -> раздел «Драйверы и Утилиты». (Например: ROG STRIX Z590-A GAMING WIFI)
1-1 Откройте раздел «Драйверы и утилиты» -> BIOS и Прошивки, выберите рекомендуемую версию Intel ME (рекомендуется последняя версия) и загрузите.
1-2 Сохраните загруженный файл Intel ME zip в папку.
2. Разархивируйте файл Intel ME.
3. Двойным нажатием запустите “MEUpdateTool.exe”.
Примечание: Выполнять в окружении Windows 3-1 Обновление Intel ME займёт некоторое время. Чтобы процесс обновления ME корректно завершился, рекомендуется на это время закрыть неиспользуеммые приложения. Нажмите Yes для запуска обновления.
3-2 По окончании обновления ME нажмите OK для перезагрузки компьютера.
(4) Убедитесь что обновление ME version было установлено. После включения компьютера через клавишу F2 или Del откройте настройки BIOS и, на вкладке «Main» в «Расширенном» режиме, проверьте версию ME FW.
Если обновить не получается, свяжитесь со службой поддержки ASUS.
Эта информация была полезной?
Что мы можем сделать, чтобы улучшить эту статью? Отправить Пропустить
Связаться со службой поддержки
Пожалуйста, свяжитесь со службой поддержки, если информация выше не помогла решить Ваш вопрос.
Получить поддержку
- Приведенная выше информация может быть частично или полностью процитирована с внешних веб-сайтов или источников. Пожалуйста, обратитесь к информации на основе источника, который мы отметили. Пожалуйста, свяжитесь напрямую или спросите у источников, если есть какие-либо дополнительные вопросы, и обратите внимание, что ASUS не имеет отношения к данному контенту / услуге и не несет ответственности за него.
- Эта информация может не подходить для всех продуктов из той же категории / серии. Некоторые снимки экрана и операции могут отличаться от версий программного обеспечения.
- ASUS предоставляет вышеуказанную информацию только для справки. Если у вас есть какие-либо вопросы о содержании, пожалуйста, свяжитесь напрямую с поставщиком вышеуказанного продукта. Обратите внимание, что ASUS не несет ответственности за контент или услуги, предоставляемые вышеуказанным поставщиком продукта.
Продукты и информация
- Ноутбуки
- Сетевое оборудование
- Материнские платы
- Видеокарты
- Смартфоны
- Мониторы
- Показать все продукты
-
Item_other —>
- Моноблоки (All-in-One)
- Планшеты
- Коммерческое сетевое оборудование
- Серия ROG
- AIoT и промышленные решения
- Блоки питания
- Проекторы
- VivoWatch
- Настольные ПК
- Компактные ПК
- Внешние накопители и оптические приводы
- Звуковые карты
- Игровое сетевое оборудование
- Одноплатный компьютер
- Корпуса
- Компьютер-брелок
- Наушники и гарнитуры
- Охлаждение
- Chrome-устройства
- Коммерческие
-
Commercial_list.Item —>
- Моноблоки (All-in-One)
- Информационные панели
- Ноутбуки
- Настольные ПК
- Мониторы
- Серверы и рабочие станции
- Проекторы
- Компактные ПК
- Сетевое оборудование
- Материнские платы
- Игровые станции
- Data Storage
Intel Management Engine (Intel ME)
Intel Management Engine (Intel ME) — подсистема в составе систем на платформе x86, ориентированная на решение различных задач, связанных с мониторингом и обслуживанием компьютера во время его «сна» и в процессе работы.
Система Intel ME встроена во все современные компьютерные платформы с чипсетами компании Intel [1] : десктопы, ноутбуки, серверы, планшеты. Intel ME — единственная действующая система, которая:
- работает, когда компьютер выключен (подается электричество на БП);
- имеет доступ ко всему содержимому оперативной памяти компьютера;
- имеет внеполосный доступ к сетевому интерфейсу.
Основной компонент Intel ME — встроенный в чипсет микроконтроллер с настраиваемой архитектурой. В качестве базовой модели используется 32-разрядный ARCtangent-A4.
Представление о взаимодействии Intel ME, (2013)
Intel ME используется при старте ПК и первоначальной настройке материнской платы. Выход из строя Intel Management Engine или его принудительное отключение (при условии, что больше ничего не вышло из строя на плате или в ноутбуке) часто сказывается работой вентиляторов на максимальных оборотах и отсутствием изменения скорости, в зависимости от температуры охлаждаемых компонентов (в том числе и этим занимается Intel ME). Или компьютер не запускается, выключается после некоторого периода времени после старта [2] .
История
2018
Найден «немыслимо простой» способ взлома ноутбуков на процессорах Intel
Исследователи фирмы F-Secure выявили серьезную проблему с технологией Intel Active Management Technology, благодаря которой злоумышленники могут обходить локальные средства авторизации на ноутбуках на базе процессоров Intel. Эксперты отмечают, что для эксплуатации этой уязвимости достаточно полминуты и никаких специализированных знаний не потребуется [3] .

Злоумышленнику потребуется физический доступ к интересующему его лэптопу. В процессе перезагрузки злоумышленнику достаточно зажать CTRL+P и войти в консоль управления Intel Management Engine BIOS Extension (MEBx). Как выясняется, в MEBx существует предустановленный пароль «admin», которого достаточно, чтобы поменять предустановленный пароль к BIOS, настроить удаленный доступ и выключить авторизацию AMT полностью. Российский рынок мобильных приложений для бизнеса и госсектора: крупнейшие игроки, тенденции и перспективы. Обзор TAdviser
Дальше злоумышленники могут удаленно проникать в компьютер жертвы через локальную сеть или из-за ее пределов с помощью CIRA-сервера (сервера удаленного доступа по запросу клиента).
«Атака до немыслимого проста в исполнении, но при этом обладает колоссальным деструктивным потенциалом, — заявил старший консультант по безопасности F-Secure Гарри Синтонен (Harry Sintonen). — На практике злоумышленник через локальную сеть может получить полный контроль над рабочим ноутбуком жертвы, какими бы обширными ни были принятые меры безопасности».
2017
Intel устранила найденную Positive Technologies уязвимость в Management Engine
Компания Intel опубликовала в ноябре бюллетень безопасности [4] , в котором сообщила о выпуске патча для устранения уязвимости в подсистеме Intel ME, которая была обнаружена экспертами Positive Technologies Марком Ермоловым и Максимом Горячим. Также компания Intel опубликовала специальный инструмент, который поможет администраторам Windows и Linux-систем узнать о том, уязвимо ли их оборудование.
Intel Management Engine — это закрытая технология, которая представляет собой интегрированный в микросхему Platform Controller Hub (PCH) микроконтроллер с набором встроенных периферийных устройств. Через PCH осуществляется почти все общение процессора с внешними устройствами, поэтому Intel ME имеет доступ практически ко всем данным на компьютере. Исследователям удалось найти ошибку, которая позволяет выполнять неподписанный код внутри PCH на любой материнской плате для процессоров семейства Skylake и выше.
Например, злоумышленники могут атаковать компьютеры с уязвимой версией Intel ME, используя эту ошибку безопасности, и потенциально устанавливать в коде Intel ME `закладки` (например, шпионское ПО), которые большинство традиционных средств защиты не обнаружат. Т.к. `закладка` в этом случае будет функционировать на отдельном чипе, а не на CPU, на котором работают большинство ОС и традиционных средств защиты.
При этом основная система может оставаться работоспособной, таким образом пользователь может не подозревать о том, что на его компьютере функционирует шпионское ПО, устойчивое к переустановке ОС и обновлению BIOS.
В бюллетене безопасности Intel представлен полный список уязвимых процессоров:
- Intel Core поколений 6, 7 и 8;
- Intel Xeon E3-1200 v5 и v6;
- Intel Xeon Scalable;
- Intel Xeon W;
- Intel Atom C3000;
- Apollo Lake Intel Atom E3900;
- Apollo Lake Intel Pentium;
- чипы Celeron серий N и J.
Ошибки в процессорах
В нескольких сериях процессоров Intel выявлена ошибка, эпизодически приводящая к «падению» систем под управлением Windows и Linux. [5] Проблема затрагивает процессоры серии Kaby Lake, Skylake, Xeon v5, Xeon v6 и некоторые модели процессоров Pentium и Core X v6.
![]()
В процессорах Intel обнаружены приводящие к потере данных ошибки
Ошибка была обнаружена разработчиком компилятора OCaml в прошлом году. О ней немедленно известили Intel, и производитель процессоров выпустил исправления в микрокоде и обновил документацию к процессорам Skylake и Kaby Lake, указав на существование проблемы.
В сложных микроархитектурных условиях короткие циклы, состоящие менее чем из 64 инструкций с использованием регистров AH, BH, CH или DH, а также соответствующих им более широких регистров (например, RAX, EAX или AX для AH), могут вызвать непредсказуемое поведение системы. Такое может произойти только когда оба логических процессора на одном физическом процессоре оказываются активны, говорится в документации (см., например, Errata SKZ7 для процессоров Core X [6] и Errata KBL095 для процессоров седьмого поколения [7] )
Разработчики Debian исследовали проблему и показали, что система может вести себя неадекватно, в диапазоне от некорректной работы отдельных приложений и до порчи и потери данных. В качестве промежуточной меры рекомендуется отключать многопоточность (Hyperthreading) на уровне BIOS/UEFI (что, однако, неизбежно приведёт к серьёзному падению производительности) и дождаться соответствующих обновлений от производителей компьютеров.
Стоит отметить, что ряд производителей систем на базе Linux уже успели распространить исправления для BIOS/UEFI, но пока непонятно, когда ждать исправлений от производителей компьютеров под Windows.
Ошибка не носит эпидемического характера, но даже её случайный характер создаёт определённую опасность для пользователей компьютеров на базе перечисленных процессоров. Особенно это касается систем, которые должны работать бесперебойно. Для них самым разумным решением на данный момент будет отключение технологии Hyperthreading.
2010
Начиная с 2010 года с переносом части функциональных блоков северного моста (графическое ядро, контроллер памяти) в корпус CPU, Intel ME начали встраивать во все чипсеты производства Intel. При этом ME-контроллер остался в корпусе чипсета, в Platform Controller Hub (PCH) — чипсеты 5 серии и выше.
Эта подсистема встроена и в серверные платформы Intel, но под другим именем — Intel Server Platform Services (SPS). Произошло появление и в SoC (System-on-a-Chip) под именем Intel Trusted Execution Engine (TXE).
Архитектура каждой современной мобильной/портативной/настольной/серверной компьютерной платформы с чипсетом/SoC от Intel содержит в себе самую скрытную (от пользователя системы) и привилегированную среду исполнения — подсистему Intel ME. Разрабатывая эту архитектуру, компании Intel пришлось серьёзно потрудиться, чтобы защитить от компрометации.
Подсистема Intel ME — неотъемлемая часть архитектуры современных компьютерных платформ (на основе чипсетов/SoC Intel). Её компрометация предоставляет потенциальному злоумышленнику безграничные возможности контроля над платформой:
- доступ ко всему содержимому оперативной памяти (системная память, память гипервизора, SMRAM, ACRAM, выделяемая память для графического ядра — GFX UMA),
- out-of-band доступ к сетевому интерфейсу (мониторинг всего сетевого трафика),
- удалённый контроль, как часть штатной функциональности AMT,
- перезапись любых регионов SPI флеш-памяти.
При этом обеспечивается полное отсутствие возможностей обнаружения злоумышленника.
Intel ME защищена. Основные принципы этой защиты:
- запрет на использование пароля по умолчанию, принуждение к установке сильного пароля (соответствующего определённым требованиям);
- использование функций шифрования в сетевых протоколах;
- контроль целостности и подлинности всего исполняемого кода прошивки;
- механизмы защиты от эксплуатации бинарных уязвимостей.
2006
В 2006 году микроконтроллер перенесли в северный мост чипсета (Graphics and Memory Controller Hub, GMCH). Тогда подсистему назвали Intel Management Engine (ME) версии 2.0.
В 2006 году в Intel ME добавили возможности:
- полный доступ к содержимому оперативной памяти компьютера через внутренний DMA-контроллер,
- мониторинг видеопотока на монитор (только в случае использования встроенного графического ядра).
Впоследствии на эту подсистему стали добавлять различные системные функции (некоторыми занималась BIOS) для обеспечения работоспособности компьютерной платформы:
- часть функций Advanced Control and Power Interface (ACPI) и Alert Standard Format (ASF);
- Quiet System Technology (QST);
- Integrated Clock Control (ICC);
- Trusted Platform Module (TPM);
- .
2005: Active Management Technology (AMT) версии 1.0
В 2005 году компания Intel представила технологию Active Management Technology (AMT) версии 1.0 — решение для удалённого администрирования (управление, инвентаризация, обновление, диагностика, устранение неполадок и т.д.) и защиты настольных компьютерных систем, подобие технологии Intelligent Platform Management Interface (IPMI), использующейся в серверах.

Концепция архитектуры Intel AMT1.0, (2005)
Архитектура AMT 1.0 основана на микроконтроллере (Management Engine), интегрированном в чипсет, имеющий возможности:
- внеполосный (out-of-band) доступ к сетевому интерфейсу (Ethernet), который он разделяет с основным CPU, но, имея собственный контроллер канального уровня, осуществляет мониторинг всего входящего сетевого трафика, из которого «вырезает» (при помощи Packet Filter) пакеты, предназначенные для него. Для ОС (наличие и состояние которой, кстати, на работу AMT никак не влияет) этот трафик уже не виден;
- внутренний веб-сервер с TLS-шифрованием;
- доступ к периферийному оборудованию, получение и хранение в энергонезависимой памяти (там же, где и его прошивка) информации о нём.
Микроконтроллер начинает работу с момента подачи питания на материнскую плату компьютерной системы от БП, до подключения компьютера к электрической сети и до запуска пользователем ПК.
Intel Management Engine всегда включён.
Примечания
- ↑Безопасность прошивок на примере подсистемы Intel Management Engine
- ↑Что такое Intel Management Engine
- ↑Найден «немыслимо простой» способ взлома ноутбуков на процессорах Intel
- ↑Intel Q3’17 ME 11.x, SPS 4.0, and TXE 3.0 Security Review Cumulative Update
- ↑ [ https://www.bleepingcomputer.com/news/hardware/no-windows-fix-just-yet-for-the-intel-bug-that-crashes-cpus/ No Windows Fix Just yet for the Intel Bug That Crashes CPUs]
- ↑ [ https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/6th-gen-x-series-spec-update.pdf Intel Core X-Series Processor Family]
- ↑ [ https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/7th-gen-core-family-spec-update.pdf 7th Generation Intel Processor Family Specification Update]
Intel устранила найденную экспертами Positive Technologies уязвимость в подсистеме Management Engine
Компания Intel опубликовала бюллетень безопасности, в котором сообщила о выпуске патча для устранения уязвимости в подсистеме Intel ME, которая была обнаружена экспертами Positive Technologies Марком Ермоловым и Максимом Горячим. Также компания Intel опубликовала специальный инструмент, который поможет администраторам Windows и Linux-систем узнать о том, уязвимо ли их оборудование.
Intel Management Engine — это закрытая технология, которая представляет собой интегрированный в микросхему Platform Controller Hub (PCH) микроконтроллер с набором встроенных периферийных устройств. Через PCH осуществляется почти все общение процессора с внешними устройствами, поэтому Intel ME имеет доступ практически ко всем данным на компьютере. Исследователям удалось найти ошибку, которая позволяет выполнять неподписанный код внутри PCH на любой материнской плате для процессоров семейства Skylake и выше.
Например, злоумышленники могут атаковать компьютеры с уязвимой версией Intel ME, используя эту ошибку безопасности, и потенциально устанавливать в коде Intel ME “закладки” (например, шпионское ПО), которые большинство традиционных средств защиты не обнаружат. Т.к. “закладка” в этом случае будет функционировать на отдельном чипе, а не на CPU, на котором работают большинство ОС и традиционных средств защиты.
При этом основная система может оставаться работоспособной, таким образом пользователь может не подозревать о том, что на его компьютере функционирует шпионское ПО, устойчивое к переустановке ОС и обновлению BIOS.
В бюллетене безопасности Intel представлен полный список уязвимых процессоров:
- Intel Core поколений 6, 7 и 8;
- Intel Xeon E3-1200 v5 и v6;
- Intel Xeon Scalable;
- Intel Xeon W;
- Intel Atom C3000;
- Apollo Lake Intel Atom E3900;
- Apollo Lake Intel Pentium;
- чипы Celeron серий N и J.
Как пояснил Максим Горячий, «модуль Intel ME — это основной компонент огромного количества устройств по всему миру. Именно поэтому мы сочли необходимым оценить степень его защищенности. Этот модуль сидит глубоко под ОС и позволяет увидеть обширный ряд данных. Злоумышленник может воспользоваться этим привилегированным уровнем доступа для проведения атак, скрытых от внимания таких традиционных способов защиты, как антивирусное ПО. Наше тесное сотрудничество с компанией Intel было нацелено на ответственное раскрытие, и Intel предприняла превентивные меры и разработала инструмент, позволяющий определить, уязвима ли система. Подробно это описано на сайте Intel. Мы планируем выступить на конференции Black Hat Europe и рассказать о выявленной уязвимости подробнее».
Последние новости
- 26 октября 2023 TAdviser и Positive Technologies: рынок мониторинга событий кибербезопасности может вырасти до 48,8 млрд руб. к 2026 году
- 26 октября 2023 MaxPatrol SIEM 8.0: ML для поведенческого анализа, снижение аппаратных требований и обработка свыше 500 тыс. событий в секунду
- 25 октября 2023 Positive Technologies: с помощью MaxPatrol SIEM специалисты компании выявили ВПО, затронувшее сотни тысяч пользователей