Блог ОС CloudLinux - давайте подвергнем уязвимость MDS бликам истины
Блог CloudLinux OS

Рекомендуем

Давайте подвергнем уязвимость MDS лучам истины

mds3

Хорошо, позвольте мне немного осветить последний выпуск CloudLinux 7 CloudLinux 6 ядро с MDS уязвимость патч.

Объяснение уязвимости MDS

За последние три дня мы получили целую кучу вопросов, таких как Должен ли я отключить Hyper-Threading или нет? Как отключение Hyper-Threading может повлиять на производительность? Итак, здесь мы с некоторой важной информацией о точке.

Но в чем проблема? ЦП имеет два потока выполнения на физическое ядро. Оба потока совместно используют одни и те же ресурсы внутри процессора. Это означает, что одноуровневые ядра могут видеть те же данные, что и основное ядро.

И что?

Проблема включает в себя различные атаки:

  • Ядро - пользовательская космическая атака.
  • Userspace - атака userpace для потоков, работающих на одном физическом ядре.
  • Виртуальная машина - атака виртуальной машины.

Разные атакующие лица нуждаются в разных способах смягчения.

  1. Если у вас есть доверенное пространство пользователя, буферы ЦП должны быть очищены при выходе из ядра, чтобы приложение не могло видеть данные ядра. Это то, что делает обновление микрокода - оно дает возможность сделать его сброшенным. Если CPU поддерживается обновлением микрокода, вы можете увидеть сообщение:
    «Смягчение: очистить буферы процессора»
    OR
    «Смягчение: очистка буферов ЦП; уязвимость SMT» , который относится к / системы / устройства / системы / CPU / Уязвимости / МДС файл или запустив dmesg | grep MDS.
  2. Атака виртуальной машины на виртуальную машину (ВМ) отличается от предыдущей. Две виртуальные машины могут совместно использовать одно и то же ядро ​​ЦП, чтобы они могли совместно использовать данные ЦП. В этом случае ядро ​​добавляет очистку буфера ЦП, так же, как это делается в пункте 1.
  3. Но ресурсы не полностью изолированы между ядрами в пакете. Основное ядро ​​и братья и сестры совместно используют некоторые ресурсы во время выполнения. Таким образом, разные приложения на хосте или разные приложения в разных виртуальных машинах могут получать доступ к одним и тем же данным. Процессоры Intel имеют различную защиту от атак такого типа. Некоторые процессоры имеют небольшую защиту, а другие вообще нет. Если вы хотите гарантировать, что эта атака никогда не произойдет, вы можете добавить «Nosmt» строка до конца МДС Параметр.
    Например: МДС =»полный, nosmt», Это обеспечит дополнительную проверку и включит Hyper-Threading, только если это безопасно.
  4. Вы увидите сообщение:
    «Смягчение: очистить буферы процессора»
    в системном файле или в dmesg выход. В настоящее время только процессоры серии ATOM имеют такую ​​защиту.

Проблема может быть уменьшена путем изменения планировщика ЦП. Планировщик должен избегать загрузки баланса между виртуальными ЦП, но это очень большое изменение, и оно пока недоступно для ядра Linux.

Какие процессоры могут обновлять свой микрокод?

Intel не предоставляет обновление микрокода для всех процессоров. Только некоторые новые могут быть обновлены в данный момент.

