Как обнаружить и устранить уязвимость повышения привилегий в системе Linux (CVE-2017-5689)?

26

Согласно сообщению центра безопасности Intel от 1 мая 2017 года, на процессорах Intel существует критическая уязвимость, которая может позволить злоумышленнику получить привилегию (повышение привилегии) ​​с помощью AMT, ISM и SBT.

Поскольку AMT имеет прямой доступ к сетевому оборудованию компьютера, эта аппаратная уязвимость позволит злоумышленнику получить доступ к любой системе.

В технологиях Intel® Active Management (AMT), Intel® Standard Manageability (ISM) и версиях Intel® Small Business Technology версий 6.x, 7.x, 8.x 9.x, 10 есть уязвимость, связанная с повышением привилегий. .x, 11.0, 11.5 и 11.6, которые могут позволить непривилегированному злоумышленнику получить контроль над функциями управляемости, предоставляемыми этими продуктами. Эта уязвимость не существует на потребительских ПК на базе Intel.

Корпорация Intel выпустила средство обнаружения, доступное для Windows 7 и 10. Я использую информацию dmidecode -t 4и, выполнив поиск на веб-сайте Intel, обнаружила, что мой процессор использует Intel® Active Management Technology (Intel® AMT) 8.0.

Затронутые продукты:

Эта проблема наблюдалась в версиях встроенного ПО для управляемости Intel 6.x, 7.x, 8.x 9.x, 10.x, 11.0, 11.5 и 11.6 для Intel® Active Management Technology, Intel® Small Business Technology и Intel ® Стандартная управляемость. Версии до 6 или после 11.6 не затрагиваются.

Описание:

Непривилегированный локальный злоумышленник может предоставить функции управляемости, получающие непривилегированные сетевые или локальные системные привилегии для SKU управляемости Intel: технология Intel® Active Management (AMT), технология Intel® Standard Manageability (ISM) и технология Intel® Small Business (SBT)

Как я могу легко обнаружить и смягчить уязвимость повышения привилегий Intel в системе Linux?

GAD3R
источник
1
Еще более сложный случай, когда многие из нас используют виртуальные машины; для реальных машин достаточно будет проверить наличие службы в UDP 16992? +1
Руи F Ribeiro
2
Профилактические меры: используйте SPARC (я знаю, я знаю, нереальное решение). +1
Фокс
3
@Fox довольно забавно, что процессор ME в процессорах Intel в настоящее время является SPARC ;-).
Стивен Китт
2
@StephenKitt Действительно? Возможно, мне придется пересмотреть свою позицию по поводу чипов Intel! Почти все мои машины - PPC или SPARC, поэтому я должен признать, что моя предвзятость реальна
Fox
3
См. Также На меня влияет уязвимость повышения привилегий в Intel AMT / ISM / SBT?
Жиль "ТАК - перестань быть злым"

Ответы:

18

Самым ясным постом, который я видел по этому вопросу, является Мэтью Гарретт (включая комментарии).

Мэтью выпустил инструмент для локальной проверки вашей системы: соберите ее, запустите с

sudo ./mei-amt-check

и он сообщит, включен ли AMT и настроен ли он, и если да, то версии встроенного ПО (см. ниже). У README есть больше деталей.

Для сканирования вашей сети на наличие потенциально уязвимых систем просканируйте порты 623, 624 и 16992–16993 (как описано в собственном документе Intel по предотвращению изменения климата ); например

nmap -p16992,16993,16994,16995,623,664 192.168.1.0/24

просканирует сеть 192.168.1 / 24 и сообщит о состоянии всех ответивших хостов. Возможность подключения к порту 623 может быть ложным срабатыванием (этот порт используют другие системы IPMI), но любой открытый порт с 16992 по 16995 является очень хорошим индикатором включенного AMT (по крайней мере, если они отвечают соответствующим образом: с AMT это означает HTTP-ответ на 16992 и 16993, последний с TLS).

Если вы видите ответы на портах 16992 или 16993, подключение к ним и запрос /с использованием HTTP вернет ответ со Serverстрокой, содержащей «Intel (R) Active Management Technology») в системах с включенным AMT; эта же строка будет также содержать версию используемой микропрограммы AMT, которую затем можно будет сравнить со списком, приведенным в рекомендациях Intel, чтобы определить, уязвима ли она.

