#security #caching #spectre
#Безопасность #кэширование #призрак
Вопрос:
Я пытаюсь выяснить, в чем разница между двумя атаками по боковому каналу кэша: Prime и Probe против выселения и перезагрузки. Похоже, что обе атаки идентичны — злоумышленник удаляет данные из наборов кэша, заполняя их своими собственными данными, затем он периодически проверяет, есть ли промах или попадание в кэш, и это позволяет ему определить схему доступа к памяти, выполняемую жертвой. Я нашел лекцию из Black Hat Asia 2017, в которой они объясняют, что Prime и Probe не требуют общей памяти, поэтому я предполагаю, что обе атаки идентичны, но термин Prime и Probe относится к удалению и перезагрузке в неразделенной памяти?
Ответ №1:
Выселение перезагрузка использует общую память (обычно общую библиотеку) посередине. Злоумышленник сначала удаляет общую память из набора кэша с использованием набора выселений. Если жертва теперь получит доступ к общей памяти, она перезапишет данные злоумышленника в кэше. Злоумышленник теперь также получает доступ к общей памяти и измеряет, сколько времени это занимает. Если это было быстро, жертва обращалась к разделяемой памяти между ними, если медленно, он этого не делал.
Теперь для Prime Probe злоумышленник сначала вводит / заполняет набор кэша своим «набором для выселения». Теперь злоумышленник может получить доступ к своей памяти, которая сопоставляется с тем же набором кэша, и, следовательно, удаляет некоторые данные злоумышленника. Теперь злоумышленник получает доступ ко всей своей памяти и измеряет время. Если это было быстро, жертва не обращалась к памяти, если это было медленно, он обращался (потому что у нас есть промах кэша).
Таким образом, по сути, идея, лежащая в основе двух атак, схожа, но Prime Probe не нуждается в общей памяти и поэтому работает немного по-другому.