Названия продуктовCPUIDCPUID формат IntelID платформы
Xeon Scalable Gen206-55-750657bf
Core Gen206-2a-7206a712
Core Gen306-3a-9306a912
Core Gen406-3c-3306c332
Core Gen506-3d-4306d4c0
Core Gen3 X Series; Xeon E5 v206-3e-4306e4ed
Xeon E7 v206-3e-7306e7ed
Core Gen4 X серии; Xeon E5 v306-3f-2306f26f
Xeon E7 v306-3f-4306f480
Core Gen406-45-14065172
Core Gen406-46-14066132
Core Gen506-47-14067122
Core Gen606-4e-3406e3c0
Xeon Scalable06-55-450654b7
Xeon D-21xx06-55-450654b7
Xeon D-1520 / 4006-56-25066210
Xeon D-1518/19/21/27/28/31/33/37/41/48, Pentium D1507/08/09/17/1906-56-35066310
Xeon D-1557/59/67/71/77/81/8706-56-45066410
Xeon D-1513N/23/33/43/5306-56-55066510
Pentium N / J4xxx, Celeron N / J3xxx, Atom x5 / 7-E39xx06-5c-9506c93
Core Gen6; Xeon E3 v506-5e-3506e336
Процессор Atom серии C06-5f-1506f101
Pentium Silver N / J5xxx, Celeron N / J4xxx06-7a-1706a101
Core Gen8 Mobile06-8e-9806e910
Core Gen7 Mobile06-8e-9806e9c0
Core Gen8 Mobile06-8e-а806eac0
Core Gen8 Mobile06-8e-б806ebd0
Core Gen8 Mobile06-8e-д806ed94
Core Gen7; Xeon E3 v606-9e-9906e92a
Core Gen8 для настольных ПК, мобильных, Xeon E06-9e-а906ea22
Core Gen806-9e-б906eb02
Core Gen906-9e-с906ec22
Core Gen9 Mobile06-9e-д906ed22

Некоторые из них запланированы на будущее.

Названия продуктовCPUIDID платформы
Процессор Intel® Atom® C2750, C2730, C2550, C2530, C2350406D81
Процессор Intel® CoreTM Extreme Edition i7-3960X, i7-3970X Процессор Intel® CoreTM i7-3820, 3930K206D76D
Процессор Intel® Xeon® E5-2620, E5-2630, E5-2630L, E5-2640, E5-2650, E5-2650L, E5-2660, E5-2667, E5 2670-E5-E2680-E5-XUMM206D66D
Процессор Intel® Xeon® E5-1428L, E5-1620, E5-1650, E5-1660, E5-2403, E5-2407, E5-2418L, E5-2420, E5 E2428, E5 XUMNUMX XUMUM-E2430, E5-E2430, E5-E2440-E5-E2448-E5-E2450-E5-E2450-E5 -2470, E5-2603L, E5-2609, E5- 2620L, E5-2630, E5-2630, E5-2637, E5-2640, E5-2643, E5, E2648-5-2650-5-2650-5-2658-5-2660-5-2665-5-2667-5-2670-5-2680-5-2687-XNXXXXXXXXXXXXNXXXXXXXXXXXXXX , E5-2690L, E5-4603, E5-4607L, E5-4610, E5-4617, E5-4620, E5-4640, E5-4650, E5-4650, E1405-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX-EXNUMX-EXNUM -XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMX, EXNUMX-XNUMXL Процессор Intel® Pentium® XNUMX206D76D
Процессор Intel® Atom® Z3770, Z3740, Z3770D, Z3740D, Z3770, Z3740, Z3680, Z3770D, Z3740D306732
Процессор Intel® Pentium® J2900, J2850 Процессор Intel® Pentium® N3520, N3510 Процессор Intel® Celeron® J1900, J1850, J1800, J1750 Процессор Intel® Celeron® N2920, N2910, N2820, N2815, N2810, N2806, N2805, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX306730C
Процессор Intel® Pentium® J2900, J2850 Процессор Intel® Pentium® N3520, N3510 Процессор Intel® Celeron® J1900, J1850, J1800, J1750 Процессор Intel® Celeron® N2920, N2910, N2820, N2815, N2810, N2806, N2805, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX, NXNUMX306730C

Чтобы определить CPUID, используйте команду:

# a=$(head -3 /proc/cpuinfo | tail -1 | awk '{print $4}'); b=$(head -4 /proc/cpuinfo| tail -1 | awk '{print $3}'); c=$(head -6 /proc/cpuinfo| tail -1 | awk '{print $3}'); printf "%02x-%02x-%02x\n" $a $b $c

Чтобы определить CPUID в формате Intel, используйте команду:

