LINUX.ORG.RU

Отключение Intel ME

 , , ,


0

2

Вот недавно было несколько новостей про Intel ME. Сначала, что некие исследователи нашли как включить режим, разработанный для внутреннего использования в АНБ, который деактивирует ME. Но там надо было перешивать BIOS программатором. Впрочем, упоминалось также, что есть шанс обойтись без программатора, если производитель забыл залочить запись каких-то там дескрипторов. Но без конкретных инструкций. Затем была новость про то, что некие исследователи нашли уязвимость в Intel ME, что теперь можно при соблюдении некоторых условий устроить чуть ли не Remote Code Execution. Что может быть использовано в благих целях - для отключения ME без программатора.

Как дела обстоят на текущий момент? Вот у меня есть два ноутбука. Один на Haswell, другой на Skylake (Core i5 и Core i7, соответственно). На обоих стоит Linux. Могу ли я просто взять и выполнить некий скрипт, который выпилит Intel ME? Или только ручной дамп и пересборка прошивки с помощью Windows-only утилит? Вроде параноиков немало, не уже ли до сих пор нет user-friendly решения? Там, насколько я понимаю, надо буквально один битик взвести где-то во флешпамяти, никаких патчингов ассемблерного кода и т. д. Причём битик один и тот же для сразу очень большого количества систем. Если всё так замечательно, то просто напрашивается некий скрипт-деактиватор ME. Вот для ThinkPad'ов была небольшая утилита, выпиливающая whitelist, которую надо было просто скомпилировать из исходников и запустить от рута. Правда, на новых ThinkPad лавочку прикрыли, там без программатора не обойтись.

Если же решение существует, то каков шанс угробить систему, что спасёт только программатор? Теоретизирования не надо, нужна статистика отзывов «УМВР» и «всё пропало».

★★★★★

Качаешь обновление биос-а для ноутбука, натравливаешь ifdtool, если он говорит что это биос, то шанс есть, иначе без программатора вряд ли.

arson ★★★★★ ()
Последнее исправление: arson (всего исправлений: 2)

то просто напрашивается некий скрипт-деактиватор ME

Ну есть скрипт для патчинга образа bios-а – https://github.com/corna/me_cleaner (см. wiki)
Необходимы также утилиты ifdtool, intelmetool из coreboot, вместо последней лучше использовать следующую
Утилита от Intel, MeInfo – качаешь Intel (CS)ME System Tools под свой чиписет (кроме Win, есть для EFI и DOS)

Взвод бита – ./me_cleaner.py -s -O bios.noME-s.bin bios.bin (s – маленькая, -S – полный патч, на skaylake получал неработоспособный bios)

P.S. Да данный момент skaylake – потолок, более новые не патчатся.

Теоретизирования не надо, нужна статистика отзывов «УМВР» и «всё пропало».

По первой ссылке полно отзывов. У меня: MSI J1800I — «УМВР», ASUS Z170-P — только с программатором (с третьей попытки, с опцией -s (маленькой)), apollolake — облом.

arson ★★★★★ ()
Ответ на: комментарий от arson

Как узнать Intel Boot Guard Policy из-под Linux? Слышал, что там помимо варианта вырубаться сразу или вырубаться по таймауту в случае нарушения подписей есть вариант «забить и сделать вид, что ничего не было». Как узнать, какой режим активировал мой вендор?

Обновление прошивки в EXE, ни unzip, ни 7z, ни cabextract не смогли распаковать...

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 2)
Ответ на: комментарий от arson

Цитата из той статьи:

А в случае ошибки верификации, происходит (одно из):

- выключение по таймауту от 1 мин до 30 мин (чтобы пользователь успел понять, по какой причине у него компьютер не грузится, и, по возможности, попытался бы восстановить BIOS);

- немедленное выключение (чтобы пользователь ничего не успел понять и, тем более, сделать);

- продолжение работы с невозмутимым видом (тот случай когда не до безопасности, ведь есть дела поважнее).

Выбор действия зависит от заданной конфигурации Intel BG (а именно, от т.н. enforcement policy), которая вендором компьютерной платформы перманентно записывается в специально предназначенное хранилище – фьюзы чипсета (FPF-ы). Подробнее на этом моменте остановимся позже.

То есть даже включенный Boot Guard при правильном enforcement policy не помешает сменить прошивку (да, где-то внутри будет взводиться флаг «мы скомпрометированы!», но система продолжит штатную работу). Вопрос в том, как узнать, какой режим активирован на моём железе. intelmetool проверяет лишь состояние самого Boot Guard, но не enforcement policy.

Прошивка BIOS в формате EXE и я не могу её распаковать (под виртуалкой не работает, 7z, cabextract и unzip не распознают как архив).

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от arson

https://github.com/corna/me_cleaner/issues/34

Согласно этой информации получается две вещи:

1) Intel BootGuard на XPS (у него другая модель, но скорее всего у меня всё так же) настроен полностью корректно. Перешиваться нормально нельзя.

2) Если только включить HAP, то Boot Guard не реагирует на это. Так что надежда ещё есть.

KivApple ★★★★★ ()
Ответ на: комментарий от anonymous

Нет. Но я уже прошёлся binwalk по exe и нашёл там большой массив zlib-данных:

$ binwalk XPS_9350_1.5.1.exe 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             Microsoft executable, portable (PE)
181765        0x2C605         Copyright string: "Copyright 2009-2015"
188216        0x2DF38         CRC32 polynomial table, little endian
192312        0x2EF38         CRC32 polynomial table, big endian
199237        0x30A45         Copyright string: "Copyright 1995-2010 Mark Adler "
351119        0x55B8F         Copyright string: "Copyright 1995-2010 Mark Adler "
351408        0x55CB0         CRC32 polynomial table, little endian
355504        0x56CB0         CRC32 polynomial table, big endian
370630        0x5A7C6         Copyright string: "Copyright 2009-2015"
371118        0x5A9AE         Copyright string: "Copyright 2009-2015"
423952        0x67810         Zlib compressed data, default compression
6317673       0x606669        MySQL ISAM index file Version 2
10094450      0x9A0772        MySQL ISAM index file Version 2
10984889      0xA79DB9        Certificate in DER format (x509 v3), header length: 4, sequence length: 1237
10986130      0xA7A292        Certificate in DER format (x509 v3), header length: 4, sequence length: 1272
10987406      0xA7A78E        Certificate in DER format (x509 v3), header length: 4, sequence length: 1279
10988689      0xA7AC91        Certificate in DER format (x509 v3), header length: 4, sequence length: 1309

Затем я вырезал этот кусок и распаковал:

dd if=XPS_9350_1.5.1.exe skip=423952 count=5893721 bs=1 | zlib-flate -uncompress > test.bin

hexdump первых нескольких десятков байт полученного файла:

00000000  50 46 53 2e 48 44 52 2e  01 00 00 00 bf 9e 1e 01  |PFS.HDR.........|
00000010  ac a1 ba f6 bc 39 66 40  92 f3 24 71 d1 e7 c5 c6  |.....9f@..$q....|
00000020  01 00 00 00 4e 4e 4e 20  01 00 05 00 01 00 00 00  |....NNN ........|
00000030  00 00 00 00 00 00 00 00  18 81 92 00 00 01 00 00  |................|
00000040  2c 01 00 00 00 01 00 00  b0 4c 30 08 f5 fc c7 6d  |,........L0....m|
00000050  47 7a 2c 42 d9 27 fa 25  50 46 53 2e 48 44 52 2e  |Gz,B.'.%PFS.HDR.|

И что теперь с ним делать? me_cleaner пишет Unknown image.

KivApple ★★★★★ ()