Intel txei driver for windows что это
Trusted Execution Environment на примере Intel SGX. Основные принципы простыми словами. «Hello World!»
Данная статья направлена, прежде всего, на начинающего специалиста, который только
приступил к исследованию методов и способов обеспечения информационной безопасности исполняемого программного кода. С такой задачей рано или поздно сталкиваются все разработчики ПО и системные инженеры, что и произошло на одном из проектов компании Альтирикс системс, в рамках которого необходимо было реализовать защищенное исполнение программного кода в условно не защищенной среде. Для чего, помимо, уже известных и хорошо описанных методов и средств защиты информации, была выбрана, достаточно редко применяемая в российских проектах технология Trusted Execution Environment (TEE) или, говоря по-русски, технология доверенных сред исполнения. Конкретно в этой статье мы решили описать практический пример использования анклавов процессора Intel для доверенной среды исполнения кода (Intel Software Guard Extensions или SGX).
Доверенные среды исполнения поддерживаются далеко не только процессорами данного производителя. Также, TEE поддерживается рядом процессоров AMD (Secure Execution Environment, Secure Technology), процессорами с архитектурой ARM (TrustZone), процессорами с архитектурой RISC-V. Кроме того, TEE поддерживается современными мейнфреймами IBM Z. Мы же выбрали Intel SGX для своего примера поскольку считаем, что на момент написания статьи (лето 2020г.) процессоры Intel наиболее популярны и доступны для начинающих специалистов на постсоветском пространстве. С полным перечнем моделей процессоров Intel с поддержкой Intel SGX можно ознакомиться на сайте Intel в разделе Intel product specifications (ARK), выбрав для поиска соответствующую технологию. И да, возможно, воспользоваться эмуляциями Intel SGX для учебных или исследовательских целей. Работа с несколькими из таких эмуляций выявила ряд сложностей в их настройке. Также нужно понимать, что для реальных “боевых” проектов никакая эмуляция технологии основанной на аппаратом функционале, естественно, недопустима.
Любой ваш отзыв, особенно, с замечаниями и дополнениями от специалистов уже имеющих опыт применения TEE в своих проектах, или же с вопросами от тех, кто точно так же только начинает погружаться в эту технологию, поспособствуют более детальному раскрытию данной темы в следующих статьях. Заранее спасибо!
Введение
Основной вопрос, который мы задаем в начале пути изучения доверенных сред исполнения: можем ли мы доверять компонентам системы компьютера? А если можем, то каким? Разработчики, а в частности инженеры Intel, дают на этот вопрос однозначный ответ: никому, кроме самого Intel. Что под этим подразумевается? Предлагаю поподробнее в этом разобраться.
Кольца привилегий
В целях безопасности, компоненты системы любого компьютера разделены по уровням привилегий. Во всех современных системах, базирующихся на процессорах Intel и не только, реализована кольцевая система уровней привилегий. От внешнего к внутреннему идет расширение полномочий для кода, который обрабатывается в данный момент процессором.
Кольцо №3. На внешнем кольце располагаются все пользовательские приложения, которые мы используем на компьютере в повседневной жизни, они имеют низший уровень доступа.
Кольцо №2 и №1. На данных уровнях располагаются операционные системы и драйвера устройств.
Кольцо №0. Режим супервизора. Здесь расположено ядро операционной системы (управление периферий, распределение ресурсов между процессами), а также системные драйвера.
Кольцо №-1. Гипервизор. Отвечает за распределение ресурсов в случае, если на компьютере одновременно запущены несколько операционных систем, а также отвечает за их изоляцию.
Кольцо №-2. Режим системного управления (SMM – System Management Mode). Управляет энергообеспечением системы, управляет платами расширения.
Мы можем формировать всё новые и новые кольца для ограничения полномочий компонентов иерархии, создавая всё более сложную и нагруженную систему. Однако, таким образом работа для злоумышленника только облегчится: чем сложнее система, тем проще найти в ней уязвимость. Но каким же образом обеспечить дополнительный уровень безопасности там, где это требуется? Ответ состоит из одного слова.
Анклавы
Основной задачей злоумышленника является получение уровня привилегий, который обеспечил бы ему доступ к необходимым ресурсам системы. Если это секрет приложения-жертвы, то злонамеренному приложению необходим именно тот уровень доступа, который отвечает за хранение секретов в системе. Отсюда напрашивается вывод, что управление секретами приложений стоит доверить самому внутреннему кольцу, ведь доступ туда получить сложнее всего. Однако, данный подход был несколько переосмыслен. Теперь все секреты хранятся на одном уровне с пользовательскими приложениями, как и код, который этими секретами управляет за одним условием: никто, абсолютно никто, кроме процессора, не может получить туда доступ. Программа и данные как бы упакованы в хранилище, в данном случае это хранилище называется анклавом (Enclave – закрытый, запертый), ключ от которого есть только у процессора.
Приложения, работающие с доверенной средой
Доверенная часть представляет из себя набор функций и процедур, называемых ECALL (Enclave Call). Сигнатура таких функций должна быть прописана в специальном header-файле, а их реализация в файле с исходным кодом. В целом, подход схож с тем, что мы используем при обычном прописывании хедеров, однако, в данном контексте используется специальный C-подобный язык EDL (Enclave Definition Language). Также необходимо прописать прототипы тех функций, которые можно будет вызвать изнутри анклава, такие функции называются OCALL (Outside Call). Прототипы прописываются в том же хедере, где и ECALL-функции, а реализация, в отличие от ECALL, прописывается соответственно в недоверенной части приложения.
Доверенный и недоверенный код жестко связываются между собой сертификацией с использованием протокола Диффи-Хеллмана. За процедуру подписи отвечает процессор, где и хранится ключ обмена информации, обновляющийся каждый раз при перезагрузке системы. Содержимое анклавов хранится в общей памяти, используемой пользовательскими приложениями, однако хранение происходит в зашифрованном виде. Расшифровать содержимое может только процессор. В идеализированном мире, где код анклавов прописан без единого бага, а все железо работает точно так, как это задумал производитель и никак иначе, мы бы получили универсальную, полностью защищенную систему. Основным достоинством данной системы является исполнение секретной части на том же процессоре, где исполняются все остальные программы, в том числе и пользовательские.
Однако, в последние несколько лет перед широкой аудиторий предстало большое количество микроархитектурных уязвимостей современных процессоров, позволяющих получить доступ внутрь анклава: Foreshadow (уязвимость класса Spectre), SGAxe, Zombieload, CacheOut и многие другие. Нет никакой гарантии того, что это список не пополнится очередной серьезной аппаратной уязвимостью, программное исправление которой не иначе как программной «заплаткой» назвать будет нельзя. Возможно, мы доживем до того времени, когда миру будет представлена абсолютно новая архитектура процессоров, в которой будут исправлены все недостатки, а пока, стоит говорить о том, что у нас есть под рукой. А под рукой у нас есть универсальный, мощный инструмент, серьезно повышающий безопасность современных систем. Повышающий настолько, что он реализован в той или иной интерпретации в миллиардах устройств по всему миру: от умных часов, смартфонов до огромных вычислительных кластеров.
Hello world!
Перейдем от теории к практике. Напишем небольшую программу, которая реализует ставшую уже каноничной задачу: вывести строку «Hello world!». В данной интерпретации укажем ещё и место, откуда будет отправлено послание.
Для начала необходимо скачать и установить SDK для работы с SGX с официального сайта. Для скачивания необходимо пройти простую процедуру регистрации. На этапе установки будет предложено интегрировать пакет разработки в имеющуюся на компьютере версию VS, сделайте это. Всё готово для успешной реализации первого проекта с использованием SGX.
Запускаем VS и создаем проект Intel SGX.
Выбираем имя для проекта и для решения и ждем «далее».
Далее будет предложено выбрать конфигурацию проекта, ничего не меняйте, оставьте те значения, которые предложены изначально.
Затем добавьте к созданному решение ещё один проект: обычное консольное приложение C++.
В результате в диалоговом окне проектов должна получиться следующая картина:
Затем необходимо связать анклав с недоверенной частью. Жмем правой кнопкой на проект «Untrusted part».
Далее необходимо изменить некоторые свойства проектов.
Это необходимо проделать для корректной работы программы. Повторяем действия для обоих проектов.
Также необходимо обозначить в свойствах решения главный проект.
Всё, наша программа готова к реализации.
В данной программе будет 3 файла, с которыми мы будем работать: Enclave.edl (тот самый хедер), Enclave.cpp (прописана реализация ECALL’ов), Untrusted Part.cpp (главный файл проекта – недоверенная часть).
Поместим в файлы следующий код:
Жмем f7 – собираем решение, а затем ctrl+f5 для запуска.
Если у вас выдало ошибку следующего содержания:
убедитесь, что в BIOS активирован Intel SGX: Bios: Security/IntelSGX/Enabled.
В случае, если никаких ошибок не последовало, а перед экраном на консоли вы увидели следующие строки:
Важное обновление встроенного ПО Intel® Management Engine (Intel-SA-00086)
Тип материала Поиск и устранение неисправностей
Идентификатор статьи 000025619
Последняя редакция 17.08.2021
Уязвимость Intel® Management Engine (Intel® ME 6.x/7.x/8.x/9.x/10.x/11.x), Intel® Trusted Execution Engine (Intel® TXE 3.0) и Intel® Server Platform Services (Intel® SPS 4.0) (Intel-SA-00086)
Примечание | В этой статье представлены проблемы, относящиеся к уязвимостям системы безопасности, обнаруженные во встроенном ПО Intel® Management Engine. Эта статья не содержит информацию, связанную с уязвимостью побочного канала процессора (известна как Meltdown/Spectre). Если вам нужна информация о проблеме Meltdown/Spectre, откройте темуФакты анализа побочных каналов и продукции Intel®. |
В ответ на проблемы, идентифицированные сторонними исследователями, корпорация Intel выполнила всесторонний анализ безопасности для улучшения надежности встроенного ПО:
Корпорация Intel идентифицировала уязвимости для системы безопасности, которые могут потенциально повлиять на определенные ПК, серверы и платформы Интернета вещей.
Данной уязвимости подвержены системы, использующие встроенное ПО Intel ME 6.x-11.x, серверы, использующие встроенное ПО SPS версии 4.0, и системы, использующие TXE версии 3.0. Вы можете найти эти версии встроенного ПО у определенных процессоров:
Для определения воздействия идентифицированной уязвимости на вашу систему загрузите и запустите средство определения версий Intel CSME Version Detection по следующим ссылкам.
Доступные ресурсы
Ресурсы для пользователей Microsoft и Linux*
Ресурсы от производителей систем/системных плат
Часто задаваемые вопросы:
В: Средство определения версий Intel CSME Version Detection Tool сообщает, что моя система уязвима. Что мне делать?
О: Корпорация Intel предоставила производителям систем и системных плат необходимые обновления встроенного ПО и программного обеспечения для устранения уязвимостей, идентифицированных в рекомендации для безопасности Intel-SA-00086.
Обратитесь к производителю вашей системы или системной платы за информацией о планах в отношении обновлений, доступных для конечных пользователей.
Некоторые производители предоставили Intel прямые ссылки, созданные для их клиентов для получения дополнительной информации и загрузки доступных обновлений программного обеспечения (см. список далее).
В: Почему мне нужно обращаться к производителю моей системы или системной платы? Почему корпорация Intel не может предоставить необходимое обновление для моей системы?
О: Корпорация Intel не может предоставить универсальное обновление из-за настроек встроенного ПО программы управления, которые выполнены производителями систем и системных плат.
В: Моя система отображается в инструменте обнаружения версий Intel CSME Version Detection Tool как возможно уязвимая. Что мне делать?
О: Статус возможной уязвимости обычно отображается, когда не установлен любой из следующих драйверов:
Обратитесь к производителю вашей системы или системной платы для получения соответствующих драйверов.
В: Производителя моей системы или системной платы нет в вашем списке. Что мне делать?
О: В следующем списке представлены ссылки, полученные от производителей систем или системных плат, которые предоставили нужную информацию в корпорацию Intel. Если производителя вашей системы нет в списке, обратитесь к нему за помощью, используя стандартный способ обращения за поддержкой (веб-сайт, телефон, эл. почта и т.д.).
В: Какие типы доступа могут применять атакующие для использования идентифицированных уязвимостей?
О: Если производитель аппаратных средств воспользуется рекомендуемыми корпорацией Intel механизмами защиты от записи, атакующему потребуется получить физический доступ к флэш-памяти встроенного ПО платформы для использования уязвимостей, идентифицированных в следующих рекомендациях:
Злоумышленник получает физический доступ, вручную обновляя платформу, устанавливая образ вредоносного встроенного ПО с помощью устройства программирования, физически подключаемого к флэш-памяти платформы. Защита от записи флэш-дескриптора обычно устанавливается на платформе в конце производства. Защита от записи флэш-описателя обеспечивает защиту настроек флэш-памяти от преднамеренного или непреднамеренного изменения после производства.
Если производитель аппаратных средств не активирует рекомендуемые корпорацией Intel механизмы защиты от записи флэш-описателя, атакующему потребуется доступ к работающем ядру (логический доступ, кольцо 0 операционной системы). Атакующему необходим данный доступ для использования идентифицированных уязвимостей посредством установки на платформе вредоносного образа встроенного ПО с помощью вредоносного драйвера платформы.
Уязвимость, идентифицированная в документе CVE-2017-5712, может быть использована удаленно через сеть в сочетании с действительными административными учетными данными для Intel® Management Engine. Уязвимость не может быть применима, если действительные административные учетные данные недоступны.
Если вам необходима дополнительная помощь, обратитесь в службу поддержки Intel для оформления онлайновой заявки на обслуживание.
Обновление драйвера Intel исправляет сбои Windows 10 и повышает производительность
Если драйверы повреждены или устарели, могут возникнуть проблемы, особенно после обновления компонентов Windows 10. Это может привести к сбоям и проблемам со стабильностью, поскольку драйвер – это часть программного обеспечения, которое позволяет компонентам Windows 10 работать вместе и распознаваться периферийными устройствами.
Корпорация Intel выпускает новое обновление драйвера беспроводной сети для Windows 10, чтобы исправить сбои системы и повысить производительность вашей системы, а также беспроводного соединения.
На этой неделе было выпущено обновление драйвера Intel Wi-Fi версии 21.120.0, но оно не сразу появится у всех; Intel также применяет свой обычный постепенный подход к развертыванию обновленного драйвера.
Основываясь на отзывах пользователей, Intel ограничит выпуск драйверов Wi-Fi версии 21.120.0, 20.70.18.2 и 19.51.30.1. Также стоит отметить, что это обновление распространяется только для некоторых беспроводных адаптеров, таких как AX-20x. Вот полный список поддерживаемых адаптеров:
• Wireless-AC 95602
• Wireless-AC 94622
• Wireless-AC 94612
• Wi-Fi 6 (Gig+) Desktop Kit2
• Wi-Fi 6 AX201
• Wi-Fi 6 AX200
• Wireless-AC 92602
• Wireless 7265 (Rev D) Family
• Dual-Band Wireless-AC 82652
• Dual Band Wireless-AC 82602
• Dual Band Wireless-AC 3168
• Dual Band Wireless-AC 3165
Лучший способ проверить модель вашего беспроводного адаптера – использовать встроенный инструмент Microsoft: Диспетчер устройств.
Перейдите в поиск Windows и найдите «Диспетчер устройств», а затем щелкните первый результат. В Диспетчере устройств прокрутите вниз до опции «Сетевые адаптеры» и щелкните по нему, чтобы развернуть панель и просмотреть установленный адаптер.
Что нового в драйвере Intel v21.120.0
Как мы уже упоминали в начале, Intel исправила несколько ошибок в этом обновлении, включая проблему, которая могла привести к сбою вашего устройства и появления Синего экрана смерти (BSOD) при перезагрузке Windows.
Как получить обновление драйверов за сентябрь 2020 г.
Как и Microsoft, Intel, похоже, придерживается постепенного подхода к развертыванию обновления драйверов.
Другими словами, этот драйвер предлагается поэтапно все большему числу пользователей, начиная с тех, чьи устройства, по мнению Intel, являются наиболее совместимыми.
Кроме того, важно понимать, что вам не следует принудительно обновлять драйверы вручную, если ваше устройство уже работает без сбоев. Для тех, кто заинтересован, вы можете проверить наличие обновлений с помощью инструмента Intel.
Код драйвера интерфейса Intel Management Engine 10 [решено]
Если вы видите желтый восклицательный знак или вопросительный знак рядом с вашим Intel (R) Management Engine Interface (IMEI) имя устройства в диспетчере устройств, не паникуйте, у нас есть для вас исправления. Вам может быть трудно в это поверить, но эта проблема не так серьезна, как вы думаете, и исправить ее может быть проще простого.
Попробуйте эти исправления по одному
Вот 3 наиболее эффективных метода, которые вы можете попробовать. Возможно, вам не придется пробовать их все; просто двигайтесь вниз, пока не найдете тот, который вам подходит.
Что такое интерфейс Intel Management Engine (IMEI)?
Метод 1: Центр обновления Windows
Прежде всего, вам нужно проверить, есть ли у вас какие-либо обновления или исправления из Центра обновления Windows, которые вы пропустили. Если они есть, обновите их, прежде чем переходить к следующим шагам.
Если они обнаружены, обязательно обновите все драйверы устройств или патчи. Затем перезагрузите ваш компьютер.
Метод 2: переустановите драйвер вручную
Ошибка с кодом 10 в диспетчере устройств обычно указывает на ошибку драйвера. В некоторых случаях ошибка драйвера может быть связана с установленным неправильным драйвером.. Чтобы исправить это:
3) Перезагрузите компьютер. Windows автоматически поможет вам обновить правильный драйвер после перезагрузки.
Метод 3. Обновление драйвер
Если описанный выше метод не решает вашу проблему, скорее всего, вы используете не тот драйвер.
Получить нужные драйверы для видеокарты и монитора можно двумя способами: вручную или автоматически.
Обновление драйверов вручную — Вы можете обновить драйверы Intel Management Engine Interface вручную, перейдя на веб-сайт производителя и выполнив поиск последней версии правильного драйвера для каждого из них. Обязательно выбирайте только драйверы, совместимые с вашим вариантом Windows 10.
Автоматическое обновление драйверов — если у вас нет времени, терпения или компьютера навыки обновления драйверов видео и монитора вручную, вместо этого вы можете сделать это автоматически с помощью Driver Easy. Он автоматически распознает вашу систему и найдет для нее подходящие драйверы. Вам не нужно точно знать, на какой системе работает ваш компьютер, вам не нужно рисковать загрузкой и установкой неправильного драйвера, и вам не нужно беспокоиться об ошибке при установке.
Вы можете автоматически обновлять драйверы с помощью БЕСПЛАТНОЙ или Pro версии Driver Easy. Но с версией Pro требуется всего 2 клика (и вы получаете полную поддержку и 30-дневную гарантию возврата денег):
1) Загрузите и установите драйвер Легкий.
3) Нажмите кнопку Обновить рядом с отмеченным драйвером Intel Management Engine Interface для автоматической загрузки и установки правильной версии этого драйвера (вы можете сделать это с помощью БЕСПЛАТНОЙ версии).
Intel ME. Как избежать восстания машин?
Ошарашенный присутствием такого компонента в компьютере, пользователь (получается, что именно «пользователь», а не «владелец») наверняка задавался вопросом: можно ли выключить Intel ME?
Эта статья целиком посвящена этому вопросу.
Введение
Начиная с 6-й версии, ME-контроллер встраивают во все чипсеты Intel.
[рисунок взят отсюда]
Загрузчик его прошивки хранится во внутренней ROM и недоступен для анализа. Сама прошивка располагается в регионе ME во внешней SPI флэш-памяти (т.е. в той же памяти, где хранится BIOS). Структура этой прошивки такова, что весь исполнимый код разбит на модули, которые хранятся в сжатом виде (либо кастомной реализацией алгоритма Хаффмана, либо LZMA). Эти кодовые модули криптографически защищены от модификаций.
Если есть желание поревёрсить прошивку, рекомендуем воспользоваться этими двумя инструментами для изучения её структуры и распаковки кодовых модулей.
Итак, рассматриваемая подсистема является аппаратно-программной основой для различных системных функций (некоторые раньше реализовывали в BIOS) и технологий Intel. Их имплементация включается в состав прошивки Intel ME. Одной из таких технологий, использующих несколько особых привилегий Intel ME, является Active Management Technology (AMT).
Контроль за состоянием AMT
AMT – технология удалённого администрирования компьютерных систем, для которых заявлена официальная поддержка Intel vPro (это бренд, объединяющий несколько технологий, в том числе, AMT). Речь идёт о системах с чипсетами линейки Q (например, Q57 или Q170).
Учитывая высокую стоимость таких платформ, вряд ли кто-то случайно приобретёт компьютер с AMT для того, чтобы принципиально этой технологией не пользоваться. Тем не менее, если под рукой именно такой продукт, и есть необходимость убедиться, что AMT на текущий момент выключена, следует воспользоваться утилитой ACUwizard:
[рисунок взят отсюда]
или средством Intel Management and Security Status (входит в состав ПО Intel ME для vPro-платформ, можно обнаружить в трее):
В продуктах, не относящихся к разряду vPro-платформ AMT включить нельзя, однако в состав прошивки Intel ME входят сетевые драйверы:
Это означает, что ME-контроллер (не будем забывать, что он всегда включен) имеет техническую возможность использования сетевого интерфейса.
Поэтому проблему стоит решать основательно – пытаться выключить подсистему Intel ME.
Выключение Intel ME при помощи утилит из Intel System Tool Kit
Несмотря на то, что этот комплект распространяется по NDA (судя по меткам «Intel Confidential» в прилагаемых документах), многие вендоры забывают его вырезать из архива с ПО Intel ME, который передаётся пользователям. А ещё не закрывают свои ftp-серверы от внешнего доступа. В результате, утекших версий STK очень много. Здесь можно слить комплект для любой версии Intel ME.
Важно, чтобы major и minor version (первая и вторая цифры) используемого STK совпадала с версией Intel ME целевой системы, информацию о которой можно получить, например, воспользовавшись ME analyzer:
Проверять текущее состояние Intel ME можно при помощи утилиты MEinfo, которая через Management Engine Interface (MEI) получает информацию о работе этой подсистемы:
Напомним, что MEI является интерфейсом для связи основного CPU с подсистемой Intel ME и представляет собой набор регистров в конфигурационном пространстве PCI и в MMIO. Команды этого интерфейса не документированы, как и сам протокол.
Flash Image Tool
На старых платформах (Intel ME версии 5.x и ниже) выключить данную подсистему можно, воспользовавшись Flash Image Tool (утилита из STK, предназначенная для сборки образов SPI флэш-памяти из отдельно взятых регионов BIOS, ME, GbE). При сборке задаются параметры, которые прописываются в этих регионах и в регионе Flash Descriptors. В последнем есть один очень интересный флаг, «ME disable»:
Таким образом, для выключения Intel ME на целевой компьютерной системе, в её SPI флэш-память следует записать (программатором) новый образ с выставленным флагом «ME disable».
Работает ли этот способ, нам неизвестно. Но звучит правдоподобно, учитывая, что ME-контроллер в тех версиях интегрировался только в чипсеты линейки Q, т.е. был не обязательным компонентом для всех платформ.
Flash Programming Tool
Начиная с Intel ME 9 версии, в утилиту Flash Programming Tool, предназначенную для программирования SPI флэш-памяти компьютерных платформ, была добавлена возможность временно выключать Intel ME:
Выключение выполняется отправкой команды в MEI. После отработки Intel ME не подаёт «признаков жизни», не отвечает даже MEI:
Согласно документации, в таком состоянии подсистема Intel ME находится до следующего запуска компьютера или перезагрузки.
На vPro-платформах возможность отправки этой команды есть и в более ранних версиях. Для этого необходимо воспользоваться разделом конфигурирования ME/AMT в BIOS, где должна быть опция «Intel ME disable»:
[рисунок взят отсюда]
Нельзя говорить о том, что этот способ позволяет полностью отключить Intel ME, хотя бы потому, что до момента принятия команды на отключение ME-контроллер успеет загрузиться, а значит, выполнить некоторую часть кода прошивки.
Несмотря на то, что Intel ME не подаёт «признаков жизни» после этой операции, неизвестно, может ли эту подсистему заново включить какой-нибудь сигнал извне. Также неясно, насколько Intel ME выключена.
Принудительное выключение Intel ME
В интересах исключения возможности исполнения ME-контроллером кода прошивки, логично попробовать ограничить ему доступ к ней. А что? Нет кода – нет проблемы.
Проанализировав документацию, которая прилагается к STK, и, немного подумав, мы предположили, что это можно сделать следующими способами.
1. Вырезать (обнулить) ME регион из SPI флэш-памяти.
Те, кто пробовал так делать сообщают о том, что их платформа либо не загружалась без наличия подлинной прошивки ME, либо выключалась ровно после 30 минут работы.
Отказ компьютерной системы грузиться без прошивки Intel ME можно объяснить важностью ME-контроллера в процессе инициализации аппаратной составляющей. А 30-минутный таймаут наводит на мысль о WDT (Watch Dog Timer).
Таким образом, ME-контроллер не получит доступ к своему региону, и, следовательно, не будет исполнять прошивку.
С одной стороны, ME-контроллер так же, как и в предыдущем случае, может препятствовать нормальной работе компьютерной системы. С другой стороны, не дескрипторный режим включает т.н. manufacturing mode, который используется вендорами в отладочных целях, и есть шанс, что система запустится.
3. Известно, что прошивка Intel ME распаковывается в выделенную и скрытую от основного CPU область оперативной памяти – ME UMA. Выделение и блокировку этой области осуществляет BIOS во время конфигурирования карты памяти. Тогда почему бы не вырезать эти фрагменты кода из BIOS, чтобы данная область не выделялась. Тогда прошивка ME не будет распаковываться и исполняться.
Проведённые эксперименты показали, что такой способ тоже не годится, и система не запускается. К тому же, у ME-контроллера есть внутренняя SRAM, которая используется при недоступности ME UMA. Поэтому часть прошивки всё равно будет исполняться.
Вывод
Очевидно, что некоторые предложенные решения влекут за собой неработоспособность компьютерной системы, остальные не дают никакой гарантии того, что подсистема Intel ME действительно выключена. В связи с этим, мы пришли к выводу, что полностью выключить Intel ME крайне сложно.
Вероятно, это связано с тем, что, отключая Intel ME, мы нейтрализуем важный компонент в архитектуре компьютерной системы. Например, без ME некому будет решать важные системные задачи вроде ACPI или ICC (которые когда-то реализовывались в BIOS). Чтобы заставить платформу стабильно работать без ME, как минимум, необходимо вернуть реализацию этих технологий в BIOS.
Так или иначе, вопрос о том, как отключить Intel ME без потери работоспособности компьютерной системы, остаётся открытым.