В первых числах января 2018 года специалисты Google Project Zero обнародовали информацию у трех уязвимостях, которые присутствуют практически во всех CPU, выпущенных с 1995 года. Проблемы получили имена Meltdown и Spectre (CVE-2017-5754, а также CVE-2017-5753 и CVE-2017-5715).
К сожалению, устранить эти опасные баги в самих процессорах оказалось невозможно, и производители ОС и другого ПО были вынуждены срочно начать выпускать патчи для своих продуктов, в сущности, создавая «костыли», затрудняющие эксплуатацию уязвимостей.
Также стоит отметить, что раскрытие информации об уязвимостях произошло раньше запланированного срока. Крупным игрокам индустрии было известно о багах с лета 2017 года, работа над патчами велась, однако в начале января информация о глобальных проблемах «во всех процессорах сразу» неожиданно просочилась в прессу. Компании были вынуждены ускорить процесс выхода исправлений и выступить с официальными заявлениями, чтобы пресечь слухи, становившиеся все безумнее.
В итоге сложилась странная ситуация, в которой выпущенные экстренно патчи создали едва ли не больше проблем, чем сами уязвимости. К примеру, оказалось, что исправления для Windows конфликтуют со многими антивирусами и защитными решениями, что приводит к неполадкам в работе системы, BSOD и другим неприятным последствиям. Дело в том, что разработчики ряда антивирусов использовали для работы своих продуктов весьма спорные техники — их можно приравнять к эксплуатации проблем, с которыми и призваны бороться выпущенные патчи.
Список совместимых и несовместимых с патчами антивирусов, обновляемый ИБ-специалистами, можно найти здесь. Дело в том, что в итоге разработчики Microsoft решили проблему очень интересным образом: обязали производителей антивирусного ПО добавлять в реестр запись:
Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD”
Если такой записи нет в реестре, Windows не будет устанавливать не только патчи для Meltdown и Spectre, но никакие обновления вообще.
Также исправления Microsoft оказали неожиданный эффект на процессоры AMD (в частности, серии Athlon 64 X2). Оказалось, что иногда после установки обновлений (а именно KB4056892) системы на базе CPU AMD просто перестают загружаться, может появляться «синий экран смерти» и так далее. В итоге Microsoft была вынуждена приостановить распространение патча.
Еще одна большая проблема, связанная с Meltdown и Spectre, заключается в том, что исправления практически для всех ОС негативным образом сказываются на производительности процессоров. Хотя большинство исследователей сходятся во мнении, что во время работы над обычными задачами рядовой пользователь не заметит никакой разницы, в некоторых случаях потеря производительности все же может быть более существенной. По разным данным и оценкам, после установки патчей процессоры могут терять 5-50% своей мощности.
Компании Intel и Microsoft почти неделю избегали комментариев по данному вопросу, но теперь все-таки признали существование проблемы. Официальное сообщение в блоге Microsoft, написанное исполнительным вице-президентом Windows and Devices Group Терри Мэйерсоном (Terry Myerson), гласит, что хуже всего придется пользователям старых ОС и процессоров.
- Пользователи Windows 10 и новейших процессоров (2016 года, Skylake, Kabylake и новее) практически не ощутят никакой потери производительности, так как ухудшение исчисляется считанными миллисекундами.
- Некоторые пользователи Windows 10 и более старых процессоров (2015 года, включая Haswell и более старые CPU) могут обнаружить в ряде тестов заметное ухудшение показателей и даже заметить потерю производительности системы.
- Пользователи Windows 8 и Windows 7 (использующие процессоры 2015 года, включая Haswell и более старые модели) в свою очередь, столкнутся со значительной потерей производительности практически гарантировано.
- В случае с Windows Server (на любых процессорах), особенно если речь идет о работе приложений, активно использующих IO, потеря производительности тоже будет весьма существенной.
Также данный вопрос затронул и глава Intel Брайан Кржанич (Brian Krzanich), выступая на конференции Consumer Electronics Show в Лас-Вегасе. Он подчеркнул, что потеря производительности существует, но она сильно зависит от загрузки процессора и конкретных задач, которые CPU выполняет. Кржанич заверил, что инженеры Intel делают все возможное, чтобы минимизировать эти «потери».