В модуле Intel Management Engine найдены закладки для АНБ США

Удобные средства удалённого управления спасают системным администраторам много сил — и одновременно представляют собой огромную угрозу безопасности в том случае, когда их нельзя отключить аппаратно с помощью джампера или переключателя на системной плате. Блок Intel Management Engine 11 в современных платформах Intel представляет собой именно такую опасность — изначально он неотключаем и, более того, на него завязаны некоторые механизмы инициализации и функционирования процессора, так что грубая деактивация может просто привести к полной неработоспособности системы. Уязвимость кроется в технологии Intel Active Management Technology (AMT) и при удачной атаке позволяет получить полный контроль над системой, о чём было рассказано ещё в мае этого года. Но исследователям из Positive Technologiesудалость найти путь устранения угрозы.

Сам процессор 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 не поддерживаются. Компания также отрицает внедрение в свои продукты так называемых бэкдоров.