January 29, 2023

Корень слежки - Intel ME

Вступление

Статья является актуальной копией статьи . Совпадения с этой статьей не случайны и не нарушают авторских прав. Автор завел новый аккаунт, по причирне бана прошлого.

Привет, друг! Сегодня мы поговорим об самой загадочной составляющей архитектуры - Intel ME и о его младшем брате Intel AMT. Разберем из чего состоит ME, слежку за юзверями и о его уязвимостях.

Приятного прочтения!

Intel ME

Intel ME (Intel Management Engine, далее просто ME) - автономная проприетарная подсистема, встроенная почти во все чипсеты (BIOS) Intel, начиная с 2008 года. Эта технология многими воспринимается как аппаратная «закладка», и на то есть причины. Intel заявляет, что ME необходима для обеспечения максимальной производительности, но многие исследователи утверждают, что некоторый регион ME, под названием Intel AMT имеет средства для отслеживания, удаленного администрирования (данный факт корпорация Intel не скрывает и выдает его как для использования в гражданском обороте) и определенные низкоуровневые уязвимости, о которых мы поговорим позже. Точный принцип работы корпорация Intel не разглашает, а исходный код обфусцирован с помощью кода Хаффмана, таблица для которого хранится непосредственно в аппаратуре, поэтому код не поддаётся декодированию.

Однако, некоторые чипсеты все же можно вылечить от части проприетарной состовляющей.

Intel AMT

ME часто путают с Intel AMT. Но ME - общая подсистема, в которой есть регион AMT. AMT (Active Management Technology) - аппаратная технология, предоставляющая удаленный, и внеполосный (по независимому вспомогательному каналу TCP/IP) доступ для управления настройками и безопасностью компьютера независимо от состояния питания (удаленное включение / выключение компьютера), состояния ОС, а так же удаленной установки ОС. Доступна только для процессоров с технологией vPro. Для полнофункциональной работы требует ручного включения пользователем в BIOS через установку пароля (но это не повод доверять данной функции, так как никто не знает, что содержит код AMT, и в частности ME) в свою очередь для ME нет официально документированного способа отключения.

Далее для удобства мы будем говорить ME вместо AMT.

Аппаратная часть ME

ME работает почти как отдельный компьютер, так как он имеет свою операционную систему, MAC-адрес, IP-адрес и источники питания. Но об этом по порядку.

Операционная система

В версиях ME от 1.x до 11.x чипы базировались на RISC-ядре ARC с использованием операционной системы реального времени "ThreadX".
Начиная с ME 11.x в основе лежит 32-битный x86-совместимый процессор с запущенной на нем операционной системой "MINIX 3". Вылечить чип с такой версией от слежки в настоящее время является невозможным.

MAC-адрес и IP-адрес

ME имеет свой MAC-адрес и IP-адрес для своего дополнительного интерфейса с прямым доступом к контроллеру Ethernet. Может ты знаешь или видел, как при выключении компьютера продолжает мигать Ethernet-порт. Это нормально (в нашем случае ненормально), так как его контролирует ME.

Каждый пакет Ethernet-трафика адресуется в ME ещё до достижения операционной системы, не показывая интернет активность драйверам компьютера, а значит эти пакеты ты не увидишь даже в WireShark. ME так же взаимодействует с машиной через интерфейс PCI. В Linux взаимодействие машины и ME происходит через устройство /dev/mei.

Помимо Ethernet, ME контролирует ещё и беспроводную сеть Wi-Fi. ОС отдает пароль от точки доступа прошивке. Прошивка загружается раньше ОС (т.е. при подключении компьютера к электрической сети, ещё до того, как пользователь нажмёт кнопку Power), подключается к сети и имеет полный доступ ко всему, поскольку находится между оборудованием и ОС.

Защититься от этого можно только внешним аппаратным файрволом (обязательно не внутренним).

Источники питания

Так как чипсет всегда подключён к источнику тока (батарейка BIOS или питание от сети), эта подсистема продолжает работать даже когда компьютер выключен.

Отключение ME

