prog=$@
pids=$(ps -ef | grep "\"$prog\"" | awk '{print $2}')
if [ -n "$pids" ]; then
echo "$prog (pid $pids) is already running!"
return 0
fi
Самый четкий пост, который я видел по этому вопросу, это Мэттью Гарретт(включая комментарии).
Мэтью выпустил инструментдля локальной проверки вашей системы: соберите его, запустите с помощью
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, то вы в достаточной безопасности; включение AMT в этом случае, по-видимому, может быть выполнено только локально, и, насколько я могу судить, требует использования прошивки вашей системы или программного обеспечения Windows. Если AMT включен, вы можете перезагрузить компьютер и отключить его с помощью микропрограммы (нажмите CtrlP, когда во время загрузки отображается сообщение AMT).
По сути, несмотря на то, что уязвимость в отношении привилегий довольно опасна, похоже, что большинство систем Intel на самом деле не подвержены этой уязвимости. Для ваших собственных систем, работающих под управлением Linux или другой Unix-подобной операционной системы, эскалация, вероятно, потребует физического доступа к системе, чтобы в первую очередь включить AMT. (Windows — это отдельная история.) В системах с несколькими сетевыми интерфейсами, как указывает Rui F Ribeiro, вы должны относиться к интерфейсам с поддержкой AMT так же, как вы относитесь к любому административному интерфейсу (поддерживающему IPMI или интерфейсу хоста). для гипервизора ВМ) и изолировать его в административной сети (физической или VLAN). Вы не можетеполагаться на хост для самозащиты: iptables
и т. д. здесь неэффективны, потому что AMT видит пакеты раньше, чем операционная система (и хранит пакеты AMT при себе).
Виртуальные машины могут усложнить ситуацию, но только в том смысле, что они могут сбивать с толку AMT и, таким образом, приводить к запутанным результатам сканирования, если AMT включен.amt-howto(7)
приводит пример систем Xen, где AMT использует адрес, предоставленный DomU через DHCP, если таковой имеется,что означает, что сканирование покажет, что AMT активен на DomU, а не на Dom0...
Просто определить открытые порты для этой службы недостаточно, это не указывает, затронута версия или нет. Наша команда создала скрипт Python, доступный на нашем github: CerberusSecurity/CVE-2017-5689, который определяет, уязвима ли целевая система для удаленной атаки.
Пример использования:
python CVE_2017_5689_detector.py 10.100.33.252-255
Это должно позволить вам проверить, не подвергаетесь ли вы удаленной атаке. Если вам интересно, мы также написали короткую запись в блоге по адресу http://cerberussec.org/ с нашим мнением об этой уязвимости.
У Intel есть инструменты для Linux по адресу:Linux Detection and Mitigation Tools
есть форк на GITHUB