«Чипокалипсис» продолжается. Найдено семь новых способов взломать процессоры Intel, AMD и ARM

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


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

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

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

Варианты Meltdown, старые...

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

chip600.jpg

Исследователи описали семь новых потенциальных атак на процессоры в духе Meltdown и Spectre

При «оригинальной» атаке,эксплуатирующей Meltdown, производится обращение к памяти ядра как раз в ходе такогопреждевременного выполнения инструкции. Потом процессор понимает, что упользовательского приложения нет права читать эту память. После этого выполнениеинструкции прерывается, состояние системы откатывается назад, однако при этом вкэше оседают данные, прочитанные в памяти ядра. Эти данные можно найти в кэше,проведя атаку через сторонние каналы.

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

...и новые

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

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

Весь спектр вариантов Spectre

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

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

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

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

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

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

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

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

  • Автор: Роман Георгиев
СЛЕДУЮЩИЙ МАТЕРИАЛ РАЗДЕЛА "IT"