# a=$(head -3 /proc/cpuinfo | tail -1 | awk '{print $4}'); b=$(head -4 /proc/cpuinfo| tail -1 | awk '{print $3}'); c=$(head -6 /proc/cpuinfo| tail -1 | awk '{print $3}'); cpuid=$(printf "%02x-%02x-%x" $a $b $c); printf ${cpuid:3:1}${cpuid:0:2}${cpuid:4:1}${cpuid:6:2}"\n"

Есть несколько процессоров, которые не будут обновлять микрокод. Смотрите подробный список здесь: https://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/SA00233-microcode-update-guidance_05132019.pdf.

Для этих процессоров рекомендуется отключить Hyper-Threading.

Как отключение Hyper-Threading может повлиять на производительность

Мы не получили никаких отчетов о влиянии производительности на эти меры по снижению уровня MDS. Тем не менее, люди из RedHat сообщают, что есть, и что «Воздействие будет ощущаться больше в приложениях с высокими показателями переходов пространства пользователь-ядро-пользователь. Например, системные вызовы, NMI и прерывания ».

Они провели несколько тестов, чтобы оценить влияние на следующие рабочие нагрузки:

  • Приложения, которые проводят много времени в пользовательском режиме, обычно демонстрируют наименьшее замедление, обычно в диапазоне 0-5%.
  • Приложения, которые выполняли много операций ввода-вывода в виде небольших блоков или небольших пакетов, показали замедления в диапазоне 10-25%.
  • Некоторые микробенчмарки, которые ничего не делали, кроме входа и возврата из пространства пользователя в пространство ядра, показали более высокие замедления.

Как говорили специалисты RedHat: «Смягчение MDS может быть полностью включено, SMT также можно отключить, добавив «МДС = полная, nosmt» флаг командной строки загрузки ядра.
Уменьшение MDS можно полностью отключить, добавив «МДС = выкл» флаг командной строки загрузки ядра.
Нет способа отключить его во время выполнения ».

Больше информации

  • Вы можете найти полный обзор уязвимости MDS от RedHat здесь: https://access.redhat.com/security/vulnerabilities/mds.
  • Влияние на производительность отключения Hyper-Threading см. В разделе «Отключение Hyper-Threading» по адресу https://access.redhat.com/security/vulnerabilities/L1TF-perf.
  • Если вы используете KernelCare, пожалуйста, посетите https://www.kernelcare.com/zombieload/ Здесь вы можете найти расписание выпуска патчей для уязвимостей MDS, инструкции по снижению уязвимости MDS, а также посмотреть видео с советами по MDS от нашего генерального директора Игоря Селецкого.
Бета: LVE Manager, LVE-Utils, CageFS, LibLVE и ...
Обзор возможностей ОС CloudLinux - ЗАКРЫТО

Комментарии 5

Меня смущает доступность микрокода, поскольку диаграмма Intel не соответствует приведенному выше списку.

Руководство Intel в формате PDF отображает множество процессоров в зеленом цвете, которые не перечислены выше.
https://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/SA00233-microcode-update-guidance_05132019.pdf

Доступны ли «зеленые» производственные обновления микрокода в руководстве Intel, или над ними сейчас работают? Это сбивает с толку, потому что в начале Intel использует слова «доступно или запланировано», а затем на графике - «производство или планирование». Я думал, что статус производства означает наличие.

Меня смущает доступность микрокода, поскольку диаграмма Intel не соответствует приведенному выше списку. Руководство Intel в формате PDF отображает множество процессоров в зеленом цвете, которые не перечислены выше. https://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/SA00233-microcode-update-guidance_05132019.pdf Доступны ли зеленые "производственные" обновления микрокода в руководстве Intel или над ними сейчас работают? Это сбивает с толку, потому что в начале Intel использует слова «доступно или запланировано», а затем на графике - «производство или планирование». Я думал, что статус производства означает наличие.

