
Спекулятивные риски загрузки усиливают Rowhammer и кэш-атаки - CVE-2019-0162 -
https://www.usenix.org/system/files/sec19-islam.pdf
@inproceedings {236252,
author = {Saad Islam and Ahmad Moghimi and Ida Bruhns and Moritz Krebbel and Berk Gulmezoglu and Thomas Eisenbarth and Berk Sunar},
title = {{SPOILER}: Speculative Load Hazards Boost Rowhammer and Cache Attacks},
booktitle = {28th {USENIX} Security Symposium ({USENIX} Security 19)},
year = {2019},
isbn = {978-1-939133-06-9},
address = {Santa Clara, CA},
pages = {621--637},
url = {https://www.usenix.org/conference/usenixsecurity19/presentation/islam},
publisher = {{USENIX} Association},
month = aug,
}
Saad Islam и Ahmad Moghimi, Worcester Polytechnic Institute; Ida Bruhns и Moritz Krebbel, University of Luebeck; Berk Gulmezoglu, Worcester Polytechnic Institute; Thomas Eisenbarth, Worcester Polytechnic Institute и University of Luebeck; Berk Sunar, Worcester Polytechnic Institute
Современные микроархитектуры включают методы оптимизации, такие как спекулятивные загрузки и пересылка данных из магазина, для устранения узкого места памяти. Процессор выполняет загрузку спекулятивно до магазинов и пересылает данные предыдущего магазина в загрузку, если существует потенциальная зависимость. Это повышает производительность, так как загрузке не нужно ждать завершения предыдущих магазинов. Однако предсказание зависимостей основано на частичной информации об адресах, что может привести к ложным зависимостям и рискам блокировки.
В этой работе мы впервые показываем, что логика разрешения зависимостей, обслуживающая спекулятивную загрузку, может быть использована для получения информации об отображениях физических страниц. Микроархитектурные атаки по боковым каналам, такие как Rowhammer, и атаки на кэш, например Prime+Probe, полагаются на обратное проектирование отображения виртуальных адресов на физические. Мы предлагаем атаку SPOILER, которая использует эту утечку для ускорения обратного проектирования в 256 раз. Затем мы показываем, как это может улучшить атаку Prime+Probe за счет ускорения поиска множества вытеснения в 4096 раз, даже из изолированных сред, таких как JavaScript. Наконец, мы улучшаем атаку Rowhammer, показывая, как SPOILER помогает проводить конфликты строк DRAM детерминированно с вероятностью до 100%, и демонстрируя двустороннюю атаку Rowhammer с правами обычного пользователя. Последнее стало возможным благодаря обнаружению смежных страниц памяти с помощью утечки SPOILER.
$ make
$ ./spoiler
Установите gnuplot, если он еще не установлен, или постройте график t2.txt в любом другом ПО. Предоставлен MATLAB скрипт plot_t2.m.
$ gnuplot
gnuplot> plot 't2.txt' with lines
Если вы видите пики, похожие на peaks_linux.png, ваш ЦП уязвим для SPOILER. Если нет, вы можете попробовать поиграть с параметрами "PAGE_COUNT, WINDOW и THRESH_OUTLIER". Например, для процессора 11-го поколения сработало изменение размера WINDOW на 256. Причина может быть в том, что размер буфера магазина увеличивается в более поздних поколениях. Пожалуйста, прочитайте статью для подробностей.
Запустите "spoiler.exe" двойным щелчком или из командной строки. Если вам нужно изменить какие-либо параметры, пожалуйста, перекомпилируйте код. Постройте график "t2.txt" с помощью любого ПО или с помощью MATLAB скрипта plot_t2.m.