محققان دانشگاه وریج آمستردام، یک حمله کانال جانبی (side-channel) جدید به نام حمله SLAM را معرفی کردند که میتواند برای افشای اطلاعات حساس از حافظه کرنل[1] در CPUهای فعلی و آتی Intel ، AMD و Arm مورد سوء استفاده قرار گیرد. این حمله یک اکسپلویت end-to-end برای Spectre است که بر اساس ویژگی جدیدی در CPUهای Intel به نام LAM[2] و همچنین مشابه آن در AMD با نام UAI[3] و در Arm نیز با نام[4] TBIشناخته میشود.
SLAM که کوتاه شده عبارت Spectre مبتنی بر LAM است به یک فرآیند اجازه میدهد تا دادههای کرنل ASCII[5] دلخواه را فاش کرده و از آن برای استخراج هش پسورد روت از حافظه کرنل در عرض چند دقیقه استفاده کند. در حالی که LAM به عنوان یک ویژگی امنیتی ارائه میشود، این مطالعه نشان داد که بر خلاف انتظار، امنیت را کاهش داده و به طور چشمگیری سطح حمله Spectre را افزایش میدهد که منجر به یک حمله اجرای گذرا یا transient execution میشود که از حمله speculative execution (معروف به اجرای گمانه زنی یا اجرای پیش بینانه) برای استخراج داده های حساس از طریق یک کانال مخفی حافظه کَش[6] سوء استفاده میکند.
اینتل در مستندات خود اعلام کرد که یک حمله اجرای گذرا از اثرات جانبی ریزمعماری دستورالعملهای گذرا سوء استفاده میکند، از این رو به یک مهاجم اجازه میدهد به اطلاعاتی دست یابد که معمولاً توسط مکانیزمهای کنترل دسترسی معماری، ممنوع میباشند.
SLAM که به عنوان اولین حمله اجرای گذرا با نفوذ به CPUهای آینده توصیف میشود، از یک کانال مخفی جدید مبتنی بر ترجمه آدرس غیر متعارف استفاده میکند که اکسپلویت عملی از ابزارهای عمومی Spectre را برای افشای اطلاعات ارزشمند تسهیل میبخشد و CPUهای زیر را تحت تأثیر قرار میدهد:
- CPUهای موجود AMD در برابر CVE-2020-12965 آسیب پذیر میباشند.
- CPUهای آتی اینتل که از LAM (صفحه بندی ۴ و ۵ سطحی) پشتیبانی خواهند کرد.
- CPUهای آتی AMD که از UAI و صفحه بندی ۵ سطحی پشتیبانی خواهند کرد.
- پردازندههای ARM آتی که از TBI و صفحه بندی ۵ سطحی پشتیبانی خواهند کرد.
Arm در مشاوره ای عنوان کرد که سیستمهای Arm در حال حاضر در برابر Spectre v2 و BHB مقاوم هستند و این وظیفه نرم افزار است که از خود در برابر Spectre v1 محافظت به عمل آورد. تکنیکهای توصیف شده تنها سطح حمله آسیب پذیریهای موجود مانند Spectre v2 یا BHB را با افزایش تعداد گجتهای قابل بهره برداری افزایش میدهند.
AMD همچنین به مکانیزمهای فعلی Spectre v2 برای رسیدگی به اکسپلویت SLAM اشاره کرده است. از سوی دیگر، اینتل قصد دارد تا قبل از عرضه پردازنده های جدید خود که از LAM پشتیبانی میکنند، راهنماییهای نرم افزاری ارائه دهد. حامیان لینوکس در این مدت به طور پیش فرض اصلاحاتی برای غیرفعال سازی LAM ایجاد کردهاند.
این یافتهها تقریباً دو ماه پس از افشای VUSec در قرنطینه، یک رویکرد نرمافزاری برای کاهش حملات اجرای گذرا و دستیابی به ایزولهسازی دامنه فیزیکی با پارتیشنبندی آخرین سطح حافظه کَش (LLC[7]) به منظور دسترسی انحصاری به هر دامنه امنیتی به بخش متفاوتی از LLC با هدف از بین بردن کانال های مخفی LLC حاصل گردید.
ایزولهسازی دامنه فیزیکی قرنطینه، حوزههای امنیتی مختلف را بر روی هستههای جداگانه متمایز میکند تا از به اشتراک گذاری منابع ریزمعماری مرکزی آنها جلوگیری کند و علاوه بر آن، LLC را لغو اشتراک کرده و آن را در میان دامنههای امنیتی تقسیم میکند.
[1] kernel
[2] Linear Address Making
[3] Upper Address Ignore
[4] Top Byte Ignore
[5] American Standard Code for Information Interchange
[6] cache covert channel
[7] Last level cache