Meltdown и Spectre — что это, и как защититься? Ч.2.
Шалом, бегущие в тенях! Привет, случайный подписчик. Сегодня продолжим разбор двух самых жестоких уязвимостях текущего десятилетия. А точнее, как от этого защититься и можно ли защититься хоть как то.
Поехали:
Защита от атак Meltdown и Spectre
Установить последние обновления системы и браузера. Если вы не уверены в том, что уязвимость точно закрыта, и ваша система в безопасности, тогда лучше полностью отключить JavaScript.
Судя по тестам, выпущенные патчи сильно повлияют на производительность существующих систем. Тесты показывают падение на 10-30% в некоторых задачах. Да-да, вы все правильно поняли, ваш компьютер может навсегда стать медленнее, а AWS заметно дороже.
Патчи и проблемы с антивирусами
Патчи для Windows конфликтуют со многими антивирусами и защитными решениями, что приводит к неполадкам в работе системы, BSOD и другим неприятным последствиям. Дело в том, что разработчики ряда антивирусов использовали для работы своих продуктов весьма спорные техники — их можно приравнять к эксплуатации проблем, с которыми и призваны бороться новые патчи. Так, антивирусы различными способами обходят Kernel Patch Protection, внедряют свои гипервизоры для перехвата системных вызовов (syscalls) и строят предположения об адресах ячеек памяти.
В итоге разработчики Microsoft решили проблему интересным способом — обязали производителей антивирусного ПО добавлять в реестр запись, которая даст Windows Update понять, что «все чисто» и проблем не возникнет:
Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD"
Сначала эта запись в реестре стала обязательной только при установке патчей для Meltdown и Spectre, но потом инженеры Microsoft решили, что стоит «завернуть гайки» еще туже. Так, если записи нет в реестре, Windows не будет устанавливать не только патчи для Meltdown и Spectre, но и никакие обновления вообще. В сущности, теперь пользователям придется решать, что им нужнее: обновления для ОС или сомнительный антивирус.
Список совместимых и несовместимых с Windows антивирусов, регулярно обновляемый ИБ-специалистами, можно найти здесь.
Новости о способах защиты от Spectre и Meltdown
Поставщики начали выкладывать информацию о том, как пользователи могут защититься от Spectre или Meltdown. Чтобы было легче найти эту информацию, я буду добавлять в эту статью ссылки на различные способы защиты от уязвимости Meltdown и Spectre по мере их выпуска.
Amazon
Amazon выпустила бюллетень по безопасности, в котором содержится информация о том, насколько Amazon AWS-сервисы затронуты Meltdown и Spectre.
Вы можете прочитать полный бюллетень по безопасности здесь.
AMD
Компания AMD по сути, утверждает, что их процессоры неуязвимы для уязвимостей Meltdown и Spectre.
Подробную информацию можно найти здесь.
Android
Команда Android обновила свой бюллетень в январе 2018 года следующим примечанием:
Мы рекомендуем пользователям Android принимать доступные обновления безопасности на своих устройствах. Дополнительную информацию см. В блоге безопасности Google.
Полный бюллетень можно найти здесь.
Apple
08.01.2018 Apple сделала лаконичное заявление о том, что:
«…все системы Mac и iOS уязвимы, однако пока не наблюдалось реальных атак. На всякий случай загружайте софт только из доверенных источников, таких как App Store».
Рекомендация выглядела бы логично, если бы не трояны, которых уже находили в App Store.
Обновления готовы для iOS 11.2, macOS 10.13.2 и Safari, однако после установки свежих апдейтов на macOS 10.3.2 эксплоит для Spectre по-прежнему работает.
Считается, что WatchOS не требует патчей, поскольку в Apple Watch используется процессор Apple S1, на котором пока не удалось реализовать ни один из вариантов атаки Meltdown и Spectre.
ARM
ARM выпустила бюллетень по безопасности, в котором перечислены процессоры ARM, которые подвержены атакам Meltdown и Spectre.
Список уязвимых SoC в таблице модели с подтвержденными сценариями атак и ссылки на патчи. Легко видеть, что в этот список не входят старые ядра ARM без внеочередного исполнения инструкций. Они ожидаемо оказались иммунными к Meltdown и Spectre, поскольку атаки такого рода не работают без внеочередного исполнения команд. Например, это популярные Cortex-A7, Cortex-A53 и семейство ARM 11. На A7 построен популярный одноплатный компьютер Raspberry Pi 2B, а на A53 — его более новая версия 3B. Другие версии «малины» используют ARM 11, который также исполняет инструкции по очереди.
Полный бюллетень по безопасности ARM можно найти здесь.
Chromium
Проект Chromium опубликовал статью, в которой предоставляет рекомендации для веб-разработчиков и советуют пользователям Chromium включать изоляцию сайта.
Подробности здесь.
Поскольку Google была одной из трех команд, которые обнаружили эту ошибку, у них есть самая подробная информация о Spectre и Meltdown.
Бюллетень по безопасности вы можете найти здесь.
07.01.2018 Пользователям Google Chrome рекомендуют включить функцию Site Isolation.
Intel
Реакция на известие о фундаментальных уязвимостях в процессорах оказалась удивительной. Исполнительный директор Intel Брайан Кржанич (Brian Krzanich) узнал о проблеме летом 2017 года и начал продавать большую часть акций своей компании. К ноябрю 2017 года у него осталась только обязательная доля, которую нельзя продать по условиям контракта.
Представители Intel долго отрицали наличие каких-либо проблем с процессорами, потом называли их несущественными, а еще позже — неохотно признали, опубликовав пополняемый список процессоров, на которых уязвимость подтвердилась.
03.01.2018 Корпорация Intel выпустила пресс-релиз об этих уязвимостях. Полный пресс-релиз можете прочитать здесь.
IBM
IBM признала проблему и пообещала выпустила к началу февраля обновления прошивок для систем с процессорами серии Power.
Linux
Томас Глейкснер, разработчик ядра Linux, опубликовал в своей рассылке информацию о новых исправлениях изоляции KAISER. Предполагается, что они были введены для устранения ошибок Meltdown и Spectre в Linux. Статью можно найти здесь.
Более глобальный подход к переосмыслению механизмов изоляции адресного пространства в Linux обсуждается здесь.
08.01.2018 В Linux проблему Meltdown частично решили набором патчей KPTI. Их не рекомендуется устанавливать для систем с процессорами AMD.
Microsoft
Microsoft выложила рекомендации как для Windows Servers, так и для клиентов Windows, связанных с уязвимостью Spectre и Meltdown. Эти рекомендации можно найти по следующим ссылкам:
05.01.2018 Microsoft сообщила, что выпустила обновление KB4056892 для системы безопасности, которая должна устранить проблему. Если вы используете Windows 10, то обновление должно автоматически загрузиться и устанавливаться, но это может зависеть от настроек вашего ПК.
Про KB4056892 уже пишут, что оно вызывает зависание при загрузке многих компьютеров с процессорами AMD (в частности, серии Athlon 64 X2). Его можно откатить (если ранее была создана точка восстановления), а затем отключить автоматическое обновление через gpedit.
Microsoft также выложила рекомендацию для клиентов Azure, в которой говорится:
"Большинство инфраструктур Azure уже обновлены для устранения этой уязвимости. Некоторые аспекты Azure по-прежнему обновляются и требуют перезагрузки клиентских виртуальных машин для обновления безопасности. Многие из вас получили уведомление в последние недели о запланированном обслуживании Azure и уже перезагрузили виртуальные машины, чтобы применить исправление. Других действий от вас пока не требуется."
Полную информацию касаемо уязвимости Spectre и Meltdown в Azure можно найти здесь.
Mozilla
03.01.2018 Mozilla опубликовала сообщение о том, что Firefox может быть подвержен этим атакам. Информацию по этому вопросу можно найти здесь.
04.01.2018 Mozilla выпустила Firefox 57.0.4. Новая версия Firefox поставляется с двумя ограничениями по времени, предназначенными для защиты пользователей Firefox от атак Meltdown и Spectre. Новое обновления доступно для скачивания с официальной страницы проекта или с помощью автообновления браузера. Разработчики честно предупреждают, что это полумера. Это «костыль», затрудняющий эксплуатацию уязвимостей через браузер.
Nvidia
Nvidia сообщила, что в настоящее время их GPU не затронуты этой ошибкой, но они продолжают исследовать данную атаку:
"Основной бизнес NVIDIA — это графические процессоры. Мы полагаем, что наше оборудование GPU невосприимчиво к сообщаемой проблеме безопасности и обновляет наши драйверы графического процессора, чтобы помочь устранить проблему безопасности ЦП. Что касается наших SoC с процессорами ARM, мы анализируем их, чтобы определить, какие из них подвержены данной атаке, и для каких необходимо выпустить патч."
Полный бюллетень можно найти здесь.
10.01.2018 Nvidia выпустила обновления драйверов GPU для Windows, Linux, FreeBSD, Solaris.
Redhat
Redhat опубликовал рекомендацию, которая содержит список затронутых продуктов и их статус. В этом сообщении говорится:
Пользователям Red Hat настоятельно рекомендуется немедленно применить соответствующие выпущенные обновления.
Полную информацию можно найти здесь.
Xen
Проект Xen опубликовал очень подробное сообщение о том, как уязвимости Spectre и Meltdown влияют на гипервизоры Xen:
Гости Xen могут иметь возможность выводить содержимое произвольной памяти хоста, включая память, назначаемую другим гостям.
Полную запись можно найти здесь.
Костыли для успокоения народа
Все выпускаемые патчи — это лишь софтовые костыли, затрудняющие эксплуатацию найденных уязвимостей, а точнее даже известных сценариев их использования. Полностью устранить эти дыры в безопасности можно только хардверным способом — выпустив новые процессоры без внеочередной обработки инструкций.
Понятно, что если это и произойдет, то не в ближайшие годы. Цикл разработки новых процессорных ядер слишком долгий для оперативного внесения исправлений, тем более — таких кардинальных.
Поэтому производители делают то, что можно сделать в сжатые сроки, — переписывают софт. Например, в Linux теперь память ядра не отображается в адресное пространство пользовательских процессов. Это мешает атаке Meltdown, но все системные вызовы стали выполняться дольше.
В зависимости от особенностей конкретной системы существующие патчи вызывают замедление производительности всех операций с обращениями к ядру. У домашних пользователей их доля невелика, поэтому замедление наблюдается небольшое (2–3% в большинстве сценариев). У корпоративных клиентов, работающих с базами данных и системами виртуализации, падение производительности может достигать 30%.
Компании Intel и Microsoft долго избегали официальных комментариев по этому вопросу, но в конце концов все-таки признали существование проблемы. Официальное сообщение в блоге Microsoft, написанное исполнительным вице-президентом Windows and Devices Group Терри Майерсоном (Terry Myerson), гласит, что хуже всего придется пользователям старых ОС и процессоров.
- Пользователи Windows 10 и новейших процессоров (2016 года, Skylake, Kaby Lake и новее) практически не ощутят никакой потери производительности, так как ухудшение исчисляется считаными миллисекундами.
- Некоторые пользователи Windows 10 и более старых процессоров (2015 года, включая Haswell и более старые CPU) могут обнаружить в ряде тестов заметное ухудшение показателей и даже увидеть потерю производительности системы.
- Пользователи Windows 8 и Windows 7 (использующие процессоры 2015 года, включая Haswell и более старые модели), в свою очередь, столкнутся со значительной потерей производительности практически гарантированно.
- В случае Windows Server (на любых процессорах), особенно если речь идет о работе приложений, активно использующих IO, потеря производительности тоже будет весьма существенной.
Также данный вопрос затронул и глава Intel Брайан Кржанич, выступая на конференции Consumer Electronics Show в Лас-Вегасе. Он подчеркнул, что потеря производительности существует, но она сильно зависит от загрузки процессора и конкретных задач, которые CPU выполняет. Кржанич заверил, что инженеры Intel делают все возможное, чтобы минимизировать эти «потери».
Как нетрудно заметить, представители Intel и Microsoft стараются не озвучивать конкретных цифр, и их можно понять, ведь разброс действительно велик. Но для тех, кто любит конкретику, мы все же приведем несколько примеров.
Разработчики Red Hat оценивают потерю производительности в 1–20%, и конкретная цифра будет зависеть от множества факторов.
Компании Epic Games и Branch Metrics пожаловались, что патчи для Meltdown и Spectre уже вызвали серьезные проблемы в их работе. Так, график ниже показывает, как после установки обновлений нагрузка на один из серверов популярного сетевого шутера Fortnite возросла с 20 до 60%.
О похожих проблемах сообщили и разработчики Housemarque Games: нагрузка на серверы игры Nex Machina возросла в 4–5 раз.
Тем не менее многочисленные исследователи уверяют, что простые пользователи вряд ли заметят, что их система стала работать сколь-нибудь медленнее. В частности, очень многих пользователей волнует возможное «проседание» FPS в играх. Но согласно свежему тестированию Eurogamer, потери будут совсем незначительными. К похожим выводам также пришли тестировщики портала Dark Side of Gaming.
Также можете ознакомиться с тестами специалистов TechSpot, ComputerBase и попросту погуглить, поискав тесты для конкретных процессоров и кейсов использования, так как бенчмаркингом после выхода патчей занялись все, кто только мог.
Эксплоит Spectre и Meltdown
Сейчас различные примеры PoW найденных уязвимостей быстро появляются на GitHub. К примеру, вот вариант эксплоита Meltdown на С, а вот хорошо откомментированный эксплоит для Spectre.
Выводы
Это фиаско…! И если читая про недавние уязвимости достаточно серьёзны, то вот эта — полный писец. Данную уязвимость уже окрестили как самую опасную за все время существования компьютеров.
Уязвимость на уровне процессора, но закрыть ее на уровне процессора нельзя. Поэтому производители начали костылять на уровне ОС пытаясь хоть как-то успокоить население нашей планеты.
Ну, что сказать: «отличные новости». Двадцать лет, Карл, двадцать лет была уязвимость. И не в софте, а в железе! Интересно сколько раз ее уже успели поиспользовать умные ребята из АНБ и прочих организаций «защищающих наш сладкий сон».
В общем, киберсталкеры, будем работать с тем, что есть и просто утроим собственную бдительность.