01-27-2018, 04:03 PM
(Сообщение последний раз редактировалось: 05-17-2019, 01:45 PM n3k0nation.)
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 Embedded
Microarchitectural Data Sampling.
Новая уязвимость в Intel камнях, патчи под Linux уже подъехали. Галактико в опасностэ! Впрочем, с помощью данных уязвимостей на самом деле можно сделать интересные вещи. Но мне, как Неуловимому Джо, оно нахрен не нужно на домашних машинах, особенно с учетом еще одних потерь производительности в виде 30-40 процентов.
Для отключения достаточно передать несколько параметров в ядро:
Код:
mds=off mitigations=off
По мауналу выше втыкаем эти параметры в GRUB_CMDLINE_LINUX_DEFAULT, который лежит в /etc/default/grub и перегенериваем скрипты загрузчика update-grub.
Не забываем включить назад HT, ну, либо можно не включать.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Гадаю по капче.