Прошивка и программное обеспечение, которые работают на всех современных процессорах Intel на более высоком уровне, чем операционная система, предназначенная для пользователя.
Кольца привилегий для x86 архитектура. ME в просторечии классифицируется как кольцо -3, ниже Режим управления системой (кольцо −2) и гипервизор (кольцо -1), все работают с более высоким уровнем привилегий, чем ядро (кольцо 0)
В Intel Management Engine (МНЕ), также известный как Intel Manageability Engine, [1] [2] автономная подсистема, включенная практически во все Intel с процессор чипсеты с 2008 года. [1] [3] [4] Он расположен в Концентратор контроллера платформы современной Intel материнские платы.
Intel Management Engine всегда работает, пока на материнскую плату подается питание, даже когда компьютер выключен.
Intel ME является привлекательной целью для хакеров, поскольку он имеет доступ верхнего уровня ко всем устройствам и полностью обходит операционную систему. В Фонд электронных рубежей выразил озабоченность по поводу Intel ME, а некоторые исследователи в области безопасности выразили обеспокоенность тем, что это бэкдор.
Intel Management engine Interface (error code 10)-solved
Главный конкурент Intel AMD включил эквивалент Технология AMD Secure (формально называется Platform Security Processor) практически во всех процессорах, выпущенных после 2013 года. [5]
- 1 Отличие от Intel AMT
- 2 Дизайн
- 2.1 Аппаратное обеспечение
- 2.2 Прошивка
- 2.2.1 Модули
- 3.1 Ring −3 руткит
- 3.2 Автоматическая подготовка
- 3.3 SA-00075 (также известный как Silent Bob is Silent)
- 3.4 ПЛАТИНОВЫЙ
- 3.5 SA-00086
- 3.5.1 Затронутые системы [74]
- 3.5.2 Смягчение
- 5.1 Недокументированные методы
- 5.1.1 Стерилизация прошивки
- 5.1.2 Режим «Платформа высокой надежности»
- 6.1 От Google
- 6.2 Производителями процессоров AMD
Отличие от Intel AMT
Механизм управления часто путают с Intel AMT (Технология Intel Active Management). AMT работает на ME, но доступен только на процессорах с vPro. AMT дает владельцам устройств возможность удаленного администрирования своего компьютера, [6] например, включение или выключение и переустановка операционной системы.
Однако с 2008 года ME встроен во все чипсеты Intel, а не только с AMT. Хотя владелец может не предоставлять AMT, официального документированного способа отключить ME не существует. [ нужна цитата ]
Дизайн
Подсистема в основном состоит из проприетарного микропрограммного обеспечения, работающего на отдельном микропроцессоре, который выполняет задачи во время загрузки, когда компьютер работает, и пока он спит. [7] Пока чипсет или SoC подключен к току (через аккумулятор или источник питания), он продолжает работать, даже когда система выключена. [8] Intel утверждает, что ME требуется для обеспечения полной производительности. [9] Его точная работа [10] в значительной степени недокументированы [11] и его код запутанный используя конфиденциальный Таблицы Хаффмана хранятся непосредственно в оборудовании, поэтому прошивка не содержит информации, необходимой для декодирования ее содержимого. [12]
Fix Intel management engine interface (The device cannot start code 10)
Аппаратное обеспечение
Начиная с ME 11, он основан на Intel Quark на базе x86 32-битный CPU и запускает МИНИКС 3 Операционная система. [13] Состояние ME хранится в разделе SPI flash, с использованием Встроенная файловая система Flash (EFFS). [14] Предыдущие версии были основаны на Ядро ARC, когда Management Engine запускает ThreadX ОСРВ. Версии ME с 1.x по 5.x использовали ARCTangent-A4 (только 32-битные инструкции), тогда как версии 6.x по 8.x использовали более новый ARCompact (смешанный 32- и 16 бит архитектура набора команд ). Начиная с ME 7.1, процессор ARC также мог выполнять подписанные Java-апплеты.
Прошивка
- Management Engine (ME) — основные чипсеты [22]
- Server Platform Services (SPS) — серверные чипсеты и SoC[23][22][24]
- Trusted Execution Engine (TXE) — планшет / встроенный / с низким энергопотреблением [25][26]
Российская компания Positive Technologies (Дмитрий Скляров ) обнаружил, что прошивка ME версии 11 работает МИНИКС 3. [13] [27] [28]
Модули
- Технология активного управления (AMT) [2]
- Intel Boot Guard (IBG) [29] и Безопасная загрузка[26]
- Тихая системная технология (QST), ранее известный как Advanced Fan Speed Control (AFSC), который обеспечивает поддержку акустически оптимизированного управления скоростью вращения вентилятора, а также мониторинг датчиков температуры, напряжения, тока и скорости вращения вентилятора, которые имеются в чипсете, ЦП и других имеющихся устройствах на материнской плате. Связь с подсистемой прошивки QST задокументирована и доступна через официальный комплект для разработки программного обеспечения (SDK). [30]
- Защищенный путь аудио-видео [31][12]
- Intel Anti-Theft Technology (AT), производство прекращено в 2015 году. [32][33]
- Последовательный через LAN (СОЛ) [34]
- Технология Intel Platform Trust (PTT), основанная на прошивке Модуль доверенной платформы (TPM) [29][35]
- Связь ближнего поля, промежуточное программное обеспечение для считывателей NFC и поставщиков для доступа к картам NFC и обеспечения безопасного доступа к элементам, обнаруженное в более поздних версиях MEI. [36]
Уязвимости безопасности
В ME было обнаружено несколько слабых мест. 1 мая 2017 г. корпорация Intel подтвердила ошибку удаленного повышения привилегий (SA-00075) в своей технологии управления. [37] Каждая платформа Intel с предоставленными возможностями Intel Standard Manageability, Active Management Technology или Small Business Technology, от Nehalem в 2008 г. Kaby Lake в 2017 году имеет удаленно используемую дыру в безопасности в ME. [38] [39] Было найдено несколько способов отключить ME без авторизации, которые могут позволить саботировать функции ME. [40] [41] [42] Дополнительные серьезные недостатки безопасности в ME, затрагивающие очень большое количество компьютеров с встроенным ПО ME, Trusted Execution Engine (TXE) и Server Platform Services (SPS), от Skylake в 2015 г. Coffee Lake в 2017 году были подтверждены Intel 20 ноября 2017 года (SA-00086). [43] [44] В отличие от SA-00075, эта ошибка присутствует даже в том случае, если AMT отсутствует, не настроен или если ME был «отключен» любым из известных неофициальных методов. [45] В июле 2018 года был обнаружен еще один набор уязвимостей (SA-00112). [46] В сентябре 2018 года была опубликована еще одна уязвимость (SA-00125). [47]
Ring −3 руткит
А звенеть −3 руткит был продемонстрирован лабораторией Invisible Things Lab для чипсета Q35; он не работает для более позднего набора микросхем Q45, поскольку Intel реализовала дополнительные меры защиты. [48] Эксплойт работал путем переназначения обычно защищенной области памяти (верхние 16 МБ ОЗУ), зарезервированной для ME. Руткит ME может быть установлен независимо от того, присутствует ли AMT в системе или включена, так как набор микросхем всегда содержит сопроцессор ARC ME. (Обозначение «−3» было выбрано, потому что сопроцессор ME работает, даже когда система находится в Состояние S3, поэтому он считался слоем ниже Режим управления системой руткиты. [19] ) Для уязвимого чипсета Q35 регистратор нажатий клавиш Руткит на основе ME был продемонстрирован Патриком Стюином. [49] [50]
Автоматическая подготовка
Другая оценка безопасности, проведенная Вассилиосом Верверисом, показала серьезные недостатки в реализации набора микросхем GM45. В частности, он подверг критике AMT за передачу незашифрованных паролей в режиме инициализации SMB, когда используются функции перенаправления IDE и последовательного порта через LAN. Также было обнаружено, что режим обеспечения «нулевого касания» (ZTC) все еще включен, даже если AMT отключен в BIOS. Примерно за 60 евро Ververis приобрел у Иди, папа сертификат, который принимается микропрограммой ME и позволяет удаленное «нулевое касание» (возможно, ничего не подозревающих) компьютеров, которые транслируют свои пакеты HELLO на потенциальные серверы конфигурации. [51]
SA-00075 (также известный как Тихий Боб молчит)
В мае 2017 г. корпорация Intel подтвердила, что на многих компьютерах с AMT не исправлена критическая уязвимость повышения привилегий (CVE-2017-5689 ). [39] [52] [37] [53] [54] Уязвимость, которую исследователи, сообщившие в Intel, прозвали «Silent Bob is Silent», [55] влияет на многочисленные ноутбуки, настольные компьютеры и серверы, продаваемые Dell, Fujitsu, Hewlett Packard (потом Hewlett Packard Enterprise и HP Inc. ), Intel, Lenovo, и, возможно, другие. [55] [56] [57] [58] [59] [60] [61] Эти исследователи утверждали, что ошибка затрагивает системы, выпущенные в 2010 году или позже. [62] В других отчетах утверждалось, что ошибка также затрагивает системы, выпущенные еще в 2008 году. [63] [39] Уязвимость была описана как предоставление удаленным злоумышленникам:
«полный контроль над пораженными машинами, включая возможность читать и изменять все. Его можно использовать для установки устойчивых вредоносных программ (возможно, в микропрограммном обеспечении), а также чтения и изменения любых данных».
— Тату Юлёнен, ssh.com [55]
ПЛАТИНОВЫЙ
В июне 2017 г. ПЛАТИНОВЫЙ группа киберпреступников стала известна тем, что использовала последовательный через LAN (SOL) возможности AMT для кражи данных украденных документов. [64] [65] [66] [67] [68] [69] [70] [71] SOL по умолчанию отключен и должен быть включен для использования этой уязвимости. [72]
SA-00086
Через несколько месяцев после предыдущих ошибок и последующих предупреждений от EFF, [4] охранная компания Positive Technologies заявила, что разработала рабочий эксплуатировать. [73] 20 ноября 2017 г. корпорация Intel подтвердила, что в микропрограммах Management Engine (основной поток), Trusted Execution Engine (планшет / мобильный телефон) и Server Platform Services (сервер высшего класса) был обнаружен ряд серьезных недостатков, и выпустила «критическую микропрограмму». Обновить». [74] [75] Фактически, каждый компьютер на базе Intel за последние несколько лет, включая большинство настольных компьютеров и серверов, оказался уязвимым для компрометации их безопасности, хотя все потенциальные пути использования не были полностью известны. [75] Невозможно исправить проблемы из операционной системы, и требуется обновление прошивки (UEFI, BIOS) на материнской плате, что, как ожидалось, займет довольно много времени у многих отдельных производителей, если это когда-либо будет многие системы. [43]
Затронутые системы [74]
- Intel Atom — Семейство C3000
- Intel Atom — серия Apollo Lake E3900
- Intel Celeron — серии N и J
- Intel Core (i3, i5, i7, i9) — 1, 2, 3, 4, 5, 6, 7 и 8 поколения
- Intel Pentium — Озеро Аполлон
- Intel Xeon — Семейство продуктов E3-1200 v5 и v6
- Intel Xeon — семейство масштабируемых
- Intel Xeon — семейство W
Смягчение
Ни один из известных неофициальных методов отключения ME предотвращает использование уязвимости. Требуется обновление прошивки от производителя. Однако те, кто обнаружил уязвимость, отмечают, что обновления прошивки также не полностью эффективны, поскольку злоумышленник, имеющий доступ к области прошивки ME, может просто прошить старую уязвимую версию, а затем воспользоваться ошибкой. [45]
SA-00112
В июле 2018 года Intel объявила, что три уязвимости (CVE -2018-3628, CVE-2018-3629, CVE-2018-3632 ) был обнаружен, и потребуется патч для прошивки CSME. Intel указала, что патч для процессоров Core 3-го поколения или более ранних версий не будет, несмотря на то, что это касается чипов или их наборов микросхем еще в Intel Core 2 Duo vPro и Intel Centrino 2 vPro. Однако для существования уязвимости необходимо включить и подготовить Intel AMT. [46] [76]
Утверждения, что Я — бэкдор
Критики любят Фонд электронных рубежей (EFF), Libreboot разработчиков и эксперт по безопасности Дэмиен Заммит обвинил ME в том, что задняя дверь и проблема конфиденциальности. [77] [4] [78] Заммит подчеркивает, что ME имеет полный доступ к памяти (без каких-либо сведений о ядрах ЦП, контролируемых владельцем), имеет полный доступ к стеку TCP / IP и может отправлять и получать сетевые пакеты независимо от операционной системы, таким образом обходя свой брандмауэр. . [6]
В ответ Intel сказала, что «Intel не закрывает глаза на свои продукты, и наши продукты не предоставляют Intel контроль или доступ к вычислительным системам без явного разрешения конечного пользователя». [6] и «Intel не разрабатывает и не будет разрабатывать бэкдоры для доступа к своим продуктам. Недавние отчеты, утверждающие иное, неверны и явно ложны. Intel не участвует ни в каких усилиях по снижению безопасности своей технологии». [79]
В контексте критики Intel ME и Технология AMD Secure было указано, что Национальное Агенство Безопасности (NSA) бюджетный запрос на 2013 год содержал проект Sigint Enabling Project с целью «Вставить уязвимости в коммерческие системы шифрования, ИТ-системы,…», и высказывались предположения, что Intel ME и AMD Secure Technology могут быть частью этой программы. [80] [81]
Отключение ME
Обычно пользователь не может отключить ME. Однако были обнаружены некоторые недокументированные способы сделать это. [43] Эти методы не поддерживаются Intel. Архитектура безопасности ME предназначена для предотвращения отключения, и поэтому Intel считает ее возможность уязвимости. Например, вирус может злоупотребить им, чтобы заставить компьютер потерять некоторые функции, которые ожидает типичный конечный пользователь, например возможность воспроизводить мультимедиа с помощью DRM. С другой стороны, злоумышленник может использовать ME для удаленной компрометации системы.
Строго говоря, ни один из известных методов полностью не отключает ME, так как он необходим для загрузки основного процессора. Все известные методы просто переводят ME в ненормальное состояние вскоре после загрузки, в котором он, кажется, не работает. ME все еще физически подключен к системе, и его микропроцессор продолжает выполнять код.
Недокументированные методы
Стерилизация прошивки
В 2016 году проект me_cleaner обнаружил, что проверка целостности ME нарушена. Предполагается, что ME обнаружит, что он был взломан, и, если это так, принудительно выключит ПК через 30 минут после запуска системы. [82] Это предотвращает работу скомпрометированной системы незамеченной, но позволяет владельцу решить проблему, установив действительную версию микропрограммы ME в течение льготного периода. Как выяснилось в рамках проекта, путем внесения несанкционированных изменений в прошивку ME можно было принудительно перевести ее в состояние аномальной ошибки, которое не позволяло запускать выключение, даже если большие части прошивки были перезаписаны и, таким образом, стали неработоспособными.
Режим «Платформа высокой надежности»
В августе 2017 года российская компания Positive Technologies (Дмитрий Скляров ) опубликовал метод отключения ME через недокументированный встроенный режим. Как подтвердила Intel [83] ME содержит переключатель, позволяющий правительственным органам, таким как NSA, переводить ME в режим High-Assurance Platform (HAP) после загрузки. Этот режим отключает большинство функций ME, [79] [84] и предназначалась, чтобы быть доступной только в машинах, произведенных для определенных покупателей, таких как правительство США; однако большинство машин, продаваемых на розничном рынке, можно заставить активировать переключатель. [84] [85] Манипуляции с битом HAP были быстро включены в проект me_cleaner. [86]
Коммерческое отключение ME
В конце 2017 года несколько производителей ноутбуков заявили о своем намерении поставлять ноутбуки с отключенным Intel ME:
- Пуризм ранее подавал прошение Intel продавать процессоры без ME или выпустить его исходный код, называя это «угрозой цифровым правам пользователей». [87] В марте 2017 года Purism объявила, что нейтрализовала ME, удалив большую часть кода ME из флэш-памяти. [88] Далее было объявлено в октябре 2017 года. [89] что новые партии их Debian -основан Либрем Линия ноутбуков будет поставляться с нейтрализованным ME и дополнительным отключением большинства операций ME с помощью бита HAP. Также были анонсированы обновления для существующих ноутбуков Librem.
- В ноябре, Система76 объявили о своем плане отключить ME на своих новых и недавних Ubuntu машины через бит HAP. [90]
- В декабре, Dell начал показывать на своем веб-сайте некоторые ноутбуки, которые предлагали опцию «Управление системами» «Intel vPro — ME Inoperable, Custom Order» за дополнительную плату. Dell не объявила и не объяснила публично используемые методы. В ответ на запросы прессы Dell заявила, что эти системы предлагались довольно давно, но не для широкой публики и попали на веб-сайт лишь случайно. [91] Ноутбуки доступны только по индивидуальному заказу и только военным, правительственным и спецслужбам. [92] Они специально разработаны для скрытых операций, таких как очень прочный корпус и аварийный выключатель в «скрытом» рабочем режиме, который отключает дисплей, светодиодные индикаторы, динамик, вентилятор и любые беспроводные технологии. [93]
Эффективность против уязвимостей
Ни один из двух методов отключения ME, обнаруженных на данный момент, не оказался эффективным средством противодействия уязвимости SA-00086. [45] Это связано с тем, что уязвимость находится в ранее загруженном модуле ME, который необходим для загрузки основного процессора. [ нужна цитата ]
От Google
По состоянию на 2017 год [Обновить] Google пытался устранить проприетарный прошивки со своих серверов и обнаружил, что ME был препятствием для этого. [43]
Производителями процессоров AMD
Вскоре после исправления SA-00086 производители материнских плат процессоров AMD начали поставлять обновления BIOS, которые позволяют отключать Технология AMD Secure, [94] подсистема с функциями, аналогичными ME.
Источник: wikidea.ru
Безопасность прошивок на примере подсистемы Intel Management Engine
В предыдущей статье был описан ход исследования безопасности прошивок промышленных коммутаторов. Мы показали, что обнаруженные архитектурные недостатки позволяют легко подделывать образы прошивок, обновлять ими свитчи и исполнять свой код на них (а в некоторых случаях — и на подключающихся к свитчам клиентах). В дополнение, мы описали возможности закрепления внедряемого кода на устройствах. Подчеркнули низкое качество кода прошивок и отсутствие механизмов защиты от эксплуатации бинарных уязвимостей.
Мы обещали привести реальный пример сильной модели безопасности прошивок, где модификация исполнимого кода является очень нетривиальной задачей для потенциального злоумышленника.
Встречайте – подсистема Intel Management Engine, самая загадочная составляющая архитектуры современных x86-платформ.
Введение
Для начала, основательно разберёмся в предметной области. Что это такое, откуда и зачем появилось?
В 2005 году компания Intel представила Active Management Technology (AMT) версии 1.0 — решение для удалённого администрирования (управление, инвентаризация, обновление, диагностика, устранение неполадок и т.д.) и защиты десткопных компьютерных систем, своего рода аналог технологии Intelligent Platform Management Interface (IPMI), использующейся в серверах.
[рисунок взят отсюда]
- внеполосный (out-of-band) доступ к сетевому интерфейсу (Ethernet), который он разделяет с основным CPU, но, имея собственный контроллер канального уровня, осуществляет мониторинг всего входящего сетевого трафика, из которого «вырезает» (при помощи Packet Filter) пакеты, предназначенные для него. Для ОС (наличие и состояние которой, кстати, на работу AMT никак не влияет) этот трафик уже не виден;
- внутренний веб-сервер с TLS-шифрованием;
- доступ к периферийному оборудованию, получение и хранение в энергонезависимой памяти (там же, где и его прошивка) информации о нём.
А ещё этот микроконтроллер начинает работать при подаче питания на материнскую плату компьютерной системы (т.е. при подключении компьютера к электрической сети, ещё до того, как пользователь нажмёт кнопку Power).
Итак, Management Engine всегда включён, но использование возможностей AMT требует активации (подразумевает задание пароля, сетевых параметров,… ) в BIOS setup, а точнее в MEBx setup:
[скриншот взят отсюда]
Похвально, что дефолтный пароль («admin») при первом входе обязательно требуется изменить на новый, удовлетворяющий определённым требованиям: минимум 8 символов, среди которых должны присутствовать хотя бы одна цифра, одна заглавная буква и один спец. символ.
- инвентаризация аппаратного обеспечения;
- веб-интерфейс (по HTTP через порт 16992);
- Serial Over LAN (SOL) – виртуальный COM-порт через сеть, позволяющий включать/перезагружать/выключать компьютер, получать доступ к меню BIOS setup;
- IDE-Redirection (IDE-R) – опция перенаправления загрузки с локального загрузочного устройства на удалённое (предварительно подготовленный образ системы).
AMT 1.0 была реализована на интегрированном в южный мост чипсета (Input/Output Controller Hub, ICH) сетевом модуле Intel 82573E series Gigabit Ethernet Controller.
Затем, в 2006 году, начиная с AMT версии 2.0, микроконтроллер перенесли в северный мост чипсета (Graphics and Memory Controller Hub, GMCH). Именно тогда подсистему наименовали в Intel Management Engine (ME) версии 2.0.
Одновременно с этим появился бренд Intel vPro, который обозначал комплекс реализованных на основе Intel ME технологий: AMT, Trusted Execution Technology (TXT) и Virtualization Technology (VT). Позже в этот список вошли Identity Protection Technology (IPT) и Anti-Theft (AT).
Тогда же Intel ME наделили ещё большим количеством впечатляющих возможностей, среди которых — полный доступ ко всему содержимому оперативной памяти компьютера через внутренний DMA-контроллер, а в дальнейшем появилась возможность мониторинга видеопотока, выводящегося на монитор (правда, только в случае использования встроенного графического ядра).
- часть функций Advanced Control and Power Interface (ACPI) и Alert Standard Format (ASF);
- Quiet System Technology (QST);
- Integrated Clock Control (ICC);
- Trusted Platform Module (TPM);
- .
AMT тоже не стояла на месте и активно развивалась: изменялся состав используемых протоколов (например, добавилась поддержка HTTPS через порт 16993), в версии 6.0 для удалённого администратора появилась фича Remote Desktop, она же KVM (Keyboard Video Mouse), и прочее.
Подробнее про развитие Intel AMT можно почитать здесь.
Тем не менее, из-за высокой стоимости реализации, эта подсистема присутствовала, за несколькими исключениями, только на материнских платах с чипсетами Intel линейки Q:
Q965 | ICH8 | ME 2.x (AMT 2.x) |
GM965 / GME965 / GL960 / GLE960 / PM965 | ICH8M | ME 2.5.x (AMT 2.5.x) < — первое появление на ноутбуках |
Q35 | ICH9 | ME 3.x (AMT 3.x) |
GM45 / PM45 | ICH9M | ME 4.x (AMT 4.x) < — только на ноутбуках |
Q45 | ICH10 | ME 5.x (AMT 5.x) |
Тогда к чему вся эта специфика железа с шильдиком vPro, которое мало кто (в РФ) приобретал ввиду высокой стоимости (ну и других причин)?
Дело в том, что, начиная с 2010 года, вместе с переносом части функциональных блоков северного моста (графическое ядро, контроллер памяти, . ) в корпус CPU, подсистему Intel ME стали встраивать во все чипсеты производства Intel. При этом ME-контроллер остался в корпусе чипсета – в Platform Controller Hub (PCH). Это чипсеты 5 серии и выше.
Итак, хронология последующих версий для десктопов и лаптопов:
5 series chipset | ME 6.x (AMT 6.x) |
6 series chipset | ME 7.x (AMT 7.x) |
7 series chipset | ME 8.x (AMT 8.x) |
8 series chipset | ME 9.x (AMT 9.x) |
9 series chipset | ME 9.5.x/10.x (AMT 9.5.x/10.x) |
100 series chipset | ME 11.x (AMT 11.x) |
Примечание: функциональность AMT по сей день остаётся доступной только на чипсетах линейки Q, т.е. только на оборудовании с шильдиком vPro.
Думаете только десктопы и ноутбуки? Нет, Intel-а ответ!
Та же участь постигла и серверные платформы от Intel: подсистема встроена в них, но под другим именем — Intel Server Platform Services (SPS). Произошло появление и в SoC (System-on-a-Chip) под именем Intel Trusted Execution Engine (TXE).
В итоге архитектура каждой современной мобильной/лаптопной/дескопной/серверной компьютерной платформы с чипсетом/SoC от Intel включает в себя самую скрытную (от пользователя системы) и привилегированную среду исполнения — подсистему Intel ME. Неудивительно, что разрабатывая эту архитектуру, компания Intel была вынуждена серьёзно поработать над её защитой от компрометации.
Вздохнём и рассмотрим архитектуру этой подсистемы, чтобы разобраться в применённой модели безопасности. Вдруг это поможет успокоиться?
Архитектура Intel ME
Intel Management Engine (ME) – встроенная в компьютерные платформы подсистема, обеспечивающая аппаратно-программную поддержку различных технологий Intel.
Как уже было сказано, первые версии этой подсистемы были основаны на двухкорпусных чипсетах Intel. Тогда в качестве базовой модели ME-контроллера использовался ARCtangent-A4 со стандартной системой команд ARC32.
[рисунок взят из книги 1]
В однокорпусных чипсетах уже использовались ARCtangent-A5/ARC600 с компактной системой команд ARCompact (ARC16/32).
[рисунок взят из книги 1]
В Intel SoC (там где эта подсистема называется Intel TXE) в качестве базовой модели для ME-контроллера используется SPARC.
ARC-и, SPARC-и какие-то, да? Ревёрсить некомфортно будет!
Ничего страшного, в Intel об этом позаботились: в самых последних платформах (Skylake, чипсеты 100 серии, Intel ME 11.x) ME-контроллер имеет архитектуру… x86!
Да-да, в чипсетах теперь живёт ещё один x86.
- ME-контроллер – встроенный в чипсет 32-разрядный микроконтроллер типа RISC, имеющий внутренние ROM и SRAM;
- Регион ME в SPI флэш-памяти, в котором хранится разработанная и подписанная компанией Intel прошивка ME-контроллера (поэтому, именно Intel ME firmware);
- ME UMA – скрытая ото всех, кроме ME-контроллера, область (16 — 32 МБ) в оперативной памяти компьютера, которой он пользуется в качестве runtime-memory для размещения и запуска прошивки;
- Management Engine Interface (MEI), ранее известный как Host Embedded Controller Interface (HECI), – набор регистров в конфигурационном пространстве PCI и область в MMIO, представляющие собой интерфейс для обмена информацией с ME-контроллером (по сути, единственный канал связи софта, исполняющегося на CPU, с подсистемой Intel ME);
- Отдельный MAC – контроллер канального уровня, предоставляющий ME-контроллеру out-of-band доступ к общему физическому сетевому интерфейсу для удалённого администрирования компьютерной системой;
- Некоторые модули в BIOS, отвечающие за инициализацию платформы и сообщающие о результатах своей работы ME-контроллеру через MEI.
В случае наличия шильдика Intel vPro, в состав подсистемы Intel ME дополнительно входит BIOS-модуль ME BIOS Extenstion (MEBx), предоставляющий графический интерфейс (показан выше), а также осуществляющий включение и конфигурирование AMT через MEI.
Таким образом, у нас имеется среда исполнения ring -3 (так её условно называют) — 1 штука. Её привилегированность обуславливается способностями, которыми наделён ME-контроллер (о них написано выше), а скрытность — полным отсутствием возможности контроллировать программными (и даже аппаратными, в production-версиях плат) средствами.
Архитектура ME-контроллера
- ME ROM – энергонезависимая неперезаписываемая память, в которой хранится стартовый код ME-контроллера;
- ME SRAM – оперативная память используемая ME-контроллером при недоступности ME UMA, например, на ранних этапах работы;
- кэш кода и кэш данных, для повышения производительности при работе с памятью;
- C-Link (Controller Link) – шина, позволяющая ME-контроллеру взаимодействовать с периферийным аппаратным обеспечением в режимах S5 (System shutdown) / S3 (Sleep mode);
- Различные аппаратные блоки:
- высокоточный таймер и WDT;
- контроллер прерываний;
- контроллеры памяти и DMA;
- интерфейс HECI/MEI;
- RNG, акселлератор криптографических функций и функций сжатия.
[рисунок взят из книги 2]
Самое время разобраться в том, как от модификаций защищён код, который управляет всем этим богатством.
Прошивка Intel ME
- 1.5 МБ, урезанные версии;
- 5 МБ, полные версии.
- Bring Up, первый запускаемый модуль из прошивки;
- Kernel, ядро ОСРВ ThreadX;
- Некоторые драйверы и службы.
Общее описание содержимого Intel ME firmware можно найти в книге 2 из списка литературы, но детальнее со структурами (разобраны аналитическим путём) можно ознакомиться, например, в этом скрипте для распаковки прошивок Intel ME.
Пойдём по порядку.
- Flash Descriptors, в котором хранятся указатели на все остальные регионы, а также read/write привилегии для пользователей этой памяти. Отметим, что обычно этими дескприпторами запрещается перезапись ME региона всем, за исключением самого ME-контроллера;
- GbE (Gigabit Ethernet);
- ME, здесь хранится прошивка ME-контроллера;
- BIOS;
- 3PDS (Third Party Data Storage), опциональный регион.
[картинка взята отсюда]
Теперь взглянем на сам регион ME, вот пример содержимого из его начала:
Это Flash Partition Table (FPT) — таблица разделов ME firmware. В ней хранятся указатели на различного типа (код, данные, виртуальная область, . ) разделы и их параметры. Целостность этой таблицы контролируется одним байтом чексуммы по смещению 1Bh.
Нас интересуют executable-разделы, т.е. те, что хранят исполнимый код. Их обычно несколько, рассмотрим один из них:
В начале кодового раздела располагается манифест, который состоит из заголовка (со служебными данными и ЭЦП) и таблицы модулей.
В приведённом дампе можно увидеть 2048-битный открытый RSA ключ (модуль по смещению 80h относительно начала раздела и экспонента по смещению 180h). Далее следует 256 байт сигнатуры.
Своим закрытым ключом компания Intel подписывает часть заголовка манифеста и таблицу модулей (см. следующий дамп), прикладывая полученную подпись и открытый ключ для проверки.
А вот и фрагмент таблицы модулей рассматриваемого раздела:
Эта таблица содержит заголовки модулей, где указаны некоторые параметры и хеш-сумма SHA256 (по смещению 14h внутри заголовка).
Сгенерировать собственную пару ключей RSA-2048 и подписать ими раздел не получится ввиду того, что целостность приложенного открытого ключа проверяется стартовым кодом в ME ROM, в котором хранится хеш-сумма SHA256 открытого ключа компании Intel.
В итоге, схему верификации кодового раздела ME firmware можно обобщить на рисунке:
Каждый кодовый раздел верифицируется по этой схеме.
Этого более чем достаточно для защиты прошивки от подделывания. Программно перезаписать ME регион SPI флеш-памяти нельзя (помним про разрешения в Flash Descriptors), аппаратные средства, конечно позволят обойти это ограничение, но контроль подлинности не выключить.
Напоследок, посмотрим в сторону защиты от бинарных уязвимостей.
Мы увидели, что весь исполнимый код ME firmware разбит на модули разного назначения:
[рисунок взят из книги 1]
У ME-контроллера есть два режима работы: привилегированный и пользовательский (аналоги kernel mode и user mode для CPU). Привилегированный режим отличает, прежде всего, возможность доступа к аппаратным ресурсам и возможность обращения по адресам вне отведённого этому модулю диапазона памяти.
Каждый модуль запускается и работает в заданном (в заголовке этого модуля) режиме.
[рисунок взят из книги 1]
Распарсив весь ME регион можно увидеть, что привилегированный режим используется ядром ОСРВ и некоторыми драверами. Службам и прикладными модулям, как и положено, отводится только пользовательский режим.
Заключение
Мы показали, что подсистема Intel ME является неотъемлемой частью архитектуры современных компьютерных платформ (на основе чипсетов/SoC Intel). Очевидно, что её компрометация предоставляет потенциальному злоумышленнику безграничные возможности контроля над платформой: доступ ко всему содержимому оперативной памяти (системная память, память гипервизора, SMRAM, ACRAM, выделяемая память для графического ядра — GFX UMA), out-of-band доступ к сетевому интерфейсу (мониторинг всего сетевого трафика), удалённый контроль как часть штатной функциональности AMT, перезапись любых регионов SPI флеш-памяти. Бонусом к этому является полное отсутствие возможностей обнаружения.
- запрет на использование дефолтного пароля, принуждение к установке сильного пароля (соответствующего определённым требованиям);
- использование функций шифрования в сетевых протоколах;
- контроль целостности и подлинности всего исполнимого кода прошивки;
- механизмы защиты от эксплуатации бинарных уязвимостей.
Заранее прокомментирую возможные призывы использовать компьютерные платформы на основе CPU и чипсетов от AMD: у них есть очень похожая технология, называется Platform Security Processor (PSP). Представлена не так давно, в 2013 году. Про неё пока известно не много, но кое-что можно почитать здесь.
Список литературы
1. A. Kumar, «Active Platform Management Demystified: Unleashing the Power of Intel VPro (TM) Technology», 2009, Intel Press.
2. Xiaoyu Ruan, «Platform Embedded Security Technology Revealed: Safeguarding the Future of Computing with Intel Embedded Security and Management Engine», 2014, APress.
Источник: habr.com
Что такое intel management engine interface
Как вы возможно уже заметили, после установки операционной системы Windows на современные компьютеры на базе процессоров Intel необходимо кроме установки драйверов к звуковой карте, видеокарте, чипсету, USB-контроллеру и другим устройствам также установить драйвер для Intel Management Engine.
Что же такое этот Intel Management Engine и зачем он нужен? Если не вдаваться глубоко в технические тонкости, то это отдельный процессор (или точнее микропроцессор, микроконтроллер), который встроен в чипсет. В более ранних версиях материнских плат он встраивался в северный мост, а теперь после перехода на «одночипсетную» конфигурацию можно сказать, что он встроен просто в чипсет.
Итак, Intel Management Engine (Intel ME) это подсистема, которая предназначена для решения различных задач связанных с мониторингом и обслуживанием компьютера во время сна и в процессе его работы. Для корректной работы Intel ME, как и любого другого устройства, требуется драйвер (отсутствие такого драйвера приводит к наличию неизвестного устройства с восклицательным знаком в «Диспетчере Устройств»).
Intel ME ME используется при старте и первоначальной настройке материнской платы. Выход из строя Intel Management Engine (при условии, что больше ничего не вышло из строя на плата или в ноутбуке) чаще всего проявляется в том, что вентиляторы работают на максимальных оборотах и не регулируют свою скорость в зависимости от температуры охлаждаемых компонентов (в том числе и этим занимается Intel ME). Конечно, этим все не ограничивается, но внешне неисправность Intel ME проявляется именно так.
Кроме того, на базе Intel Management Engine реализованы также следующие технологии:
Intel AMT (удалённое администрирование или управление компьютером)
Intel AT (противоугонный модуль)
Intel SMB (урезанный вариант Intel AMT для малого бизнеса)
Сам микроконтроллер на котором реализован Intel Management Engine лицензирован у фирмы ARC International 32-битный RISC-процессор (соответственнно не x86-архитектуры) с набором возможностей специально конфигурируемых «под заказчика». Процессоры такого типа конкурируют с ARM-процессорами (которые в свою очередь весьма популярны в связи с использованием их в смартфонах и планшетах).
Этот процессор имеет все плюсы ARM-процессоров (прежде всего крайне малое энергопотребление) и при этом обладает возможностями, достаточными для решения поставленных перед ним задач. Кроме того, этот процессор обладает своей постоянной и оперативной памятью.
На базе такого процессора и работает Management Engine, а для взаимодействия с операционной системой имеется MEI – Management Engine Interface. Для настройки Management Engine в BIOS Setup есть MEBx (ME BIOS Extensions) модуль, который поставляется для OEM-производителей плат или же встроенный в BIOS Setup подраздел. Именно для корректной работы MEI с операционной системой и потребуется драйвер, который мы устанавливаем
(Пока оценок нет)
Intel Management Engine (Intel ME) — автономная подсистема, встроенная почти во все чипсеты процессоров Intel с 2008 года [1] [2] [3] . Она состоит из проприетарной прошивки, исполняемой отдельным микропроцессором. Так как чипсет всегда подключен к источнику тока (батарейке или другому источнику питания), эта подсистема продолжает работать даже когда компьютер отключен [4] . Intel заявляет, что ME необходима для обеспечения максимальной производительности [5] . Точный принцип работы [6] по большей части недокументирован, а исходный код обфусцирован с помощью кода Хаффмана, таблица для которого хранится непосредственно в аппаратуре, поэтому сама прошивка не содержит информации для своего раскодирования. Главный конкурент Intel, компания AMD, также встраивает в свои процессоры аналогичную систему AMD Secure Technology (раньше называвшуюся Platform Security Proccessor), начиная с 2013 года.
Management Engine часто путают с Intel AMT. Технология AMT основана на ME, но доступна только для процессоров с технологией vPro. AMT позволяет владельцу удалённо администрировать компьютер [7] , например включать или выключать его, устанавливать операционную систему. Однако ME устанавливается с 2008 года на все чипсеты Intel, вне зависимости от наличия на них AMT. В то время как технология AMT может быть отключена, нет официального документированного способа отключить ME.
В ME было найдено несколько уязвимостей. 1 мая 2017 года компания Intel подтвердила наличие уязвимости удалённого повышения привилегий (SA-00075) в Management Technology [8] . Каждая платформа Intel с установленным Intel Standard Manageability, Intel Active Management Technology или Intel Small Business Technology, от Nehalem (2008 год) до Kaby Lake (2017 год) имеет уязвимость в ME, которую можно использовать удалённо [9] [10] . Были найдены несколько путей неавторизованного выключения ME, которые могут сорвать выполнение функций ME [11] [12] [13] . Дополнительные критические уязвимости в ME, затрагивающие большое число компьютеров с прошивками, включающими ME, Trusted Execution Engine (TXE) и Server Platform Services (SPS), от Skylake (2015 год) до Coffee Lake (2017 год), были подтверждены Intel 20 ноября 2017 года (SA-00086) [14] . В отличие от SA-00075, эта уязвимости присутствует даже если AMT отключен, не входит в поставку или ME отключен одним из неофициальных методов. [15]
Внутреннее устройство [ править | править код ]
Аппаратная часть [ править | править код ]
Начиная с ME 11, в основе лежит 32-битный x86-совместимый процессор на технологии Intel Quark с запущенной на нём операционной системой MINIX 3 [13] . Состояние ME хранится в разделе шины SPI с использованием файловой системы EFFS (Embedded Flash File System) [16] . Предыдущие версии базировались на RISC-ядре ARC с использованием операционной системы реального времени ThreadX от компании Express Logic. Версии ME от 1.x до 5.x использовали ARCTangent-A4 (только 32-битные инструкции), тогда как в версиях от 6.x до 8.x использовался более новый ARCompact (смешанная 32- и 16-битная архитектура набора команд). Начиная с ME 7.1, процессор ARC мог выполнять подписанные Java-апплеты.
ME имеет свой MAC-адрес и IP-адрес для своего дополнительного интерфейса с прямым доступом к контроллеру Ethernet. Каждый пакет Ethernet-траффика переадресуется в ME даже до достижения операционной системы хоста, причём такое поведение поддерживается многими контроллерами, настраиваемыми по протоколу MCTP [17] [18] . ME также взаимодействует с машиной через интерфейс PCI [16] . В Linux взаимодействие машины и ME происходит через устройство /dev/mei [19] .
Начиная с процессоров на микроархитектуре Nehalem, ME обычно интегрируется в северный мост материнской платы [20] . На новых архитектурах Intel (начиная с Intel 5 Series) ME встроен в Platform Controller Hub [21] [22] .
Прошивка [ править | править код ]
Согласно терминологии Intel на 2017 год, ME — один из наборов микропрограмм системы Converged Security and Manageability Engine (CSME). До AMT версии 11, CSME назывался Intel Management Engine BIOS Extension (Intel MEBx) [3] .
Компания Positive Technologies обнаружила, что прошивка ME версии 11 использует MINIX 3 [13] [23] [24] .
Уязвимости [ править | править код ]
Отключение ME [ править | править код ]
Обычными способами отключить ME невозможно. Тем не менее, было обнаружено несколько недокументированных и потенциально рискованных методов для этого [14] . Эти методы не поддерживаются Intel. Архитектура безопасности ME предполагает предотвращение отключения, поэтому возможность такого отключения считается уязвимостью. Например, вирус, используя возможность несанкционированного отключения, способен лишить компьютер части функций, ожидаемых конечным пользователем, например таких как воспроизведение медиа с техническими средствами защиты авторских прав. Однако критики ME не воспринимают это как уязвимость.
Строго говоря, ни один из методов не способен полностью отключить ME, так как без ME невозможна загрузка процессора. Все известные методы просто заставляют ME перейти вскоре после загрузки в неправильное состояние, в котором невозможно выполнение ни одной функции ME. ME продолжает быть подключенным к источнику питания, и встроенный в ME микропроцессор продолжает исполнять код.
Недокументированные методы [ править | править код ]
Нейтрализация прошивки [ править | править код ]
В 2016 году проект me_cleaner обнаружил, что проверка подлинности ME может быть взломана. ME должен определять нарушение подлинности прошивки и в случае провала проверки принудительно выключать компьютер через 30 минут [25] . Это предотвращает работу скомпрометированной системы и позволяет владельцу исправить проблему путём загрузки подлинной версии прошивки. Как было установлено проектом, можно сделать неавторизованные изменения в прошивке ME таким образом, чтобы заставить ME перейти в ошибочное состояние, не позволяющее запустить принудительное выключение, даже если большая часть прошивки была перезаписана.
Режим «High Assurance Platform» [ править | править код ]
В августе 2017 года компания Positive Technologies опубликовала метод отключения ME через недокументированный встроенный режим. Компания Intel подтвердила [26] , что ME содержит возможность для государственных органов, таких как АНБ, переключения в режим высокодоверенной платформы (High-Assurance Platform, HAP) сразу после загрузки. Этот режим выключает все функции ME. Он авторизован для использования только государственными органами и предполагается только для машин, произведённых для них. Однако оказалось, что в большинстве продаваемых на рынке компьютеров можно включить этот режим [27] [28] . Манипуляции с битом HAP были быстро встроены в проект me_cleaner [29] .
Коммерческое отключение ME [ править | править код ]
В конце 2017 года несколько производителей ноутбуков объявили о своих намерениях поставлять ноутбуки с отключенным Intel ME:
- Компания Purism, SPC потребовала у Intel продавать процессоры без ME или же опубликовать исходный код ME, называя его «угрозой для цифровых прав пользователей» [30] . В марте 2017 года компания Purism сообщила [31] , что нейтрализовала ME путём удаления большей части исполняемого кода из флеш-памяти. Позже, в октябре 2017 года, компания сообщила [32] , что новые партии основанных на Debian ноутбуков линейки Librem будет выпускаться с нейтрализованным (через стирание большей части кода из флеш-памяти, как и сообщалось ранее), а также дополнительно выключенными через бит HAP модулями ME. Также были выпущены обновления для существующих ноутбуков Librem.
- System 76 анонсировала в ноябре 2017 года [33] о своих планах отключить ME в новых и текущих основанных на Ubuntu машинах через HAP бит.
Эффективность против уязвимостей [ править | править код ]
Ни один из двух обнаруженных методов отключения ME не способен быть эффективной контрмерой против уязвимости SA-00086 [15] . Причина этого в том, что уязвимость находится в модуле ME, загружаемом на раннем этапе и необходимом для загрузки основного процессора [34] .
Руткит кольца −3 [ править | править код ]
Руткит кольца −3 был представлен исследователями Invisible Things Lab для чипсета Q35; он не работает для более нового чипсета Q45, так как Intel реализовал дополнительные меры защиты [35] . Эксплоит действовал посредством переотображения защищённого в нормальных условиях региона памяти (верхние 16 МБайт ОЗУ), зарезервированного для ME. ME-руткит мог быть установлен независимо от наличия AMT, так как чипсет всегда содержит ARC-сопроцессор ME. Обозначение «−3» было выбрано потому, что сопроцессор ME активен, даже когда система находится в спящем режиме (состояние S3), следовательно он считается более низкоуровневым, чем руткиты System Management Mode [20] . Для уязвимого чипсета Q35 Патриком Стевином (Patrick Stewin) был продемонстрирован отслеживающий нажатия клавиш ME-руткит [36] [37] .
SA-00075 [ править | править код ]
В мае 2017 года компания Intel подтвердила, что многие компьютеры с AMT содержат незакрытую критическую уязвимость повышения привилегий (CVE-2017-5689) [8] [10] [38] [39] [40] . Уязвимость, которую сообщившие о ней компании Intel исследователи назвали «Silent Bob is Silent» [41] , затрагивает множество ноутбуков, компьютеров и серверов, продаваемых компаниями Dell, Fujitsu, Hewlett-Packard (Hewlett Packard Enterprise и HP Inc. после разделения), Intel, Lenovo и, возможно, других [41] [42] [43] [44] [45] [46] [47] . Исследователи заявили, что ошибка затрагивает системы, произведённые в 2010 году и позднее [48] . Некоторые сообщают, что ошибка также распространяется на системы, произведённые ещё в 2008 году [10] [49] . По описаниям, уязвимость позволяет удалённым злоумышленникам получить:
полный контроль над уязвимыми машинами, включая возможность читать и изменять всё что угодно. Она может быть использована для установки персистентых злонамеренных программ (возможно в прошивку) и для чтения и изменения любых данных.
SA-00086 [ править | править код ]
Через несколько месяцев после обнаружения предыдущей уязвимости и последовавших предупреждений EFF [2] компания Positive Technologies заявила о разработке работающего эксплоита [50] . 20 ноября 2017 года компания Intel подтвердила обнаружение серьёзных брешей в Management Engine, Trusted Execution Engine и Server Platform Services, и выпустила критическое обновление («critical firmware update») [51] [52] . Практически каждый компьютер на базе Intel, выпущенный в последние несколько лет, включая большинство серверов и домашних компьютеров, уязвим и может быть скомпрометирован, хотя не все потенциальные пути использования уязвимости точно известны [52] . Проблему нельзя исправить на уровне операционной системы, и необходимо обновление прошивки материнской платы (BIOS, UEFI), что предположительно займёт некоторое время у производителей [14] .
Подозрения в наличии бэкдора [ править | править код ]
Критики, такие как Фонд электронных рубежей (EFF) и эксперт по безопасности Damien Zammit, обвиняют ME в наличии бэкдора [2] [53] . Zammit отмечает, что ME имеет полный доступ к памяти (без всякого ведома на то родительского ЦПУ); имеет полный доступ к TCP/IP стеку и может посылать и принимать пакеты независимо от операционной системы, обходя таким образом её файрволл.
Компания Intel ответила, что «Intel не встраивает бэкдоров в свои продукты, и они не дают Intel контроля или доступа к вычислительной системе без явного разрешения конечного пользователя» [7] и что «Intel не разрабатывает и не будет разрабатывать бэкдоров для доступа к своим продуктам. Последние отчёты, заявляющие об обратном, основаны на неверной информации и вопиюще ложны. Intel не предпринимает попыток снизить безопасность своих технологий» [54] .
Компания Google, по состоянию на 2017 год, пыталась избавиться от проприетарных прошивок со своих серверов и обнаружила, что технология ME является препятствием на пути к этому [14] .
Реакция производителей процессоров AMD [ править | править код ]
Вскоре после исправления уязвимости SA-00086 производители материнских плат для процессоров AMD стали поставлять обновления BIOS, позволяющие отключить AMD Secure Technology [55] , схожую с Intel ME подсистему.
Тип материала Информация о продукции и документация
Идентификатор статьи 000008927
Последняя редакция 08.11.2017
Intel® Management Engine — встраиваемый микроконтроллер (встроенный в некоторые наборы микросхем Intel), работающий под управлением облегченной микроядерной системы, которая предлагает разнообразные функции и услуги для компьютерных систем на базе процессоров Intel®.
Какие характеристики поддерживает механизм Intel® Management Engine?
Функции включают (но не ограничиваются ими):
- Услуги по управлению низким энергопотреблением, внешними (OOB) управлением
- Служба лицензирования возможностей (CLS)
- Защита от кражи
- Путь к защищенному аудио видео (ПАВП)
При инициализации системы механизм управления Intel® загружает свой код из системной флэш-памяти. Это позволяет подсистеме управления Intel® до начала работы главной операционной системы. Для хранения данных во время выполнения механизм управления Intel® имеет доступ к защищенному участку системной памяти (в дополнение к небольшому объему кэш-памяти, чтобы ускорить и повысить эффективность обработки).
Основная функция механизма Intel® Management Engine заключается в том, что ее состояния энергопотребления не зависят от состояния электропитания ОС на сервере. Эта функция позволяет делать это, когда микропроцессор и многие другие компоненты системы находятся в состоянии более глубокого сна. В результате механизм Intel® Management Engine может быть полностью работающим компонентом, как только система будет применена к системе. Эта возможность позволяет ей реагировать на команды OOB в консоли управления ИТ без необходимости пробуждения остальной части системы. Таким образом, потребление энергии значительно сокращается.
Нет связанных сообщений
Источник: girlgames01.ru