WikiDer > Уязвимость процессора временного выполнения
Уязвимости процессора временного исполнения уязвимости в компьютерной системе, в которой спекулятивное исполнение оптимизация реализована в микропроцессор используется для утечки секретных данных неавторизованной стороне. Классический пример: Призрак что дало название этому виду атака по побочным каналам, но с января 2018 года было выявлено множество различных уязвимостей.
Обзор
Современные компьютеры представляют собой высокопараллельные устройства, состоящие из компонентов с очень разными характеристиками производительности. Если операция (например, ветвление) еще не может быть выполнена, потому что некоторая более ранняя медленная операция (например, чтение памяти) еще не завершена, микропроцессор может попытаться выполнить предсказывать результат более ранней операции и выполнить более позднюю операцию умозрительно, действуя так, как будто предсказание было верным. Прогноз может быть основан на недавнем поведении системы. Когда более ранняя, более медленная операция завершается, микропроцессор определяет, был ли прогноз правильным или неправильным. Если это было правильно, то выполнение продолжается без перерыва; если оно было неверным, микропроцессор откатывает предположительно выполненные операции и повторяет исходную инструкцию с реальным результатом медленной операции. В частности, временная инструкция[1] относится к инструкции, обработанной процессором из-за ошибки (инкриминируя предиктор ветвления в случае Призрак), которые могут повлиять на микроархитектурное состояние процессора, оставляя архитектурное состояние без каких-либо следов его выполнения.
С точки зрения непосредственно видимого поведения компьютера это выглядит так, как если бы спекулятивно исполняемый код «никогда не происходил». Однако это спекулятивное выполнение может повлиять на состояние определенных компонентов микропроцессора, таких как тайник, и этот эффект может быть обнаружен путем тщательного отслеживания сроков последующих операций.
Если злоумышленник может организовать, что спекулятивно выполненный код (который может быть написан непосредственно злоумышленником или может быть подходящим гаджет которые они обнаружили в целевой системе) работает с секретными данными, к которым у них нет прав доступа, и по-разному влияет на кэш для разных значений секретных данных, они могут быть в состоянии обнаружить значение секретных данных.
Начиная с 2017 года было выявлено несколько примеров таких уязвимостей, а их публикация началась в начале 2018 года.
Сводка уязвимостей и способов их устранения
Тип смягчения | Полнота | Эффективность | Влияние на производительность |
---|---|---|---|
Аппаратное обеспечение | Полный | Полный | Нет… Маленький |
Обновление микрокода прошивки | Частичное | Частично… Полный | Нет… Большой |
ОС / VMM | Частичное | Частично… Полный | Маленький большой |
Перекомпиляция программного обеспечения | Бедные | Частично… Полный | Средний… Большой |
Аппаратные меры по снижению рисков требуют изменения конструкции ЦП и, следовательно, новой итерации аппаратного обеспечения, но приводят к практически нулевым потерям производительности. Микрокод Обновления изменяют программное обеспечение, на котором работает ЦП, требуя выпуска исправлений и интеграции в каждую операционную систему и для каждого ЦП. Снижение рисков OS / VMM применяется на уровне операционной системы или виртуальной машины и (в зависимости от рабочей нагрузки) часто приводит к довольно значительной потере производительности. Перекомпиляция программного обеспечения требует перекомпиляции каждый часть программного обеспечения и обычно сильно снижает производительность.
Имя уязвимости (псевдонимы) | CVE | Затронутые архитектуры ЦП и меры по их устранению | ||||||
---|---|---|---|---|---|---|---|---|
Intel[2] | AMD[3] | |||||||
Ледяное озеро[4] | Каскадное озеро, Comet Lake | Виски Лейк, Янтарное озеро | Coffee Lake (9-е поколение)[5] | Coffee Lake (8-е поколение) * | Дзен 1 / Дзен 1+ | Дзен 2[6] | ||
Призрак v1 Обход проверки границ | 2017-5753 | Перекомпиляция программного обеспечения | Перекомпиляция программного обеспечения[7] | |||||
Призрак v2 Внедрение целевой ветви | 2017-5715 | Оборудование + ОС | Микрокод + ОС | Микрокод + ОС | Микрокод + ОС / VMM | Оборудование + ОС / VMM | ||
SpectreRSB[8]/ret2spec[9]Вернуть неверный прогноз | 2018-15572 | Операционные системы[10] | ||||||
Meltdown Незаконная загрузка кэша данных | 2017-5754 | Не пострадал | Микрокод | Не пострадал | ||||
Spectre-NG v3a | 2018-3640 | Не пострадал[11] | Микрокод | |||||
Спектр-НГ v4 Спекулятивный обход магазина | 2018-3639 | Оборудование + ОС / VMM[11] | Микрокод + ОС | ОС / VMM | Оборудование + ОС / VMM | |||
Предзнаменование L1 Terminal Fault (Неисправность клеммы L1), L1TF | 2018-3615 | Не пострадал | Микрокод | Не пострадал | ||||
Спектр-НГ Ленивое восстановление состояния FP | 2018-3665 | ОС / VMM[12] | ||||||
Spectre-NG v1.1 Bounds Check Bypass Store | 2018-3693 | ОС / VMM[13] | ||||||
Spectre-NG v1.2 Обход защиты только для чтения (RPB) | Нет CVE и никогда не подтверждался Intel | Не пострадал[3] | ||||||
Foreshadow-OS L1 Terminal Fault (Неисправность клеммы L1) (L1TF) | 2018-3620 | Не пострадал | Микрокод + ОС | Не пострадал | ||||
Foreshadow-VMM L1 Terminal Fault (Неисправность клеммы L1) (L1TF) | 2018-3646 | |||||||
RIDL / ZombieLoad Выборка данных микроархитектурного буфера заполнения (MFBDS) | 2018-12130 | |||||||
RIDL Выборка данных порта нагрузки микроархитектуры (MLPDS) | 2018-12127 | Не пострадал | Не пострадал [1] | Не пострадал | Микрокод + ОС[14] | |||
RIDL Микроархитектурная выборка данных Некэшируемая память (MDSUM) | 2019-11091 | Не пострадал | Микрокод + ОС | |||||
Выпадать Выборка данных буфера хранилища микроархитектур (MSBDS) | 2018-12126 | Микрокод[15][16] | Не пострадал [2] | Не пострадал | Микрокод + ОС | |||
SWAPGS Spectre[17][18][19] | 2019-1125 | То же, что и Spectre 1 | ||||||
RIDL / ZombieLoad v2 Транзакционное асинхронное прерывание (TAA)[20][21][22] | 2019-11135 | Не пострадал[23] | Микрокод + ОС | |||||
RIDL / CacheOut L1D Выборка выселения (L1DES)[24][25][26] | 2020-0549 | Не пострадал | ||||||
RIDL Выборка векторного регистра (VRS)[24][25] | 2020-0548 | |||||||
Ввод значения нагрузки (LVI)[27][28][29][30] | 2020-0551 | Перекомпиляция программного обеспечения | ||||||
Забрать[31][32] | Не пострадал | Еще не исправлено (оспаривается[33])[34] | ||||||
CROSSTalk Специальная выборка данных буфера регистров (SRBDS)[35][36][37] | 2020-0543 | Не пострадал | Микрокод | Не пострадал | ||||
Слепая сторона[38][39] | Затронуто, пока не исправлено |
Архитектура Coffee Lake 8-го поколения в этой таблице также применяется к широкому спектру ранее выпущенных процессоров Intel, не ограничиваясь архитектурами на основе Intel Core, Pentium 4 и Intel Atom начиная с Silvermont.[40][41]. Также затронуты различные микроархитектуры ЦП, не указанные выше, в том числе IBM Power, РУКА, MIPS и другие.[42][43][44][45].
Будущее
Уязвимости класса Spectre останутся нефиксированными, потому что в противном случае разработчикам ЦП придется отключить OoOE что повлечет за собой серьезную потерю производительности.
Примечания
- 1.^ Степпинг 5 масштабируемых процессоров Intel® Xeon® 2-го поколения на основе микроархитектуры Cascade Lake подвержен как MSBDS, так и MLPDS.
Рекомендации
- ^ Кохер, Пол; Хорн, Янн; Фог, Андерс; Генкин, Даниил; Грусс, Даниэль. «Атаки призрака: использование спекулятивного исполнения» (PDF). Получено 2020-04-16.
- ^ «Разработка новых средств защиты оборудования». Intel. Получено 2019-06-12.
- ^ а б "Безопасность продуктов AMD | AMD". 2019-08-10. Получено 2019-08-10.
- ^ Катресс, доктор Ян. «Предварительный обзор теста Ice Lake: 10-нанометровая технология Intel». www.anandtech.com. Получено 2019-08-01.
- ^ онлайн, heise. «Intel Core i9-9900K с 8 ядрами и 5 ГГц для геймеров». Heise онлайн (на немецком). Получено 2018-10-09.
- ^ Катресс, Ян. «Анализ микроархитектуры AMD Zen 2: Ryzen 3000 и EPYC Rome». www.anandtech.com. Получено 2019-06-11.
- ^ https://developer.amd.com/wp-content/resources/90343-B_SoftwareTechniquesforManagingSpeculation_WP_7-18Update_FNL.pdf
- ^ «Призрак возвращается! Спекулятивные атаки с использованием буфера обратного стека» (PDF). www.usenix.org. Получено 2019-08-17.
- ^ Майсурадзе, Георгий; Россоу, Кристиан (2018). "ret2spec: Спекулятивное выполнение с использованием буферов стека возврата". Материалы конференции ACM SIGSAC 2018 по компьютерной и коммуникационной безопасности. С. 2109–2122. arXiv:1807.10364. Bibcode:2018arXiv180710364M. Дои:10.1145/3243734.3243761. ISBN 9781450356930.
- ^ https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fdf82a7856b32d905c39afc85e34364491e46346
- ^ а б «Разработка новых средств защиты оборудования». Intel. Получено 2019-04-28.
- ^ «ИНТЕЛ-СА-00145». Intel.
- ^ "Уязвимость Bounds Check Bypass Store (BCBS) (INTEL-OSS-10002)". Intel.
- ^ «Intel Deep Dive CPUID Enumeration and Architectural MSRs». Intel. Получено 2020-01-02.
- ^ «ИНТЕЛ-СА-00233». Intel. Получено 2020-07-15.
- ^ даниэльмгми (2020-07-15), danielmgmi / ледокол, получено 2020-07-15
- ^ «Решения Bitdefender SWAPGS для предотвращения атак». www.bitdefender.com. Получено 2019-08-07.
- ^ "Documentation / admin-guide / hw-vuln / spectre.rst - chromiumos / third_party / kernel - Git at Google". chromium.googlesource.com. Получено 2019-08-07.
- ^ Уиндер, Дэйви (6 августа 2019 г.). «Microsoft подтверждает новую уязвимость Windows для атаки на ЦП, советует всем пользователям выполнить обновление сейчас». Forbes. Получено 7 августа 2019.
- ^ «Cyberus Technology: асинхронное прерывание TSX». www.cyberus-technology.de. Получено 2019-11-12.
- ^ в 18:02, Шон Николс в Сан-Франциско, 12 ноября 2019 г. «Верный своему названию, недостаток процессора Intel ZombieLoad возвращается с новым вариантом». www.theregister.co.uk. Получено 2019-11-12.
- ^ Чимпану, Каталин. «Процессоры Intel Cascade Lake пострадали от новой атаки Zombieload v2». ZDNet. Получено 2019-11-12.
- ^ «Асинхронное прерывание Intel Deep Dive TSX». Intel. Получено 2020-01-02.
- ^ а б «MDS-атаки: выборка микроархитектурных данных». mdsattacks.com. Получено 2020-01-27.
- ^ а б «IPAS: INTEL-SA-00329». Технология @ Intel. 2020-01-27. Получено 2020-01-28.
- ^ "CacheOut". cacheoutattack.com. Получено 2020-01-29.
- ^ в 17:00, Томас Клэберн в Сан-Франциско 10 марта 2020 г. «Вы только LVI дважды: Meltdown. Продолжение поражает чипы Intel - и полное устранение уязвимости, связанной с вмешательством данных, будет стоить вам 50% + производительности». www.theregister.co.uk. Получено 2020-03-10.
- ^ "LVI: Взлом переходного выполнения с введением значения нагрузки". lviattack.eu. Получено 2020-03-10.
- ^ «ИНТЕЛ-СА-00334». Intel. Получено 2020-03-10.
- ^ «Глубокое погружение: введение значения нагрузки». software.intel.com. Получено 2020-03-10.
- ^ «Take A Way: изучение последствий для безопасности предикторов AMDCache Way Predictors» (PDF).
- ^ Март 2020, Пол Алкорн 07. «Обнаружены новые атаки AMD по побочным каналам, влияющие на архитектуру Zen». Оборудование Тома. Получено 2020-03-07.
- ^ Алкорн, Пол (9 марта 2020 г.). «Обнаружены новые атаки AMD по побочным каналам, влияющие на архитектуру Zen (ответ AMD)». Оборудование Тома. Получено 2020-06-10.
- ^ Чимпану, Каталин. «Процессоры AMD с 2011 по 2019 год уязвимы для двух новых атак». ZDNet. Получено 2020-09-11.
- ^ «КРОССТАЛК». VUSec. Получено 2020-06-09.
- ^ «Глубокое погружение: выборка данных специального буфера регистров». software.intel.com. Получено 2020-06-09.
- ^ «ИНТЕЛ-СА-00320». Intel. Получено 2020-06-09.
- ^ «Не будь слепой: наблюдайте, как спекулятивное зондирование памяти обходит защиту ядра, дает вредоносному ПО контроль root». www.theregister.com. Получено 2020-09-11.
- ^ "BlindSide". VUSec. Получено 2020-09-11.
- ^ «ИНТЕЛ-СА-00088». Intel. Получено 2018-09-01.
- ^ «ИНТЕЛ-СА-00115». Intel. Получено 2018-09-01.
- ^ "Страница статуса Meltdown и Spectre". wiki.netbsd.org. Получено 2019-09-29.
- ^ ООО, Арм. "Спекулятивная уязвимость процессора | Обновление проблем, связанных со спекуляцией кешем". ARM Разработчик. Получено 2019-09-29.
- ^ «Об уязвимостях спекулятивного исполнения в процессорах ARM и Intel». Служба поддержки Apple. Получено 2019-09-29.
- ^ «Возможное влияние на процессоры семейства POWER». Блог IBM PSIRT. 2019-05-14. Получено 2019-09-29.
внешняя ссылка
- Уязвимости, связанные со спекулятивным исполнением ЦП
- Систематическая оценка временных атак выполнения и защиты
- Динамическое дерево временных уязвимостей выполнения для процессоров Intel, AMD и ARM
- Transient Execution Attacks, Даниэль Грусс, 20 июня 2019 г.
- Ошибки ЦП
- Intel: уточненная терминология спекулятивного исполнения