Контакты
Подписка
МЕНЮ
Контакты
Подписка

Найдено семь новых способов взломать процессоры Intel, AMD и ARM

Найдено семь новых способов взломать процессоры Intel, AMD и ARM

Найдено семь новых способов взломать процессоры Intel, AMD и ARM


16.11.2018



Прогнозы и предположения

Исследователи уязвимостей Spectre и Meltdown, чье обнаружение в начале 2018 г. ознаменовало собой так называемый "чипокалипсис", выявили еще семь потенциальных атак спекулятивного выполнения на процессоры разных производителей. Часть из них уже не слишком опасны, поскольку выработанные ранее методики защиты и снижения угрозы эффективны и против "новых" атак. Однако остальные по-прежнему требуют пристального внимания со стороны производителей аппаратного и программного обеспечения.

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

В новой работе исследователи указывают на дополнительные варианты Meltdown, при которых используются ключи защиты пользовательского пространства (PKU). Такие ключи были реализованы впервые в процессорах Skylake: они позволяют приложениям маркировать определенные области памяти с помощью четырехбитных ключей. Приложения инструктируют процессор использовать конкретные защитные ключи, и попытка получить доступ к области памяти, отмеченной другими ключами, приведет к ошибке. Однако опять возникает спекулятивный зазор в несколько наносекунд, во время которого существует возможность извлечения защищаемых данных.

Следующий описываемый вариант Meltdown подразумевает злоупотребление расширением для защиты памяти MPX (MemoryProtectioneXtensions). MPX рассчитано на выявление и пресечение попыток обращения к значениям за пределами динамической области памяти. Как и в случае с другими вариантами атаки, злоумышленник может эксплуатировать временной зазор, возникающий между спекулятивным выполнением нелегитимных инструкций и генерацией сообщения об ошибке. Расширение MPX существует только в 64-битных системах, в то время как 32-битные системы — производства и Intel, и AMD — используют более простой метод защиты пределов динамической памяти, и он тоже уязвим перед аналогичной атакой.

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

Атаки класса Spectre распределились по ряду категорий. Процессоры оснащены сразу несколькими модулями прогнозирования, а прогнозы зависят от адреса ветвления и конечных его точек. Кроме того, процессор предсказывает, где продолжится выполнение команд при возвращении от одной функции к другой — эту операцию также выполняет отдельный модуль прогнозирования.

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

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

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

Интересно, что один из этих вариантов Spectre продемонстрировал большую эффективность против новейших процессоров AMD, чем считалось ранее. Он также работает и против процессоров ARM.

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

"Вполне вероятно, что со временем будут найдены и другие способы эксплуатации архитектурных особенностей процессоров в духе Spectre и Meltdown, — полагает Олег Галушкин, директор по информационной безопасности компании SECConsultServices. — В ближайшем будущем все попытки защититься от этих атак будут носить более или менее локальный характер, поскольку фундаментальный подход потребует пересмотра всей архитектуры современных процессоров".

 

Cnews