LVI یک کلاس جدید از حملات به مکانیسم اجرای گمانه زنی در CPU است

منتشر شده اطلاعات مربوط به دسته جدیدی از حملات LVI (تزریق ارزش بار، CVE-2020-0551) در مورد مکانیسم اجرای گمانه زنی در CPUهای اینتل، که می تواند برای افشای کلیدها و داده های مخفی از محصورات SGX اینتل و سایر فرآیندها استفاده شود.

دسته جدیدی از حملات مبتنی بر دستکاری همان ساختارهای ریزمعماری مورد استفاده در حملات است MDS (نمونه‌گیری داده‌های ریزمعماری)، Spectre و Meltdown. در عین حال، حملات جدید با روش‌های حفاظتی موجود در برابر Meltdown، Spectre، MDS و سایر حملات مشابه مسدود نمی‌شوند. حفاظت موثر LVI نیازمند تغییرات سخت افزاری در CPU است. هنگام سازماندهی حفاظت به صورت برنامه ای، با افزودن دستورالعمل LFENCE توسط کامپایلر پس از هر بار عملیات بارگیری از حافظه و جایگزینی دستورالعمل RET با POP، LFENCE و JMP، سربار بیش از حد ثبت می شود - به گفته محققان، حفاظت کامل نرم افزار منجر به کاهش در عملکرد 2-19 برابر.

بخشی از مشکل در مسدود کردن مشکل با این واقعیت جبران می شود که حمله در حال حاضر بیشتر تئوری است تا عملی (حمله از نظر تئوری امکان پذیر است، اما اجرای آن بسیار دشوار است و فقط در آزمایش های مصنوعی قابل تکرار است).
اینتل اختصاص داده شده است مشکل دارای سطح خطر متوسط ​​(5.6 از 10) و منتشر شد به روز رسانی سیستم عامل و SDK برای محیط SGX، که در آن سعی کرد با استفاده از یک راه حل، حمله را مسدود کند. روش‌های حمله پیشنهادی در حال حاضر فقط برای پردازنده‌های اینتل قابل اجرا هستند، اما امکان تطبیق LVI برای سایر پردازنده‌هایی که حملات کلاس Meltdown برای آنها قابل اجرا هستند را نمی‌توان رد کرد.

این مشکل در آوریل گذشته توسط محقق Jo Van Bulck از دانشگاه لوون شناسایی شد و پس از آن با مشارکت 9 محقق از دانشگاه های دیگر، پنج روش حمله اساسی ایجاد شد که هر کدام امکان وجود روش های خاص تری را فراهم می کند. گزینه ها. به طور مستقل، در فوریه سال جاری، محققان از Bitdefender نیز کشف شده یکی از انواع حمله LVI و آن را به اینتل گزارش داد. انواع حمله با استفاده از ساختارهای ریزمعماری مختلف، مانند بافر ذخیره سازی (SB، Store Buffer)، بافر پر (LFB، Line Fill Buffer)، بافر سوئیچ زمینه FPU و حافظه نهان سطح اول (L1D) که قبلا استفاده شده است، متمایز می شوند. در حملاتی مانند ZombieLoad, RIDL, خرید اینترنتی, LazyFP, پیش بینی کنید и بحران.

LVI یک کلاس جدید از حملات به مکانیسم اجرای گمانه زنی در CPU است

اصلی افتخارات LVI در برابر حملات MDS این است که MDS تعیین محتویات ساختارهای ریزمعماری باقیمانده در حافظه پنهان را پس از رسیدگی احتمالی خطا یا بارگذاری و ذخیره‌سازی عملیات دستکاری می‌کند.
حملات LVI به داده‌های مهاجم اجازه می‌دهد تا در ساختارهای ریزمعماری درج شوند تا بر اجرای گمانه‌زنی بعدی کد قربانی تأثیر بگذارند. با استفاده از این دستکاری‌ها، مهاجم می‌تواند محتویات ساختارهای داده خصوصی را در فرآیندهای دیگر هنگام اجرای کد خاصی بر روی هسته CPU هدف استخراج کند.

LVI یک کلاس جدید از حملات به مکانیسم اجرای گمانه زنی در CPU است

