Изображение: Unsplash
В последние пару лет технология Intel ME находится под пристальным вниманием исследователей. Эту технологию окружает ореол таинственности – несмотря на то, что она имеет доступ практически ко всем данным на компьютере и ее компрометация позволяет захватить полный контроль над машиной, официальной документации и руководств по работе с ней от производителя просто не существует. Поэтому исследователям со всего мира приходится самостоятельно разбираться в работе подсистемы.
Мы изучаем Intel ME на протяжение последних лет, и вот что нам удалось узнать об этой таинственной подсистеме к этому моменту.
Уязвимости в ME позволяют взломать даже выключенный компьютер
В конце 2017 года на конференции Black Hat Europe исследователи Positive Technologies Марк Ермолов и Максим Горячий рассказали об уязвимости в Intel Management Engine 11, которая открывает злоумышленникам доступ к большей части данных и процессов на устройстве. Подробное описание проблемы мы публиковали в нашем блоге на хабре.
Уязвимость в Intel ME позволяла выполнять произвольный код. Это ставит под угрозу все технологии такие технологии как Intel Protected Audio Video Path (PAVP), Intel Platform Trust Technology (PTT или fTPM), Intel BootGuard, Intel Software Guard Extention (SGX) и многие другие.
Для перехвата данных в ME можно использовать отладочный механизм JTAG
Эксплуатируя ошибку в модуле bup, исследователям удалось включить механизм, называемый PCH red unlock, который открывает полный доступ ко всем устройствам PCH, для использование их через DFx chain, то есть с помощью JTAG. Одним из таких устройств и является само ядро ME. Это дало возможность отлаживать код, выполняемый на ME, читать память всех процессов и ядра, управлять всеми устройствами внутри PCH. Подсчеты показали, что в современных компьютерах в совокупности порядка 50 внутренних устройств, полный доступ к которым имеет только ME, а основной процессор только к весьма ограниченному их подмножеству.
Такой уровень доступа означает также, что любой эксплуатирующий эту уязвимость злоумышленник, обойдя традиционную защиту на основе ПО, сможет проводить атаки даже при выключенном компьютере.
JTAG можно активировать и в мобильной версии ME
Intel TXE – это мобильная версия ME. Уязвимость INTEL-SA-00086 позволяет активировать JTAG для ядра подсистемы. Исследователи Positive Technologies разработали JTAG PoC для платформы Gigabyte Brix GP-BPCE-3350C platform. Эта утилита может быть использована для активации JTAG для Intel TXE.
Подсистему можно отключить, используя недокументированный режим
В ходе исследования внутренней архитектуры Intel Management Engine (ME) 11-й версии Максим Горячий и Марк Ермолов сумели обнаружить механизм, отключающий эту технологию после инициализации оборудования и запуска основного процессора. Они выяснили, что несмотря на то, что полностью отключить ME на современных компьютерах невозможно, в подсистеме существует недокументированный режим под названием High Assurance Platform (HAP). Исследователям удалось обнаружить специальный HAP-бит, установка которого переводит Intel ME в режим отключения на ранней стадии загрузки.
Название High Assurance Platform носит программа по созданию доверительных платформ, связанная с Агентством национальной безопасности (АНБ) США. В сети доступна презентация с описанием программы. Вероятно, данный механизм был внедрен по просьбе правительственных служб США, которые стремятся уменьшить вероятность утечки данных по побочным каналам.
Недостатки безопасности ME поставили под угрозу MacBook
В июне текущего года Apple выпустила обновления, закрывающие уязвимость в ME под кодом CVE-2018-4251. На этот раз ошибка содержалась в компоненте Intel ME Manufacturing Mode – это сервисный режим работы, предназначенный для конфигурирования, настройки и тестирования конечной платформы на стадии производства. Этот режим позволяет задавать критически важные параметры платформы, хранящиеся в однократно записываемой памяти (FUSES). Он обязательно должен быть отключен перед поступлением оборудования в продажу и отгрузкой пользователю.
Ни этот режим, ни его потенциальные риски не описаны в публичной документации Intel. Обычный пользователь не имеет возможности выключить его самостоятельно, так как утилита для управления им из пакета Intel ME System Tools официально не доступна.
Уязвимость позволяет злоумышленнику с правами администратора получить несанкционированный доступ к критически важным частям прошивки, записать туда уязвимую версию Intel ME и через ее эксплуатацию тайно закрепиться на устройстве. В дальнейшем он сможет получить полный контроль над компьютером и осуществлять шпионскую деятельность, без малейшей вероятности быть обнаруженным.
Уязвимые чипсеты Intel используются во всем мире, от домашних и рабочих ноутбуков до корпоративных серверов. Ранее выпущенное Intel обновление не исключало возможность эксплуатации уязвимостей CVE-2017-5705, CVE-2017-5706 и CVE-2017-5707, так как при наличии у атакующего доступа на запись к ME-региону он всегда может записать уязвимую версию МЕ и проэксплуатировать уязвимость в ней.
Intel «патчит» одни и те же ошибки в ME по два раза
В начале июля Intel выпустила два security advisory (SA-00112 и SA-00118), в которых описала исправления в прошивке Intel Management Engine. Оба бюллетеня безопасности описывают ошибки, позволяющие атакующему произвольное выполнение кода на внутреннем процессоре PCH (Minute IA).
Эти ошибки аналогичны тем, которые специалисты по безопасности компании Positive Technologies обнаружили в ноябре 2017 года (SA-00086). Однако история на этом не закончилась, и впоследствии Intel выпустила новые исправления уязвимостей в ME.
CVE-2018-3627, описанная в SA-00118, помечена в бюллетене в качестве логической ошибки (это не переполнение буфера), которая приводит к выполнению произвольного кода. Для ее эксплуатации атакующему нужен локальный доступ, тогда как уязвимость, о которой речь идет в SA-00086, можно эксплуатировать локально только в случае ошибок в конфигурации системы, допущенных производителем OEM. Это условие делает уязвимость более опасной.
В случае с CVE-2018-3628 (описана в SA-00112) дела обстоят еще хуже. Уязвимость в процессе AMT прошивки Management Engine приводит к удаленному выполнению кода (Remote Code Execution), причем атакующему не нужно иметь учетную запись администратора AMT, как при эксплуатации CVE-2017-5712 из SA-00086.
Intel описывает эту ошибку как «Buffer Overflow in HTTP Handler», что позволяет предположить возможность выполнения кода удаленно без авторизации. Это и есть тот наихудший сценарий, которого боятся все пользователи платформ Intel.
Существуют способы раскрытия ключей шифрования ME
На этом «приключения» Intel ME не закончились. Уже осенью компании пришлось исправлять еще одну ошибку в подсистеме, которая приводила к раскрытию ключей шифрования в Intel ME – ее обнаружили исследователи Positive Technologies Дмитрий Скляров и Максим Горячий.
В подсистеме Intel ME (Management Engine) для хранения данных используется MFS (предположительно, сокращение от ME File System). В механизмах безопасности MFS активно задействуются криптографические ключи. Для обеспечения секретности данных, хранящихся в MFS, используются Confidentiality keys, а для контроля целостности — Integrity keys. Данные, помещаемые в MFS, по степени значимости делятся на две категории, и защищаются разными наборами ключей. Для наиболее чувствительных данных используются Intel keys, а для всего остального — Non-Intel keys. Таким образом, применяется четыре ключа: Intel Integrity key, Non-Intel Integrity key, Intel Confidentiality key и Non-Intel Confidentiality key.
Эксплуатация обнаруженной ранее Марком Ермоловым и Максимом Горячим уязвимости позволяет получить все четыре ключа и полностью скомпрометировать механизмы безопасности MFS. Intel выпустила обновление, закрывающее эту уязвимость. Было увеличено значение SVN (Secure Version Number) — этот шаг должен был привести к обновлению всех ключей и вернуть безопасность MFS на запланированный уровень. Получение ключей MFS для обновленных прошивок ME (с новым значением SVN) должно быть невозможно.
Однако уже в 2018 году исследователи Positive Technologies обнаржили уязвимость CVE-2018-3655, описанную в бюллетене Intel-SA-00125. Суть проблемы заключается в том, что Non-Intel keys зависят от значения SVN и базового неизменяемого секрета подсистемы. А этот секрет удастся получить, если использовать JTAG-отладку, которую можно включить, используя предыдущую уязвимость. Знание базового секрета подсистемы позволяет вычислить оба Non-Intel keys — и все это уже в новой версии прошивки.
Таким образом злоумышленник может вычислить Non-Intel Integrity key и Non-Intel Confidentiality key для прошивок с обновленным значением SVN, а значит и скомпрометировать те механизмы безопасности MFS, которые опираются на эти ключи.
Что дальше
Не так давно мы публиковали в блоге подробный разбор уязвимости CVE-2018-4251 в MacBook. Теперь Марк Ермолов и Максим Горячий на конференции HiTB 2018 расскажут о том, как злоумышленник может эксплуатировать его для проведения атаки. Также речь пойдет о способах защиты – например, с помощью специализированной утилиты от наших экспертов.