Spectre

محققان تکنیک جدیدی را فاش کرده‌اند که می‌تواند برای دور زدن پیشگیری‌های سخت‌افزارهای موجود در پردازنده‌های مدرن اینتل، AMD و Arm مورداستفاده قرار گیرد و حملات اجرایی speculative مانند Spectre را برای افشای اطلاعات حساس از حافظه میزبان انجام دهد[۱].

حملاتی مانند Spectre برای شکستن isolation بین برنامه‌های مختلف[۲] با بهره‌گیری از تکنیک بهینه‌سازی [۳] به نام اجرای speculative در پیاده‌سازی سخت‌افزار CPU طراحی شده‌اند تا برنامه‌ها را فریب دهند تا به مکان‌های دلخواه در حافظه دسترسی پیدا کنند و درنتیجه اسرار آن‌ها را فاش کنند.

درحالی‌که سازندگان تراشه از نرم‌افزار و سخت‌افزارهای دفاعی[۴]، ازجمله [۵]Retpoline و همچنین حفاظت‌هایی مانند Enhanced Indirect Branch Restricted Speculation یا eIBRS[6] و Arm CSV2 [7و۸] استفاده کرده‌اند، آخرین روش نشان داده‌شده توسط محققان VUSec با هدف دور زدن همه این حفاظت‌ها است.

Branch History Injection یا BHI یا Spectre-BHB، نوع جدیدی از حملات Spectre-V2 (با نام CVE-2017-5715) است[۹] که هر دو eIBRS و CSV2 را دور می‌زند و محققان آن را به‌عنوان یک بهره‌بردار neat end-to-end  توصیف می‌کنند که نشت حافظه هسته دلخواه در CPUهای مدرن اینتل را به همراه دارد.

محققان در این مورد توضیح دادند: “پیشگیری‌های سخت‌افزاری مانع از تزریق ورودی‌های پیش‌بینی کننده برای هسته توسط مهاجم غیرمجاز می‌شود.”

گروه امنیت سیستم و شبکه در Vrije Universiteit Amsterdam دراین‌باره گفت: “بااین‌حال، پیش‌بینی کننده برای انتخاب ورودی‌های هدف برای اجرای speculatively به تاریخچه جهانی تکیه می‌کند و مهاجم می‌تواند این تاریخچه را از userland کاربر مسموم کند تا هسته را مجبور کند تا اهداف هسته جالب‌تری (یعنی ابزارها) را که داده‌ها را درز می‌کنند به‌اشتباه پیش‌بینی کند.”

به‌عبارت‌دیگر، یک قطعه کد مخرب می‌تواند از تاریخچه branch history که در Branch History Buffer پردازنده ذخیره می‌شود، استفاده کند تا بر شاخه‌های پیش‌بینی نادرست در زمینه سخت‌افزار قربانی تأثیر بگذارد، که منجر به اجرای speculative می‌شود و سپس می‌توان از آن برای استنتاج اطلاعات استفاده کرد، در غیر این صورت باید غیرقابل دسترسی باشد.

Spectre-BHB تمام پردازنده‌های اینتل و Arm را که قبلاً تحت تأثیر Spectre-V2 قرار گرفته‌اند و تعدادی از چیپ‌ست‌های AMD را آسیب‌پذیر می‌کند و باعث می‌شود این سه شرکت به‌روزرسانی‌های نرم‌افزاری را برای رفع این مشکل منتشر کنند[۱۰-۱۲].

اینتل همچنین به مشتریان توصیه می‌کند[۱۳] که فیلترهای بسته Berkeley توسعه‌یافته (eBPF) لینوکس را غیرفعال کنند، هر دویِ EIBRS و Supervisor-Mode Execution Prevention (SMEP) را فعال کنند و “LFENCE” را به ابزارهای شناسایی مشخصی که قابل بهره‌برداری هستند اضافه کنند[۱۴-۱۶].

محققان دراین‌باره گفتند: «پیش‌گیری‌های [Intel eIBRS و Arm CSV2] همان‌طور که در نظر گرفته شده کار می‌کنند، اما سطح حمله باقی‌مانده بسیار مهم‌تر از آن چیزی است که فروشندگان در ابتدا تصور می‌کردند.»

“بااین‌وجود، یافتن ابزارهای قابل بهره‌برداری سخت‌تر از قبل است، زیرا مهاجم نمی‌تواند به‌طور مستقیم اهداف پیش‌بینی را در سراسر مرزهای امتیاز تزریق کند. به این معنا که، هسته به‌طور speculative به اهداف خودسرانه ارائه‌شده توسط مهاجم نمی‌پرد، بلکه فقط به‌صورت speculatively کدهای معتبر آن را اجرا می‌کند که قبلاً درگذشته اجرا شده‌اند.”

 

منابع

[۱] https://www.amd.com/system/files/documents/software-techniques-for-managing-speculation.pdf

[۲] https://thehackernews.com/2021/09/new-spookjs-attack-bypasses-google.html

[۳] https://en.wikipedia.org/wiki/Speculative_execution

[۴] https://blogs.oracle.com/linux/post/an-update-on-meltdown-and-enhanced-ibrs

[۵] https://support.google.com/faqs/answer/7625886

[۶] https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/indirect-branch-restricted-speculation.html

[۷] https://developer.arm.com/documentation/100798/0300/register-descriptions/aarch64-system-registers/id-pfr0-el1–aarch32-processor-feature-register-0–el1?lang=en

[۸] https://developer.arm.com/documentation/100798/0300/register-descriptions/aarch64-system-registers/id-aa64pfr0-el1–aarch64-processor-feature-register-0–el1?lang=en

[۹] https://www.vusec.net/projects/bhi-spectre-bhb/

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

[۱۱] https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/spectre-bhb

[۱۲] https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/technical-documentation/branch-history-injection.html

[۱۳] https://thehackernews.com/2021/03/new-bugs-could-let-hackers-bypass.html

[۱۴] https://www.intel.com/content/www/us/en/developer/articles/technical/software-security-guidance/best-practices/related-intel-security-features-technologies.html

[۱۵] https://thehackernews.com/2021/05/new-spectre-flaws-in-intel-and-amd-cpus.html

[۱۶] https://thehackernews.com/2022/03/new-exploit-bypasses-existing-spectre.html