Intel пытается закрыть серьезную уязвимость в дизайне процессоров (Обновление 23: Intel представила серверные тесты)

Опубликовано:

intelВо время новогодних праздников в сообществе Linux было весьма горячо. Поначалу ситуация была не совсем понятна, но теперь она прояснилась. Несколько месяцев назад шли обсуждения ошибки в Management Unit процессоров, теперь, похоже, обнаружена еще одна ошибка, связанная с обработкой виртуальной памяти.

Ошибка может привести к несанкционированному доступу к памяти ядра операционной системы. Первым намеком можно назвать перестройку ядра NT в ноябре. Но сегодня, похоже, появилось полное описание проблемы.

Уязвимость проявляется на всех архитектурах CPU, поддерживающих виртуальную память. Но, по всей видимости, в списке уязвимых процессоров значится только CPU Intel, поскольку AMD подтвердила, что ее процессоры ее не содержат.

AMD processors are not subject to the types of attacks that the kernel page table isolation feature protects against. The AMD microarchitecture does not allow memory references, including speculative references, that access higher privileged data when running in a lesser privileged mode when that access would result in a page fault.

Disable page table isolation by default on AMD processors by not setting the X86_BUG_CPU_INSECURE feature, which controls whether X86_FEATURE_PTI is set."

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

Одно уже можно сказать точно: Intel не может исправить ошибку путем выпуска обновления BIOS/Microcode. Уязвимую реализацию можно исправить только путем переработки архитектуры. С прежними версиями CPU решением может стать обновление подсистемы виртуальной памяти операционной системы.

Приложение может выйти за свою виртуальную память

Уязвимость была обнаружена исследователями Грацского технического университета, которые изучали атаку, направленную на переназначение памяти ядра из таблицы Process Page Table. Система управления памятью процессора разработана так, чтобы адресное пространство памяти ядра не пересекалось с пользовательским адресным пространством без соответствующих привилегий. Но, к сожалению, в данном случае защита не срабатывает, и проверки доступа не происходит.

Некоторые системные разработчики уже представили патч под названием KASLR. Этот патч скрывает адресное пространство ядра от аппаратной системы управления памятью процессора, в результате чего оно становится невидимым для других процессов. Технология Address Space Layout Randomization (ASLR) предоставляет процессу случайное адресное пространство.

KASLR реализует ASLR напрямую в ядре. С каждой перезагрузкой адресное пространство ядра создается заново. И атакующий больше не может получить доступ к адресному пространству ядра из работающего процесса. И другие непрямые способы обращения к адресному пространству будут невозможны.

Программное решение приводит к падению производительности

Для Linux выпущено программное решение, известное как Kernel Page Table Isolation или PTI/KPTI, которое разделяет области памяти ядра и пользовательскую. Обычно такое разделение не производится, чтобы подсистема памяти процессора быстро и легко переключалась между пользовательской областью и памятью ядра. И кэши процессора при этом не надо очищать.

Но поскольку патч KPTI изменяет раскладку виртуальной памяти и создает две отдельные области, буфер Translation Lookaside Buffer (TLB), который привязывает адреса виртуальной памяти к физическим и содержит соответствующую таблицу в кэше, больше не может работать с аппаратной подсистемой памяти процессора. TLB ускоряет доступ к памяти, но он уже не будет работать, когда пространства памяти пользователя и ядра необходимо обрабатывать отдельно. Каждый раз, когда ядро или пользовательский процесс обращаются к памяти, кэши придется очищать и перезагружать таблицу адресов виртуальной памяти, что снижает производительность.

В качестве примера приводится отключение TLB у процессора AMD:

Конечно, это процессор AMD, но влияние на CPU Intel сравнимое. Впрочем, уже появились тесты с процессором Intel, которые сравнивают ядро с патчем и без патча.

Тест Phoronix показывает потерю производительности до 30% в синтетических тестах при выполнении запросов syscall, что можно назвать сценарием худшего случая. Приложения, которые реже обращаются к памяти, те же программы перекодирования видео через FFmpeg или компиляторы, показывают меньшее падение производительности. Но в сфере баз данных и в приложениях, которые зависят от высокой производительности ввода/вывода памяти, падение может быть более ощутимым.

До сих пор Linux остается единственной операционной системой, где есть обновление ядра или доступен патч. Пользователи Windows и macOS тоже должны получить обновление. Но на данный момент неизвестно, когда это произойдет и какое влияние на производительность мы получим. Первые тесты игровой производительности под Linux не показывают существенного падения производительности.

В ближайшие часы должна появиться дополнительная информация. Полная информация об уязвимости будет опубликована 4 января. Опять же, мы ждем подробностей от Intel, также Microsoft и Apple не мешает высказаться. Облачные поставщики, такие как Amazon с EC2, Microsoft с Azure и Google с Compute Engine, могут столкнуться с серьезными проблемами, поскольку на одном сервере работает несколько виртуальных сред, которые больше не защищены от доступа друг от друга.

Ядро Linux 4.14.11 с реализацией KPTI уже можно скачать. Впрочем, KPTI в данном случае активируется для всех процессоров, в том числе и от AMD. Но ошибка у процессоров AMD не проявляется, поэтому данное ограничение для них избыточное. Что, кстати, будет исправлено в еще одном патче (Linux 4.14.12).

Некоторые англоязычные пользователи назвали 2018 год "mother of all hypervisor privilege escalation bugs".

