SGAxe

محققان امنیت سایبری دو حمله متمایز (SGAxe و CrossTalk) را کشف کرده‌اند که می‌تواند در برابر پردازنده‌های مدرن اینتل برای نشت اطلاعات حساس از محیط‌های اجرایی قابل‌اعتماد پردازنده(۱) مورد بهره‌برداری قرار گیرد.

اولین نقص که SGAxe نام‌گذاری شده است[۱]، تکامل حمله قبلاً کشف‌شده‌ی CacheOut (CVE-2020-0549) در اوایل سال جاری است[۲] که به یک مهاجم اجازه می‌دهد تا محتویات را از حافظه کش L1 پردازنده بازیابی کند.

گروهی از افراد آکادمیک از دانشگاه میشیگان گفتند: “با استفاده از حمله گسترده به enclave های SGX ارائه و امضاشده توسط اینتل، ما کلید تصدیق مخفی مورداستفاده برای اثبات (به‌صورت رمزنگاری) اصیل بودن enclave ها روی شبکه را بازیابی می‌کنیم و این امر به ما اجازه می‌دهد که enclave های جعلی را به‌عنوان enclave های اصلی عبور دهیم.”

خط دوم حمله، که توسط محققان دانشگاه VU آمستردام، CrossTalk لقب گرفته است[۳]، با اجرای کد کنترل‌شده توسط مهاجم روی یک هسته پردازنده، می‌تواند enclave های SGX روی یک هسته کاملاً متفاوت را هدف قرار دهد و کلیدهای خصوصی enclave را تعیین کند.

یک TEE، مانند برنامه‌های افزودنی نگهبان نرم‌افزار اینتل(۲) (SGX)، به یک enclave ایمن یا منطقه‌ای در یک پردازنده اشاره دارد[۴] که محرمانه بودن و یکپارچگی کد و داده‌ها را تضمین می‌کند. این برنامه سیستم را در برابر ویرایش نرم‌افزارها و داده‌های حساس توسط مجرمان سایبری که ممکن است در دستگاه موردنظر (مجازی) وارد شوند، محافظت می‌کند.

حملهSGAxe: استخراج داده‌های حساس از enclave های SGX

SGAxe برای سرقت داده‌های SGX روی حمله اجرای احتمالی CacheOut ساخته شده است. به گفته محققان، درحالی‌که اینتل برای مقابله با حملات کانال جانبی علیه SGX از طریق چندین به‌روزرسانی میکرو کد و معماری جدید قدم برداشته بود، ثابت شد که این فعالیت‌ها ناکارآمد بوده است.

درنتیجه این بهره‌بردار منجر به یک حمله اجرای گذرا(۳) می‌شود که می‌تواند کلیدهای رمزنگاری SGX را از یک دستگاه کاملاً به‌روز شده اینتل بازیابی کند، که توسط سرور تصدیق اینتل مورد اعتماد است[۵].

تصدیق[۶] مکانیزمی است که به‌عنوان بخشی از SGX ارائه می‌شود و به enclave ها اجازه می‌دهد تا به اشخاص ثالث اثبات کند که به‌طور صحیح در یک پردازنده اصلی اینتل نصب شده است. ایده این است که اطمینان حاصل شود که نرم‌افزاری که در داخل پردازنده کار می‌کند، دست‌کاری نشده و باعث افزایش اعتمادبه‌نفس نسبت به اجرای این نرم‌افزار در داخل enclave شده است.

محققان اظهار داشتند: “به‌طور خلاصه، ما از CacheOut برای بازیابی کلیدهای sealing از فضای آدرس production quoting enclave اینتل استفاده می‌کنیم. سرانجام، ما از کلیدهای sealing بازیابی شده برای رمزگشایی ذخیره طولانی‌مدت quoting enclave، برای به دست آوردن کلیدهای تصدیق EPID استفاده می‌کنیم.”

با شکستن این اعتماد، SGAxe برای یک مهاجم کار را آسان می‌کند که یک enclave سرکش تولید کند تا از مکانیسم تصدیق اینتل عبور کند و درنتیجه ضمانت‌های امنیتی از بین می‌رود.

SGAxe

محققان دراین‌باره گفتند: “با به خطر افتادن کلیدهای تصدیق تولیدشده توسط دستگاه، هر رمز ارائه‌شده توسط سرور توسط برنامه‌ی میزبان مشتری که غیرقابل‌اعتماد است، بلافاصله قابل‌خواندن می‌شود، درحالی‌که تمام خروجی‌هایی که گفته می‌شود توسط enclave های در حال اجرا روی مشتری تولیدشده‌اند، نمی‌توانند برای صحت‌ مورد اعتماد واقع شوند. این به‌طور مؤثری برنامه‌های DRM مبتنی بر SGX را بی‌فایده می‌کند، زیرا هر رمز ارائه‌شده‌ای را می‌توان به‌راحتی بازیابی کرد.”

اگرچه اینتل در ماه ژانویه اصلاحاتی را برای CacheOut از طریق به‌روزرسانی میکرو کد به فروشندگان OEM و متعاقباً از طریق به‌روزرسانی‌های BIOS برای کاربران نهایی منتشر کرد[۷]، اما برای جلوگیری از SGAxe نیاز به وصله کردن علت اصلی CacheOut (با نام مستعار L1D Evolution Samgment) است[۸].

