Обнаружено еще несколько разновидностей потенциальных атак Spectre, которые затрагивают все современные процессоры AMD и Intel с поддержкой кэширования микроопераций. По мнению исследователей, все имеющиеся средства защиты от других разновидностей Spectre не могут защитить от новых угроз, при этом любые средства защиты против новых уязвимостей значительно ударят по производительности процессоров.
Ученые из Университета Вирджинии и Университета Калифорнии в Сан-Диего обнаружили несколько новых вариантов эксплойта Spectre, который затрагивает все современные процессоры AMD и Intel с поддержкой кэширования микроопераций. Исследователи утверждают, что уже существующие средства защиты от Spectre не могут обезопасить процессоры от потенциальных атак с использованием обнаруженных уязвимостей.
Документ с интригующим названием «Я вижу мертвые микрооперации: утечка секретов через кэши микроопераций Intel/AMD» (I See Dead µops: Leaking Secrets via Intel/AMD Micro-Op Caches), опубликованный исследовательской группой, описывает три новых типа потенциальных атак по типу Spectre с использованием уязвимостей кэшей микроопераций.
Устранение вновь обнаруженных уязвимостей может значительно снизить производительность – даже сильнее, чем исправления, разработанные для предыдущих типов эксплойтов Spectre. По словам исследователей, обнаруживших новые уязвимости, они заранее – до публикации статьи, проинформировали компании AMD и Intel об обнаруженных проблемах, однако до сих пор ими не выпущено ни обновлений микрокода, ни исправлений для операционных систем.
Все современные процессоры AMD и Intel используют механизм кэширования микроопераций – чипы Intel с 2011 г., чипы AMD с 2017 г., и все они могут быть подвержены гипотетической атаке, когда хакеры похищают данные в момент извлечения процессором команд из кэша микроопераций.
В документе описаны три новых типа потенциальных атак. Первый тип – кросс-доменная атака в том же потоке, которая приводит к утечке секретов на границе между ядром и пользовательским пространством.
Второй тип – атака между потоками аппаратной многопоточности SMT (Simultaneous Multithreading), когда утечка секретов с помощью кэша микроопераций происходит через два вычислительных потока, которые работают в одном физическом ядре, но на разных логических ядрах.
Третий тип – так называемая атака временного выполнения, которая может привести к утечке данных за счет предоставления доступа к ним по неправильно указанному пути, даже до момента отправления временной инструкции на исполнение.
В целом, по мнению ученых, ввиду необходимости защищать от потенциальных атак кеши чрезвычайно низкого уровня, средствам защиты будет очень сложно устранить угрозы без серьезного воздействия на производительность процессоров. В частности, одним из возможных способов устранения уязвимостей, описанных в документе, является очистка кеша микроопераций при пересечении доменов. Но поскольку для этого современным процессорам приходится очищать буфер обратного преобразования инструкций (iTLB), слишком частая очистка обоих неминуемо вызовет серьезное падение производительности – ибо процессор не может продвигаться вперед, пока не заполнится iTLB.
Вторым предложенным способом является разделение кеш-памяти микроопераций на основе привилегий. Это решение также чревато потерей производительности, поскольку по мере увеличения числа защитных доменов подобное разбиение приведет к чрезмерному недоиспользованию кэша микроопераций.
Третий способ заключается в организации мониторинга аномалий на основе счетчика производительности. Помимо ошибок классификации, которыми грешит этот метод, частое зондирование в случае его применения также станет причиной значительного снижения производительности.
По словам ученых, даже если кто-то захочет использовать обнаруженные ими уязвимости кэша микроопераций, это будет чрезвычайно сложным делом, поскольку вредоносное ПО, создаваемое для таких целей, должно будет для начала обойти многочисленные программные и аппаратные меры безопасности современных систем, и только затем приступить к выполнению очень специфического и нетрадиционного типа атаки.
В этой связи, по мнению исследователей, шансы на возникновение массовых проблем из-за новых уязвимостей Spectre достаточно низки. Опасности, исходящие от новых уязвимостей, могут быть ограничены направленными целевыми атаками со стороны опытных профессионалов с большими ресурсами – например, масштаба государства.
Хроника «чипокалипсиса»
В начале 2018 г. в процессорах Intel, AMD и ARM64 были обнаружены две серьезные уязвимости – Meltdown и Spectre. Meltdown обеспечивает пользовательскому приложению доступ к памяти ядра и другим областям памяти устройства, Spectre нарушает изоляцию памяти приложений, благодаря чему через эту уязвимость можно получить доступ к данным чужого приложения.
Из-за огромного количества устройств, которые оказались под ударом, обнаружение Meltdown и Spectre получило в прессе название «чипокалипсис». Большинство разработчиков популярных операционных систем оперативно выпустили патчи против Meltdown, однако первые патчи Intel подверглись критике, в том числе, за то, что в ряде случаев отправляют устройства в постоянную перезагрузку.
Позже проблема «чипокалипсиса» разгорелась с новой силой, поскольку ближе к концу 2018 г. эксперты выявили еще семь потенциальных атак спекулятивного выполнения на процессорах разных производителей.
В конце концов о защите от «чипокалиптических» атак класса Spectre высказался создатель Linux Линус Торвальдс (Linus Torvalds). Он, в частности, заявил, что защиту Spectre V2, реализованную на уровне операционной системы, следует отключить. Причиной заявления стало то, что защита в процессорах с поддержкой технологии Hyper-Threading существенно (до 50%) снижает их производительность.
В марте 2020 г. сообщалось об открытии австро-французской группы ученых двух новых типов атак под общим именем Take a way, которые затронули все процессоры компании AMD, выпущенные за последние девять лет. С их помощью можно удаленно похитить конфиденциальные данные, имея в распоряжении лишь браузер с поддержкой языка Javascript, хотя и не со столь высокой эффективностью, как в случае с нашумевшими Meltdown и Spectre.