گروهی از پژوهشگران امنیتی یک حملهٔ از راه دور مبتنی بر Spectre را علیه Cloudflare Workers اجرا کردند و نشان دادند که یک JSON Web Token (JWT) را از یک Worker هم‌مکان با نرخ تا 12 بیت در ثانیه نشت می‌دهد — حدود 360 برابر سریع‌تر از حملهٔ مشابهی که در 2021 گزارش شده بود.

نکات کلیدی

  • هدف: Worker مهاجم و Worker قربانی هم‌مکان در یک فرآیند واحد Cloudflare Workers، اما در ایزولیت‌های جداگانهٔ موتور جاوااسکریپت V8.
  • میزان نشت: تا 12 بیت در ثانیه با دقت حدود 99.16٪.
  • برداشت پژوهشگران: ضعف‌ها بیشتر نشان‌دهندهٔ محدودیت‌های روش‌های تشخیص زمان اجرا هستند تا خطای صرف پیاده‌سازی.

چگونگی انجام آزمایش و داده‌های نشت‌شده

آزمایش انتها‌-به‌-انتها شامل دو Worker بود: یک Worker مهاجم و یک Worker قربانی که JWT عمداً در حافظهٔ قربانی قرار داشت. پژوهشگران تأکید کرده‌اند که دادهٔ واقعی مشتری استخراج یا افشا نشد. حمله نیازمند هم‌مکانی مهاجم و قربانی در ایزولیت‌های جداگانهٔ V8 اما درون یک فرآیند واحد Cloudflare Workers بود.

مکانیزم حمله: زمان‌سنجی از راه دور و Durable Objects

کد مهاجم در ایزولیت خودش اجرا می‌شد و حمله وابسته به اجرای کد بومی یا فرار از سندباکس V8 نبود. منابع زمان‌سنجی محلی که Cloudflare برای اسکریپت‌ها محدود می‌کند با زمان‌سنجی از راه دور قابل دورزدن هستند؛ به‌ویژه ارتباطات WebSocket می‌توانند به‌عنوان منبع زمان‌سنجی مورد استفاده قرار گیرند. همچنین Durable Objects می‌تواند یک ایزولیت Worker را برای بازه‌های طولانی (از چند ساعت تا بیش از 20 ساعت) زنده نگه دارد که این مدت اجرای حمله را پیش از اعمال ایزولاسیون کامل ممکن می‌سازد.

نمایی از دیتاسنتر و سرورهای ابری مرتبط با Cloudflare Workers

نقایص DyPrIs و تأثیر بار I/O

Cloudflare پیش‌تر مکانیسم ایزولاسیون دینامیک فرایندها (DyPrIs) را برای تشخیص و ایزوله‌سازی اسکریپت‌های مشکوک به‌کار گرفته است. پژوهشگران دو ضعف کلیدی شناسایی کردند: نخست، ایزولاسیون غالباً پس از پایان فراخوانی اجرا می‌شود و فراخوانی‌های طولانی مرتبط با Durable Objects ممکن است پیش از ایزوله‌سازی کامل ادامه یابند؛ دوم، بار سنگین I/O مبتنی بر WebSocket فعالیت iTLB را افزایش می‌دهد و سیگنال خطای پیش‌بینی شاخه را که DyPrIs برای تشخیص استفاده می‌کند تضعیف می‌کند، تا زیر آستانهٔ هشدار قرار گیرد.

محیط آزمایش: سخت‌افزار و شرایط اجرایی

آزمایش‌ها روی سرورهای لینوکس مجهز به پردازنده‌های AMD EPYC نسل Zen 2 و Zen 3 انجام شد. تیم پژوهشی عمدتاً در ساعات شب و با اشغال CPU بین 10٪ تا 25٪ آزمایش‌ها را اجرا کرد تا شرایطی را بیابد که حمله مؤثرتر باشد. افزایش بار سیستم تا حدی نرخ نشت را کاهش می‌دهد، اما حملات کندتر در بار بالا نیز هنوز امکان‌پذیر است.

میزان نشت، دقت و مقایسه با کارهای پیشین

نتایج نشان داد نشت تا 12 بیت در ثانیه با دقت حدود 99.16٪ قابل دستیابی است. برای مقایسه، پژوهشی در سال 2021 نرخ حدود 2 بیت در دقیقه گزارش کرده بود. این اختلاف نشان‌دهندهٔ پیشرفت در تکنیک‌های حمله و نیز ضعف‌های سیگنال‌های تشخیصی فعلی است که در طراحی سازوکارهای ایزولاسیون باید در نظر گرفته شوند.

واکنش Cloudflare و تدابیر کاهش‌دهنده

Cloudflare اعلام کرده این یافته‌های تحقیقاتی را در محیط تولید کاهش داده و مجموعه‌ای از سخت‌سازی‌ها را پیاده‌سازی کرده است، از جمله:

  • بهبود DyPrIs برای افزایش حساسیت تشخیص رفتارهای مشکوک.
  • V8 Sandbox که دسترسی موقت به اشاره‌گرهای 64 بیت را محدود می‌کند.
  • ایزولاسیون درون‌فرآیندی مبتنی بر MPK که heapهای Worker را پشت کلیدهای حفاظتی سخت‌افزاری (Memory Protection Keys) قرار می‌دهد.

Cloudflare همچنین گزارش داده در سه سال گذشته هیچ نشانه‌ای از سوءاستفادهٔ فعال از این برداشته‌ها نیافته است.

پیامدها برای اپراتورها و توسعه‌دهندگان سرویس‌های ابری

درس اصلی برای اپراتورهای پلتفرم‌های چندمستأجری این است که اتکا صرف به سیگنال‌هایی که با فعالیت I/O قابل سرکوب هستند کفایت نمی‌کند. تشخیص باید در زمان اجرا و با استفاده از سیگنال‌های مقاوم‌تر و متنوع انجام شود. ترکیب مکانیزم‌های نرم‌افزاری (سندباکس‌های تقویت‌شده، مدیریت دقیق‌تر طول عمر فراخوانی‌ها) و مکانیزم‌های سخت‌افزاری (مانند MPK) مؤثر خواهد بود.

پیشنهادهای پژوهشگران برای کارهای بعدی

  • توسعهٔ روش‌های تشخیص فعال و پایدار در زمان اجرا که در مواجهه با ترافیک واقعی و بارهای متغیر مقاوم باشند.
  • ارزیابی اثربخشی ترکیب سامانه‌های نرم‌افزاری و سخت‌افزاری در شرایط واقعی تولید.
  • بررسی محدودیت‌ها و نقاط کور سیگنال‌های تشخیصی موجود و طراحی جایگزین‌های مقاوم در برابر سرکوب با I/O.

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