Обновление: тесты

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

Тестовая конфигурация
Процессор Intel Core i7-3960X 3,3 ГГц, разгон до 3,9 ГГц
Система охлаждения Corsair H110i GT СВО с замкнутным контуром
Материнская плата ASUS P9X97 Deluxe
Оперативная память G.Skill
SSD OCZ Arc 100 240 GB
Блок питания Seasonic Platinum Series 1.000 Вт
Операционная система Windows 10 64 Bit
Корпус Fractal Design Define R5

Мы установили Windows 10 с обновлением Creators Update (Build 1709). Мы установили последнюю версию Insider Preview (Build 17063), которая содержит патч KPTI. Кроме нескольких игр мы провели тесты ввода/вывода и вычислений, которые позволяют оценить падение производительности из-за патча KPTI.

Windows Build 1709 vs. Build 17063

Fire Strike Extreme

Баллы Futuremark
Больше - лучше

Windows Build 1709 vs. Build 17063

The Witcher 3 3.840 x 2.160 Pixel

Кадры в секунду
Больше - лучше

Windows Build 1709 vs. Build 17063

DOOM (Vulkan) 3.840 x 2.160 Pixel

Кадры в секунду
Больше - лучше

Патч KPTI не влияет на производительность в играх. Впрочем, на высоких разрешениях производительность упирается в видеокарту, поэтому влияние CPU ограничено. Но даже в 1080p мы не смогли обнаружить существенных отклонений.

Windows Build 1709 vs. Build 17063

Luxmark 3.0 Sala

Баллы
Больше - лучше

Windows Build 1709 vs. Build 17063

GPUPI 1000M

Секунды
Меньше - лучше

Windows Build 1709 vs. Build 17063

FFmpeg

Секунды
Меньше - лучше

Windows Build 1709 vs. Build 17063

Adobe After Effects 4K-Intro Rendering

Zeit Секунды
Меньше - лучше

Windows Build 1709 vs. Build 17063

Blender-Benchmark

Zeit Секунды
Меньше - лучше

Windows Build 1709 vs. Build 17063

Unreal Engine Infiltrator Rendering

Zeit Секунды
Меньше - лучше

Windows Build 1709 vs. Build 17063

V-Ray-Benchmark

Zeit Секунды
Меньше - лучше

В приложениях с небольшим числом вызовов syscalls патч KPTI не приводит к существенному влиянию на производительность. В играх разница не превышает предела погрешности измерений, как и в случае приложений, на производительность которых существенно сказывается видеокарта.

Наши коллеги из Computerbase провели некоторые тесты с накопителем Samsung 960 Pro и обнаружили измеряемые отличия по производительности. Они связаны с частым использованием syscalls, когда падение производительности из-за патча KPTI самое большое. В двух из восьми значений мы получили разницу почти 7%. Вверху показаны результаты прогона Creators Update (Build 1709), внизу - Insider Preview (Build 17063).

Данную тему следует исследовать более детально. Будет интересно взглянуть на результаты тестов сетевых служб, сервисов с интенсивной нагрузкой ввода/вывода и, конечно, виртуализации. Впрочем, данные сценарии не затрагивают большинство пользователей, поэтому в домашних сценариях производительность вряд ли существенно снизится после выхода патча. Чего нельзя сказать о серверной среде, где у Intel могут возникнуть серьезные проблемы.

Обновление 2: первое доказательство успешного взлома

Конечно, вновь и вновь поднимается вопрос: можно ли создать вредоносный, использующий данную уязвимость. Тем более, что почти все облачные и серверные провайдеры предлагают аренду систем, которые совместно используют множество клиентов. Конечно, штатно такие пользователи не имеют корневого доступа и не могут получить доступ к управлению системой или ядру. Пространство памяти ядра и пользователи должны быть отделены друг от друга, чтобы предотвратить случайный доступ.

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

Ниже приведено доказательство успешного взлома, когда приложению удалось получить доступ к постороннему адресному пространству.

Обновление 3: разъяснения Intel

Конечно, Intel была просто обязана опубликовать свои разъяснения по поводу данного вопроса.

"Intel and other technology companies have been made aware of new security research describing software analysis methods that, when used for malicious purposes, have the potential to improperly gather sensitive data from computing devices that are operating as designed. Intel believes these exploits do not have the potential to corrupt, modify or delete data.

Recent reports that these exploits are caused by a "bug" or a "flaw" and are unique to Intel products are incorrect. Based on the analysis to date, many types of computing devices -- with many different vendors' processors and operating systems -- are susceptible to these exploits.

Intel is committed to product and customer security and is working closely with many other technology companies, including AMD, ARM Holdings and several operating system vendors, to develop an industry-wide approach to resolve this issue promptly and constructively. Intel has begun providing software and firmware updates to mitigate these exploits. Contrary to some reports, any performance impacts are workload-dependent, and, for the average computer user, should not be significant and will be mitigated over time.

Intel is committed to the industry best practice of responsible disclosure of potential security issues, which is why Intel and other vendors had planned to disclose this issue next week when more software and firmware updates will be available. However, Intel is making this statement today because of the current inaccurate media reports

Check with your operating system vendor or system manufacturer and apply any available updates as soon as they are available. Following good security practices that protect against malware in general will also help protect against possible exploitation until updates can be applied.