Привет, Джефф!
Таблица выше должна совпадать с таблицей Intel в формате pdf. Просто в нашей таблице используется классический cpuid, а в PDF используется другой собственный формат cpuid. Также в таблице Intel содержится один и тот же процессор в нескольких строках. В любом случае, вы можете руководствоваться таблицей Intel. Как определить cpuid в формате Intel вы можете найти в нашей статье.
Cpuid в таблице Intel с производственным статусом «производство» означает, что Intel завершила все проверки и разрешает клиентам использовать этот MCU в производственной среде, т.е. он уже доступен для обновления.
Запланировано - Intel планирует выпустить MCU в будущем.

Пожалуйста, дайте нам знать, если у вас возникнут вопросы. Спасибо.

Привет, Джефф! Таблица выше должна совпадать с таблицей Intel в формате pdf. Просто в нашей таблице используется классический cpuid, а в PDF используется другой собственный формат cpuid. Также в таблице Intel содержится один и тот же процессор в нескольких строках. В любом случае, вы можете руководствоваться таблицей Intel. Как определить cpuid в формате Intel вы можете найти в нашей статье. Cpuid в таблице Intel с производственным статусом «производство» означает, что Intel завершила все проверки и разрешает клиентам использовать этот MCU в производственной среде, т.е. он уже доступен для обновления. Запланировано - Intel планирует выпустить MCU в будущем. Пожалуйста, дайте нам знать, если у вас возникнут вопросы. Спасибо.

Благодарю. Однако на нескольких процессорах E3 и E5:

Юм лог показывает
May 16 02:23:26 Updated: 2:microcode_ctl-1.17-33.11.el6_10.x86_64

Сервер перезагружается после обновления микрокода и установки нового ядра

DMESG все еще сообщает
MDS: уязвимо: попытки очистки буферов ЦП, без микрокода

https://www.intel.com/content/dam/www/public/us/en/documents/corporate-information/SA00233-microcode-update-guidance_05132019.pdf говорит "Производство" для рассматриваемого процессора

Почему DMESG показывает «нет микрокода» для процессоров E3 и E5, хотя они обозначены зеленым цветом и помечены как «производственные» в руководстве Intel pdf?

Благодарю. Однако, на нескольких E3 и E5 CPUs: Yum журнал показывает мая 16 02: 23: 26 Обновлено: 2: microcode_ctl-1.17-33.11.el6_10.x86_64 сервер перезагружается после обновления микрокода и нового ядра установленного DMESG еще сообщает МДС: Уязвимые: Clear CPU Попытки буфера, микрокод отсутствует Почему DMESG показывает «нет микрокода» для процессоров E00233 и E05132019, хотя они обозначены зеленым цветом и помечены как «производственные» в руководстве Intel pdf?

Привет Джефф,
Приносим извинения, но мы все еще расследуем проблему.
Мы будем держать вас с обновлениями в этом сообщении в блоге.

Привет Джефф, мы сожалеем, но мы все еще исследуем проблему. Мы будем держать вас с обновлениями в этом сообщении в блоге.

Здравствуйте, Джефф, мы выпустили новое ядро ​​с исправленной проверкой, которая должна показывать правильный статус.
Вы можете найти детали здесь https://www.cloudlinux.com/cloudlinux-os-blog/entry/beta-cloudlinux-7-and-cloudlinux-6-hybrid-kernel-updated-1-20
После обновления до нового ядра и перезагрузки вы должны увидеть правильный статус.
Мы настоятельно рекомендуем вам обновить ядро ​​до последней версии. Это позволяет включить защиту от MDS, даже если ваш текущий микрокод достаточно новый.

Здравствуйте, Джефф, мы выпустили новое ядро ​​с исправленной проверкой, которая должна показывать правильный статус. Вы можете найти подробности здесь https://www.cloudlinux.com/cloudlinux-os-blog/entry/beta-cloudlinux-7-and-cloudlinux-6-hybrid-kernel-updated-1-20 После обновления до нового ядра и перезагрузите, вы должны увидеть правильный статус. Мы настоятельно рекомендуем вам обновить ядро ​​до последней версии. Это позволяет включить защиту от MDS, даже если ваш текущий микрокод достаточно новый.
Уже зарегистрирован? ВОЙТИ
гость
Понедельник, 22 июля 2019

Защитный код изображение