Обычными способами отключить ME невозможно. Тем не менее, было обнаружено несколько недокументированных и потенциально рискованных методов для этого. Эти методы не поддерживаются Intel. Архитектура безопасности ME предполагает предотвращение отключения, поэтому возможность такого отключения считается уязвимостью. Например вирус, используя возможность несанкционированного отключения, способен лишить компьютер части функций. Строго говоря, ни один из методов не способен полностью отключить ME, так как без ME невозможна загрузка процессора.

Нейтрализация прошивки

В 2016 году проект me_cleaner обнаружил, что проверка подлинности ME может быть взломана. ME должен определять нарушение подлинности прошивки и в случае провала проверки принудительно выключать компьютер через 30 минут. Это предотвращает работу скомпрометированной системы и позволяет владельцу исправить проблему путём загрузки подлинной версии прошивки. Как было установлено проектом, можно сделать неавторизованные изменения в прошивке ME таким образом, чтобы заставить ME перейти в ошибочное состояние, не позволяющее запустить принудительное выключение, даже если большая часть прошивки была перезаписана.

Режим «High Assurance Platform»

В августе 2017 года компания Positive Technologies опубликовала метод отключения ME через недокументированный встроенный режим. Компания Intel подтвердила, что ME содержит возможность для государственных органов, таких как АНБ, переключения в режим высокодоверенной платформы (High-Assurance Platform, HAP) сразу после загрузки. Этот режим выключает все функции ME. Он служит для использования только государственными органами и предполагается только для машин, произведённых для них. Однако оказалось, что в большинстве продаваемых на рынке компьютеров можно включить этот режим. Манипуляции с битом HAP были быстро встроены в проект me_cleaner.

Коммерческое отключение ME

В конце 2017 года несколько производителей ноутбуков объявили о своих намерениях поставлять ноутбуки с отключенным Intel ME:

  • Компания Purism, SPC потребовала у Intel продавать процессоры без ME или же опубликовать его исходный код , называя его «угрозой для цифровых прав пользователей». В марте 2017 года компания Purism сообщила, что нейтрализовала ME путём удаления большей части исполняемого кода из флеш-памяти. Позже, в октябре 2017 года, компания сообщила, что новые партии основанных на Debian ноутбуков линейки Librem будут выпускаться с нейтрализованным (через стирание большей части кода из флеш-памяти, как и сообщалось ранее), а также дополнительно выключенными через бит HAP модулями ME.
  • System 76 анонсировала в ноябре 2017 года о своих планах отключить ME в новых и текущих основанных на Ubuntu машинах через HAP-бит.

Ни один из обнаруженных методов отключения ME не способен быть эффективной контрмерой против уязвимости SA-00086. Причина этого в том, что уязвимость находится в модуле ME, загружаемом на раннем этапе и необходимом для загрузки основного процессора.

Уязвимости и подозрения в ME

Руткит "Кольца -3"

Руткит "Кольца −3" был представлен исследователями Invisible Things Lab для чипсета Q35; он не работает для более нового чипсета Q45, так как Intel реализовал дополнительные меры защиты. Эксплойт действовал посредством переотображения защищённого в нормальных условиях региона памяти (верхние 16 МБайт ОЗУ), зарезервированного для ME. Руткит мог быть установлен независимо от наличия AMT, так как чипсет всегда содержит ARC- сопроцессор ME. Обозначение «−3» было выбрано потому, что сопроцессор ME активен, даже когда система находится в спящем режиме (состояние S3), следовательно он считается низкоуровневым. Для уязвимого чипсета Q35 Патриком Стевином был продемонстрирован отслеживающий нажатия клавиш ME-руткит.

SA-00075

В мае 2017 года компания Intel подтвердила, что многие компьютеры с AMT содержат незакрытую критическую уязвимость повышения привилегий (CVE-2017-5689). Уязвимость, которую сообщившие о ней компании Intel исследователи назвали “Silent Bob is Silent”, затрагивает множество ноутбуков, компьютеров и серверов, продаваемых компаниями Dell, Fujitsu, Hewlett-Packard (Hewlett Packard Enterprise и HP Inc. после разделения), Intel, Lenovo и, возможно, других. Исследователи заявили, что ошибка затрагивает системы, произведённые в 2010 году и позднее. Некоторые сообщают, что ошибка также распространяется на системы, произведённые ещё в 2008 году. По описаниям, уязвимость позволяет удалённым злоумышленникам получить полный контроль над уязвимыми машинами, включая возможность читать и изменять всё что угодно. Она может быть использована для установки персистентых злонамеренных программ (возможно в прошивку) и для чтения и изменения любых данных.

