Является ли Hyper-Threading фундаментальным риском безопасности?

Является ли Hyper-Threading фундаментальным риском безопасности?

С тех пор, как Intel представила Hyper-Threading (широко известный как Symmetric Multi-Threading), дебаты о том, отключить ли эту функцию, почти полностью повлияли на ее влияние на производительность. Назад, когда функция дебютировала, было необычно, что программы неправильно истолковывали то, что означало для системы наличие виртуального ядра процессора, а не второго физического чипа (тогда он был одним ядром для сокета, без исключений и программы не различали физическое и логическое ядро ​​ЦП). По мере обновления программного обеспечения и операционных систем ХТ устроился, и сегодня реже приходится закрывать его, чтобы сохранить производительность. Но вслед за Spectre, Meltdown и Foreshadow возникли серьезные опасения по поводу последствий Hyper-Threading для безопасности.

Тео де Раадт, основатель OpenBSD, утверждает, что HT больше не может быть доверенным и должен быть отключен по умолчанию. wfoojjaec обратился к Раадту, чтобы обсудить проблему и почему он и другие разработчики в сообществе разработчиков с открытым исходным кодом обеспокоены рисками безопасности Hyper-Threading.

По словам де Раадта, каждая операционная система либо добавляет возможность отключить Symmetric Multi-Threading (Hyper-Threading от Intel - это конкретная реализация SMT), либо модифицировать их планировщики, «чтобы избежать котентификации на SMP-процессоре разных доменов безопасности». Symmetric Multi -Processing, или SMP, относится к современной практике наличия нескольких ядер процессора на одном кристалле, все с доступом к объединенному пулу памяти и устройств. Напротив, Hyper-Threading от Intel разделяет определенные ресурсы между физическим ядром и его логическим аналогом, в том числе буферами перевода (TLB), кэшем данных L1 и кешем целевой ветви (BTC), не предоставляя возможности дифференцировать между доменами безопасности и изолировать данные между двумя ядрами ЦП.

Как мы уже говорили ранее, Spectre, Meltdown и Foreshadow - это все недостатки, которые используют определенное поведение, которое используют процессоры Intel, когда они спекулятивно выполняют инструкции. Хотя спекулятивное выполнение является давним и проверенным методом для повышения общей производительности ЦП, Raadt идентифицирует три отдельные проблемы, которые были объединены для создания этих проблем. Он написал:

1) Процессоры Intel извлекают и декодируют и выполняют инструкции, включая загрузку данных, без каких-либо проверок безопасности, а затем раскручивают их, если они ошибаются после факта. Процессоры от других производителей испытывали небольшие проблемы с спектром, но Intel выводит его на совершенно новый уровень.

2) Поскольку они не проводят проверки безопасности перед собой и связывают свои L1D с их TLB, Intel действительно поражает «откуда взялась линия кэша, мы не заботимся» об ошибке в их кеше L1D, что приводит к данные в строке кэша из другого домена привилегий становятся видимыми для спекулятивных инструкций, что создает еще одну проблему с спектром.

3) То же самое предположение без проверки безопасности относится к реестрам. Intel даже не проверила, включен ли FPU, прежде чем обращаться к регистрам FPU. Поэтому перед выполнением инструкций они действительно не выполняют никаких проверок безопасности *. ВСЕ решения принимаются в конце. Это означает, что ВСЕ последовательности команд имеют побочные эффекты, и мы просто ждем, когда люди найдут худшие последствия и опубликуют их.

де Раадт также критиковал политику раскрытия информации Intel, отметив, что OpenBSD пришлось изучать обходные пути в других проектах, таких как Xen и FreeBSD, для создания собственных решений. Он полагает, что, вероятно, мы продолжим видеть больше недостатков безопасности, связанных с Spectre, и что есть возможность для черных шляп комбинировать различные методы использования этих недостатков, чтобы разбить модели безопасности. Предвидение, можно утверждать, является одним из таких нападений. Хотя он более сложный, чем первые варианты Spectre, его также можно использовать для взлома программного обеспечения Intel Software Guard eXtensions, или SGX - и SGX должны были быть защищены от такого типа атаки. Есть даже вероятность того, что эти атаки могут быть использованы для утечки адресной информации, что означает, что Spectre и Rowhammer можно комбинировать. Это подарок, который продолжает давать.

Изображение от XKCD. Вкусный текст: «В дополнение к rowhammer, оказывается, многие серверы также уязвимы для обычных молотов».
Изображение от XKCD. Вкусный текст: «В дополнение к rowhammer, оказывается, многие серверы также уязвимы для обычных молотов».

