Intel CPUs - mitigations=off (?)

Spectre — группа аппаратных уязвимостей, ошибка в большинстве современных процессоров Intel, имеющих спекулятивное выполнение команд.

Уязвимости затрагивают большинство современных микропроцессоров, в частности, архитектур х86/x86_64 (Intel и AMD) и некоторые процессорные ядра ARM. Потенциально позволяет локальным приложениям (локальному атакующему, при запуске специальной программы) получить доступ к содержимому виртуальной памяти текущего приложения или других программ. Угрозе присвоены два CVE-идентификатора: CVE-2017-5753 и CVE-2017-5715

В свое время, в 2018 году, эта умственная мастурбация, сломала не один мозг... Люди которые поддерживают крупные сервера и хостинги, тушили мозг не один день. Причем подача информации, факт брака производства CPU шёл не первый год. Изначально, первое время была интересная коммерческая пропаганда, купи новый CPU, старые CPU, хлам и дырявые технически. К сожалению, даже в 2021 году используя сетевые технологии, сложно посчитать количество лохов, которые купили и заменили CPU (тут можно исключить факт применения патчей которые на 40% и более снижают производительность CPU, и необходимость хостинг систем).

Если следовать общей теории и развитию CPU и их архитектуры, бездельники из CERT будут находить такие технические проблемы, каждые полгода, что на самом деле и происходит. Майнинг криптовалют уходит в прошлое, по причине новых законов и сложности расчетов. Поэтому гранды на воздух доступны всегда. Примерно с 2019 года, только ленивые институты и прочие "сборище умных людей" не участвуют в поиске уязвимостей кода (например какой-то Вуз в Севастополе, по обучению удаленно). Железо, стоит денег... И железо должно работать... Воздух, или паранойя... А доходы должно приносить, ведь антивирусные программы это уже, смешно и доход от них только, для массовых государственных закупок.

Наш конечный герой и пользователь. Это обычные сериальщики и домочадцы. Для которых подобная тематика не сколько сложна, сколько не актуальна для их задач. Их роутеры в 60% случаев имеют уязвимости проще чем CPU недоработки, и используются недоброжелателями эффективней (не хакерами, не путайте). В совокупности, кроме похода за новым оборудованием, им делать больше нечего... Тупит браузер с сериалом, провайдер говорит роутер спамит пакеты и тд и тп. Нагрузка системы опять теми же браузерами, которые жрут ресурсы хуже чем современные видео игры. Web движки социальных сетей, которые вешают уже сами браузеры :-) Вечное колесо...

Если вы не увлекаетесь валютной торговлей, крупными финансовыми или военными контрактами или чем-то подобным, и вам просто хочется получить максимальную производительность в играх Steam (видеостриминга), то добавление этого простой команды в параметры ядра, оставит вас с широко открытыми глазами и радостью. А как же пользователи Windows? А, плевать. Они сами платят деньги чтобы их ПК, использовали (насиловали) как хотели :-) 

С момента открытия большого количества "FW Intel Microcode CVE", ядро Linux сильно замедлилось (многоядерные на 15%, одноядерные на 25%). В теории всего одна команда в загрузчике GRUB, удаляет патчи для CPU:

mitigations=off

На, практике все совсем не так и зависит не только от дистрибутива но и от своей сборки ядра. Например, проблема с кэшем L1 (l1tf=off), не будет решена.

Для примера общий список патчей для CPU которые отключают:

  •     noibrs.
  •     noibpb.
  •     nospectre_v1 and nospectre_v2.
  •     l1tf=off.
  •     nospec_store_bypass_disable.
  •     no_stf_barrier.
  •     mds=off .
  •     mitigations=off.

Проверить свой CPU на проблемы и уязвимости можно командой (требует установки, ил уже есть):

# spectre-meltdown-checker

Эта команда fine распечатает список возможных уязвимостей и их устранение с помощью fgrep: 

# fgrep -r '' /sys/devices/system/cpu/vulnerabilities

Чем новее процессор от 2008 до 202х, тем больше вариантов вы получите (автор смеется).

Перед редактированием файла настройки запуска ядра в Grub, создадим копию:

# sudo cp /etc/default/grub /etc/default/grub.bak

Отредактируем настройки загрузчика:

# sudo nano /etc/default/grub

Работаем со стройкой - GRUB_CMDLINE_LINUX_DEFAULT="прописать фиксы патчей, после команд по умолчанию или ваших"

Например, предлагают меньше зло, отключаем только мягкое и бесполезное, но не надо верить:

GRUB_CMDLINE_LINUX_DEFAULT="quiet mitigations=off noibrs noibpb no_stf_barrier tsx=on"

Помним о обновлении Grub, после изменения настроек загрузчика:

#  sudo update-grub

Более расширенно и полезно, в одной строке:

quiet splash noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off tsx=on tsx_async_abort=off rootfstype=btrfs lpj=(изменить на ваш) mitigations=off

Узнать свое значение, lpj (lpj=хххххххх - позволяет задать константу loops_per_jiffy, что позволит ядру не вычислять ее каждый раз. Это значение индивидуально для каждого компьютера):

# dmesg | grep 'lpj=' 

Укажите свою файловую систему в rootfstype=btrfs. Например - rootfstype=ext4.

Конечно еще можно шлифануть, но тут только, для себя лично:

i915.modeset=1 ipv6.disable=1pcie_aspm=off nowatchdog ath9k.ps_enable=1

Можно прочесть небольшую статью для Manjaro, если вы не понимаете какие функции будут изменены.

Главное помните о новых функциях и фиксах, не копируйте слепо команды. Например на подходе, i915.mitigations=off. По умолчанию технология iGPU, уменьшение утечек, опять потеря FPS, но теперь для ее отключения во время выполнения программы можно использовать i915.disconngations=off. (Это относится только к графическому драйверу Intel, а также к этой и любым другим будущим проблемам безопасности. Опция уменьшения воздействия mitigations=off в общем случае предназначена для отдельной ситуации). Если все пойдет хорошо, эти патчи должны быть добавлены для Linux 5.12. Ну, в идеале для Haswell GT1... 


Row Hammer — непреднамеренный побочный эффект в динамической памяти (DRAM), вызывающий незапланированное электрическое межвзаимодействие ячеек памяти.