الأمن السيبراني

غوغل تشرح كيفية تقليص سطح هجوم وحدات معالجة الرسوميات في أندرويد

تستعرض غوغل، بالتعاون مع Arm، نهجاً لتقوية برمجيات وبرامج التشغيل الثابتة لوحدات Mali GPU عبر تقييد أوامر IOCTL غير الضرورية باستخدام سياسات SELinux. وتشمل الإرشادات إنشاء سياسة تدريجية، وتصنيف الأوامر، واختبارها قبل فرضها على الأجهزة.

09 ديسمبر 2025
5 دقائق قراءة
562 قراءة
certi.news Editorial Team
غوغل تشرح كيفية تقليص سطح هجوم وحدات معالجة الرسوميات في أندرويد

توصي غوغل بتقليص سطح هجوم وحدات معالجة الرسوميات في أندرويد عبر تقييد أوامر IOCTL التي لا تحتاج إليها التطبيقات في بيئة الإنتاج، بدلاً من الاعتماد فقط على اكتشاف الثغرات الفردية وإصلاحها. وتأتي هذه الممارسة نتيجة تعاون بين فريق Android Red Team وشركة Arm لتحليل وحدة Mali GPU وبرنامج تشغيلها، مع التركيز على منع الوصول إلى الوظائف غير الضرورية باستخدام SELinux.

تكتسب هذه الخطوة أهمية أمنية لأن وحدة معالجة الرسوميات أصبحت هدفاً جذاباً للمهاجمين نظراً إلى تعقيدها وامتلاكها صلاحيات مرتفعة داخل النظام. ووفقاً للمادة، استهدفت غالبية الاستغلالات المعتمدة على برامج تشغيل نواة أندرويد منذ عام 2021 وحدة معالجة الرسوميات، وتركزت الهجمات بصورة أساسية على الواجهة بين برنامج التشغيل في وضع المستخدم، المعروف باسم UMD، وبرنامج التشغيل ذي الصلاحيات المرتفعة في وضع النواة، أو KMD.

لماذا يمثل تقليص سطح الهجوم أولوية؟

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

شمل التحليل المشترك مع Arm برنامج تشغيل Mali المستخدم في نحو 45% من أجهزة أندرويد، وساعد على تحديد أجزاء من سطح الهجوم تمثل مخاطر أمنية لكنها ليست مطلوبة لتشغيل الأجهزة في الإنتاج. وبناءً على ذلك، ركزت السياسة على أوامر IOCTL، التي تمثل مدخلات ومخرجات برنامج تشغيل وحدة معالجة الرسوميات، وبالتالي جزءاً مهماً من سطح الهجوم.

تقسم أوامر Mali في النهج المقترح إلى ثلاث فئات:

  • الأوامر غير المقيّدة: مطلوبة للتشغيل الطبيعي، وتظل متاحة للتطبيقات.
  • أوامر القياس والأدوات: تستخدمها أدوات تحليل الأداء والتصحيح لمراقبة أداء وحدة معالجة الرسوميات.
  • الأوامر المقيّدة: لا يفترض أن تستخدمها تطبيقات الإنتاج، وتشمل أوامر مخصصة لتطوير وحدة معالجة الرسوميات، إضافة إلى أوامر قديمة لم تعد مستخدمة في إصدار UMD الحالي للجهاز.

تهدف السياسة إلى حجب الأوامر القديمة وأوامر التصحيح في بيئة الإنتاج، مع قصر أوامر القياس على الصدفة أو التطبيقات التي تحمل علامة القابلية للتصحيح. أما أوامر الإنتاج فتبقى متاحة للتطبيقات العادية.

طرح تدريجي لسياسة SELinux

اعتمدت غوغل نهجاً تدريجياً لتقليل احتمال تعطيل التطبيقات المشروعة. بدأت العملية بسياسة اختيارية، وأنشأت سمة SELinux جديدة باسم gpu_harden تمنع أوامر القياس، ثم طبقتها على مجموعة محددة من تطبيقات النظام لاختبار أثرها. وخلال هذه المرحلة، استخدمت قاعدة allowxperm لتسجيل محاولات الوصول بدلاً من منعها مباشرة، ثم راقبت سجلات الرفض للتحقق من عدم حدوث أعطال.

بعد التأكد من سلامة النهج، انتقلت السياسة إلى نموذج افتراضي أكثر تشدداً، مع إنشاء نطاق باسم gpu_debug يسمح بالوصول إلى أوامر القياس. وبذلك أصبحت التطبيقات محمية افتراضياً، مع إتاحة الاستثناءات للمطورين في حالات محددة:

  • تشغيل التطبيق على جهاز ذي صلاحيات root.
  • تعيين الخاصية android:debuggable="true" في ملف بيان التطبيق.
  • طلب استثناء دائم في سياسة SELinux الخاصة بالتطبيق.

خطوات تطبيق السياسة على الأجهزة

تقدم غوغل الإرشادات لمساعدة الشركاء والمنظومة الأوسع على تبني آلية مماثلة، مع فصل منطق السياسة العامة عن تفاصيل كل جهاز أو برنامج تشغيل. تبدأ العملية باستخدام وحدة ماكرو عامة على مستوى منصة أندرويد ضمن system/sepolicy. وتوجد هذه الوحدة في ملف /sepolicy/public/te_macros، وتتيح لسياسات الأجهزة تمرير قوائم أوامر IOCTL التي ينبغي تصفيتها.

