Как обновления для борьбы с уязвимостями Spectre и Meltdown влияют на производительность систем Windows

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

Что представляют собой новые уязвимости?

В среду, 3 января, специалисты в области безопасности обнародовали подробную информацию о трех потенциальных уязвимостях, которые получили названия Meltdown и Spectre. Авторы нескольких блогов попытались дать детальное описание этих уязвимостей. Наиболее четкое объяснение опубликовал ресурс Stratechery.

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

Что я могу сделать, чтобы защитить систему?

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

Уязвимость Идентификатор (CVE) Имя уязвимости Публичное имя уязвимости Изменения в Windows Обновление микрокоманд процессора, также выполняемое на хост-компьютере
Spectre 2017–5753 Вариант 1 Bounds Check Bypass Изменение компилятора; перекомпилированные двоичные коды теперь являются частью обновлений Windows

Edge и IE11 для предотвращения эксплойтов JavaScript

Нет
Spectre 2017–5715 Вариант 2 Branch Target Injection Определение новых инструкций центрального процессора, чтобы исключить спекулятивное выполнение команд (branch speculation) в рискованных ситуациях Да
Meltdown 2017–5754 Вариант 3 Rogue Data Cache Load Изоляция ядра и таблиц страниц в пользовательском режиме (user mode page tables) Нет

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

Администраторам Windows Server следует позаботиться о внедрении обновлений на уровне физических серверов, чтобы можно было изолировать работу виртуализированных приложений на сервере. При использовании локальных серверов это можно сделать путем применения соответствующего обновления микрокоманд на физическом сервере, а если вы используете Hyper-V, установите на ней последнее обновление Windows. Если вы используете Azure, вам не нужно предпринимать никаких действий для обеспечения виртуализированной изоляции, поскольку мы уже установили обновления на всех серверах Azure, обеспечив изоляцию ваших рабочих процессов от процессов других пользователей, запущенных в нашем облаке. Это означает, что другие пользователи Azure не смогут атаковать ваши виртуальные машины или приложения с помощью этих уязвимостей.

Пользователи Windows Server, как на локальных серверах, так и в облаке, также должны решить, принимать ли дополнительные меры безопасности на каждой из виртуальных машин Windows Server или на физических машинах. Эти меры необходимы, если вы запускаете ненадежное ПО на ваших экземплярах Windows Server (например, вы позволяете кому-то из ваших клиентов загружать программные коды или сниппеты, которые вы затем запускаете в вашей системе Windows Server), и вы хотите изолировать код, чтобы он не получил доступ к другим областям Windows Server. Вам не нужно применять обновления безопасности, чтобы изолировать ваши виртуальные машины Windows Server от других виртуальных машин на виртуализированных серверах, поскольку там необходимо только изолировать ненадежный код, запущенный на конкретном экземпляре Windows Server.

На данный момент мы поддерживаем 45 версий Windows. Патчи для 41 версии уже сейчас доступны в Windows Update. Мы ожидаем выхода обновлений для оставшихся версий в ближайшее время. Мы опубликовали таблицу с расписанием обновлений всех версий в инструкции для пользователей Windows.

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

Как проверить, включить или отключить обновления безопасности:

Производительность

Один из вопросов, возникающих в связи с внедрением всех этих исправлений: какое влияние они окажут на компьютеры и серверы? Стоит отметить, что в большинстве тестов, опубликованных на сегодняшний день, не учтено влияние сразу двух видов обновлений: операционной системы и микрочипов. Мы проводим собственный цикл тестов и по завершении опубликуем их результаты, но я также хотел бы отметить, что одновременно с этим мы продолжаем работать над дальнейшим улучшением производительности. В целом, по нашим данным, исправления уязвимостей Варианта 1 и 3 практически не влияют на производительность системы, в то время как исправление уязвимостей Варианта 2, даже при одновременной установке обновлений системы и микрокоманд, оказывает влияние на производительность.

Вот выводы, которые мы получили на текущий момент:

  • В Windows 10 с новыми процессорами (выпускаемыми с 2016 года, семейства Skylake, Kabylake или новее) тесты показывают минимальное снижение производительности, но мы ожидаем, что большинство пользователей не заметит изменений, поскольку речь идет о миллисекундах.
  • В Windows 10 со старыми процессорами (Haswell 2015 года или старше) часть тестов показывает более существенное снижение, и мы ожидаем, что некоторые пользователи могут заметить снижение производительности.
  • В Windows 8 и Windows 7 со старыми процессорами (Haswell 2015 года или старше), вероятнее всего, большинство пользователей заметит снижение производительности.
  • В системах Windows Server на любых процессорах, особенно в приложениях с интенсивным вводом-выводом, наблюдается более существенное снижение производительности при выполнении исправления для изоляции ненадежного кода. Поэтому необходимо с осторожностью оценивать степень опасности ненадежного кода для каждого экземпляра Windows Server, определяя баланс безопасности и производительности для вашей среды.

Для новейших процессоров, таких как Skylake и выше, Intel обновила рекомендации по отключению спекулятивного выполнения ветвей, а точнее, непрямых ветвей, чтобы снизить влияние патчей Spectre на общую производительность. В старых версиях Windows наблюдается более существенное снижение производительности, поскольку в Windows 7 и Windows 8 используется больше переходов между режимом пользователя и режимом ядра в связи с особенностями их проектирования, в частности, рендеринг шрифта производится именно в ядре. Мы опубликуем результаты тестов производительности в ближайшие недели.

Заключение

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

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

-Терри

Microsoft прочитано 19939 раз