Intel believes its products are the most secure in the world and that, with the support of its partners, the current solutions to this issue provide the best possible security for its customers."

В своих разъяснения по данному вопросу Intel утверждает, что проблема касается не только процессоров Intel. Но Intel не называет конкретных имен и говорит лишь о "разных производителях процессоров и операционных систем". Intel тесно работает с теми же AMD и ARM, чтобы устранить потенциальные риски безопасности. Конечно, данный намек может означать и то, что процессоры данных компаний тоже могут подвержены уязвимости.

Обновление 4: анализ

После вчерашней публикации разъяснений Intel провела встречу инвесторов. На ней были опубликованы дополнительные сведения. AMD, Google и ARM тоже прокомментировали ситуацию, поэтому стоит подвести итог. Google также привела детальное описание уязвимости, которая теперь получила название Spectre и Meltdown. В нем присутствуют все подробности, необходимые для анализа, проблема хорошо описана.

Между тем уязвимости обзавелись собственными логотипами:

Как стало известно еще вчера, уязвимость связана с получением доступа к памяти, которая должна быть закрыта - "Reading privileged memory with a side-channel". Существуют три варианта уязвимости:

Первые два варианта называются Spectre, третий - Meltdown.

Как считает Intel, уязвимости подвержены не только процессоры Intel, но и модели других производителей. Компания совместно работает с AMD и ARM по поиску решений. Данное утверждение внесло путаницу, поскольку до сих пор с проблемой ассоциировались только процессоры Intel. Ниже мы свели в таблицу утверждения Intel, AMD и ARM, дополнив их аналитикой Google.

Теоретически уязвимости Meltdown подвержены все процессоры Intel с 1995 года. Исключением являются процессоры Itanium и Atom до 2013 года, уязвимость Spectre присутствует во всех актуальных процессорах Intel. Сама Intel говорит о всех современных процессорах без уточнения архитектур. Закрыть уязвимость Meltdown можно программным патчем. Если верить Intel, уязвимость Spectre закрыть сложнее, требуются обновления VMM (Virtual Machine Monitor) и прошивки. Но полностью закрыть уязвимость Spectre можно только с новыми архитектурами CPU, на что Intel потребуется некоторое время.

Процессоры, уязвимые к атаке Side Channel
  Spectre вариант 1 Spectre вариант 2 Meltdown
Intel
  Да Да Все CPU с 1995 года (Pentium Pro)
AMD
  Да Риска почти нет, до сих пор подтверждений наличия уязвимости у AMD CPU нет Нет
ARM
Cortex-R7 Да Да Нет
Cortex-R8 Да Да Нет
Cortex-A8 Да Да Нет
Cortex-A9 Да Да Нет
Cortex-A15 Да Да Нет
Cortex-A17 Да Да Нет
Cortex-A57 Да Да Нет
Cortex-A72 Да Да Нет
Cortex-A73 Да Да Нет
Cortex-A75 Да Да Да

От AMD поступила новая информация. Процессоры AMD можно считать неуязвимыми к атаке Meltdown. Что касается Spectre, атака теоретически возможна в двух вариантах на всех процессорах до Ryzen. AMD не указывает подробностей уязвимых архитектур CPU. Но вариант 1 можно закрыть программным патчем, вариант 2 риска не представляет из-за другой архитектуры CPU. Кроме того, наличие уязвимости в варианте 2 до сих пор на процессорах AMD не демонстрировалось.

ARM опубликовала список всех уязвимых архитектур и документацию. Как указывает ARM, ошибке Spectre уязвимы все процессоры ARM от Cortex-R7 до Cortex-A75. Что касается Meltdown, уязвимой остается только архитектура Cortex A75. Все будущие архитектуры Cortex не будут уязвимы.

Обновление 5: дополнительный анализ и ключевые вопросы

Какие системы подвержены уязвимости? Какие могут быть предложены решения? Позвольте более внимательно рассмотреть эти вопросы. Начнем с отличий между Spectre и Meltdown.

Уязвимость Meltdown взламывает механизм предотвращения доступа программ к посторонним областям памяти. Затем программы могут получить доступ к системной памяти, которая может содержать чувствительную информацию. Spectre позволяет программам получать доступ к памяти других приложений. В обоих случаях используется метод Side Channels. Технические подробности приведены в соответствующей документации Meltdown и Spectre.

Какие системы уязвимы к Meltdown?

Все настольные компьютеры, ноутбуки и облачные серверы с процессорами Intel. Если быть более точным, с процессорами, опирающимися на внеочередное выполнение команд, то есть начиная с Pentium Pro 1995 года, исключая процессоры Itanium и Atom до 2013 года. Уязвимость Melton была воспроизведена на всех современных архитектурах CPU Intel с 2011 года. Но другие модели тоже уязвимы. На данный момент уязвимость Meltdown была проверена только на процессорах Intel. Но пока неизвестно, можно ли назвать процессоры AMD и ARM полностью защищенными.

К Meltdown уязвимы все облачные провайдеры на процессорах Intel. Здесь им придется обновлять облачную инфраструктуру. Уязвимы облачные провайдеры с разными контейнерами, использующими общие ядра CPU. В том числе Docker, LXC или OpenVZ.

Meltdown в работе:

Можно ли защитить системы от Meltdown?

