01-27-2018, 04:03 PM
Meltdown/Spectre.
Недавно мне в репы прилетело новое ядро с патчем на мелтдаун и спектру. Так как исправление данных дыр сжирает от 20% до 50% производительности на старых интел процах (ниже скайлейка), то оно ненужно (кроме того, это должно быть исправлено на аппаратном уровне, а сейчас мы имеем кучу костылей, которые убивают огромный процент перформанса).
К тому же, данные уязвимости актуальны только на серверах с виртуализацией, для домашних хомяков или серверов без виртуализации, это просто является потерей производительности.
Версии ядра популярных дистрибутивов, начиная с которых присутствуют патчи для устранения уязвимостей:
Также ряд хостеров поставляет в своих образах ядра, которые им же и модифицированы, например OVH. В таком случае версия ядра может отличатся о тех, которые описаны выше и там уже могут быть вшиты эти патчи.
Для того чтобы проверить вашу систему берём специальный bash скрипт:
https://github.com/speed47/spectre-meltdown-checker
Сохраняем к себе на сервер и выполняем (от root):
Если ваш сервер уязвим, то будет написано VULNERABLE, если нет, то NOT VULNERABLE соответственно.
Немного покопав гит кернеля линупса, были найдены замечательные коммиты, которые через передачу параметров кернелю выключают "чудо-патчи" (актуально для ванильных ядер):
https://git.kernel.org/pub/scm/linux/ker...3fefb8d537
https://git.kernel.org/pub/scm/linux/ker...ea71d473e0
Порядок действий на линупсах примерно такой:
Для винды сносим данные KB и больше никогда их не ставим:
Microarchitectural Data Sampling.
Новая уязвимость в Intel камнях, патчи под Linux уже подъехали. Галактико в опасностэ! Впрочем, с помощью данных уязвимостей на самом деле можно сделать интересные вещи. Но мне, как Неуловимому Джо, оно нахрен не нужно на домашних машинах, особенно с учетом еще одних потерь производительности в виде 30-40 процентов.
Для отключения достаточно передать несколько параметров в ядро:
По мауналу выше втыкаем эти параметры в GRUB_CMDLINE_LINUX_DEFAULT, который лежит в /etc/default/grub и перегенериваем скрипты загрузчика update-grub.
Не забываем включить назад HT, ну, либо можно не включать.
Недавно мне в репы прилетело новое ядро с патчем на мелтдаун и спектру. Так как исправление данных дыр сжирает от 20% до 50% производительности на старых интел процах (ниже скайлейка), то оно ненужно (кроме того, это должно быть исправлено на аппаратном уровне, а сейчас мы имеем кучу костылей, которые убивают огромный процент перформанса).
К тому же, данные уязвимости актуальны только на серверах с виртуализацией, для домашних хомяков или серверов без виртуализации, это просто является потерей производительности.
Список уязвимых процессоров
Версии ядра популярных дистрибутивов, начиная с которых присутствуют патчи для устранения уязвимостей:
Код:
RHEL 6/ CentOS 6 - 2.6.32-696.18.7
RHEL 7/ CentOS 7 - 3.10.0-693.11.6
Debian 7 - 3.2.0-5-amd64
Debian 8 - 3.16.0-5-amd6
Debian 9 - 4.9.0-5-amd64
Ubuntu 14.04 - 3.13.0-139-generic
Ubuntu 16.04 - 4.4.0-109-generic/ 4.13.0-26-generic
Ubuntu 17.10 - 4.13.0-25-genericТакже ряд хостеров поставляет в своих образах ядра, которые им же и модифицированы, например OVH. В таком случае версия ядра может отличатся о тех, которые описаны выше и там уже могут быть вшиты эти патчи.
Для того чтобы проверить вашу систему берём специальный bash скрипт:
https://github.com/speed47/spectre-meltdown-checker
Сохраняем к себе на сервер и выполняем (от root):
Код:
# sh spectre-meltdown-checker.shЕсли ваш сервер уязвим, то будет написано VULNERABLE, если нет, то NOT VULNERABLE соответственно.
Пример
Немного покопав гит кернеля линупса, были найдены замечательные коммиты, которые через передачу параметров кернелю выключают "чудо-патчи" (актуально для ванильных ядер):
https://git.kernel.org/pub/scm/linux/ker...3fefb8d537
https://git.kernel.org/pub/scm/linux/ker...ea71d473e0
Порядок действий на линупсах примерно такой:
- Редактируем grub.cfg для передачи параметров:
Код:$ su
# nano /etc/default/grub - Далее вносим изменения в GRUB_CMDLINE_LINUX_DEFAULT, должно получится чето типа этого:
Также, можно вместо nospectre_v2 заюзать:Код:GRUB_CMDLINE_LINUX_DEFAULT="pti=off nospectre_v2"
Код:spectre_v2=off - Сохраняем, выходим и ре-генерим скрипты груба:
Код:# update-grub
Для винды сносим данные KB и больше никогда их не ставим:
Код:
KB4056892 <-- W10 / Server 2016
KB4056891 <-- W10
KB4056890 <-- W10 / Server 2016
KB4056888 <-- W10
KB4056893 <-- W10
KB4056898 <-- W8 / Server 2012 / W8 Embedded
KB4056895 <-- W8 / Server 2012 / W8 Embedded
KB4056897 <-- W7 / Server 2008 / W7 Embedded
KB4056894 <-- W7 / Server 2008 / W7 EmbeddedMicroarchitectural Data Sampling.
Новая уязвимость в Intel камнях, патчи под Linux уже подъехали. Галактико в опасностэ! Впрочем, с помощью данных уязвимостей на самом деле можно сделать интересные вещи. Но мне, как Неуловимому Джо, оно нахрен не нужно на домашних машинах, особенно с учетом еще одних потерь производительности в виде 30-40 процентов.
Для отключения достаточно передать несколько параметров в ядро:
Код:
mds=off mitigations=offПо мауналу выше втыкаем эти параметры в GRUB_CMDLINE_LINUX_DEFAULT, который лежит в /etc/default/grub и перегенериваем скрипты загрузчика update-grub.
Не забываем включить назад HT, ну, либо можно не включать.
![[Изображение: cbw52QTBQ1mWhv0pTroHsw.jpg]](https://image.prntscr.com/image/cbw52QTBQ1mWhv0pTroHsw.jpg)