حمله پردازنده جدید اینتل که بر فناوری SGX تأثیر می گذارد


اینتل یک به روزرسانی از میکروکد را منتشر کرده است که آسیب پذیری را حذف می کند (CVE-2019-14607) ، که اجازه می دهد تا با استفاده از مکانیسم کنترل ولتاژ و فرکانس پویا در CPU ، برای ایجاد آسیب به محتویات سلول های داده ، از جمله در مناطقی که در محاسبات در انسدادهای جدا شده استفاده می شود ، دست یابد. اینتل SGX. این حمله Plundervolt نامیده می شود و به طور بالقوه به یک کاربر محلی امکان می دهد امتیازات خود را در سیستم افزایش دهند ، باعث انکار سرویس و دسترسی به داده های حساس شوند.

حمله فقط در چارچوب دستکاری در محاسبات در محاصره های SGX خطرناک است ، زیرا برای انجام آن نیاز به امتیازات ریشه ای در سیستم دارد. در ساده ترین حالت ، مهاجم می تواند تحریف اطلاعات پردازش شده در آنکارا را بدست آورد ، اما در سناریوهای پیچیده تر امکان بازسازی کلیدهای خصوصی ذخیره شده در آنکلاو مورد استفاده برای رمزگذاری با استفاده از الگوریتم های RSA-CRT و AES-NI منتفی نیست. این روش همچنین می تواند برای تولید خطاها در الگوریتم های صحیح در ابتدا برای ایجاد آسیب پذیری هنگام کار با حافظه ، به عنوان مثال ، برای سازماندهی دسترسی به ناحیه خارج از بافر اختصاص داده شده استفاده شود.
کد نمونه اولیه برای حمله در GitHub منتشر شده است

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

با تغییر ولتاژ ، می توان به شرایطی كه شارژ برای بازسازی سلول حافظه درون CPU كافی باشد ، دست یافت و مقدار آن تغییر می یابد. تفاوت اصلی در حمله RowHammer در این است که RowHammer به شما امکان می دهد محتویات بیت های فردی را در DRAM با خواندن چرخه ای داده ها از سلول های همسایه تغییر دهید ، در حالی که Plundervolt به شما امکان می دهد وقتی داده ها از حافظه بارگیری می شود ، محتویات بیت های شخصی را تغییر دهید. این ویژگی به شما امکان می دهد از کنترل مکانیکی و مکانیسم های رمزگذاری داده استفاده شده در حافظه SGX استفاده کنید ، زیرا مقادیر موجود در حافظه صحیح باقی می مانند ، اما می توانید در حین کار با آنها ، قبل از نگارش نتیجه در حافظه ، تحریف شوند.

اگر از این مقدار تغییر یافته در روند ضرب در فرآیند رمزگذاری استفاده شود ، آنگاه متن رمز نادرست در خروجی امتناع می شود. مهاجم با داشتن امکان تماس با پردازنده در SGX برای رمزگذاری داده های خود ، می تواند باعث عدم موفقیت در جمع آوری آماری در مورد تغییر متن رمزنگاری در خروجی شود و مقدار کلید ذخیره شده در آنکلاو را در مدت چند دقیقه بازیابی کند. متن منبع در ورودی و متن متن صحیح در خروجی مشخص شده است ، کلید تغییر نمی کند ، و خروجی متن رمز نادرست نشان دهنده اعوجاج مقداری بیت به مقدار مخالف است.

پس از تجزیه و تحلیل جفت مقادیر رمزگذاری های صحیح و تحریف شده انباشته شده در هنگام خرابی های مختلف ، با استفاده از روش های تجزیه و تحلیل دیفرانسیل از خرابی ها (DFA ، تجزیه و تحلیل افتادگی دیفرانسیل) ، می توانید کلیدهای احتمالی مورد استفاده برای رمزگذاری متقارن AES را پیش بینی کنید و سپس پس از تجزیه و تحلیل تقاطع کلیدها در مجموعه های مختلف ، تعیین کنید کلید مورد نظر

پردازنده های مختلف اینتل از جمله CPU های Intel Core 6 تحت تأثیر قرار می گیرند.
 نسل 10 و همچنین نسل پنجم و ششم Xeon E3 ، نسل اول و دوم Intel Xeon Scalable ، Xeon D ،
Xeon W و Xeon E.

به یاد بیاورید که فناوری SGX (نرم افزار نگهبان نرم افزار) در پردازنده های نسل ششم Intel Core (Skylake) ظاهر می شود و یک سری دستورالعمل ارائه می دهد که به شما امکان می دهد مناطق حافظه بسته را به برنامه های سطح کاربر اختصاص دهید – آنکلاوی هایی که محتویات آنها حتی توسط هسته و قابل خواندن و تغییر آنها امکان پذیر نیست. کد اجرا شده در حالت های ring0 ، SMM و VMM. انتقال کنترل به کد موجود در آنکلاو توسط توابع انتقال سنتی و دستکاری با رجیسترها و پشته ها غیرممکن است – یک دستورالعمل جدید ایجاد شده برای انتقال کنترل به آنکلاو که چک های مجوز را انجام می دهد استفاده می شود. در عین حال ، کدی که در آنکلاو قرار دارد ، می تواند از روشهای تماس تلفنی کلاسیک برای دسترسی به توابع داخل آنکلاو و دستورالعمل های ویژه برای فراخوانی توابع خارجی استفاده کند. رمزگذاری حافظه Enclave برای محافظت در برابر حملات سخت افزاری مانند اتصال به ماژول DRAM استفاده می شود.

OpenNET


نظر شما