Оригинал.
6.09.2017

Шпион в каждом процессоре: зачем Intel и AMD встроили «бэкдоры» в свои ЦПУ?

Летопись вычислительной техники знает несколько историй особого, парадоксального, свойства: рассказываются они людьми, не верить которым нельзя, но и поверить в то, что рассказывают, невозможно или чертовски трудно! Самый памятный пример последних лет — вирус badBIOS, якобы проникающий на компьютер через уязвимости в микроконтроллерах USB, прячущийся в BIOS и заставляющий машину «говорить» ультразвуком. Четыре года назад, когда эти детали были преданы огласке, мало кто в них верил (cм. «Атака badBIOS: если и не было, стоит придумать!»), однако с тех пор многое подтвердилось — в частности, ультразвуковой airgap и «дыры» в USB...

Что ж, сегодня в центре внимания новая подобная история. Суть: внедрённый прямо в центральные процессоры Intel «чёрный ход», причём внедрённый ею же самой! История эта настолько сложна и насыщена деталями, что без некоторых упрощений не обойтись. Поэтому воспринимайте изложенное ниже как попытку нарисовать общую картину — и знайте, что при желании вы легко сможете уйти отсюда намного глубже: результаты исследований публичны, чаще всего содержат open source-код, а широкой общественности неизвестны главным образом потому, что их не столько трудно понять, сколько трудно в них поверить!

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

Intel ME спрятан в чипе PCH, через который ведётся всё общение центрального микропроцессора с внешними устройствами.

Этот микрокомпьютер в процессоре называется The Intel Management Engine или просто Intel ME. Долгое время он строился на RISC-ядре ARC, но к настоящему моменту имеет обычную систему команд x86. У него собственная операционная система (сейчас это модифицированный вариант знаменитой MINIX — несовершенство которой когда-то подтолкнуло Линуса Торвальдса к написанию своей ОС). У него есть своя постоянная и оперативная память. Но главное — беспрецедентный доступ ко всем узлам и данным «большого» компьютера, внутри которого он прячется: он видит и может всё, а вот CPU «большого» компьютера над ним власти не имеет! Больше того, работа Intel ME невидима для CPU — и, например, получать и отправлять данные в интернет Intel ME может незаметно для любых программ, работающих на компьютере. Наконец, он активен даже тогда, когда «большой» компьютер выключен (но материнская плата запитана дежурным напряжением).

Зачем всё это понадобилось? Официальное назначение Intel ME: подготовка к пуску и пуск CPU, в том числе по сигналу из интернета, а также дистанционное управление компьютером впоследствии. В корпоративной сети это может быть очень полезным: администратор всегда имеет удалённый доступ к машинам, но при этом, благодаря расположению внутри CPU, защищённость Intel ME настолько высока, что взломать его будто бы вовсе невозможно, что выгодно отличает его от обычных приложений и устройств аналогичного назначения.

Извне Intel ME доступен, в частности, через собственный веб-сервер на портах с номерами 16992-16995. Можете попробовать ради интереса «постучаться» на свою машину (введите в адресной строке браузера 127.0.0.1:16992): активирован веб-сервер Intel ME, правда, не везде (чаще всего на компьютерах, продающихся с пометкой vPro), но устанавливается во все десктопные, ноутбучные и серверные системы и процессоры вот уже больше десяти лет.

И получается, что на каждом компьютере с интеловским чипсетом сегодня работает тайный соглядатай, ни проконтролировать которого, ни повлиять на, ни даже понять до конца пользователи не в состоянии! Хуже того, есть опасения, что его особенностями и слабостями могут пользоваться иностранные спецслужбы и злоумышленники (последнее уже случалось — дважды!). Отсюда логичный вопрос: а нельзя ли его отключить?

Короткий ответ: нет. Но, к счастью, есть нюансы.

Где-то здесь, в кремниевых дебрях, и притаилась невидимая угроза. Intel Core, 4-е поколение.