Да, можно. С помощью программного патча или описанной выше изоляции страниц памяти ядра. Ядро Linux 4.14.11 с реализацией KPTI уже можно скачать. Но в данном случае KPTI активна для всех процессоров, в том числе AMD. Патч для Windows входит в Windows 10 Insider Preview 17063, вскоре он будет опубликован отдельно. Последняя macOS 10.13.2 уже получила патч KPTI. В версии 10.13.3, которая пока находится в состоянии бета-версии, будут внесены дальнейшие усиления безопасности, но подробностей пока нет.

Какие системы подвержены Spectre?

Теоретически все современные процессоры подвержены уязвимости Spectre - настольные компьютеры, ноутбуки, облачные серверы и даже смартфоны и планшеты. Атака Spectre уже была продемонстрирована на процессорах Intel, AMD и ARM, хотя два варианта Spectre имеют свои отличия (см. таблицу).

Можно ли защитить системы от Spectre?

Атаку Spectre реализовывать сложнее, но и защитить системы тоже не так просто. Патчи могут усложнить проведение атаки, но не могут полностью ее предотвратить. Защищенными будут только грядущие архитектуры CPU. ARM утверждает, что все архитектуры в будущем защищены от Spectre. На встрече инвесторов Intel сообщила то же самое для всех процессоров, которые выйдут на рынок с 2018 года.

Обновление 6: Линус Торвальдс тоже высказался

Линус Торвальдс (Linus Torvalds) тоже высказался по данному вопросу, подвергнув Intel жесткой критике.

Why is this all done without any configuration options?

A *competent* CPU engineer would fix this by making sure speculation doesn't happen across protection domains. Maybe even a L1 I$ that is keyed by CPL.

I think somebody inside of Intel needs to really take a long hard look at their CPU's, and actually admit that they have issues instead of writing PR blurbs that say that everything works as designed.

.. and that really means that all these mitigation patches should be written with "not all CPU's are crap" in mind.

Or is Intel basically saying "we are committed to selling you shit forever and ever, and never fixing anything"?

Because if that's the case, maybe we should start looking towards the ARM64 people more.

Please talk to management. Because I really see exactly two possibibilities:

- Intel never intends to fix anything

OR

- these workarounds should have a way to disable them.

Which of the two is it?

Linus

Обновление 7: список всех уязвимых процессоров Intel

Intel ранее говорила о том, что атакам Meltdown и Spectre подвержены процессоры с 1995 года. Теперь опубликован список уязвимых процессоров, хотя он не спускается к 1995 году.

Обновление 8: Apple, Microsoft, Amazon, Google и Apple оценили падение производительности

Apple, Microsoft, Amazon и Google прокомментировали ожидаемое падение производительности после установки патчей. Облачные провайдеры, такие как Microsoft, Amazon и Google содержат в своей инфраструктуре тысячи серверов, при этом предлагают вычислительную производительность своим клиентам. Возникает вопрос: готовы ли клиенты смириться с падением производительности, которое может быть существенным, в зависимости от приложений. В частности, серьезное падение наблюдается у сетевых сервисов и приложений с интенсивной нагрузкой ввода/вывода.

Amazon уже обновила клиентов EC2. Клиенты AWS будут обновлены к концу следующей недели. Microsoft обеспечила полную инфраструктуру Azure соответствующими патчами. Google тоже приняла меры против атак Meltdown и установила патчи KPTI. Впрочем, кроме программных патчей защита от уязвимости Spectre предусматривает обновление прошивки. Микрокод Intel IBRS получит соответствующие обновления.

Под Windows, Linux и macOS патчи уже вышли, часть патчей будет выпущена в будущем, чтобы усилить защиту от двух вариантов Spectre. Между тем Intel уже распространяет обновления прошивки. Если верить Intel, обновления для наиболее продаваемых процессоров за последние пять лет уже вышли. К концу следующей недели будут охвачены 90% всех процессоров, выпущенных за последние пять лет.

"Intel has already issued updates for the majority of processor products introduced within the past five years. By the end of next week, Intel expects to have issued updates for more than 90 percent of processor products introduced within the past five years"

Обновление 9: проверка защиты от Spectre и Meltdown

Многие пользователи интересуются, как они могут защитить себя от Spectre и Meltdown, достаточны ли уже принятые меры. Сначала хотелось бы определиться с некоторыми тезисами.

Поскольку большая часть пользователей работает под Windows, мы приведем инструкцию, как проверить наличие патчей в вашей системе.

Microsoft приводит документ поддержки, в котором описано использование PowerShell для выполнения сканирования системы. Сканирование возможно и под Windows Server. Скрипт может работать под Windows 10 (RTM, 1511,1607,1703,1709), Windows 8.1 и Windows 7 SP1; сначала необходимо установить PowerShell, проверить наличие последних обновлений антивируса, поскольку старый антивирус может стать причиной проблем. Лучше всего вообще отключить антивирус на время сканирования.

С помощью PS > Install-Module SpeculationControl скрипт Microsoft загружается. Затем скрипт можно стартовать через PS > Get-SpeculationControlSettings. Если все уязвимости закрыты, журнал работы скрипта будет иметь следующий вид.

Speculation control settings for CVE-2017-5715 [branch target injection]
Hardware support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: True
Speculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: True
Windows OS support for kernel VA shadow is enabled: True
Windows OS support for PCID optimization is enabled: True

