كتابة تعليمات برمجية آمنة نوعياً و يمكن التأكد منها

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

التحويل البرمجي في نفس الوقت (JIT) يقوم بإجراء عملية تسمى التحقق و هي تفحص التعليمات البرمجية وتحاول تحديد ما إذا كانت التعليمات البرمجية آمنة نوعياً. التعليمات البرمجية التي يثبت أثناء التحقق أنها آمنة نوعياً تسمى تعليمات برمجية آمنة نوعياً يمكن التحقق منها. يمكن أن تكون التعليمات البرمجية آمنة نوعياً، و لكن ليست آمنة نوعياً بشكل يمكن التأكد منه، و ذلك بسبب القيود علي عملية التحقق أو برنامج التحويل البرمجي. لا تعد كافة اللغات آمنة نوعياً، و برامج التحويل البرمجي لبعض اللغات مثل Microsoft Visual C++، لا يمكنها إنشاء تعليمات برمجية مُدارة و آمنة نوعياً و يمكن التأكد منها. و لتحديد ما إذا كان برنامج التحويل البرمجي للغة التي تستخدمها يقوم بإنشاء تعليمات برمجية آمنة نوعياً ويمكن التأكد منها، راجع وثائق برنامج التحويل البرمجي. إذا كنت تستخدم برنامج للتحويل البرمجي يقوم بإنشاء تعليمات برمجية آمنة نوعياً بشكل يمكن التأكد منه فقط عند تجنب بعض الدوال الإنشائية لهذه اللغة، فقد تحتاج إلى استخدام عدة تطوير برامج Windows (SDK) أداة PEVerify لتحديد ما إذا كانت التعليمات البرمجية لديك آمنة نوعياً بشكل يمكن التأكد منه.

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

راجع أيضًا:

المرجع

Peverify.exe (أداة PEVerify)

المبادئ

أمان الوصول إلى التعليمات البرمجية

أساسيات أمان الوصول إلى التعليمات البرمجية

عملية تنفيذ المدارة