Как отключить изоляцию таблицы страниц для восстановления производительности, потерянной из-за патча дыры в безопасности процессора Intel?

43

Из-за текущей проблемы с безопасностью процессора Intel ожидается наличие патча, который замедляет производительность системы.

Как я могу убедиться, что этот патч не будет установлен в моей системе Ubuntu?

mahrens61
источник
49
Вы можете еще больше повысить производительность своей системы, отключив различные другие механизмы безопасности. Нет, это не рекомендация.
Scai
11
Если производительность важна для вас, я рекомендую самостоятельно собрать кандидат на выпуск последней версии ядра и протестировать снижение производительности вашей рабочей нагрузки. Вы можете обнаружить, что накладные расходы незначительны или терпимы.
Джеффри Босбом
5
Я не могу переоценить, насколько ужасна эта идея.
Александр
13
Я собираюсь выступать. Лично я бы не советовал отключать функции безопасности, но для пользователей, которые заметили снижение производительности, pti может быть разумным вариантом, учитывая, насколько сложно может быть использование атаки на эту конкретную дыру в безопасности и на ценность целевого компьютера / данных. Вопрос в том, как отключить эту опцию, не следует ли отключать эту опцию.
Panther
2
Я согласен, PTI - это функция безопасности, стоимость которой может быть незначительной. Решение о том, подходит ли это для них и выходит за рамки этого вопроса, зависит от ОП.
Джейк

Ответы:

55

Патч (он же «Изоляция таблицы страниц») будет частью обычного обновления ядра (которое вы получите, когда обновите свою систему). Однако настоятельно рекомендуется поддерживать ядро ​​в актуальном состоянии, поскольку оно также содержит множество других исправлений безопасности. Поэтому я бы не рекомендовал просто использовать устаревшее ядро ​​без исправления.

Тем не менее, вы можете эффективно отключить патч, добавив pti=off( ядро патч , добавив эту опцию, с большим количеством информации ) в командной строке ядра ( HowTo ). Обратите внимание, что это приведет к снижению безопасности системы.

В списке рассылки PostgreSQL больше информации и тестов производительности с включенным и отключенным PTI - TLDR заключается в том, что он оказывает влияние на производительность от 10 до 30% (то есть для ProstgreSQL - другие вещи, такие как игры , вероятно, будут иметь меньшее влияние) ,

Обратите внимание, что это повлияет только на процессоры Intel, так как AMD, по-видимому, не затронута ( reddit ), поэтому она, по-видимому, будет отключена по умолчанию для AMD.

JonasCz - Восстановить Монику
источник
2
«... по умолчанию это будет отключено на AMD». Означает ли это, что будет дополнительная версия ядра для операционных систем Ubuntu, работающих на компьютерах с процессором AMD, предоставленным Canonical? :)
cl-netbox
16
Нет, ядро ​​обнаруживает (при загрузке), работает ли оно на процессоре AMD, и отключает исправление, если оно есть. @ cl-netbox
JonasCz - Восстановить Монику
1
Согласно theregister.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability, на чипы AMD влияет как минимум одна разновидность атак Spectre (внедрение целевых ветвей), поэтому на этой неделе они получат обновление ядра, которое может повлиять на производительность, тоже, хотя на них не распространяется собственно Meltdown.
Дейв Шерохман
1
По-видимому, эта функция есть в архитектуре x64, но не в i386 / IA-32. Из-за этого патч также не влияет на 32-битный Linux (security / Kconfig требует X86_64 для включения PAGE_TABLE_ISOLATION). это вызывает другой вопрос, хотя. А как насчет машин x64 с установленным 32-битным Linux, это может повлиять? Если да, то как быть со старыми машинами x64, которые ограничены биосом, чтобы выполнять только 32-битные инструкции (как старые нетбуки на основе атомов)? они сидят уток?
thePiGrepper
2
Пока я не узнал наверняка, что была атака на основе JavaScript, я планировал использовать это.
Джошуа
35

Обновление: выпуску дали пару прозвищ: Meltdown и Spectre . Я обновил ответ с новой информацией.