Конечно, данный скрипт нельзя назвать панацеей, поскольку он проверяет только вторую уязвимость Spectre и уязвимость Meltdown. А именно CVE-2017-5715 (Branch Target Injection) и CVE-2017-5754 (Rogue Data Cache Load). Опять же, уязвимость Spectre в первом варианте CVE-2017-5753 (Bounds Check Bypass) может быть исправлена только путем патча соответствующего приложения.

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

Обновление 10: когда Intel сможет закрыть уязвимости аппаратно?

Уязвимость Meltdown и две Spectre требуют фундаментального пересмотра архитектур CPU, чтобы процессоры были полностью от них защищены. Уязвимость Meltdown можно закрыть на уровне ОС, но процессоры теряют часть производительности, в зависимости от приложения. В случае Spectre уязвимость можно закрыть только средствами ОС и обновлений прошивки. И то лишь частично. Здесь без полного пересмотра архитектуры все же не обойтись.

Возникает вопрос: что Intel, AMD и другим компаниям необходимо сделать, чтобы процессоры были защищены от уязвимостей? Точные процедуры пока неизвестны, и вряд ли они будут когда-либо оглашены. На встрече инвесторов Intel заверила, что все процессоры, разрабатываемые с 2018 года, будут защищены. Поскольку процессоры до массового производства проходят несколько этапов разработки месяцы, если не годы, то в 2018 выйдут процессоры с архитектурами без глубоких изменений. А именно Core H, 8 поколение Intel Core с графикой Radeon RX Vega M. Также планируется выход и других моделей Coffee Lake.

Бывший сотрудник Intel Джо Фитц (Joe Fitz) сделал интересное заявление по поводу ранних аппаратных изменений в Twitter. Он опубликовал несколько твитов, в которых описал изменения на разных этапах разработки процессоров и эффект от них.

Фитц подтвердил, что первые аппаратные изменения в процессорах теоретически могут произойти уже летом 2018, но они представляют собой лишь аппаратные "заплатки". И они наверняка скажутся на производительности. Более глубокие изменения вряд ли произойдут раньше 2019/2020, когда уязвимость уже будет закрыта на уровне архитектуры. Но данный процесс может затянуться до 2021 года. Здесь все зависит от человеческих ресурсов и денег, которые Intel выделит на решение проблемы. Джо Фитц покинул Intel пять лет назад, но он считает, что с тех пор циклы разработки процессоров вряд ли ускорились. Поскольку другие производители и процессоры тоже затронуты, то же самое касается AMD, ARM, Qualcomm, Apple и других компаний.

Обновление 11: дополнительные тесты

Появляются и новые результаты тестов, которые ближе к практике и соответствуют приложениям, под которые выпущены патчи. Часть тестов выполнена под Hypervisor с клиентами Amazon AWS EC2, которые получили патчи. Выполнялся тест Kafka Brokers [d2.xlarge]. Падение производительности составило от 5 до 20%, что можно назвать существенным.

На Reddit пользователь привел результаты Realbench 2.56 с установленными патчами ОС и обновлениями прошивки. Использовался процессор Intel Core i7-8700 на материнской плате ASUS Prime Z-370-A. Патч ОС снижал производительность на 0-5,5% (что соответствует ранее опубликованным тестам), но обновление BIOS/прошивки с новым микрокодом привело к падению производительности до 21%.

Обновление 12: NVIDIA тоже уязвима

Поскольку обе версии уязвимости Spectre могут потенциально проявлять себя на любых программах, NVIDIA проверила, можно ли атаковать графические драйверы компании. Оказалось, что такая возможность есть. В своем Security Bulletin NVIDIA привела наиболее важную информацию.

Для двух вариантов Spectre NVIDIA работает над обновлениями прошивки и патчами. На данный момент NVIDIA не считает, что GPU подвержены уязвимости Meltdown. Драйверы для GeForce, Quadro и Tesla будут представлены на следующей неделе. Обновления получат драйверы R390 и R384. То же самое касается и Tegra SoC, которые уязвимость Meltdown может затронуть, хотя NVIDIA после тестов это не подтверждает. В любом случае, NVIDIA скоро представит первые обновления. Например, обновления для устройств Shield будут выпущены в январе, которые затруднят создание эксплойтов для уязвимостей Spectre. Даже старый Shield Tablet получит обновление, несмотря на возраст 3,5 года. Возможно, перед нами одно из самых старых устройств Android, которое не теряет актуальности. Большинство производителей смартфонов вряд ли будут обновлять свои устройства.

Обновление 13: Qualcomm прокомментировала ситуацию

Конечно, внеочередное выполнение используется в дизайне многих процессоров Qualcomm. Qualcomm подтвердила CNBC, что у грядущего Snapdragon 845 уязвимость имеется. В то же время разработчик чипов заверил, что компания интенсивно работает над созданием решения для закрытия уязвимости. Скорее всего, будет выпущен патч. После выпуска патча потребителям рекомендуется обновить свои устройства. Здесь Qualcomm следует тем же путем, что и многие другие производители.

Обновление 14: NVIDIA и Apple представили новые обновления

Сегодня еще две компании выпустили обновления, защищающие от уязвимости Spectre. С драйверами GeForce 390.65 поколения R390 NVIDIA закрыла уязвимость Spectre, как и обещала.

Apple также выпустила iOS 11.2.2 для iPhone и iPads. Она призвана предотвратить атаки обоими вариантами Spectre. Небольшое обновление macOS High Sierra 12.13.2 тоже нацелено на Spectre.