اینتل در یک توصیه امنیتی دراین‌باره گفت[۹] [۹]: “توجه به این نکته مهم است که SGAxe به CVE-2020-0549 متکی است که در میکرو کد وصله (که توسط محققان در مقاله CacheOut به‌روز شده آن‌ها تأیید شده است) و درون اکوسیستم توزیع شده است.”

تراشه ساز همچنین یک بازیابی Trusted Compute Base (TCB) را انجام می‌دهد تا کلیه کلیدهای تصدیق قبلاً امضاشده را باطل کند.

محققان دراین‌باره اظهار داشتند: “این فرایند باعث می‌شود که سیستم شما در وضعیت ایمن قرار داشته باشد به‌گونه‌ای که سیستم شما قادر به استفاده مجدد از تصدیق از راه دور باشد.”

CrossTalk Attack: نشت اطلاعات در هسته‌های پردازنده

CrossTalk یا CVE-2020-0543 دومین مورد بهره‌بردار SGX، همان چیزی است که دانشگاه VU آن را حمله (۴)MDS می‌نامد[۱۰]. این آسیب‌پذیری از یک بافر staging که در تمام هسته‌های پردازنده قابل‌خواندن است استفاده می‌کند تا حملات اجرای گذرا را در بین هسته‌ها mount کند و تمام کلید خصوصی ECDSA یک enclave ایمن را که در هسته پردازنده جداگانه اجرا می‌شود، استخراج کند[۱۱].

محققان مشاهده کردند: “بافر staging نتایج دستورالعمل‌های offcore را که قبلاً اجرا شده است در همه هسته‌های پردازنده را حفظ می‌کند. به‌عنوان‌مثال، این شامل اعداد تصادفی است که توسط سخت‌افزار offcore DRNG، hashهای bootguard status و سایر داده‌های حساس برگردانده شده است.”

به‌عبارت‌دیگر، CrossTalk با خواندن بافر staging در حین اجرای گذرا به‌منظور نشت داده‌های حساس دسترسی به دستورالعمل‌های قربانی قبلاً اجرا شده، کار می‌کند.

این واقعیت که بافر، خروجی را از دستورالعمل‌های RDRAND و RDSEED حفظ می‌کند[۱۲]، برای طرف غیرمجاز امکان ردیابی اعداد تصادفی تولیدشده را فراهم می‌کند و بنابراین عملیات رمزنگاری را که زیر enclave SGX قرار دارد، ازجمله فرایند تصدیق از راه دور فوق‌الذکر به خطر بی‌اندازد[۱۳].

با انتشار پردازنده‌های اینتل از سال ۲۰۱۵ تا ۲۰۱۹ محققان دانشگاه VU پردازنده‌های Xeon E3 و E را مستعد ابتلا به این حملات دانستند و گفتند که یک اثبات ادعا را با شرکت اینتل به اشتراک گذاشتند[۱۴] که نشت محتویات بافر در سپتامبر ۲۰۱۸ و پس‌ازآن PoC اجرای نشت هسته RDRAND/RDSEED را در ژوئیه ۲۰۱۹ نشان می‌دهد.

این تیم به‌طور خلاصه گفت: “مقابله در برابر حملات موجود اجرای گذرا تا حد زیادی بی‌اثر است. اکثر اقدامات فعلی به انزوای مکانی در مرزهایی متکی هستند که دیگر به دلیل ماهیت متقابل این حملات قابل‌استفاده نیستند. البته به‌روزرسانی‌های میکرو کد جدید که کل باس حافظه را برای این دستورالعمل‌ها قفل می‌کند، می‌توانند این حملات را کاهش دهند. اما فقط درصورتی‌که هیچ مشکلی مشابهی پیدا نشود.”

اینتل در پاسخ به این یافته‌ها و به دلیل دشواری در پیاده‌سازی یک وصله، پس از یک دوره طولانی ۲۱ ماهه در تاریخ ۹ ژوئن ۲۰۲۰ با ارائه یک به‌روزرسانی میکرو کد به فروشندگان نرم‌افزار؛ این آسیب‌پذیری را برطرف کرد.

این شرکت به کاربران پردازنده‌های آسیب‌دیده توصیه کرده است تا آخرین نسخه سیستم‌عامل ارائه‌شده توسط تولیدکنندگان را برای رفع این مشکل نصب کنند.

منابع

[۱] https://sgaxe.com

[۲] https://apa.aut.ac.ir/?p=6892

[۳] https://www.vusec.net/projects/crosstalk

[۴]https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions.html

[۵] https://en.wikipedia.org/wiki/Transient_execution_CPU_vulnerability

[۶]https://software.intel.com/content/www/us/en/develop/topics/software-guard-extensions/attestation-services.html

[۷] https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00329.html

[۸]https://software.intel.com/security-software-guidance/software-guidance/l1d-eviction-sampling

[۹] https://blogs.intel.com/technology/2020/06/ipas-security-advisories-for-june-2020

[۱۰] https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00320.html

[۱۱] https://mdsattacks.com

[۱۲]https://software.intel.com/content/www/us/en/develop/blogs/the-difference-between-rdrand-and-rdseed.html

[۱۳] https://download.01.org/intel-sgx/dcap-1.0.1/docs/Intel_SGX_DCAP_ECDSA_Orientation.pdf

[۱۴] https://youtu.be/7tba2ayE3cI

[۱۵] https://thehackernews.com/2020/06/intel-sgaxe-crosstalk-attacks.html


(۱) trusted execution environments (TEE)
(۲) Intel’s Software Guard Extensions
(۳) transient execution attack
(۴) Microarchitectural Data Sampling