گروهی از محققان دانشگاه فنی گراتس (اتریش) و مرکز امنیت اطلاعات هلمهولتز (CISPA)،
حمله Foreshadow از این واقعیت استفاده می کند که وقتی به حافظه در یک آدرس مجازی دسترسی پیدا می شود که منجر به یک استثنا (عیب صفحه ترمینال) می شود، پردازشگر به طور فرضی آدرس فیزیکی را محاسبه می کند و اگر داده ها در حافظه نهان L1 موجود باشد، آن را بارگذاری می کند. دسترسی احتمالی قبل از تکمیل جستجوی جدول صفحه حافظه و بدون توجه به وضعیت ورودی جدول صفحه حافظه (PTE) انجام می شود. قبل از بررسی وجود داده در حافظه فیزیکی و خوانایی آن. پس از تکمیل بررسی در دسترس بودن حافظه، در صورت عدم وجود پرچم موجود در PTE، عملیات کنار گذاشته میشود، اما دادهها در حافظه پنهان باقی میمانند و میتوان با استفاده از روشهایی برای تعیین محتوای کش از طریق کانالهای جانبی (با تجزیه و تحلیل تغییرات در زمان دسترسی) آن را بازیابی کرد. به داده های کش و کش نشده).
محققان نشان دادهاند که روشهای حفاظتی موجود در برابر Foreshadow ناکارآمد هستند و با تفسیر نادرستی از مشکل اجرا میشوند. آسیب پذیری
Foreshadow را می توان بدون توجه به مکانیسم های امنیتی هسته که قبلاً کافی در نظر گرفته می شد مورد سوء استفاده قرار داد. در نتیجه، محققان امکان انجام یک حمله Foreshadow را بر روی سیستمهایی با هستههای نسبتا قدیمی، که در آن همه حالتهای حفاظتی Foreshadow در دسترس فعال هستند، و همچنین با هستههای جدید، که در آنها فقط حفاظت Spectre-v2 غیرفعال است (با استفاده از گزینه هسته لینوکس nospectre_v2).
مشخص شد که
واکشی اولیه در هنگام دسترسی به حافظه، اما زمانی اتفاق میافتد که ارجاعات گمانهزنی فضای کاربر در هسته ثبت میشود. این تفسیر نادرست از علت آسیبپذیری در ابتدا منجر به این فرض شد که نشت داده در Foreshadow فقط میتواند از طریق حافظه پنهان L1 رخ دهد، در حالی که وجود قطعههای کد خاص (ابزارهای پیش واکشی) در هسته میتواند به نشت دادهها در خارج از حافظه پنهان L1 کمک کند. به عنوان مثال، در حافظه نهان L3.
ویژگی شناسایی شده همچنین امکان ایجاد حملات جدید با هدف فرآیندهای ترجمه آدرس های مجازی به آدرس های فیزیکی در محیط های ایزوله و تعیین آدرس ها و داده های ذخیره شده در ثبات های CPU را باز می کند. به عنوان نمونه، محققان امکان استفاده از اثر شناسایی شده را برای استخراج داده ها از یک فرآیند به فرآیند دیگر با عملکرد حدود 10 بیت در ثانیه در سیستمی با پردازنده مرکزی Intel Core i7-6500U نشان دادند. امکان نشت محتویات رجیستر از محفظه Intel SGX نیز نشان داده شده است (32 دقیقه طول کشید تا یک مقدار 64 بیتی نوشته شده در یک ثبات 15 بیتی تعیین شود). برخی از انواع حملات در جاوا اسکریپت و WebAssembly امکان پذیر است، به عنوان مثال، امکان تعیین آدرس فیزیکی متغیر جاوا اسکریپت و پر کردن ثبات های 64 بیتی با مقدار کنترل شده توسط مهاجم وجود داشت.
برای جلوگیری از حمله Foreshadow از طریق حافظه نهان L3، روش حفاظتی Spectre-BTB (Branch Target Buffer) که در مجموعه پچ retpoline اجرا شده است، موثر است. بنابراین، محققان بر این باورند که حتی در سیستمهایی با پردازندههای مرکزی جدید که از قبل در برابر آسیبپذیریهای شناخته شده در مکانیسم اجرای حدسزنی CPU محافظت دارند، لازم است retpoline فعال شود. در همان زمان، نمایندگان اینتل اعلام کردند که قصد ندارند اقدامات حفاظتی اضافی در برابر Foreshadow را به پردازندهها اضافه کنند و شامل محافظت در برابر حملات Spectre V2 و L1TF (Foreshadow) کافی میدانند.
منبع: opennet.ru