Линус Торвальдс поднял вопрос целесообразности расширенной защиты от Spectre v2
20 ноября 2018 года
Линус Торвальдс предложил пересмотреть механизм активации патчей STIBP (Single Thread Indirect Branch Predictors), предлагающих дополнительную защиту от проявления уязвимостей класса Spectre v2. Данные патчи недавно были включены в находящуюся в разработке ветку 4.20 и бэкпортированы в стабильный выпуск 4.19.2. При применении STIBP в текущем виде пользователи отметили существенное снижение производительности выполнения некоторых приложений при применении технологии одновременной многопоточности (SMT или Hyper-Threading).
Так как падение производительности достигает 50%, по мнению Линуса, применение STIBP в текущем виде лишено смысла, так как проще и надёжнее вообще отключить SMT/Hyper-Threading, что обычно и делают люди, озабоченные безопасностью. Возникает вопрос, нужно ли включать STIBP по умолчанию, когда у тех, кому действительно важна безопасность, SMT/Hyper-Threading уже отключен. Для обычных пользователей потеря производительности в 50% является существенным фактором и возникает сомнение, стоят ли данные потери блокирования теоретической уязвимости.
Линус считает маловероятным появление практических атак на базе Spectre v2, так как в обычных пользовательских системах основной целью атаки являются браузеры, которые уже добавили защиту на своём уровне (угроза остаётся для изолированных процессов с JIT, для которых может быть выработан метод выборочной защиты). Предлагается по умолчанию использовать только методы защит от Spectre, не приводящие к большому падению производительности, а дополнительные методы применять выборочно или в виде опции.
Арьян ван де Вен (Arjan van de Ven) из компании Intel рассказал, что Intel и AMD не рекомендуют применять STIBP по умолчанию, так как данную функциональность можно сравнить с очень тяжёлым молотком, который не используется в повседневной работе, но необходим при определённых обстоятельствах. Предложенный в обновлении микрокода механизм STIBP позволяет через установку специального бита в регистре CR0 управлять отключением кэшей процессора, что следует делать не повсеместно, а только в особо критичных ситуациях. Тим Чен (Tim Chen) из Intel предложил для выборочного блокирования атак на sandbox включать STIBP только при явном запросе через prctl или для процессов, запрещающих создание core-дампов памяти (PR_SET_DUMPABLE), таких как sshd.
Что касается падения производительности при применении STIBP-патчей в ядре 4.20, то результат очень сильно зависит от вида нагрузки. Например, тестирование в пакете SpecInt Rate 2006 показывает уменьшение пропускной способности на 21%, а тесты Phoronix демонстрируют снижение производительности от 3 до 20%. Инго Молнар (Ingo Molnar), известный разработчик Linux ядра и автор планировщика задач CFS, комментируя ситуацию, предложил сделать обязательным отражение в списках изменений сведений о тестировании производительности при добавлении любых механизмов обхода проблем.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.