Уязвимость безопасности Spectre

Что такое уязвимость безопасности Spectre?

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

Что такое механизмы отраслевого прогнозирования и спекулятивного действия?

  • Прогнозирование ветвлений: метод прогнозирования ветвлений позволяет процессору ускорить выполнение в конвейерном процессоре путем преобразования инструкций в логику предикатов. Следовательно, выполняются только те инструкции, предикат которых равен true. Это позволяет ЦПУ избегать проверки каждой отдельной ветви на выполнение.
  • Спекулятивное выполнение: спекулятивное выполнение, наряду с предсказанием ветвлений, является компонентом внеочередного выполнения, которое используется для ускорения выполнения в микропроцессорах на основе конвейера. Из предыдущего определения мы узнали, что прогноз ветвления используется для определения того, какая инструкция будет выполняться в случае условного перехода. Спекулятивные действия идут еще дальше. Он определяет, каким будет результат выполнения следующей инструкции. Если прогноз ветвления был верным, используется результат, в противном случае он отбрасывается.

Как работает Spectre Vulnerability?

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

  1. Он манипулирует процессом для выполнения инструкции, которая никогда бы не выполнила нормаллу
  2. Когда процессор оценивает выполненную инструкцию, он отбрасывает вычисления.
  3. Однако расширенный размер кэша не восстанавливается.
  4. Просто взглянув в кеш, можно вывести содержимое, которое было там, и их фактическое расположение в памяти, таким образом подвергая их воздействию вредоносной программы.

2. Удаленная эксплуатация.
В этом случае вредоносный агент работает через Javascript. Запрограммированное вредоносное ПО получает доступ ко всей памяти, отображаемой браузером. Следующие шаги предприняты:

  1. Кэш принудительно очищается при выполнении инкрементного чтения больших наборов данных, поскольку память массивов в javascript поддерживается с использованием политики LRU.
  2. В этом случае предиктор ветвления будет неправильно обрабатываться путем итерации по очень большому набору данных с использованием побитовых операций для установки индекса на значения в пределах диапазона, а затем с использованием адреса «за пределами» для конечной итерации.
  3. Итерируя по большому набору данных, используя побитовые операции для установки значений в пределах диапазона и используя адрес за пределами границ для последней итерации, можно предсказать предсказатель ветвления
  4. Чтения по времени позволяют сценарию читать местоположение

Какие меры по смягчению предпринимаются?

Обнаружение этой проблемы безопасности приводит ко многим мерам по предотвращению и смягчению последствий. Различные производители процессоров и программного обеспечения по-разному решали эту проблему следующим образом:

  1. В марте 2018 года Intel разработала аппаратные исправления для Spectre. Уязвимости были смягчены новой системой разделения, которая улучшает процесс и разделение на уровне привилегий.
  2. Microsoft действовала путем изоляции таблиц ядра и пользовательских страниц. Он также разработал новые инструкции процессора (совместимые с Windows), которые устраняют спекуляции отрасли.
  3. В Chrome 64 по умолчанию включена защита от атак. Пользователи Chrome 63 могут вручную смягчить атаку, включив функцию изоляции сайта (chrome: // flags # enable-site-per-process)
  4. Google создал новую технику, названную «Retpoline», которая включает управление непрямыми ветвями на уровне компилятора в направлении другой цели, которая не приводит к уязвимому спекулятивному выполнению вне очереди.
  5. Mozilla уменьшает разрешение таймеров JavaScript, чтобы помочь предотвратить атаки по времени, с дополнительной работой над методами размытости во времени, запланированными на будущие выпуски.

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

Поделиться:

© specexpert.info 2020

© specexpert.info, 2002 - 2024