ثغرة LeftoverLocals في وحدات معالجة الرسومات AMD وApple وQualcomm وImagination

تم التعرف على ثغرة أمنية (CVE-2023-4969) في وحدات معالجة الرسومات من AMD وApple وQualcomm وImagination، والتي تحمل الاسم الرمزي LeftoverLocals، والتي تسمح باسترداد البيانات من الذاكرة المحلية لوحدة معالجة الرسومات، وتبقى بعد تنفيذ عملية أخرى وربما تحتوي على معلومات سرية. على الجانب العملي، يمكن أن تكون الثغرة الأمنية خطيرة على الأنظمة متعددة المستخدمين، حيث تعمل معالجات لمستخدمين مختلفين على نفس وحدة معالجة الرسومات، ويمكن استخدامها أيضًا في البرامج الضارة لمراقبة نشاط العمليات التي يتم تشغيلها على وحدة معالجة الرسومات. على سبيل المثال، أثناء الهجوم، من الممكن تحديد البيانات التي تمت معالجتها من خلال العمليات الجارية على وحدة معالجة الرسومات (GPU kernel).

تنتج هذه الثغرة عن عدم عزل ذاكرة وحدة معالجة الرسومات المحلية بشكل كافٍ والفشل في تنظيف الذاكرة المحلية بعد تنفيذ العمليات على وحدة معالجة الرسومات، ونتيجة لذلك يمكن لعملية المهاجم تحديد البيانات المتبقية في الذاكرة المحلية بعد تنفيذ عملية أخرى أو قراءة البيانات من العملية التي يتم تنفيذها حاليًا. الذاكرة المحلية في وحدة معالجة الرسومات (GPU) عبارة عن منطقة ذاكرة منفصلة وأسرع مرتبطة بوحدة الحوسبة وتعمل كنظير لذاكرة التخزين المؤقت للمعالج. يمكن استخدام الذاكرة المحلية بدلاً من الذاكرة العالمية لتخزين الحسابات الوسيطة. يتراوح حجم الذاكرة المحلية من عشرات الكيلوبايتات إلى عدة ميغا بايتات لكل وحدة حوسبة.

 ثغرة LeftoverLocals في وحدات معالجة الرسومات AMD وApple وQualcomm وImagination

يتكون الهجوم من تشغيل معالج (kernel) على وحدة معالجة الرسومات (GPU)، والذي يقوم بشكل دوري بنسخ محتويات ذاكرة وحدة معالجة الرسومات المحلية المتاحة إلى الذاكرة العالمية (VRAM). نظرًا لأن الذاكرة المحلية لا يتم مسحها عند التبديل بين العمليات التي تعمل بواسطة وحدة معالجة الرسومات ويتم مشاركتها بين عمليات مختلفة داخل وحدة الحوسبة الخاصة بوحدة معالجة الرسومات نفسها، فقد تحتوي على بيانات متبقية من عمليات أخرى. تم إعداد نماذج أولية للاستغلالات لوحدات معالجة الرسوميات المختلفة لتنفيذ الهجوم باستخدام واجهات برمجة التطبيقات OpenCL وVulkan وMetal للوصول إلى وحدة معالجة الرسوميات. يعد إجراء هجوم من متصفح عبر WebGPU أمرًا صعبًا لأن واجهة برمجة التطبيقات هذه تضيف عمليات فحص حدود المصفوفة الديناميكية إلى عمليات GPU عند الوصول إلى الذاكرة المحلية.

على سبيل المثال، تم توضيح هجوم يسمح بتحديد بيانات الإخراج من قبل مستخدمين آخرين أثناء جلسة حوار باستخدام نموذج لغة التعلم الآلي الكبير المستند إلى إطار عمل llama.cpp. بالإضافة إلى ذلك، يوضح كيفية استغلال الثغرة الأمنية لإنشاء قناة اتصال مخفية بين العمليات المختلفة. عند إجراء تجربة على وحدة معالجة الرسوميات AMD Radeon RX 7900 XT، أنتجت كل مكالمة إلى المعالج حوالي 5.5 ميجا بايت من البيانات، وكان الحجم الإجمالي للبيانات التي تم تحديدها عند معالجة طلب واحد إلى نموذج 7B llama.cpp 181 ميجا بايت، وهو ما يكفي لإعادة إنشاء استجابة المعالج لنموذج لغة كبير بدقة عالية.

لعب الفيديو

تؤثر الثغرة الأمنية على وحدات معالجة الرسوميات من Apple وAMD وQualcomm وImagination. في منتجات Apple، تم إصلاح المشكلة في iPhone 15، وiPad Air 3rd G (A12)، والأنظمة المستندة إلى معالجات A17 وM3. تظل بعض الأجهزة، مثل Apple MacBook Air (M2)، عرضة للخطر. من المقرر أن يتم إصلاح الثغرة الأمنية في وحدات معالجة الرسومات AMD في تحديث برنامج التشغيل لشهر مارس. في وحدات معالجة الرسوميات من Qualcomm، تم إصلاح الثغرة الأمنية لوحدة معالجة الرسوميات Adreno a630 في تحديث البرنامج الثابت 2.07 (الإصلاحات لوحدات معالجة الرسوميات الأخرى قيد الإعداد).

في GPU Imagination، تم اقتراح إصلاح في إصدار DDK الجديد 23.3، الذي تم إصداره في ديسمبر. لا تتأثر وحدات معالجة الرسوميات NVIDIA وIntel وARM بالثغرة الأمنية. في برامج تشغيل OpenCL المفتوحة Mesa لوحدات معالجة الرسومات AMD، يتم مسح الذاكرة بعد كل تشغيل لنواة الحوسبة، ولكن يتم تقييم هذه الطريقة على أنها غير فعالة، حيث يتم إجراء المسح عن طريق تشغيل معالج آخر على وحدة معالجة الرسومات ويمكن لمعالج ضار أن يحشر نفسه أمامه.

المصدر: opennet.ru

إضافة تعليق