До сих пор OpenBSD - первая операционная система, которая призывает к отключению HT вообще - официальное руководство Intel заключается в том, что HT не нужно отключать, если все другие исправления и исправления были развернуты. Но невероятно сложно практически гарантировать, что все необходимые контексты безопасности будут поддерживаться и соблюдаться при отсутствии аппаратных ограничений, которые предотвращают запуск двух разных процессов, работающих в разных доменах безопасности. Даже если вы можете убедиться, что процессы, запущенные на ЦП, совместимы с точки зрения безопасности, как только домен безопасности одного из этих процессов сдвинется, вам придется выселить его из ядра ЦП, на котором он работает, и поставить его где-то еще - промывание кешей и TLB в процессе. Современные планировщики ОС регулярно перемещают рабочие нагрузки между ядрами ЦП, чтобы оптимизировать выполнение, но заставить ЦП делать это во имя безопасности может привести к сильному удару по производительности. Мы уже видели некоторые доказательства этого в Spectre, хотя тесты, которые его подвергали, как правило, были наихудшими сценариями.

Является ли AMD затронута?

До сих пор почти вся дискуссия вокруг Spectre, Meltdown и Foreshadow была сосредоточена на Intel. Для этого есть практическая причина. Считается, что эти атаки угрожают безопасности поставщиков облачных и корпоративных серверов, а Intel доминирует на этих рынках. До запуска Epyc Intel занимала 99% рынка серверов x86, а подавляющее большинство серверов, продаваемых в год, - это компьютеры x86. AMD начала отбиваться от доминирующего положения на рынке Intel, но генеральный директор Лиза Су заявила, что к концу 2018 года ее компания ориентируется на средние цифры на один разряд рынка. Даже если AMD и Intel были в равной степени подвержены техническому воздействию, Intel будет практически все эффективное воздействие.

Но, хотя это может измениться в будущем, имеющиеся данные свидетельствуют о том, что процессоры AMD не так уязвимы, как их коллеги из Intel. AMD выпустила инструкцию, указывающую, что Foreshadow не влияет на нее, которую Intel называет L1TF (L1 Terminal Fault). Он рекомендует, чтобы в настоящее время его клиенты не реализуют защиту Foreshadow и заявляют, что его процессоры защищены защитой архитектуры аппаратного пейджинга, встроенной в процессоры Epyc.

Является ли Hyper-Threading фундаментальным риском безопасности?

Еще одно доказательство в пользу AMD заключается в том, что реализация SMT компании, как известно, отличается от Intel. Ранее мы обсуждали эти различия только с точки зрения их влияния на производительность, но приведенный выше слайд отмечает, что LL / L1 / L2 ITLB и L1 / L2 DTLB являются общими, но «SMT помечены», что означает, что они могут быть доступны только тем, кто их владеет. Дьявол абсолютно подробно разбирается в таких проблемах, и мы не хотим подразумевать, что этот единственный слайд устанавливает степень реализации или ненадежности реализации SMT в AMD, но AMD, похоже, реализовала защиту в определенных областях, которые Intel не хватает. Возможно, например, что будущие атаки могут быть основаны на выселении кеша, а не на спекулятивных нагрузках, и этот тип тегов может не защищать от таких альтернатив. В нашей беседе де Раадт отмечает, что OpenBSD также внесла изменения, чтобы отключить SMT и CMT (это технология совместного использования Bulldozer) на процессорах AMD из-за обилия осторожности, несмотря на то, что они не знают, будут ли процессоры в конечном итоге оказаться уязвимыми для этого тип атаки.

На данный момент OpenBSD 6.4 (ожидается в октябре / ноябре) является первой ОС, которая позволяет избежать использования Hyper-Threading и отключать ее по умолчанию, но другие операционные системы, такие как Red Hat, объявили о том, что они отправят ядра с обновленными которые позволяют пользователям выбирать, отключать функцию или нет. Независимо от того, будут ли другие продавцы следовать примеру Тео де Раадта, может зависеть от того, какая информация о раскрытии уязвимости будет следующей, и насколько серьезен следующий раунд эксплойтов. Intel объявила, что ее предстоящая платформа Cascade Lake будет содержать аппаратные исправления для некоторых вариантов Spectre, в то время как другие будут все еще смягчены программными решениями или их комбинацией. Это одна из причин, по которой все в сфере безопасности, похоже, согласны: будут новые раскрытия и проблемы безопасности, связанные с Spectre, которые еще не произошли.

Читать далее

Новая информация об утечке безопасности, которая заставила OpenBSD отключить Hyper-Threading

Новый отчет о безопасности указывает на то, что проблемы с Hyper-Threading могут в некоторых случаях затруднять криптографическую информацию, но доказательства указывают на то, что это ошибка класса Spectre или Meltdown.

Тестированные тесты предполагают, что Intel откажется от Hyper-Threading от Core i7

Сообщается, что Intel планирует сбросить Hyper-Threading в семейство Core i7, зарезервировав его для нового набора чипов Core i9.