
مخاطر التحميل التخميني تعزز هجمات 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، معهد ورسستر للفنون التطبيقية؛ Ida Bruhns و Moritz Krebbel، جامعة لوبيك؛ Berk Gulmezoglu، معهد ورسستر للفنون التطبيقية؛ Thomas Eisenbarth، معهد ورسستر للفنون التطبيقية وجامعة لوبيك؛ Berk Sunar، معهد ورسستر للفنون التطبيقية
تتضمن البنى الدقيقة الحديثة تقنيات تحسين مثل التحميل التخميني (speculative loads) وإعادة توجيه التخزين (store forwarding) للتغلب على عنق الزجاجة في الذاكرة. ينفّذ المعالج عملية التحميل بشكل تخميني قبل عمليات التخزين، ويقوم بإعادة توجيه بيانات عملية تخزين سابقة إلى التحميل في حال وجود اعتماد محتمل. يعزز ذلك الأداء لأن التحميل لا يضطر إلى انتظار اكتمال عمليات التخزين السابقة. غير أن التنبؤ بالاعتماد يعتمد على معلومات جزئية عن العنوان، مما قد يؤدي إلى اعتمادات كاذبة ومخاطر تعليق. في هذا العمل، نُظهر ولأول مرة أن منطق حل الاعتماد الذي يخدم التحميل التخميني يمكن استغلاله للحصول على معلومات حول تعيينات الصفحات الفعلية. تعتمد هجمات القنوات الجانبية للبنية الدقيقة، ومنها هجمات 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 and THRESH_OUTLIER". فعلى سبيل المثال، بالنسبة لمعالج من الجيل الحادي عشر، نجح تغيير حجم WINDOW إلى 256. قد يعود السبب إلى أن حجم مخزن التخزين المؤقت (store buffer) يزداد في الأجيال الأحدث. يُرجى قراءة الورقة العلمية للتفاصيل.
قم بتشغيل "spoiler.exe" بالنقر المزدوج أو من موجه الأوامر. إذا كنت بحاجة إلى تغيير أي معاملات، فيُرجى إعادة ترجمة الكود. ارسم "t2.txt" باستخدام أي برنامج أو باستخدام سكربت MATLAB النصي plot_t2.m.