پرش به محتوای اصلی

باگ Spectre بازگشته است، این بار برای تسخیر موتورهای JIT

دِ رجیستر۱۴۰۵ مهر ۸, چهارشنبه، ساعت ۱۰:۳۱حدود 3 دقیقه مطالعه

محققان راهی برای بازیابی ورودی‌های پیش‌بینی شاخه غیرمستقیم قدیمی پیدا می‌کنند

آسیب‌پذیری ریزمعماری Spectre دوباره بازگشته است، این بار به موتورهای آزاردهنده JIT (JIT) که کد ماشین را برای مرورگرها، زمان‌های اجرا و هسته‌ها تولید می‌کنند. این آسیب‌پذیری در بسیاری از CPUهایی یافت می‌شود که از اجرای گمانه‌زنی استفاده می‌کنند، فرآیند اجرای کد قبل از فراخوانی برای افزایش عملکرد. محققان دریافتند که اعدام گمانه‌زنی دری را برای حملات کانال‌های جانبی باز می‌کند که از طریق آن می‌توان اسرار را فاش کرد یا استنباط کرد.

هنگامی که اخبار مربوط به این خطر مشخص شد، سازندگان تراشه و توسعه دهندگان سیستم عامل به تلاش برای رفع این آسیب‌پذیری‌ها که Spectre و Meltdown نامیده می‌شوند، پرداختند. و از آن زمان، محققان دو یا سه نوع تغییر یافته اند، مانند VMScape 2025، یکی از چندین حمله به اصطلاح "Spectre v2" که سعی در سوء استفاده از پیش بینی شاخه غیرمستقیم دارد، که در آن کنترل برنامه به طور غیرمستقیم با اشاره به آدرسی که دستورالعمل بعدی را می توان یافت به جای تعیین خود دستورالعمل، منتقل می کند.

مهاجم پیش‌بینی‌کننده شعبه را آموزش می‌دهد تا به صورت گمانه‌زنی در یک آدرس انتخاب‌شده اجرا کند تا اطلاعات مربوط به وضعیت ریزمعماری را درز کند. محققان دانشگاه Vrije در هلند و Scuola Superiore Sant’Anna در ایتالیا، Spectre را به شکلی به نام استفاده مجدد از هدف شاخه (BTR) احیا کرده اند، که آن را به عنوان اولین حمله عملی در محل Spectre v2 توصیف می کنند که به کامپایلرهای به موقع (JIT) حمله می کند. یک حمله در محل به شاخه قربانی محدود می شود در حالی که یک حمله خارج از محل به گمانه زنی هایی متکی است که به سمت هدف در شاخه دیگری هدایت می شود.

محققان - Sander Wiebing، Yuhui Zhu، Alessandro Biondi و Cristiano Giuffrida - دریافتند که این شکل جدید Spectre را می توان از کدهای باقی مانده در موتورهای JIT از جمله Linux cBPF، Oracle GraalVM، و Mozilla SpiderMonkey ایجاد کرد. نویسندگان توضیح می‌دهند: «بینش کلیدی پشت این حمله این است که، در حالی که CPU‌های مدرن پس از اصلاح خود، انسجام کدهای معماری را بازیابی می‌کنند، آنها لزوما ورودی‌های پیش‌بینی شاخه غیرمستقیم (یعنی اهداف شاخه) را باطل نمی‌کنند.

در موتورهای JIT، این اهداف قدیمی می‌توانند از کد اصلی بیشتر زنده بمانند و بعدا زمانی که حافظه پنهان کد مجددا پر می‌شود، دوباره مورد استفاده قرار می‌گیرند، که منجر به اجرای حدس و گمان‌های اولیه می‌شود. نتیجه این است که یک مهاجم می تواند جریان کنترل گمانه زنی را به گونه ای کنترل کند که از برخی دفاع های نرم افزاری مانند FineIBT [PDF] اجتناب کند. نویسندگان نشان دادند که می‌توانند با طراحی دو اکسپلویت اثبات مفهوم در برابر هسته لینوکس مبتنی بر اینتل که هش رمز عبور ریشه را حتی با دفاع الزام آور ثابت ارائه شده توسط cBPF نشان می‌دهد، از این نقص سوء استفاده کنند.

نرخ نشت مورد انتظار برای تراشه های Raptor Cove اینتل 5.7 کیلوبایت در ثانیه و برای Lion Cove 5.4 کیلوبایت در ثانیه است. کند است اما برای یک کاربر غیرمجاز کافی است که یک هش رمز عبور حساس را از یک سیستم آسیب پذیر خارج کند. پس از افشای یافته‌های محققان، توسعه‌دهندگان هسته لینوکس و اوراکل اقدامات کاهشی را اعمال کردند. دو CVE اختصاص داده شد: CVE-2026-64507 و CVE-2026-64508. به گفته محققان، موزیلا ترجیح داده است به جای پرداختن مستقیم به این موضوع، کار بر روی جداسازی سایت را در اولویت قرار دهد. گفته می‌شود که کاهش‌های قوی مانند IBPB مؤثر هستند، اما پیچیدگی را اضافه می‌کنند و مانع عملکرد می‌شوند.

مقاله استفاده مجدد از شاخه هدف برای انتشار در کنفرانس ACM در زمینه امنیت رایانه و ارتباطات (CCS) 2026 پذیرفته شده است که از 15 تا 19 نوامبر در لاهه هلند برگزار می شود. ®

خواندن متن کامل در دِ رجیستربه زبان اصلی، در سایت ناشر باز می‌شود
متن اصلی (انگلیسی)

Spectre bug is back, this time to haunt JIT engines

Researchers find a way to recover stale indirect branch prediction entries

همه‌ی اخبار فناوری