صممت الوحدة للسماح لجميع التطبيقات، أو appdomain، بالوصول إلى قائمة الأوامر غير المقيّدة، وقصر أوامر القياس الحساسة على أدوات التصحيح مثل shell أو runas_app عندما يكون التطبيق قابلاً للتصحيح. كما تحجب الأوامر ذات الصلاحيات المرتفعة اعتماداً على إصدار SDK المستهدف للتطبيق، مع الحفاظ على التوافق مع التطبيقات الأقدم.

بعد ذلك، ينشئ مطور الجهاز ملف ioctl_macros داخل مجلد سياسة SELinux الخاص بالجهاز، مثل device/your_company/your_device/sepolicy/ioctl_macros، ثم يعرّف قوائم الأوامر الخاصة ببرنامج تشغيل وحدة معالجة الرسوميات. توصي غوغل بوجود قوائم منفصلة على الأقل للأوامر الإنتاجية، وأوامر القياس، وأوامر التصحيح، على أن تتضمن أرقام IOCTL السداسية العشرية الخاصة ببرنامج التشغيل.

قدمت Arm تصنيفاً رسمياً لأوامر IOCTL الخاصة بها في الملف Documentation/ioctl-categories.rst ضمن الإصدار r54p2، مع الإشارة إلى أن القائمة ستستمر في التحديث مع إصدارات برامج التشغيل المستقبلية.

الاختبار قبل الفرض

في الخطوة التالية، تُطبَّق السياسة على عقدة جهاز وحدة معالجة الرسوميات من خلال إنشاء ملف gpu.te في مجلد سياسة الجهاز، ثم استدعاء وحدة الماكرو العامة وتمرير وسم الجهاز وقوائم IOCTL المعرفة مسبقاً.

وتشدد غوغل على أن تطوير سياسة SELinux يجب أن يبقى عملية تكرارية تشمل الاختبار والتنقيح ثم الفرض. ويتيح هذا الأسلوب جمع بيانات الاستخدام الواقعي، واكتشاف الحالات التي قد تتطلب استثناءات، وتوسيع نطاق السياسة تدريجياً بدلاً من فرض قيود واسعة من البداية.

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

مصدر الخبر
كيف أعددنا هذا الخبر؟

اعتمد الخبر على المصدر الأصلي الموضح أعلاه. قد نستخدم أدوات آلية للمساعدة في الاستخراج والتصنيف والصياغة، لكن النشر يخضع لقواعد تمنع المحتوى المكرر والقصير أو الروتيني منخفض القيمة. اقرأ سياستنا التحريرية.

c
كاتب المقال

certi.news Editorial Team

certi.news Editorial Team

The certi.news editorial team monitors technical sources and reconstructs news, verifying facts and context prior to publication.

ما الذي تحتاج معرفته

توصي غوغل وArm بتقليص سطح هجوم وحدات Mali GPU في أندرويد عبر تقييد أوامر IOCTL غير الضرورية باستخدام سياسات SELinux. يعتمد النهج على تصنيف الأوامر، واختبار السياسة تدريجياً، ثم فرض القيود مع استثناءات محددة للتطبيقات القابلة للتصحيح.

  • تركز الإرشادات على منع التطبيقات الإنتاجية من الوصول إلى أوامر GPU القديمة وأوامر التصحيح غير الضرورية.
  • صُنّفت أوامر Mali إلى أوامر إنتاج غير مقيّدة، وأوامر قياس وأدوات، وأوامر مقيّدة.
  • تستخدم غوغل سمة SELinux باسم gpu_harden لحجب أوامر القياس، ونطاقاً باسم gpu_debug للسماح بها في حالات التصحيح.
  • توصي غوغل باستخدام allowxperm لتسجيل محاولات الوصول أثناء الاختبار قبل منعها فعلياً.
  • يتطلب تطبيق السياسة إنشاء قوائم IOCTL منفصلة لأوامر الإنتاج والقياس والتصحيح ضمن سياسات الجهاز.
  • قدمت Arm تصنيفاً رسمياً لأوامر IOCTL في الملف Documentation/ioctl-categories.rst ضمن إصدار r54p2.

أسئلة شائعة

لماذا تريد غوغل تقليص سطح هجوم وحدات معالجة الرسوميات؟

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

ما الأوامر التي تبقى متاحة لتطبيقات الإنتاج؟

تبقى أوامر الإنتاج المطلوبة للتشغيل الطبيعي متاحة للتطبيقات العادية، بينما تُحجب الأوامر القديمة وأوامر التصحيح، وتُقيّد أوامر القياس.

متى يمكن للتطبيق الوصول إلى أوامر القياس؟

يمكن ذلك عند تشغيل التطبيق على جهاز بصلاحيات root، أو عندما يكون android:debuggable مفعّلاً، أو عند منحه استثناءً دائماً في سياسة SELinux.

كيف تُطبّق السياسة بأمان؟

توصي غوغل بنهج تكراري يبدأ بالتسجيل والمراقبة، ثم اختبار السياسة وتنقيحها، وبعد التأكد من عدم تعطيل التطبيقات المشروعة تُفرض القيود تدريجياً.

استكشف هذه القصة

المواضيع والجهات المرتبطة

من نفس التصنيف

مقالات قد تهمك

عرض كل الأخبار