Обновление 15: Microsoft приостановила загрузку патчей на системах AMD

У пользователей Windows 10 на процессорах AMD появились проблемы, поэтому Microsoft приостановила загрузку соответствующего патча. Сейчас компания работает с AMD, чтобы как можно быстрее решить проблему.

"Microsoft has reports of some customers with AMD devices getting into an unbootable state after installing this KB. To prevent this issue, Microsoft will temporarily pause Windows OS updates to devices with impacted AMD processors at this time.

Microsoft is working with AMD to resolve this issue and resume Windows OS security updates to the affected AMD devices via Windows Update and WSUS as soon as possible. If you have experienced an unbootable state or for more information see KB4073707. For AMD specific information please contact AMD."

Microsoft обвиняет в ошибке AMD, которая не придерживалась документации.

"Microsoft has reports of customers with some AMD devices getting into an unbootable state after installing recent Windows operating system security updates,” says a Microsoft spokesperson. “After investigating, Microsoft has determined that some AMD chipsets do not conform to the documentation previously provided to Microsoft to develop the Windows operating system mitigations to protect against the chipset vulnerabilities known as Spectre and Meltdown."

AMD опубликовала следующее заявление:

"AMD is aware of an issue with some older generation processors following installation of a Microsoft security update that was published over the weekend. AMD and Microsoft have been working on an update to resolve the issue and expect it to begin rolling out again for these impacted shortly."

Обновление 16: Intel представила собственные данные производительности

Intel представила собственные данные производительности. До сих пор компания говорила о незначительном влиянии на производительность, которое очень сильно зависит от приложения. Intel утверждала, что в повседневных приложениях падения производительности не будет. В тесте SYSmark 2014 SE 8-е поколение процессоров Core показывает результат на 6% ниже. В отдельных тестах мы получаем падение от 2 до 14%.

Intel на данный момент выполняет дополнительные тесты, результаты которых будут оглашены в свое время. Кроме того, Intel ожидает выпуска патчей и обновлений прошивки со стороны OEM-партнеров. Для нынешних тестов использовались процессоры Intel Core i7-8650U и Core i7-8700K.

В своем блоге Microsoft привела более детальную информацию о мерах, которые следует принять для закрытия обеих уязвимостей Spectre и Meltdown. Конечно, детально обсуждаются патчи Windows 10. Но также указывается, что вариант Spectre 1 (Bounds Check Bypass - 2017-5753) и Meltdown (Rogue Data Cache Load - 2017-5754) могут быть, по большей части, закрыты программными обновлениями. Для варианта Spectre 2 (Branch Target Injection - 2017-5715) требуется обновление микрокода процессора.

Microsoft провела собственные тесты производительности и говорит о "существенном замедлении" старых систем. У новых систем на основе Skylake, Kaby Lake и более свежих процессоров влияние на производительность меньше. Но в случае Haswell и предыдущих поколений ситуация более печальная.

 

 

Обновление 17: MSI выпустила BIOS с новым микрокодом

Между тем MSI представила для всех актуальных материнских плат вплоть до X99 обновление BIOS. Семейство Z87, с другой стороны, обновления не получило. Во всех новых версиях BIOS с конца декабря MSI упоминает "Update CPU Microcode". Обновление микрокода призвано закрыть уязвимость Spectre во втором варианте (Branch Target Injection - 2017-5715). Обновления MSI BIOS можно найти на сайте поддержки производителя.

Обновление 18: патчи с обновлением микрокода для Debian и Ubuntu

Два популярных дистрибутива Linux Debian и Ubuntu тоже получили патч KPTI. Также включено и обновление микрокода для некоторых процессоров Intel.

Пакеты Wheezy, Jessie, Jessie Backports, Stretch и Unstable/Sid от Debian защищены от Meltdown в 64-битной версии. Пакеты Stretch Backports, Testing/Buster и Experimental пока недоступны. Ядро, браузеры и другие программы защищены от Spectre. Некоторые патчи уже внедрены в дистрибутив Debian.

На странице Wiki Ubuntu подвела итог мерам, принятым против Meltdown и Spectre. Уязвимость Meltdown (CVE-2017-5754) закрыта:

Ubuntu version 

Kernel Version 

Variant 

USN 

17.10 

4.13 

generic/lowlatency 

USN-3523-1

16.04 LTS 

4.13 HWE 

generic/lowlatency/gke/gcp/oem/azure/lpae 

USN-3523-2

16.04 LTS 

4.4 

generic/lowlatency/euclid/aws/kvm 

USN-3522-3

14.04 LTS 

4.4 HWE 

generic/lowlatency/aws 

USN-3522-4

14.04 LTS 

3.13 

generic/lowlatency 

USN-3524-1

12.04 ESM 

3.13 HWE 

generic 

USN-3524-2

12.04 ESM 

3.2 

generic 

USN-3525-1

Патчи для Spectre (CVE-2017-5715 и CVE-2017-5753) пока отсутствуют, но скоро будут выпущены.

Обновление 19: обновления BIOS от ASUS, Gigabyte и MSI

Intel уже выслала обновления микрокода производителям материнских плат, чтобы они могли представить соответствующие обновления BIOS. Первыми справились ASUS и MSI. ASUS уже выпустила обновления BIOS для большинства материнских плат Z370. MSI тоже охватила все модели Z370. В целом, рекомендуется не медлить с установкой обновления BIOS.

