Control-flow Enforcement (CET)
يُطلق عليها أيضا CET
تضيف تقنية فرض تدفق التحكم (CET) آليات عتادية لحماية تدفق التحكم، وبشكل أساسي مكدسات الظل وتتبع التفرع غير المباشر. يعد الدعم العتادي والحماية النشطة في عملية معينة حالتين مختلفتين.
ما تحتاج إلى معرفته
تضيف تقنية فرض تدفق التحكم (CET) آليات عتادية لحماية تدفق التحكم، وبشكل أساسي مكدسات الظل وتتبع التفرع غير المباشر. يعد الدعم العتادي والحماية النشطة في عملية معينة حالتين مختلفتين.
كيف يعمل
تحافظ مكدسات الظل على حالة عناوين العودة المحمية، بينما يقيد تتبع التفرع غير المباشر وجهات التفرعات غير المباشرة المتتبعة. وهي تعالج عمليات نقل تدفق التحكم المختلفة ولها تعداد وتمكين منفصلان. يشارك نظام التشغيل وأداة التحميل والملف الثنائي للتطبيق والمكتبات في جعل بيئة التنفيذ المحمية تعمل بنجاح.
مواضع فائدتها
يمكن لتطبيق مبني بشكل مناسب أن يعمل مع مكدس ظل يديره نظام التشغيل بحيث يؤدي عدم تطابق عنوان العودة إلى إطلاق الاستثناء المحدد بدلا من إعادة توجيه التنفيذ دون إشعار. قد تختلف سياسة التوافق للوحدات القديمة وحماية وضع المستخدم مقابل وضع المشرف.
كيفية التحقق من الدعم والتمكين
تحقق من البت 7 في CPUID.07H.00H:ECX لإمكانية مكدس الظل والبت 20 في EDX لتتبع التفرع غير المباشر، ثم افحص حالة حماية العملية الموثقة في نظام التشغيل. لا يمكن لبت المعالج المتاح وحده إثبات فرض الحماية لبرنامج قيد التشغيل.
يجب التحقق من القدرة والتمكين وفرض السياسة كل على حدة. يمكن للمعالج أن يدعم حماية معينة بينما لا يفعّلها نظام التشغيل أو التطبيق أو سياسة الآلة الافتراضية. ولا يُعد حقل الدعم في قاعدة البيانات إثباتًا على حالة نظام قيد التشغيل.
ما لا تثبته هذه الميزة
لا يثبت حقل CET وجود كلتا الميزتين الفرعيتين أو تمكينهما. لا تجعل CET الملف الثنائي جديرا بالثقة، ولا تمنع كل أخطاء تلف الذاكرة، ولا تحل محل التحديثات. إن تعطيل الحماية بشكل عام ليس حلا روتينيا لتعطل التطبيق.
التوافق والأداء في الممارسة العملية
حافظ على تحديث نظام التشغيل والبرامج الثابتة وبيئة التشغيل المعنية. وإذا تسببت إحدى ميزات الحماية في مشكلة توافق، فاستخدم أولاً أدوات تشخيص الشركة المصنعة وتحديثاتها المدعومة. إن التبديل الشامل للحماية يمكن أن يؤثر على تطبيقات غير معنية، ويجب أن يتبع سياسة نشر واسترداد واضحة.
قائمة عملية للتحقق
- سجل الطراز الدقيق للمعالج أو المنصة، بالإضافة إلى إصدارات التطبيق ونظام التشغيل وبيئة التشغيل المعنية. واحتفظ بنص الخطأ الفعلي أو المتطلب كما هو.
- راجع مرجع الشركة المصنعة لذلك الطراز بدقة، ثم افحص القدرة الفعلية وحالة التمكين في البيئة التي يعمل فيها البرنامج.
- قارن كل متطلب من متطلبات الملف الثنائي أو الواجهة الخلفية المحددة. فوجود ميزة ذات اسم مشابه أو اسم بديل أو تصنيف تقني عام ليس كافيًا.
- تأكد من أن التطبيق قد اختار التنفيذ المطلوب. واستخدم وسائله التشخيصية الموثقة والبديل الاحتياطي المدعوم عندما لا يتم استيفاء المتطلبات.
- قم بإجراء تغيير مدعوم واحد في كل مرة وأعد تنفيذ نفس حمل العمل. واحتفظ بالتهيئة الأصلية ومسار الاسترداد متاحين.
إذا كانت الميزة مدرجة ولكن يتعذر على البرنامج استخدامها
ابدأ بالمكون الفعلي الذي حدث فيه الفشل. تصف قاعدة بيانات الأجهزة القدرات المسجلة؛ ولكن يمكن لنظام التشغيل أو برنامج المراقبة الفوقي (hypervisor) إتاحة بيئة فعلية مختلفة. ويتطلب خطأ التعليمة غير الصالحة (illegal-instruction) أيضًا فحص التعليمة المتسببة في الخطأ وبنية الملف الثنائي، لأن التلف أو وجود تعليمة غير مدعومة لا صلة لها بالأمر قد يُحدث أعراضًا مماثلة.
ثبت إصدار التطبيق أو برنامج التشغيل أو بيئة التشغيل المدعومة للمنصة المعنية بدقة، واستخدم البنية الأساسية أو الاحتياطية الموثقة من الشركة المصنعة عند الحاجة. لا يمكن للتحديث البرمجي إنشاء تعليمة يفتقر إليها المعالج. ويجب أن تتبع تغييرات البرامج الثابتة وسياسات الأمان إجراءات الشركة المصنعة للنظام وخطة استرداد، بدلاً من اتباع وصفة تحسين عامة.
مصادر ونطاق هذا التوضيح
Intel 64 and IA-32 Architectures Software Developer's Manual · نواة Linux: مكدس الظل لتقنية فرض تدفق التحكم
تحدد هذه المراجع السلوك المعماري ومتطلبات البرمجيات. وهي لا تتحقق بشكل مستقل من قيمة كل ميزة على صفحة طراز عتاد مرتبطة. للحصول على دعم الطراز، استخدم أدلة الشركة المصنعة في تلك الصفحة وتحقق من تهيئة النظام الفعلية. لا تقدم هذه المقالة مقياس أداء أو شهادة اعتماد أو تاريخ مراجعة مستقلة.
المصادر والتحقق
الملكية التحريرية: Feex. لم يتم تسجيل تاريخ مراجعة مستقلة. كيف نقوم بالبحث.
- Intel 64 and IA-32 Architectures Software Developer's Manual · يصف المجلدان 1 و2 عائلات التعليمات المحددة وCPUID؛ بينما يصف المجلد 3 عناصر التحكم في الحالة والترقيم الصفحي وVMX والحماية. ولا تثبت وثائق المعمارية الدعم لطراز معين.
- نواة Linux: مكدس الظل لتقنية فرض تدفق التحكم · يميز بين دعم العتاد وعلامات الملفات الثنائية وتمكين أداة التحميل والحماية النشطة لكل مسار تنفيذ. يصف IBT ومكدسات الظل كمرفقين منفصلين.
هل كانت هذه المقالة مفيدة؟
يكفي الإجابة بنعم أو لا. اختر سببًا إذا أردت، أو أضف ملاحظة قصيرة.
شكرًا لك. يساعدنا هذا في تحسين هذه الصفحة.