См . Ответ CerberusSec для ссылки на скрипт, автоматизирующий вышеизложенное.

Существует два способа «исправить» проблему:

  • обновите прошивку, как только производитель вашей системы предоставит обновление (если вообще);
  • избегайте использования сетевого порта, обеспечивающего AMT, либо с помощью сетевого интерфейса, не поддерживающего AMT, в вашей системе, либо с помощью USB-адаптера (многие рабочие станции AMT, такие как системы C226 Xeon E3 с сетевыми портами i210, имеют только один AMT- совместимый сетевой интерфейс - остальные безопасны; обратите внимание, что AMT может работать через Wi-Fi, по крайней мере, в Windows, поэтому использование встроенного Wi-Fi также может привести к компрометации).

Если ни один из этих вариантов не доступен, значит, вы находитесь на территории смягчения последствий. Если ваша система с поддержкой AMT никогда не была подготовлена ​​для AMT, то вы достаточно безопасны; включение AMT в этом случае, по-видимому, может быть сделано только локально, и, насколько я могу судить, требует использования встроенного программного обеспечения вашей системы или программного обеспечения Windows. Если AMT включен, вы можете перезагрузить компьютер и использовать встроенное ПО для его отключения (нажмите, CtrlPкогда сообщение AMT отображается во время загрузки).

По сути, хотя уязвимость привилегий довольно неприятна, похоже, что большинство систем Intel на самом деле не подвержены этой уязвимости. Для ваших собственных систем, работающих под управлением Linux или другой Unix-подобной операционной системы, эскалация, вероятно, требует физического доступа к системе, чтобы в первую очередь включить AMT. (Windows - другая история.) В системах с несколькими сетевыми интерфейсами, как указал Руи Ф. Рибейро , вы должны обращаться с интерфейсами с поддержкой AMT так же, как с любым интерфейсом администрирования (с поддержкой IPMI или с интерфейсом хоста). для виртуального гипервизора) и изолировать его в административной сети (физической или VLAN). Вы не можете полагаться на хост, чтобы защитить себя: iptablesи т. Д. Здесь неэффективны, потому что AMT видит пакеты раньше, чем операционная система (и сохраняет пакеты AMT для себя).

Виртуальные машины могут усложнить ситуацию, но только в том смысле, что они могут сбить с толку AMT и, таким образом, привести к ошибочным результатам сканирования, если AMT включен. amt-howto(7)приводит пример систем Xen, где AMT использует адрес, заданный DomU через DHCP, если таковой имеется, что означает, что при сканировании будет показано, что AMT активна в DomU, а не Dom0 ...

Стивен Китт
источник
Нет ли локального способа обнаружить AMT из Linux на компьютере? Используя /proc/cpuinfoили dmidecode?
дольмен
Означает ли это, что если система не отвечает ни на один из этих портов, что она защищена от этой уязвимости, или она все еще может использоваться локально?
Comfreak
Смягчение последствий на ноутбуках может принимать форму использования сетевых адаптеров USB вместо встроенных.
Майкл Мол
1
Вы пишете «обратите внимание, что AMT может работать через Wi-Fi, по крайней мере, на Windows». Я думал, что эта уязвимость работает независимо от ОС?
Вюртель
1
@wurtel Уязвимость не зависит от ОС на проводных интерфейсах, но в Wi-Fi AMT, похоже, нуждается в взаимодействии с драйвером работающей ОС: он не перехватывает пакеты, он полагается на то, что ОС пересылает ему соответствующие пакеты (насколько я понимаю - обратите внимание, что я не проверял эту сторону вещей).
Стивен Китт
8

Недостаточно просто обнаружить открытые порты для этой службы, это не указывает, влияет ли на версию или нет. Наша команда создала скрипт Python, доступный на нашем github: CerberusSecurity / CVE-2017-5689, который определяет, уязвима ли целевая система для удаленной атаки.

Пример использования:

python CVE_2017_5689_detector.py 10.100.33.252-255

Это должно позволить вам иметь возможность проверить, пригодны ли вы для удаленного использования. Если вам интересно, мы также написали небольшую запись в блоге по адресу http://cerberussec.org/, в которой мы расскажем об этой уязвимости.

CerberusSec
источник