چاپ        ارسال به دوست

حملات تزریق مقدار بار(LVI (LOAD VALUE INJECTION

حملات LIV نوعی جدید از حملات با شناسه CVE-۲۰۲۰-۰۵۵۱ است که از آسیب‌پذیری ریزمعماری موجود در پردازنده‌های مدرن برای تزریق داده‌های مهاجم به برنامه قربانی و سرقت کلیدها و اطلاعات حساس از Intel SGX که محیطی امن برای داده‌های شخصی در پردازنده‌های اینتل محسوب می‌شود، بهره‌برداری می‌کند. این حمله همه‌ی حملات پیشین استخراج داده مانند Meltdown، Foreshadow، ZombieLoad، RIDL و Fallout را متحول کرده و همه‌ی راه‌های مقابله با این حملات را شکست داده و بی‌اثر می‌کند. در این حملات شیوه‌ی معکوس روش معمول «نفوذ و استخراج داده» از قربانی و ارسال آن به مهاجم اتخاذ شده است و مهاجم داده‌ی خود را از طریق بافرهای مخفی پردازنده به برنامه‌ی قربانی ترزیق (قاچاق) کرده و اجرای آن را برای کشف اطلاعات حساس مانند رمزعبور یا اثرانگشت قربانی hijack می‌کند.
واضح است که مقابله با حملات LVI و کاهش مخاطرات آن نسبت به دیگر حملات مذکور دشوارتر است چرا که این حمله هر نوع دسترسی به حافظه را تحت تاثیر قرار می‌دهد و مهاجم می‌تواند با hijack جریان داده، مسیر اجرای برنامه را به گونه‌ای تغییر دهد که مکانیزم‌های دفاعی را دور بزند. برخلاف دیگر حملات از نوع Meltdown، در حال حاضر مخاطرات حمله‌ی LVI در پردازنده‌های فعلی را نمی‌توان با الزام کردن وصله‌های نرم‌افزاری پرهزینه که محاسبات در SGX اینتل را دو تا ۱۹ برابر کندتر خواهد کرد، کاهش داد. در این گزارش باتمرکز بر حملات LVI به بررسی حملاتی که از آسیب‌پذیری‌های موجود در پردازنده‌ها بهره‌برداری می‌کنند می‌پردازیم.
۱ پیشینه حملات مبتنی بر پردازنده
در سال ۲۰۱۸ حملات Meltdown و Spectre که از آسیب‌پذیری‌های سخت‌افزاری بحرانی در پردازنده‌های مدرن در کامپیوترهای شخصی، دستگاه‌های موبایل و فضای ابری (به طور کلی هر پردازنده‌ی اینتلی که اجرای out-of-order را پیاده‌سازی می‌کند) بهره‌برداری می‌کردند، مشاهده شد. توضیح مختصری در خصوص هر حمله در زیر آمده است:
حمله‌ی Meltdown: این حمله با بهره‌برداری از آسیب‌پذیری‌ CVE-2017-5754 اساسی‌ترین ایزولاسیون بین اپلیکیشن‌های کاربر و سیستم عامل را از بین برده و با ارتقای سطح دسترسی به استخراج داده از بافرهای مخفی پردازنده می‌پردازد؛ درنتیجه به حافظه و به دنبال آن داده‌های محرمانه‌ی‌ سیستم عامل و دیگر برنامه‌ها دسترسی پیدا می‌کند. خوشبختانه وصله‌های امنیتی برای مقابله با این حمله وجود دارد.
حمله‌ی Spectre: این حمله با بهره‌برداری از آسیب‌پذیری‌های CVE-2017-5753 و CVE-2017-5715، ایزولاسیون بین اپلیکشن‌های مختلف را با تزریق دسته‌ای از تصمیمات اشتباه به اپلیکشین‌ها از بین برده و امکان سرقت داده‌های محرمانه این برنامه‌ها را برای مهاجم فراهم می‌کند. اعمال این نوع حملات دشوارتر از حملات Meltdown است اما مقابله با نیز دشوارتر است.
از آنجایی که بهره‌برداری از این دو حمله، هیچ ردی در فایل‌های لاگ معمول به جا نمی‌گذارد به طور کلی نمی‌توان متوجه شد که آیا مهاجم به یک سیستم مشخص حمله کرده است یا خیر.
۲ حمله‌ی LVI در چهار گام
حملات (LVI (Load Value Injection ترکیبی از شیوه حمله Spectre از قطعه کدهای «confused deputy» در برنامه‌های قربانی و Meltdown است به طور دقیق‌تر این شیوه شامل استفاده‌ی غیرمجاز از جریان داده‌های تولید شده توسط دستورالعمل‌های معیوب بارگذاری حافظه، برای دور زدن مکانیزم دفاعی و تزریق داده‌های کنترل شده توسط مهاجم به برنامه‌ی موقت در حال اجرای قربانی است. (ترکیب شیوه‌ی نشت داده‌های ریزمعماری Meltdown و قطعه کد سوء استفاده کننده‌ی Spectre)

شکل شماره ۱: حمله‌ی LVI در چهار مرحله
شکل بالا خلاصه‌ای از بهره‌برداری از حمله LVI را در چهار مرحله نشان می‌دهد:
۱. مهاجم یک بافر مخفی پردازنده را با داده‌ی کنترل شده‌ی A آلوده می‌کند.
۲. یک micro-op برای خواندن داده‌ی مورد اطمینان B توسط قربانی بارگذاری می‌شود اما از آنجایی که دستورالعمل به وسیله‌ی قطعه کدهای آلوده تغییر داده شده است، به جای خواندن مقدار A، مقدار B را خوانده و محاسبه می‌کند.
۳. به دنبال بارگذاری مقدار اشتباه، مقدار کنترل شده توسط مهاجم به طور موقت به قطعات کد در برنامه‌ی قربانی تزریق می‌شود که می‌تواند منجر به افشای داده‌های محرمانه شود.
۴. قبل از شناسایی اشتباه رخ داده توسط پردازنده و برگرداندن عملیات به حالت قبلی (roll back) امکان بازیابی داده‌های محرمانه با تحلیل side-channel وجود دارد.
۳ کاهش مخاطرات حمله LVI
پردازنده های آینده با تغییرات سخت‌افزاری مخاطرات حمله LVI را کاهش می‌دهند. برخلاف حملات شبه-Meltdown، به‌روزرسانی میکروکدهای پردازنده برای خالی کردن بافرهای آسیب‌پذیر کافی نیست؛ درعوض در ادامه‌ی تکمیل فرآیند کاهش مخاطرات Spectre، اعمال وصله‌های امنیتی کامپایلر جهت درج صریح موانع که بعد از هر دستورالعمل بارگذاری اشتباه جریان پردازنده را سریال می‌کند، ضروری است. به علاوه با توجه به بارگذاری‌های غیرصریح، دستورالعمل‌های مشخصی مانند x86 ret باید در لیست سیاه قرار بگیرند. اینتل در حال انتشار یک به‌روزرسانی برای Intel SGX SDK جهت به‌روزرسانی اپلیکیشن SGX است.
فهرستی از همه‌ی محصولات اینتل که تحت‌تاثیر این آسیب‌پذیری هستند در این لینک آمده است:
در صورت آسیب‌پذیر بودن برای آگاهی از وجود وصله‌ی امنیتی مربوطه از طریق  این لینک اقدام کنید.

منبع:https://cert.ir/news/12965


دسته‌ها: اخبار امنیتی آسیب پذیری‌ها 


١٢:٠٠ - يکشنبه ١٧ فروردين ١٣٩٩    /    شماره : ٢٥٣٥٤    /    تعداد نمایش : ١٣٦



خروج