Аппаратные ошибки в процессорах: последствия Spectre и Meltdown
Безопасность Windows находится под угрозой из-за аппаратных ошибок в процессорах. Патч Microsoft позволяет закрыть дыру, но полностью от нее не избавляет. Как же происходят атаки на компьютеры?
Патч, влияющий не безопасность Windows был предложен Microsoft в январе. Intel совместно с Майкрософт продолжают работать над исправлением аппаратных «дыр» в процессорах. Мы предлагаем вам посмотреть, насколько незащищенная операционная система подвержена взлому.
Открытие для публичного обсуждения методов атаки Spectre и Meltdown привело к появлению целой волны апдейтов и патчей для прошивки, операционных систем и программ. Но не все гладко с обновлениями.
Под угрозой – все новые ЦП
Если атаки Meltdown используют уязвимость процессоров Intel, то Spectre нацелены на все современные процессоры x86
Уж слишком часто ситуацию вокруг обнаружения очередной уязвимости в безопасности и утечке данных называют катастрофой вселенских масштабов. Но то, что сотрудники Google Project Zero и исследователи Грацского технического университета выяснили в прошлом году независимо друг от друга, действительно иначе, чем катастрофой, не назовешь. Уязвимости, эксплуатируемой методом Spectre и Meltdown, подвержены все современные процессоры для ПК, все новые версии ОС и даже часть смартфонов текущих поколений. Угроза нависает над безопасностью смартфонов, дата-центров поставщиков услуг облачного хранения данных, ПК. В течение первых дней после обнародования PR-отделы производителей еще пытались как-то замять проблему: AMD заявила, что ее проблема не касается, Intel отважилась утверждать (и промахнулась), что уязвимостью нельзя воспользоваться для того, чтобы совершать преднамеренные действия с данными. Между тем обновления безопасности для закрытия уязвимостей выпускаются для всех уровней. В отличие от устройств под iOS, уже получивших нужные патчи, устройства под Android обновляются медленнее в зависимости от производителя (все крупные производители уже обновили ОС). Но ситуация с Windows действительно сложна и непонятна.
Как действует уязвимость?
Оба вида атак проводятся с целью открыть доступ к данным для процессов разных пользователей или разных уровней прав на доступ, у которых его не должно быть. Атаки позволяют с помощью простых пользовательских процессов, например, веб-браузера, запускающего взломанный плагин, считывать пароли, сертификаты и другие важные данные прямо из системы и передавать их на управляющий сервер. При самом худшем раскладе злоумышленник может даже «вырваться» из виртуальной машины и перехватить данные других виртуальных машин на том же хосте.
Уязвимости подвержен даже процессор A11, на котором работают смартфоны iPhone 8 и X. Ответ Apple последовал незамедлительно
Отсутствие доступа процессов к данным друг друга обеспечивается механизмами как программными, так и аппаратными. Ресурсы непосредственно на процессорах расходуются на это в огромных количествах, ведь современные многоядерные процессоры на суперскалярной архитектуре с поддержкой гиперпоточности оптимизированы как раз для того, чтобы обслуживать одновременно как можно больше пользователей, процессов или пересылок данных. Проблема связана с алгоритмом спекулятивного исполнения кода, предназначенного для ускорения вычислений. Блок предсказания ветвлений определяет вероятность, с которой выполнение кода пойдет по тому или иному пути, чтобы исполнить заранее наиболее вероятное действие еще до получения инструкции. Если через несколько тактов выяснится, что путь спекулятивных вычислений недействителен, процессор сбросит конвейер к исходному состоянию и выполнит вычисления заново. В этом механизме и была обнаружена уязвимость: отпечаток результата выполнения отброшенной ветки сохраняется в процессорном кэше и может быть использован даже через запрет доступа к данным. Метод сложный и требует времени, но позволяет считать всю оперативную память компьютера.
Патчи требуют ресурсов
Высокая степень сложности обнаруженной уязвимости требует не менее сложных патчей; конкретный метод атаки выбирается в зависимости от модели процессора и версии операционной системы. Потому обновления выпускают все производители, которых касается проблема. Быстрее всех отреагировали разработчики браузеров, дополнительно усилив их защиту от атак с использованием JavaScript и плагинов. Обновления Microsoft должны независимо от ЦП обеспечить безопасность при переходах между процессами и уровнями доступа через функции операционной системы, прежде всего в результате очищения кэша при переключении контекста. Чем больше это будет происходить, тем больше ресурсов будет требовать обновление безопасности. Мы измерили производительность двух ноутбуков на процессорах Intel Kaby Lake и Kaby Lake Refresh до и после запуска январского обновления Windows 10. Результат поначалу позволил немного расслабиться: потеря производительности при работе программ Windows составляет всего несколько процентов.
Потери производительности после январского обновления (в процентах)
Gigabyte Sabre 17 Intel Core i7-7700HQ |
Acer Nitro 5 Spin Intel Core i5-8250U |
|
---|---|---|
PC Mark 7 | ||
PC Mark 7 | -0.7 | -0.6 |
Graphics DX9 | -1.2 | 1.5 |
Image manipulation | -5.4 | -5.4 |
Web browsing | -3.8 | -2.6 |
PC Mark 8 | ||
Creative acc 3.0 score | -1.5 | -0.9 |
Web Browsing Jungle Pin | -1 | -0.5 |
Photo editing v2 | -3.4 | -1.8 |
Batch Photo editing v2 | -2.9 | -2.1 |
Video To Go part2 | -2.2 | -3.4 |
Music to go | -3.4 | -2.7 |
Storage 2.0 bandwidth | 0 | -7.2 |
WoW | 0 | -1.5 |
Проблемы с серверами баз данных
Но на более низком уровне потери производительности оказались значительно более серьезными. Прежде всего, пострадал доступ к жесткому диску и твердотельному накопителю. Для операционной системы и процессора каждый доступ к накопителю большой емкости означает критический переход с пользовательского контекста на системный, а обновление его замедляет. Производительность высокоскоростных твердотельных накопителей, работающих по протоколу NVMe, которые могут выполнять до 200 000 операций ввода-вывода в секунду, в таком случае может упасть примерно в два раза. Поскольку скорость последовательного чтения не рассматривалась, в результатах наших бенчмарков изменения не были отражены. Но серверы баз данных, производительность которых определяется в количестве операций ввода-вывода, после получения заплаток для ядра могут испытать чрезмерную нагрузку.
Читайте также: