Intel PCH
Сам процессор IME является частью микросхемы системного хаба (PCH). За исключением процессорных слотов PCI Express, всё общение системы с внешним миром проходит именно через PCH, а значит, IME имеет доступ практически ко всем данным. До версии 11 атака по этому вектору была маловероятна: процессор IME использовал собственную архитектуру с набором команд ARC, о которой было мало что известно сторонним разработчикам. Но в 11 версии с технологией сыграли плохую шутку: она была переведена на архитектуру x86, а в качестве ОС применили доработанный MINIX, а значит, сторонние исследования бинарного кода существенно упростились: и архитектура, и ОС неплохо документированы. Российским исследователям Дмитрию Склярову, Марку Ермолову и Максиму Горячему удалось расшифровать исполняемые модули IME 11 версии и начать их тщательное изучение.
Расшифрованное содержимое IME
Технологии Intel AMT присвоена оценка уязвимости 9,8 из 10 баллов. К сожалению, полное отключение IME на современных платформах невозможно по вышеописанной причине — подсистема тесно связана с инициализацией и запуском ЦП, а также управлением энергопотреблением. Но из образа флеш-памяти, содержащего модули IME, можно удалить всё лишнее, хотя сделать это очень сложно, особенно в версии 11. Активно развивается проект me_cleaner, утилита, позволяющая удалить общую часть образа и оставить только жизненно необходимые компоненты. Но приведём небольшое сравнение: если в версиях IME до 11 (до Skylake) утилита удаляла практически всё, оставляя примерно 90 Кбайт кода, то в настоящее время необходимо сохранить около 650 Кбайт кода — и то в некоторых случаях система может отключиться через полчаса, поскольку блок IME переходит в режим восстановления.
Статус IME после установки бита reserve_hap
Подвижки, однако, имеются. Вышеупомянутой группе исследователей удалось воспользоваться комплектом разработчика, который предоставляется самой Intel и включает в себя утилиты Flash Image Tool для настройки параметров IME и прошивальщик Flash Programming Tool, работающий через встроенный SPI-контроллер. Intel не выкладывает эти программы в открытый доступ, но найти их в сети не представляет особого труда.
Полученные с помощью этого комплекта XML-файлы были подвергнуты анализу (они содержат структуру прошивки IME и описание механизма PCH strap). Один бит под названием «reserve_hap» (HAP) показался подозрительным из-за описания «High Assurance Platform (HAP) enable». Поиск в сети показал, что это название программы по созданию платформ высокой доверенности, связанная с АНБ США. Задействование этого бита показало, что система перешла в режим Alt Disable Mode. Блок IME не отвечал на команды и не реагировал на воздействия из операционной системы. Имеется и ряд более тонких нюансов, которые можно узнать в статье на Habrahabr.ru, но в новой версии me_cleaner уже реализована поддержка большей части опасных модулей без установки бита HAP, что вводит движок IME в состояние «TemporaryDisable».
Последняя версия me_cleaner умеет делать это автоматически
Последняя модификация me_cleaner оставляет даже в 11-ой версии IME только модули RBE, KERNEL, SYSLIB и BUP, в них не найдено кода, позволяющего включить саму систему IME. В дополнение к ним можно использовать и бит HAP для полной уверенности, что утилита также умеет делать. Intel ознакомлена с результатами исследований и подтвердила, что ряд настроек IME действительно связан с потребностями государственных организаций в средствах повышенной безопасности. Введены эти настройки были по просьбе правительственных клиентов США, они прошли ограниченную проверку и официально такие конфигурации компанией Intel не поддерживаются. Компания также отрицает внедрение в свои продукты так называемых бэкдоров.