Специалисты компании Positive Technologies рассказали, что в ходе изучения Intel Management Engine (ME) 11-й версии ими был обнаружен недокументированный режим, который позволяет частично отключить функциональность Intel ME после инициализации оборудования и запуска основного процессора. Первую статью из цикла, посвященного внутреннему устройству и особенностям работы Intel ME, можно найти в блоге компании.
Исследователи напоминают, что Intel Management Engine — это закрытая технология, которая представляет собой интегрированный в микросхему Platform Controller Hub (PCH) микроконтроллер с набором встроенных периферийных устройств. Именно через PCH проходит почти все общение процессора с внешними устройствами, то есть Intel ME имеет доступ практически ко всем данным на компьютере и возможность исполнения стороннего кода, что в теории позволяет полностью скомпрометировать платформу.
Intel ME интересует и беспокоит специалистов уже давно, но в последнее время их интерес еще возрос. Одной из причин тому стала уязвимость, недавно обнаруженная в Intel Active Management Technology, плюс сказался переход данной подсистемы на новую аппаратную (x86) и программную (доработанный MINIX в качестве операционной системы) архитектуры. Применение платформы x86 позволяет использовать всю мощь средств анализа бинарного кода, что ранее было затруднительно, так как до 11-й версии использовалось ядро с малораспространенной системой команд — ARC.
Исследователи Positive Technologies отмечают, что анализ Intel ME 11-й версии был затруднен, так как исполняемые модули упакованы кодом Хаффмана с неизвестными таблицами. Впрочем, специалистам все же удалось их восстановить, и утилита для распаковки образов была опубликована на GitHub.
Стоит отметить, что публикация экспертов Positive Technologies начинается с важного замечания:
«Сразу огорчим читателя — полностью выключить ME на современных компьютерах невозможно. Это связано прежде всего с тем, что именно эта технология отвечает за инициализацию, управление энергопотреблением и запуск основного процессора. Сложности добавляет и тот факт, что часть кода “жестко прошита” внутри микросхемы PCH, которая выполняет функции южного моста на современных материнских платах.
Основным средством энтузиастов, которые «борются» с данной технологией, является удаление всего «лишнего» из образа flash-памяти при сохранении работоспособности компьютера. Но сделать это не так просто, так как, если встроенный в PCH код не найдет во flash-памяти модули ME или определит, что они повреждены, система запущена не будет.
Уже несколько лет в сети развивается проект me_cleaner, в рамках которого доступна специальная утилита, позволяющая удалить большую часть образа и оставить только жизненно необходимые для основной системы компоненты. Но даже если система запустилась, радоваться рано — приблизительно через 30 минут может произойти автоматическое отключение, так как при некоторых сбоях ME переходит в Recovery-режим, в котором не функционирует больше некоторого фиксированного времени. В итоге процесс очистки усложняется. Например, до 11-й версии удавалось уменьшить размер образа до 90 KБ, но в 11-й — уже только до 650 КБ».
Что в таком случае удалось отключить, если Intel ME отключить нельзя? Исследователи пишут, что компания Intel позволяет производителям материнских плат задать небольшое количество параметров ME. Для этого существует специальный набор программного обеспечения, в который входят такие утилиты, как Flash Image Tool (FIT) для настройки параметров ME и Flash Programming Tool (FPT), реализующая поддержку программирования flash-памяти напрямую через встроенный SPI-контроллер. Хотя эти утилиты недоступны конечному пользователю, их без труда можно найти в интернете. С их помощью можно извлечь большое количество файлов формата XML, изучение которых позволяет узнать многое о структуре прошивки ME и описании PCH strap (специальных конфигурационных битов для различных подсистем, интегрированных в микросхему PCH).
Именно таким образом специалисты обнаружили поле «reserve_hap», напротив которого имелся комментарий — High Assurance Platform (HAP) enable. Обычный поиск в Google позволил понять, что такое название носит программа по созданию доверительных платформ, связанная с Агентством национальной безопасности (АНБ) США. Презентацию с описанием этой программы можно найти здесь.
«Нашей первой мыслью было поставить этот бит и посмотреть, что будет. Это может сделать любой желающий, если у него есть SPI-программатор или доступ в Flash Descriptor (на многих материнских платах некорректно выставлены права доступа к регионам flash-памяти)», — признаются исследователи.
Как выяснилось, после загрузки платформы утилита meinfo сообщает странный статус: Alt Disable Mode. Беглые проверки показали, что ME не отвечает на команды и никак не реагирует на воздействия из операционной системы. Проведенный после детальный анализ позволил сделать следующие выводы:
«Мы нашли недокументированный PCH strap, который позволяет перевести Intel ME в режим отключения основного функционала на ранней стадии. Хотя физическое удаление модулей из образа с сохранением работоспособности неявно доказывает, что этот режим производит отключение ME, бинарный анализ не оставляет поводов для сомнений.
C большой долей уверенности можно сказать, что выйти из этого режима Intel ME уже не в состоянии, так как в модулях RBE, KERNEL и SYSLIB не найдено функционала, который позволял бы это осуществлять. Также мы считаем, что ROM, интегрированный в PCH, практически не отличается от ROMB, в котором тоже не найдено ничего похожего. Таким образом, HAP позволит защититься от уязвимостей, присутствующих во всех модулях, кроме RBE, KERNEL, SYSLIB, ROM и BUP, но, к сожалению, от эксплуатации ошибок на более ранних этапах этот режим не предохранит».
Специалисты Positive Technologies сообщили о своем исследовании представителям Intel, и те подтвердили, что недокументированный режим связан с правительственной программой High Assurance Platform и был добавлен по просьбам ряда производителей оборудования. Недокументированность режима объясняется тем, что он прошел ограничение количество циклов валидации и пока не поддерживается официально.
«Мы полагаем, что данный механизм — удовлетворение обычной просьбы любой правительственной службы, которая хочет уменьшить вероятность утечки по побочным каналам. Но остается главный вопрос: как HAP влияет на функционирование Boot Guard? Из-за закрытости этой технологии ответить на этот вопрос пока не представляется возможным, но мы надеемся, что в скором будущем нам это удастся», — резюмируют исследователи.