Модель ASUS Z370
BIOS
Prime Z370-A 0606
Prime Z370-P 0606
ROG Maximus X Apex Позднее
ROG Maximus X Code Позднее
ROG Maximus X Formula Позднее
ROG Maximus X Hero Позднее
ROG Maximus X Hero (Wi-Fi AC) Позднее
ROG Strix Z370-E Gaming 0606
ROG Strix Z370-F Gaming 0606
ROG Strix Z370-G Gaming 0606
ROG Strix Z370-G Gaming (Wi-Fi AC) 0606
ROG Strix Z370-H Gaming Позднее
ROG Strix Z370-I Gaming 0606
TUF Z370-Plus Gaming 0606
TUF Z370-Pro Gaming Позднее
Модели MSI Z370
BIOS
Z370 Godlike Gaming 7A98vA3
Z370 Gaming M5 7B58v12
Z370 Gaming Pro Carbon AC 7B45vA3
Z370 Gaming Pro Carbon 7B45vA3
Z370I Gaming Pro Carbon AC 7B43v12
Z370 Krait Gaming 7B46v12
Z370 Gaming Plus 7B61v12
Z370 Tomahawk 7B47v12
Z370M Gaming Pro AC 7B44v12
Z370 SLI Plus 7B46vA2
Z370-A Pro 7B48v23
Z370 PC Pro 7B49v12

На данный момент еще нет обновлений BIOS от ASRock и Gigabyte, но скоро должны выйти и они. MSI указывает, что позднее представит обновления BIOS и для старых платформ Intel. А именно для плат на чипсетах Intel 100 и 200, на которые устанавливаются процессоры Skylake-S и Kaby Lake-S. Интересно будет посмотреть, выпустит ли MSI обновления для плат LGA1150 (Haswell и Broadwell). Gigabyte объявила, что первыми выйдут обновления для материнских плат на чипсетах Z370, X299 и B250. Позднее будут выпущены обновления и для других моделей.

Gigabyte Z370
Z370 AORUS Ultra Gaming
Z370 AORUS Gaming 7
Z370 AORUS Gaming 5
Z370 AORUS Gaming WIFI
Z370 AORUS Gaming 3
Z370 AORUS Gaming K3
Z370 UD3H
Z370XP SLI
Z370 HD3P
Z370 HD3
Z370P D3
Z370M DS3H
Z370M D3H
Z370N WIFI
Gigabyte X299
X299 DESIGNARE EX
X299 AORUS Ultra Gaming Pro
X299 AORUS Ultra Gaming
X299 AORUS Gaming 9
X299 AORUS Gaming 7 Pro
X299 AORUS Gaming 7
X299 AORUS Gaming 3 Pro
X299 AORUS Gaming 3
X299 AORUS Gaming
X299 UD4 EX
X299 UD4 Pro
X299 UD4
Gigabyte B250
B250-D3A
B250-HD3P
B250-HD3
Gaming B8
B250M-Gaming 5
B250M-Gaming 3
B250M-DS3H
B250M-D3H
B250M-D3V
B250M-D2V
B250M-HD3
B250M-EVO
B250N-Phoenix WIFI

Обновление 20: AMD и Intel вновь высказались

Старший вице-президент AMD Марк Пейпермастер (Mark Papermaster) прокомментировал вопрос безопасности процессоров AMD. Причина проста: в Сети появились сведения о том, что процессоры AMD все же подвержены уязвимостям Spectre и Meltdown. Все же разработчики ОС и приложений выпускают соответствующие патчи, да и появилась информация об обновлениях микрокода AMD.

Начнем с того, что AMD опубликовала детальную информацию.

Spectre Variante 1: Bounds Check Bypass

Spectre Variante 2: Branch Target Injection

Meltdown: Rogue Data Cache Load

Архитектура AMD GPU не подвержена упомянутым уязвимостям, поэтому никаких действий принимать не требуется.

Intel столкнулась с проблемами обновлений микрокода на процессорах Broadwell и Haswell

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

As Intel CEO Brian Krzanich emphasized in his Security-First Pledge, Intel is committed to transparency in reporting progress in handling the Google Project Zero exploits.

We have received reports from a few customers of higher system reboots after applying firmware updates. Specifically, these systems are running Intel Broadwell and Haswell CPUs for both client and data center. We are working quickly with these customers to understand, diagnose and address this reboot issue. If this requires a revised firmware update from Intel, we will distribute that update through the normal channels.  We are also working directly with data center customers to discuss the issue.

End-users should continue to apply updates recommended by their system and operating system providers.

Открытое письмо Брайана Кржанича, CEO Intel

Брайан Кржанич (Brian Krzanich), CEO Intel, опубликовал открытое письмо.

Following announcements of the Google Project Zero security exploits last week, Intel has continued to work closely with our partners with the shared goal of restoring confidence in the security of our customers’ data as quickly as possible. As I noted in my CES comments this week, the degree of collaboration across the industry has been remarkable. I am very proud of how our industry has pulled together and want to thank everyone for their extraordinary collaboration. In particular, we want to thank the Google Project Zero team for practicing responsible disclosure, creating the opportunity for the industry to address these new issues in a coordinated fashion.

As this process unfolds, I want to be clear about Intel’s commitments to our customers.  This is our pledge:

