GPUThor چیست و چرا خطرناک است

تیم تحقیقاتی دانشگاه تورنتو حمله‌ای جدید به نام GPUThor معرفی کرده‌اند که روی کارت‌های ورک‌استیشن انویدیا مجهز به حافظهٔ GDDR6 اجرا می‌شود و توانایی دورزدن کدهای تصحیح خطا (ECC) را دارد. این روش می‌تواند پیامدهای متنوعی از انکار سرویس (DoS) تا ارتقای امتیاز به روت میزبان ایجاد کند.

کارت‌های آسیب‌پذیر

  • RTX A6000 — 48 گیگابایت GDDR6
  • RTX A5000 — 24 گیگابایت GDDR6
  • RTX A4500 — 20 گیگابایت GDDR6
  • RTX A4000 — 16 گیگابایت GDDR6

پیش‌شرط اجرای حمله

برای اجرای GPUThor کافی است مهاجم بتواند یک کرنل CUDA بدون امتیاز (unprivileged CUDA kernel) روی GPU هدف اجرا کند. این شرایط ممکن است در حالت هم‌مستأجری (multi-tenant) یا زمانی که کدی غیرقابل‌اعتماد روی یک ماشین تک‌مستأجری اجرا می‌شود رخ دهد. توصیه‌های فوری شامل پرهیز از اشتراک‌گذاری GPU میان مستأجران، پایش شمارنده‌های ECC و محدودسازی اجرای بارهای CUDA غیرقابل‌اعتماد است.

چگونگی عبور از سازوکارهای دفاعی

هستهٔ تکنیک GPUThor مبتنی بر «ضربه‌زدن غیر یکنواخت» است: مهاجم ردیفِ حمله‌کننده کنار ردیفِ هدف را بسیار بیشتر از سایر ردیف‌ها فعال می‌کند تا مکانیزم Target Row Refresh (TRR) گمراه شود. برخلاف حملات پیشین که نرخ فعال‌سازی مهاجم و طعمه را به‌صورت مشابه نگه می‌داشتند، GPUThor با تغییر توزیع دسترسی داخل و بین وارپ‌ها الگوهایی تولید می‌کند که TRR را خنثی می‌کنند.

نقش وارپ‌ها و کنترلر حافظه

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

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

تیم تحقیق گزارش می‌دهد که احتمالاً TRR در نمونه‌های GDDR6 مورد بررسی تقریباً هر 72 بازهٔ تازه‌سازی اعمال می‌شود؛ بنابراین آن‌ها یک الگوی شش‌مرحله‌ای حول این دوره طراحی کردند تا اثربخشی hammering افزایش یابد.

نمونه کارت‌های سری A انویدیا مورد آزمایش GPUThor

دامنهٔ خرابی و آمار تغییر بیت

در آزمایش‌ها و با ECC غیرفعال، کمپین‌ها بین 72,000 تا 377,000 تغییر بیت در هر گیگابایت گزارش شده است؛ RTX A5000 با 377,552 تغییر بیت در هر گیگابایت حساس‌ترین کارت بود. این شدت حدوداً 23,597 برابر نتایج اولیهٔ GPUHammer و نزدیک به 500 برابر قوی‌ترین حملهٔ قبلی GPU (GDDRHammer) است.

در گرانولاریتهٔ 16 بایتی، پژوهشگران 387 مورد تغییر بیتِ دوبل و 2 مورد تغییر بیتِ سه‌گانه ثبت کردند که بیشتر آن‌ها در A5000 رخ داد. حملات سه‌بیتی منجر به فساد خاموش داده (silent data corruption — SDC) شدند، چون ECC نوع SECDED قادر به تصحیح سه بیت معکوس نیست.

اثرِ فعال‌بودن ECC و خطاهای قابل‌شناسایی

با ECC فعال روی یک RTX A6000 محلی، یک بانک تحت hammering در طول 24 ساعت به 11 خطای قابل‌شناسایی و غیرقابل‌اصلاح (Detectable Unrecoverable Error — DUE) و یک مورد SDC منجر شد؛ به‌طور میانگین هر دو ساعت یک DUE رخ می‌داد. هر DUE تمام کرنل‌های در حال اجرا روی کارت را خاتمه می‌دهد و کارت تا ریست مجدد غیرقابل‌استفاده می‌ماند که معادل یک حملهٔ انکار سرویس روی سطح سخت‌افزار است.