برای مشکل بهره برداری در کد فرآیند قربانی باید ملاقات کند دنباله‌های خاصی از کد (گجت‌ها) که در آن یک مقدار کنترل‌شده توسط مهاجم بارگذاری می‌شود، و بارگذاری این مقدار باعث می‌شود که استثناها (عیب، لغو یا کمک) پرتاب شوند، نتیجه را کنار بگذارند و دستورالعمل را دوباره اجرا کنند. هنگامی که یک استثنا پردازش می شود، یک پنجره گمانه زنی ظاهر می شود که در طی آن داده های پردازش شده در ابزار نشت می کند. به طور خاص، پردازنده شروع به اجرای یک قطعه کد (ابجت) در حالت حدسی می‌کند، سپس تشخیص می‌دهد که پیش‌بینی موجه نبوده و عملیات را به حالت اولیه خود برمی‌گرداند، اما داده‌های پردازش شده در حین اجرای حدسی در حافظه پنهان L1D سپرده می‌شود. و بافرهای ریزمعماری و برای بازیابی از آنها با استفاده از روش های شناخته شده برای تعیین داده های باقی مانده از طریق کانال های شخص ثالث در دسترس است.

استثنای «کمک»، برخلاف استثنای «عیب»، به صورت داخلی توسط پردازنده بدون فراخوانی کنترل‌کننده‌های نرم‌افزار مدیریت می‌شود. برای مثال، زمانی که بیت A (دسترسی شده) یا D (کثیف) در جدول صفحه حافظه نیاز به به روز رسانی دارد، Assist ممکن است رخ دهد. مشکل اصلی در انجام حمله به فرآیندهای دیگر این است که چگونه می توان با دستکاری فرآیند قربانی، وقوع کمک را آغاز کرد. در حال حاضر هیچ راه قابل اعتمادی برای انجام این کار وجود ندارد، اما این امکان وجود دارد که در آینده پیدا شوند. امکان انجام یک حمله تاکنون فقط برای محصورهای Intel SGX تایید شده است، سناریوهای دیگر تئوری یا قابل تکرار در شرایط مصنوعی هستند (نیاز به افزودن ابزارهای خاصی به کد است)

LVI یک کلاس جدید از حملات به مکانیسم اجرای گمانه زنی در CPU است

LVI یک کلاس جدید از حملات به مکانیسم اجرای گمانه زنی در CPU است

بردارهای حمله احتمالی:

  • نشت داده ها از ساختارهای هسته به فرآیند سطح کاربر. حفاظت هسته لینوکس در برابر حملات Spectre 1 و همچنین مکانیسم حفاظتی SMAP (Supervisor Mode Access Prevention) احتمال حمله LVI را به میزان قابل توجهی کاهش می دهد. اگر روش‌های ساده‌تر حمله LVI در آینده شناسایی شوند، ممکن است افزودن حفاظت اضافی به هسته ضروری باشد.
  • نشت داده ها بین فرآیندهای مختلف حمله مستلزم وجود قطعات خاصی از کد در برنامه و تعریف روشی برای پرتاب استثنا در فرآیند هدف است.
  • نشت داده ها از محیط میزبان به سیستم مهمان. این حمله به عنوان بیش از حد پیچیده طبقه بندی می شود که به مراحل مختلف دشوار برای پیاده سازی و پیش بینی فعالیت در سیستم نیاز دارد.
  • نشت داده بین فرآیندها در سیستم های مهمان مختلف بردار حمله به سازماندهی نشت داده بین فرآیندهای مختلف نزدیک است، اما علاوه بر این به دستکاری های پیچیده برای دور زدن انزوا بین سیستم های مهمان نیاز دارد.

توسط محققان منتشر شده است برخی از نمونه های اولیه با نمایش اصول انجام یک حمله، اما هنوز برای انجام حملات واقعی مناسب نیستند. مثال اول به شما امکان می دهد تا اجرای کدهای گمانه زنی را در فرآیند قربانی تغییر مسیر دهید، مشابه برنامه نویسی بازگشت گرا (ROPبرنامه نویسی بازگشت گرا). در این مثال، قربانی یک فرآیند خاص آماده شده است که حاوی ابزارهای لازم است (اعمال حمله به فرآیندهای شخص ثالث واقعی دشوار است). مثال دوم به ما اجازه می دهد تا در محاسبات در حین رمزگذاری AES در داخل محفظه Intel SGX دخالت کنیم و نشت داده را در حین اجرای گمانه زنی دستورالعمل ها سازماندهی کنیم تا ارزش کلید مورد استفاده برای رمزگذاری را بازیابی کنیم.


منبع: opennet.ru

اضافه کردن نظر