Suicide
09.03.2020, 18:13
Группа исследователей из Грацского технического университета (Австрия), ранее известная разработкой методов атак MDS (https://www.opennet.ru/opennews/art.shtml?num=50684), NetSpectre (https://www.opennet.ru/opennews/art.shtml?num=49032), Throwhammer (https://www.opennet.ru/opennews/art.shtml?num=48591) и ZombieLoad (https://www.opennet.ru/opennews/art.shtml?num=51852), провела исследование специфичных для процессоров AMD аппаратных оптимизаций и разработала (https://mlq.me/download/takeaway.pdf) два новых метода атак по сторонним каналам, манипулирующих утечками данных в процессе работы механизма предсказания каналов кэша первого уровня процессоров AMD. Методы могут использоваться для снижения эффективности защиты ASLR, восстановления ключей в уязвимых реализациях AES и повышения эффективности атаки Spectre.
Проблемы выявлены в реализации механизма предсказания канала (way predictor) в кэше данных первого уровня CPU (L1D), используемого для предсказания в каком канале кэша отражён определённый адрес памяти. Применяемая в процессорах AMD оптимизация основывается на проверке μ-тегов (μTag). μTag вычисляется через применение специфичной хэш-функции к виртуальному адресу. В процессе работы механизм предсказания канала использует μTag для определения канала кэша по таблице. Таким образом, μTag позволяет процессору ограничиться обращением только к конкретному каналу, без перебора всех вариантов, что существенно снижает потребление энергии CPU.
https://www.opennet.ru/opennews/pics_base/0_1583604685.png
В ходе обратного инжиниринга реализации системы предсказания канала в различных поколениях процессоров AMD, выпускаемых с 2011 по 2019 год, выявлены две новые техники атак по сторонним каналам:
Collide+Probe - даёт возможность атакующему отслеживать обращение к памяти для процессов, выполняемых на том же логическом ядре CPU. Суть метода в использовании виртуальных адресов, вызывающих коллизии хэш функции, применяемой для вычисления μTag, для отслеживания доступа к памяти. В отличие от атак Flush+Reload и Prime+Probe, применяемых на процессорах Intel, Collide+Probe не использует разделяемую память и работает без знания физических адресов.
Load+Reload - позволяет очень точно определять следы доступа к памяти на том же физическом ядре CPU. Метод основывается на том, что ячейка физической памяти может находится в кэше L1D только один раз. Т.е. доступ к одной и той же ячейке памяти по другому виртуальному адресу приведёт к вытеснению ячейки из кэша L1D, что позволяет отслеживать доступ к памяти. Несмотря на то, что атака зависит от разделяемой памяти, она не приводит к сбросу линий кэша, что даёт возможность проведения скрытых атак, не вытесняющих данные из кэша последнего уровня.
На основе техник Collide+Probe и Load+Reload исследователями продемонстрировано несколько сценариев атаки по сторонним каналам:
Показана возможность использования методов для организации скрытого косвенного канала связи между двумя процессами, позволяющего передавать данные на скорости до 588 кB в секунду.
Используя коллизии в μTag удалось добиться сокращения энтропии для разных вариантов ASLR (Address Space Layout Randomization) и обойти защиту ASLR в ядре на полностью обновлённой Linux-системе. Показана возможность совершения атаки по снижению энтропии ASLR как из пользовательских приложений, так и при помощи выполняемого в sandbox-окружении JavaScript-кода и кода, запущенного в другом гостевом окружении.
https://www.opennet.ru/opennews/pics_base/0_1583606644.png
На базе метода Collide+Probe реализована атака по восстановлению ключа шифрования из уязвимой реализации (на основе T-table (https://cr.yp.to/antiforgery/cachetiming-20050414.pdf)) шифрования AES.
Применив метод Collide+Probe в качестве канала для получения данных в ходе атаки Spectre удалось извлечь закрытые данные из ядра, не используя разделяемую память.
Уязвимость проявляется на процессорах AMD на базе микроархитектур Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ и Zen2. Компания AMD была уведомлена о проблеме 23 августа 2019 года, но пока не выпустила отчёт (https://www.amd.com/en/corporate/product-security) с информацией о блокировании уязвимости. По данным исследователей проблему можно блокировать на уровне обновления микрокода через предоставление MSR-битов для выборочного отключения системы предсказания канала, по аналогии с тем, как поступила компания Intel для управления отключением механизмов предсказания переходов.
https://www.opennet.ru/opennews/pics_base/0_1583605709.png
07.03.2020
https://www.opennet.ru/opennews/art.shtml?num=52501
Проблемы выявлены в реализации механизма предсказания канала (way predictor) в кэше данных первого уровня CPU (L1D), используемого для предсказания в каком канале кэша отражён определённый адрес памяти. Применяемая в процессорах AMD оптимизация основывается на проверке μ-тегов (μTag). μTag вычисляется через применение специфичной хэш-функции к виртуальному адресу. В процессе работы механизм предсказания канала использует μTag для определения канала кэша по таблице. Таким образом, μTag позволяет процессору ограничиться обращением только к конкретному каналу, без перебора всех вариантов, что существенно снижает потребление энергии CPU.
https://www.opennet.ru/opennews/pics_base/0_1583604685.png
В ходе обратного инжиниринга реализации системы предсказания канала в различных поколениях процессоров AMD, выпускаемых с 2011 по 2019 год, выявлены две новые техники атак по сторонним каналам:
Collide+Probe - даёт возможность атакующему отслеживать обращение к памяти для процессов, выполняемых на том же логическом ядре CPU. Суть метода в использовании виртуальных адресов, вызывающих коллизии хэш функции, применяемой для вычисления μTag, для отслеживания доступа к памяти. В отличие от атак Flush+Reload и Prime+Probe, применяемых на процессорах Intel, Collide+Probe не использует разделяемую память и работает без знания физических адресов.
Load+Reload - позволяет очень точно определять следы доступа к памяти на том же физическом ядре CPU. Метод основывается на том, что ячейка физической памяти может находится в кэше L1D только один раз. Т.е. доступ к одной и той же ячейке памяти по другому виртуальному адресу приведёт к вытеснению ячейки из кэша L1D, что позволяет отслеживать доступ к памяти. Несмотря на то, что атака зависит от разделяемой памяти, она не приводит к сбросу линий кэша, что даёт возможность проведения скрытых атак, не вытесняющих данные из кэша последнего уровня.
На основе техник Collide+Probe и Load+Reload исследователями продемонстрировано несколько сценариев атаки по сторонним каналам:
Показана возможность использования методов для организации скрытого косвенного канала связи между двумя процессами, позволяющего передавать данные на скорости до 588 кB в секунду.
Используя коллизии в μTag удалось добиться сокращения энтропии для разных вариантов ASLR (Address Space Layout Randomization) и обойти защиту ASLR в ядре на полностью обновлённой Linux-системе. Показана возможность совершения атаки по снижению энтропии ASLR как из пользовательских приложений, так и при помощи выполняемого в sandbox-окружении JavaScript-кода и кода, запущенного в другом гостевом окружении.
https://www.opennet.ru/opennews/pics_base/0_1583606644.png
На базе метода Collide+Probe реализована атака по восстановлению ключа шифрования из уязвимой реализации (на основе T-table (https://cr.yp.to/antiforgery/cachetiming-20050414.pdf)) шифрования AES.
Применив метод Collide+Probe в качестве канала для получения данных в ходе атаки Spectre удалось извлечь закрытые данные из ядра, не используя разделяемую память.
Уязвимость проявляется на процессорах AMD на базе микроархитектур Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ и Zen2. Компания AMD была уведомлена о проблеме 23 августа 2019 года, но пока не выпустила отчёт (https://www.amd.com/en/corporate/product-security) с информацией о блокировании уязвимости. По данным исследователей проблему можно блокировать на уровне обновления микрокода через предоставление MSR-битов для выборочного отключения системы предсказания канала, по аналогии с тем, как поступила компания Intel для управления отключением механизмов предсказания переходов.
https://www.opennet.ru/opennews/pics_base/0_1583605709.png
07.03.2020
https://www.opennet.ru/opennews/art.shtml?num=52501