نمایی نزدیک از ماژول حافظه GDDR6 روی کارت‌های Ampere

ارتقای امتیاز به میزبان: از جدول صفحات تا روت

تیم تحقیق از کد بهره‌برداری پروژهٔ پیشین خود (GPUBreach) استفاده کرد: ابتدا جدول صفحات را مهندسی می‌کنند تا یک ورودی در یک ردیف آسیب‌پذیر قرار گیرد؛ سپس ردیف‌های مجاور را hammer می‌کنند تا شمارهٔ فریم صفحهٔ (page-frame number) آن ورودی خراب شود. کرنل دوم از ورودی تضعیف‌شده برای دسترسی به حافظهٔ خارج از فرآیند استفاده می‌کند.

استفاده از SDC سه‌بیتی به پژوهشگران امکان داد با IOMMU فعال به شل روت میزبان دسترسی پیدا کنند، و با بهره‌گیری از DUE دو‌بیتی در سیستم‌هایی بدون IOMMU نیز ارتقای امتیاز میزبان محقق شد. تیم همچنین نشان داد DUEهای دو‌بیتی قابل بهره‌برداری‌اند چون GPUهای انویدیا این DUEها را به‌صورت تنبل (deferred) سرویس می‌دهند و حدوداً 10 میلی‌ثانیه پنجرهٔ زمانی بین تشخیص DUE و توقف کارت وجود دارد که دادهٔ آسیب‌دیده می‌تواند توسط کرنل مهاجم خوانده یا استفاده شود.

پیشنهادهای فوری برای مدیران و تیم‌های امنیتی

  • فعال‌سازی ECC در سطح سیستم در محیط‌هایی که پشتیبانی می‌شود (System-Level ECC).
  • ممانعت از اشتراک‌گذاری GPU میان مستأجران و جداسازی بارهای CUDA غیرقابل‌اعتماد.
  • پایش مستمر شمارنده‌ها و متریک‌های ECC و واکنش سریع به افزایش DUE.
  • محدودسازی اجرای کرنل‌های غیرمجاز و اعمال سیاست‌های سخت‌گیرانهٔ sandboxing برای بارهای GPU.
  • به‌روزرسانی منظم فرم‌ور و درایور بر اساس اطلاعیه‌های رسمی تولیدکننده.

واکنش انویدیا و پیشینه

انویدیا در اطلاعیه‌ای در ژوئیهٔ 2025 نوشت تیم دانشگاه تورنتو نشان داده‌اند Rowhammer روی A6000 با GDDR6 در شرایطی که ECC سطح سیستم فعال نباشد امکان‌پذیر است و افزود فعال‌سازی ECC در سطح سیستم این خطر را کاهش می‌دهد. این اطلاعیه در پی کار پیشین همین تیم (GPUHammer) صادر شده بود؛ آن حمله نیز اولین نمونهٔ Rowhammer روی سخت‌افزار انویدیا بود که با فعال‌سازی ECC خنثی شده بود.

برای مطالعهٔ بیشتر دربارهٔ مفهوم Rowhammer و مکانیزم‌های دفاعی به صفحهٔ Rowhammer — ویکی‌پدیا و برای آشنایی با کدهای تصحیح خطا به صفحهٔ Error-correcting code — ویکی‌پدیا مراجعه کنید. همچنین اطلاعات تیم تحقیقاتی دانشگاه تورنتو در وب‌سایت آن دانشگاه در دسترس است: University of Toronto.

جمع‌بندی و اقدامات پیشنهادی

GPUThor نشان می‌دهد حتی سخت‌افزارهایی که از ECC استفاده می‌کنند در برابر تکنیک‌های پیچیدهٔ hammering آسیب‌پذیر می‌مانند. سازمان‌ها باید جداسازی سخت‌گیرانهٔ منابع GPU، پایش فعال خطاها و پیاده‌سازی دفاع‌های چندلایه را در اولویت قرار دهند تا احتمال بهره‌برداری موفق تا حد ممکن کاهش یابد.