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

CHERI يعيد تعريف أمان المؤشرات لبناء عزل دقيق للبرمجيات

يشرح David Chisnall كيف تستخدم بنية CHERI قدرات عتادية لحماية المؤشرات وفرض حدود الذاكرة والصلاحيات، بما يوفر أماناً مكانياً وزمنياً للبرمجيات المكتوبة بـ C وC++ دون إعادة كتابة واسعة. ويربط العرض هذه الآلية بإمكانية بناء عزل دقيق بين مكونات النظام مع مشاركة مباشرة لهياكل البيانات بدلاً من الاعتماد الكامل على آليات RPC التقليدية.

16 أغسطس 2026
5 دقائق قراءة
1,920 قراءة
certi.news Editorial Team
CHERI يعيد تعريف أمان المؤشرات لبناء عزل دقيق للبرمجيات

يرى David Chisnall أن التحدي الأصعب في عزل البرمجيات لا يكمن في فصل حملين عن بعضهما بالكامل، بل في عزل مكونات تحتاج إلى التواصل ومشاركة البيانات. وفي عرض منشور عبر InfoQ، يشرح Chisnall كيف تجمع بنية CHERI بين مفاهيم القدرات الأمنية والمؤشرات الموسعة لتوفير حماية عتادية للمؤشرات، مع دعم أمان الذاكرة والعزل الدقيق داخل مساحة العناوين نفسها.

Chisnall هو الشريك المؤسس ومدير هندسة الأنظمة في SCI Semiconductor، كما يشغل صفة باحث زائر في جامعة كامبريدج. ويستند العرض إلى أعمال CHERI البحثية وتطبيقاتها البرمجية والعتادية، من CheriBSD وامتدادات ARM Morello إلى CHERIoT الموجهة إلى المتحكمات الدقيقة، إضافة إلى قاعدة RISC-V المسماة RVY التي قال إن العمل على توحيدها كان في مراحله النهائية.

المؤشر يصبح كياناً محمياً عتادياً

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

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

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

حدود وصلاحيات قابلة للتقليص

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

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

أمان مكاني وزمني للذاكرة

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

ولا يقتصر الطرح على الأمان المكاني. ففي CHERIoT، تُستخدم وسمات المؤشرات وذاكرة ظل تحتوي على بت لكل وحدة تخصيص، بحيث يمكن إبطال المؤشرات المرتبطة بذاكرة جرى تحريرها. وعند تحميل قدرة إلى سجل، يستطيع مرشح التحميل التحقق من حالة الكتلة ومسح الوسم إذا كانت الذاكرة محررة. كما تعمل آلية عتادية دورية على فحص الذاكرة وإزالة الوسوم من المؤشرات التي تشير إلى كائنات لم تعد حية، ما يسمح بإعادة استخدام الذاكرة بعد اكتمال دورة الإبطال.

من أمان الذاكرة إلى العزل الدقيق

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

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

على الأنظمة الأكبر، يشرح العرض مساراً تدريجياً عبر استدعاء coexecve، الذي ينشئ عملية جديدة من دون إنشاء مساحة عناوين جديدة، ثم يثبت مجموعة من القدرات الجذرية تحدد ما يمكن للعملية الجديدة الوصول إليه. أما CHERIoT فيتبنى فصلاً صارماً للصلاحيات ضمن نظام تشغيل آني، مع مكوّن تبديل مسؤول عن تبديل السياق والنداءات بين المقصورات، ويبلغ حجمه نحو 350 تعليمة وفق العرض.

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

مصدر الخبر
InfoQ - Architecture Articles
فتح المصدر الأصلي ↗
كيف أعددنا هذا الخبر؟

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

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.

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

تستخدم بنية CHERI قدرات عتادية موسعة لحماية المؤشرات وفرض حدود الذاكرة والصلاحيات، ما يوفر أماناً مكانياً وزمنياً وعزلاً دقيقاً للبرمجيات المكتوبة بـ C وC++ دون إعادة كتابة واسعة. ويعرض David Chisnall تطبيقات ذلك في CheriBSD وARM Morello وCHERIoT، مع بقاء بعض التفاصيل مرتبطة بالمنصة وبوجهة نظر مقدم العرض.

  • تحول CHERI المؤشر من رقم يمثل عنواناً إلى قدرة عتادية تحمل العنوان وحدود الكائن والصلاحيات ووسماً يثبت صلاحية المؤشر.
  • يمكن تضييق حدود المؤشرات وإزالة صلاحياتها، لكن لا يمكن توسيعها أو استعادتها من المؤشر نفسه.
  • تدعم البنية الأمان المكاني عبر منع تجاوز الحدود، والأمان الزمني عبر إبطال المؤشرات التي تشير إلى ذاكرة محررة.
  • تتيح صلاحيات دقيقة مثل مشاركة بيانات للقراءة فقط ومنع تخزين مؤشرات جديدة داخلها.
  • يمكن إنشاء عزل دقيق بين مكونات تشارك هياكل بيانات محددة داخل مساحة العناوين نفسها، بدلاً من الاعتماد الكامل على العمليات المنفصلة وRPC.
  • تشمل التطبيقات المذكورة CheriBSD وامتدادات ARM Morello وCHERIoT للمتحكمات الدقيقة، إضافة إلى مقترح RISC-V المسمى RVY.

أسئلة شائعة

ما الذي يضيفه CHERI إلى المؤشرات التقليدية؟

يجعل المؤشر قدرة محمية عتادياً تتضمن العنوان وحدود الكائن ومجموعة من الصلاحيات ووسماً يحدد ما إذا كانت القيمة مؤشراً صالحاً.

كيف يعالج CHERI أخطاء تجاوز الحدود؟

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

ما المقصود بالأمان الزمني للذاكرة في CHERIoT؟

تستخدم CHERIoT وسمات المؤشرات وذاكرة ظل لإبطال المؤشرات المرتبطة بذاكرة جرى تحريرها، ومنع استخدامها بعد انتهاء عمر الكائن.

كيف يختلف العزل الدقيق عن عزل العمليات التقليدي؟

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

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

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

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