Изначально это будет патч для ядра. Это будет отображаться как более высокая версия. Он будет установлен, потому что вы linux-image-genericустановили. Вот для чего этот пакет. Так что вы можете удалить linux-image-generic. Это ужасно, катастрофично идея, что будет подвергать вас всякие гадости , но вы могли бы сделать это. Также может быть микрокод процессора, который следует linux-firmwareдля исправления в процессоре. Это действительно на Intel.

Метод, которым вы пользуетесь, чтобы устранить это, не имеет значения. Вы просите обойти что-то, где вы не знаете ни истинного влияния ошибки, ни затрат на ее устранение.

  • Ошибка неприятна. Сообщаемые CVE являются кросс-процессными считываниями памяти. Любой процесс, способный читать память любого другого процесса. Ввод, пароли, всего много. Это, вероятно, имеет последствия и для песочниц. Это очень рано, и я ожидаю, что люди будут продвигать это дальше, как в плане воздействия, так и в плане доступа.

  • Вероятность снижения производительности не так велика, как вы беспокоитесь. Цифры, которые люди бросают вокруг, сосредотачиваются на теоретической производительности подсистемы, или худшем случае. Плохо кэшированная база данных - это то, что получит самый сильный удар. Игры и повседневные дела, вероятно, не будут заметно меняться.

Даже сейчас мы можем видеть, что является настоящей ошибкой, еще слишком рано говорить о том, что это за влияние. В то время как свободный доступ для чтения к ОЗУ плох, но есть и худшие вещи. Я также проверил бы, насколько исправление действительно влияет на вас (с тем, что вы делаете).

Не начинайте предварительно загружать конфигурацию GRUB с флагами или просто не удаляйте метапакеты ядра.

Оли
источник
7
Все, что вам нужно сделать, это добавить pti=offв командную строку ядра (в GRUB), чтобы отключить патч.
JonasCz - Восстановить Монику
3
@JonasCz, этот комментарий - если это правда, я не знаю - звучит так, как будто стоит отдельного ответа, особенно если вы можете подкрепить его ссылкой.
Byte Commander
ИМХО нопти это лучший выбор
Пантера
3
@ Оли Я согласен с этим советом и сам дал такое в другом месте. С учетом сказанного, вопрос заключается в том, как отключить эту новую функцию безопасности, если это необходимо, и, IMO, nopti - это возможность сделать это.
Пантера
1
Да, это замедлило некоторые из моих системных операций на 99% при использовании виртуальных машин. Копирование файлов с хоста на виртуальную машину занимало 2-3 секунды, теперь это занимает более минуты.
rboy
14

Хотя я не рекомендую это, можно отключить PTI

с параметром командной строки ядра nopti

по словам Фороникса .

Для этого добавьте noptiстроку рядом со строкой, начинающейся с GRUB_CMDLINE_LINUX_DEFAULTin, /etc/default/grubа затем запустите

sudo update-grub

с последующим перезапуском.

Дополнительные сведения о параметрах загрузки ядра для отключения функций безопасности, связанных с производительностью, см. В разделе MitigationControls Spectre & Meltdown в Ubuntu Wiki

nixpower
источник
1
В чем разница между параметрами загрузки ядра nopti и pti = off ?
18:18
@niutech нет никакой разницы, для доказательства вы можете посмотреть здесь
nixpower
wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown/… описывает "nopti" и другие ..
alfonx
3

Самый простой способ: снять отметку в конфигурации ядра

-> Параметры безопасности

[] Удалить отображение ядра в пользовательском режиме

затем скомпилируйте новое ядро

Кшиштоф Ск
источник
1
Добро пожаловать в Спросите Ubuntu! В своем нынешнем виде ваш ответ не так хорош, как мог бы быть. Не могли бы вы прочитать « Как написать хороший ответ» и руководство по стилю для вопросов и ответов . - Из обзора
Дж. Старнс
2
К сожалению, Дж. Старнс прав. Вы больше не компилируете свое собственное ядро, кроме как в крайнем случае.
Джошуа
Это довольно тривиальное изменение параметров ядра, но IMO nopti, вероятно, является лучшим / более легким выбором.
Пантера