GPUThor؛ تلاش دیگری برای حمله به سرورها از طریق GPU 23 شهریور 1405 GPUThor؛ تکامل ایده Rowhammer چگونه میتوان یک سرور صنعتی را از طریق GPU آن و بدون بر جای گذاشتن ردپایی هک کرد؟ چنین حمله پیچیده و تا حد زیادی نظری، معمولاً بر آسیبپذیریهای سختافزاری متکی است. حتی صحبت از نقصهای طراحی خود سختافزار هم نیست، بلکه موضوع به ویژگیهای خاص نحوه عملکرد آن مربوط میشود؛ ویژگیهایی که گاهی در سطح فیزیکی ظاهر میشوند. مقالهای جدید از پژوهشگران کانادایی دانشگاه تورنتو، حمله GPUThor را معرفی میکند؛ روشی جدید و مؤثرتر از خانواده حملات Rowhammer که دقیقاً از همین نوع رفتار سختافزاری در حافظه ویدئویی سوءاستفاده میکند. Rowhammer و کارتهای گرافیک GPUThor بر پایه ایده حمله اصلی به حافظه RAM توسعه یافته است؛ حملهای که نخستین بار در سال ۲۰۱۴ در پژوهش Rowhammer مطرح شد. Rowhammer و تمام حملات همخانواده آن بر یک واقعیت ساده استوارند: سلولهای حافظه بهطور کامل از یکدیگر ایزوله نیستند. دسترسی مکرر به یک ردیف مشخص از سلولهای حافظه ــ که اصطلاحاً «Hammering» نامیده میشود ــ میتواند در شرایط خاص باعث خراب شدن دادهها یا بهعبارت دقیقتر، تغییر بیتها (Bit Flip) در ردیفهای مجاور شود. وقتی مشخص شود ایجاد چنین اثری امکانپذیر است، مرحله بعد یافتن راهی برای تبدیل آن به یک حمله عملی است؛ برای مثال، ایجاد حمله منع سرویس (DoS) یا حتی اجرای کد دلخواه. اما سرورها و شتابدهندههای گرافیکی چه ارتباطی با این موضوع دارند؟ با گسترش فناوریهای هوش مصنوعی، تقاضا برای سختافزارهایی که بتوانند تعداد زیادی محاسبات مشابه را بهصورت موازی انجام دهند نیز افزایش یافته است. شتابدهندههای موجود در کارتهای گرافیک گیمینگ بهطور طبیعی برای چنین پردازشهایی مناسب هستند. به همین دلیل، ارائهدهندگان خدمات ابری که شتابدهندههای گرافیکی را در اختیار کاربران مختلف قرار میدهند، به اهداف جذابی برای حملات Rowhammer تبدیل میشوند. سناریوی فرضی به این شکل است: مهاجم دسترسی به یک تراشه گرافیکی را خریداری میکند و سپس تلاش میکند از طریق آن، کل زیرساخت ارائهدهنده را به خطر بیندازد. دقیقاً به همین دلیل است که حملات علیه حافظه ویدئویی همچنان یکی از موضوعات مورد توجه ویژه پژوهشگران امنیتی هستند. حمله GPUThor چگونه کار میکند؟ در بهار امسال، سه مقاله پژوهشی جدید منتشر شد که هرکدام حمله متفاوتی را علیه شتابدهندههای Nvidia مجهز به حافظه GDDR6 نشان میدادند. هر سه حمله نتایج نسبتاً محدودی داشتند: بیشترین آسیب زمانی ایجاد شد که هدف یک کارت گرافیک مصرفی بود، در حالی که حمله به یک شتابدهنده صنعتی مانند Nvidia A6000 اثربخشی بسیار کمتری داشت. علاوه بر این، هیچکدام از این حملات در شرایطی که محافظت حافظه ECC (Error Correction Code) فعال بود، کار نمیکردند. GPUThor نیز امکان حمله به شتابدهندههای قدیمیتر Ampere شرکت Nvidia مجهز به حافظه GDDR6 را بررسی میکند. پژوهشگران مدلهای A4000، A4500، A5000 و A6000 را مورد مطالعه قرار دادند. با این حال، اثربخشی روش جدید ــ که بر اساس تعداد سلولهایی اندازهگیری میشود که دادههای آنها بهاجبار تغییر کرده است ــ بهطور قابل توجهی بیشتر است. پژوهشگران همچنین معتقدند که از نظر تئوری، این تکنیک میتواند روی شتابدهندههای جدیدتر نیز اجرا شود. میزان اثربخشی حمله GPUThor مقایسه اثربخشی GPUThor با حملات پیشین. این نتایج چگونه به دست آمدند؟ مکانیزم دفاعی استاندارد در برابر حملات Rowhammer، Target Row Refresh (TRR) نام دارد و پژوهشگران کانادایی آن را با دقت بیشتری بررسی کردند. مشخص شد که اگر TRR تلاشهای مکرر برای دسترسی به سلولهای حافظه را شناسایی کند، ردیفهای مجاور را وادار به تازهسازی (Refresh) میکند و به این ترتیب، خراب کردن دادهها دشوار یا حتی غیرممکن میشود. مهاجمان معمولاً برای مقابله با TRR تلاش میکنند بهصورت تصادفی به سلولها دسترسی پیدا کنند تا سیستم دفاعی را سردرگم کرده و اثربخشی آن را کاهش دهند. پژوهشگران کشف کردند که در کارتهای Nvidia Ampere، مکانیزم TRR تنها یک بار در هر ۷۲ چرخه تازهسازی سلولهای حافظه فعال میشود. آنها با استفاده از این یافته، الگوی دسترسی نامتوازنی را به کار گرفتند و سلولهای هدف را بسیار شدیدتر از روشهای قبلی مورد دسترسی مکرر قرار دادند. نتیجه قابل توجه بود: اگر حمله اصلی به حافظه GDDR با نام GPUHammer را مبنای مقایسه قرار دهیم، GPUThor حدود ۷۰۰۰ تا ۲۳٬۰۰۰ برابر مؤثرتر است. نتایج و چشمانداز آینده ترکیب این الگوی تهاجمیتر با سایر بهبودهای اعمالشده در روش حمله، باعث شد پژوهشگران به ۷۲٬۰۰۰ تا ۳۷۷٬۰۰۰ تغییر بیت بهازای هر گیگابایت دست پیدا کنند. نسخههای قبلی حملات Rowhammer در بهترین حالت تنها قادر به ایجاد چند صد تغییر بیت بودند. این میزان اثربخشی به پژوهشگران امکان داد خطاهای دو بیتی و حتی سه بیتی ایجاد کنند. ECC میتواند یک خطای تکبیتی را بهراحتی اصلاح کند، اما قادر به اصلاح خطای دو بیتی نیست. روش جدید همچنین نشان میدهد که یک حمله Rowhammer در دنیای واقعی چه آسیبی میتواند ایجاد کند. دسترسی مکرر به حافظه ویدئویی با استفاده از GPUThor باعث ایجاد حمله منع سرویس میشود. شتابدهنده ابتدا راهاندازی مجدد میشود و در این فرایند دادههای خود را از دست میدهد؛ سپس وضعیت خود را به مدیر سیستم بهگونهای گزارش میکند که نشان میدهد دستگاه نیاز به تعویض دارد. با وجود نتایج چشمگیر این پژوهش، حملات GPUThor هنوز کاملاً موفق محسوب نمیشوند. نخست اینکه پژوهشگران نتوانستند نشان دهند که خرابی دادههای ایجادشده میتواند به اجرای کد دلخواه منجر شود؛ هرچند ادعا میکنند چنین کاری حتی با فعال بودن ECC نیز امکانپذیر است. از سوی دیگر، افزایش چند هزار برابری اثربخشی حمله نشان میدهد که از نظر تئوری، امکان به خطر انداختن شتابدهندههای جدیدتر نیز وجود دارد؛ اما این موضوع نیز در حال حاضر بهصورت عملی اثبات نشده است. با این همه، پژوهشگران کانادایی نشان دادهاند که حملات Rowhammer علیه شتابدهندههای گرافیکی هنوز ظرفیتهای کشفنشده زیادی دارند. بنابراین چندان دور از انتظار نیست که پژوهشهای آینده، حملات مشابهی را علیه دستگاههای بسیار پیشرفتهتری نشان دهند که تاکنون تصور میشد مقاومت بالایی در برابر چنین حملاتی دارند.