SA-00086

Через несколько месяцев после обнаружения предыдущей уязвимости и последовавших предупреждений EFF компания Positive Technologies заявила о разработке работающего эксплойта. 20 ноября 2017 года компания Intel подтвердила обнаружение серьёзных брешей в Management Engine, Trusted Execution Engine и Server Platform Services и выпустила критическое обновление. Практически каждый компьютер на базе Intel, выпущенный в последние несколько лет, включая большинство серверов и домашних компьютеров, уязвим и может быть скомпрометирован, хотя не все потенциальные пути использования уязвимости точно известны. Проблему нельзя исправить на уровне операционной системы, и необходимо обновление прошивки материнской платы (BIOS, UEFI).

Хакерская группировка Conti

Хакеры активно работали над взломом прошивок и планировали использовать Intel Management Engine (ME) для перезаписи флеш-памяти.

Из переписки участников хак-группы стало ясно, что в Conti занимались фаззингом Intel ME, стремясь обнаружить недокументированные функции и команды, которые можно было бы использовать. Таким образом хакеры могли бы получить доступ к флеш-памяти, где размещается прошивка UEFI/BIOS, обойти защиту от записи и выполнить произвольный код. Конечной целью было бы создание SMM-имплантата, который работал бы с максимально возможными привилегиями (ring-0), но при этом был бы «невидим» для защитных решений на уровне ОС.

Исследователи пишут, что для атаки на прошивку злоумышленникам сначала нужно было получить доступ к системе обычным способом (фишинг, эксплуатация уязвимостей или атака на цепочку поставок). После компрометации ME хакеры должны были понять, к каким областям «защиты от записи» у них есть доступ, что могло варьироваться в зависимости от имплементации ME и различных защит и ограничений. По мнению экспертов, это могло осуществляться либо при помощи перезаписи SPI Descriptor и перемещения UEFI/BIOS за пределы защищенной области, либо путем прямого доступа к BIOS.

Хакеры могли использовать Intel Management Engine для принудительной загрузки с виртуального носителя.

Хотя по последним данным хак-группа Conti, похоже, прекратила свое существование, ее участники теперь работают над другими вымогателями и продолжают свои атаки. То есть вся работа по созданию эксплоитов, которые хакеры обсуждали в чатах, не пропадет впустую. Хуже того, по данным исследователей, у Conti еще прошлым летом был работающий PoC для подобных атак, поэтому вполне вероятно, что хакеры уже применяют такие техники на практике.

Подозрение в наличии бекдоров

Критики, такие как Фонд электронных рубежей (EFF) и эксперт по безопасности Damien Zammit, обвиняют ME в наличии бэкдора . Zammit отмечает, что ME имеет полный доступ к памяти (безо всякого ведома на то родительского ЦПУ); имеет полный доступ к TCP/IP-стеку и может посылать и принимать пакеты независимо от операционной системы, обходя таким образом её файрволл.

На что копрорация Intel ответила:

Intel не разрабатывает и не будет разрабатывать бэкдоров для доступа к своим продуктам. Последние отчёты, заявляющие об обратном, основаны на неверной информации и абсолютно ложны. Intel не предпринимает попыток понизить безопасность своих технологий.

Так же хочу добавить несколько слов о халатности корпорации Intel. Для того, чтобы использовать ME в гражданском обороте и подключаться к машине удаленно, нужно было задать пароль. Некоторые исследователи нашли уязвимость, в которой при передаче пароля сравнивался не сам пароль, а лишь количество переданных символов, что позволяло залогиниться с пустым паролем. Данная уязвимость просуществовала с 6.x по 11.x, то есть на протяжении примерно пяти лет.