1. Customer-First Urgency: By Jan. 15, we will have issued updates for at least 90 percent of Intel CPUs introduced in the past five years, with updates for the remainder of these CPUs available by the end of January. We will then focus on issuing updates for older products as prioritized by our customers.

2. Transparent and Timely Communications: As we roll out software and firmware patches, we are learning a great deal. We know that impact on performance varies widely, based on the specific workload, platform configuration and mitigation technique. We commit to provide frequent progress reports of patch progress, performance data and other information. These can be found at the Intel.com website.

3. Ongoing Security Assurance: Our customers’ security is an ongoing priority, not a one-time event. To accelerate the security of the entire industry, we commit to publicly identify significant security vulnerabilities following rules of responsible disclosure and, further, we commit to working with the industry to share hardware innovations that will accelerate industry-level progress in dealing with side-channel attacks. We also commit to adding incremental funding for academic and independent research into potential security threats.

We encourage our industry partners to continue to support these practices. There are important roles for everyone: Timely adoption of software and firmware patches by consumers and system manufacturers is critical. Transparent and timely sharing of performance data by hardware and software developers is essential to rapid progress.

The bottom line is that continued collaboration will create the fastest and most effective approaches to restoring customer confidence in the security of their data. This is what we all want and are striving to achieve.

— Brian Krzanich 


В конце прошлой недели Intel пообещала выпустить обновление микрокода, закрывающее уязвимость Meltdown для 90% процессоров, выпущенных за последние пять лет. Для большинства дистрибутивов Linux доступны соответствующие обновления. В списке Linux Processor Microcode Data File приведены Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Debian, Fedora, Ubuntu и некоторые другие версии. Обновление микрокода занимает всего 3,51 Мбайт, при этом оно устанавливается в виде программного обновления - схожий подход применен и под Windows, поскольку использование только прошивок BIOS для обновлений несет в себе слишком много административных проблем, по мнению Intel. И с версии Windows 7 Microsoft реализует обновления микрокода через патчи ОС.

Intel, похоже, выполнила свое обещание по охвату процессоров. Intel привела список многочисленных моделей CPU, которые получили обновление микрокода. В том числе процессоры Core Duo и Pentium 3. Intel также планирует закрыть уязвимость и на других старых CPU.

Ниже приведен полный список:

 

Конечно, у пользователей Windows наверняка возник вопрос: когда для приведенных моделей будет тоже опубликовано обновление микрокода? Все же сама Intel признает, что обновление микрокод средствами BIOS - не самое практичное решение. Впрочем, пользователи Windows 10 могут отказаться от обновлений полностью или отключить данное обновление. В таком случае уязвимость может остаться открытой.


Как стало известно, Google выпустила соответствующие патчи в сентябре и октябре - намного раньше, чем об уязвимости было сообщено другим компаниям. Утверждается, что клиенты Google не почувствовали какого-либо падения производительности после установки патчей. Напомним, что уязвимости Spectre и Meltdown были обнаружены командой Project Zero из Google, поэтому такой шаг понятен.

По имеющейся на сегодня информации обе уязвимости Spectre полностью закрыть нельзя. Можно разве что осложнить проведение атаки. Но Google сообщает о том, что модификация компилятора Retpoline позволяет создавать код, который полностью защищен от двух уязвимостей Spectre. И здесь Google противоречит ранее опубликованной документации Spectre. Конечно, Google гордится компилятором Retpoline, но пока нет доказательств того, что он предотвращает внеочередное выполнение команд. Если верить документации Spectre, не существует возможности полностью запретить внеочередное выполнение в коде.

Однако если верить Google, компилятор Retpoline не только полностью закрывает уязвимость Spectre, но и не приводит к падению производительности. Google заявляет: "On most of our workloads, including our cloud infrastructure, we see negligible impact on performance."

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

Приоритеты Google после обнаружения уязвимостей Spectre и Meltdown несколько сомнительны. Конечно, команда Project Zero смогла оперативно предоставить информацию разработчикам Google, чтобы они как можно раньше начали работать над исправлением проблемы. То есть у разработчиков имелось преимущество по сравнению с другими компаниями. Теперь раздаются голоса о том, что Google следовало бы больше времени уделить поиску общего решения, а не закрывать уязвимость только на собственных серверах. С другой стороны, поскольку Google уязвимость обнаружила, то вполне логично, что компания стремится обезопасить, в первую очередь, себя. Google корректно выполнила политику Responsible Disclosure. То есть другие компании получили время, чтобы защитить свои системы до публикации информации о Spectre в начале года.


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

В тестах Integer and Floating Point Throughput, Linpack, STREAM, Server-side Java и в приложениях большинства корпоративных и облачных клиентов Intel ожидает падение производительности от 0 до 2%. Для сценариев онлайновых транзакций (OLTP) и биржевых приложений Intel указывает падение производительности на 4%. В сценариях с интенсивной нагрузкой ввода/вывода падение будет чувствоваться сильнее. При высокой нагрузке CPU (случай 100% Write) Intel ожидает 18% снижение производительности. В менее экстремальных сценариях, например, 70% Read/30% Write, падение составляет всего 2%.

В случае Storage Performance Development Kit (SPDK) и соответствующих тестов мы сталкиваемся с серьезным падением производительности. Например, в тесте SPDK iSCSI на одном ядре производительность снижается на 25%. Но в случае нескольких SPDK vHosts падения производительности не будет.

Intel более детально разбирает все тесты в приведенных примечаниях.