كتابة عناصر تحكم مُدارة آمنة

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

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

و حينما يمكن، يجب كتابة عناصر التحكم المُدارة بشكل افتراضي بحيث لا تتطلب أذونات غير ممنوحة للتعليمات البرمجية الخاصة بالإنترنت أو الإنترانت. و لمنطقة الإنترنت (Internet)، يعني ذلك أن التعليمات البرمجية مُقيدة إلى عرض SafeTopLevelWindows و SafeSubWindows (مقيدة بنظام الأمان و ذلك لمنعها من انتحال شخصية مربعات الحوار الخاصة بالنظام)، و الاتصال مرة أخرى إلى الموقع الأصلي للمنشأ فقط، واستخدام التخزين المنعزل و المحدود.

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

تطوير

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

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

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

فيما يلي بعض النصائح لكتابة عناصر التحكم المُدارة الآمنة:

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

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

النشر

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

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

راجع أيضًا:

المبادئ

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

كتابة مكتبات فئات آمنة

إنشاء ثم استخدام التجميعات المسماة قوية

سياسة الأمان الافتراضية

موارد أخرى

إدارة سياسة الأمان