Теоретически, раз Intel ME сам по себе компьютер, то у него имеется программное обеспечение, которое можно удалить, модифицировать или по крайней мере понять. К сожалению, практически это затруднено до предела. Запускается Intel ME загрузчиком, прошитым внутри него самого — то есть в постоянной (неизменяемой) памяти, спрятанной где-то в дебрях кристалла центрального микропроцессора. Задача этого загрузчика — считать, проверить криптоподпись и распаковать основное ПО для Intel ME, хранящееся уже в обычном флэш-чипе BIOS, но в той его части, которая для CPU не всегда доступна. Вот почему даже для того, чтобы прочитать прошивку Intel ME на конкретном компьютере, возможно, придётся использовать внешнее вспомогательное оборудование. Не легче и разбираться в ней, ибо никакой официальной документации, естественно, нет.

А уж подсунуть Intel ME свою прошивку и вовсе невозможно: требуется подписать её стойким криптоключом, который имеется только у Intel. В противном случае, «почувствовав подвох», Intel ME спустя полчаса погасит CPU «большого» компьютера. Обойтись вовсе без Intel ME тоже нельзя: это всё равно что стартёр для CPU!

И здесь важно понимать направление мысли тех энтузиастов, которые вот уже лет пять бьются над дешифровкой и модификацией Intel ME (кстати, приятно констатировать, что там в основном русские имена — пусть и работающие на иностранные компании). Рассуждают они следующим образом. Раз уж такая «закладка» в компьютере есть, необходимо понять, что она делает. И раз обойтись без неё невозможно, нужно попытаться заменить её прошивку на свободную (то есть развиваемую на принципах open source), либо хотя бы отключить максимум функций.

Перепрошивать процессор - не самое чистое, не самое простое, а вдобавок ещё и весьма рискованное занятие...

Заменить целиком, насколько я понимаю, увы, не удалось. А вот с частичным отключением дело двигается. Суть: оказалось, что можно (вроде бы без последствий) удалить практически все модули прошивки Intel ME, оставив лишь необходимый для инициализации CPU минимум. Для этого написаны соответствующие экспериментальные open source-утилиты и руководства.

Тем временем злоумышленники тоже не дремлют. Как минимум один компьютерный вирус уже научился использовать Intel ME для невидимого обмена данными через интернет (никакие антивирусы и сетевые фильтры, работающие на главном CPU, эти пакеты не видят). И не далее как нынешней весной обнаружена ошибка в механизме авторизации встроенного веб-сервера Intel ME (принимается пустой пароль). Дыру Intel залатала, но где гарантии, что конкретно на вашем компьютере эта обновлённая версия прошивки установлена? Или что в Intel ME нет других слабых мест?

Вот почему с восторгом было встречено сообщение нашей, московской, компании Positive Technologies (ковыряющей Intel ME давно и увлекательно отчитывающейся об успехах), которой удалось нащупать бит, выключающий Intel ME сразу после инициализации CPU. Интересно, что судя по названию бита (High Assurance Platform), Intel ввела его по просьбе АНБ: этой спецслужбе, естественно, иметь бэкдор в собственных компьютерах ни к чему. Увы, не факт, что бит-выключатель останется и в следующих версиях Intel ME, либо не будет каким-то образом модифицирован.

Так что же делать? Менять платформу Intel на AMD? Увы, в процессорах последней имеется в точности такой же «чёрный ход» — как минимум последние четыре года (AMD Platform Security Processor). Его аппаратное исполнение отличается от интеловского, но функционально это практически аналогичное решение. Хуже того, известно о нём пока даже меньше, чем об Intel ME. Поэтому остаются три варианта.

Первый: пользоваться компьютерами на чипсетах Intel или AMD соответственно до 2006 и 2013-го годов выпуска. Второй: силами внешнего файрвола (обязательно внешнего!) перекрыть входы и выходы на портах 16992-16995 включительно, а также порт 5900. Третий: отказаться от мейнстримовых архитектур вовсе, уйти на альтернативные (ARM и MIPS прежде всего). Правда, придётся одновременно переучиваться на Linux, которая одна только поддерживает всё многообразие современных микропроцессоров.

Лезть в процессор знатоки настоятельно не рекомендуют: изучение Intel ME и её аналога от AMD ведётся «вслепую», а некоторые настройки в CPU можно выставить лишь единожды (сплавные перемычки). Поэтому всегда есть риск получить «кирпич»…

P.S. Использованы графические работы Puri.sm, Embedi, Intel.


Intel_ME,Intel_AMT,бэкдор,AMD_Platform_Security_Processor,Intel,AMD,микропроцессор,удалённый_доступ,CVE-2017-5689




Евгений Золотов, 1999-2017. Личный архив. Некоторые права защищены