أفضل ممارسات الأمان ل ++C

يتضمن هذا الموضوع معلومات حول أدوات و ممارسات الأمان الموصى بها . استخدام هذه الموارد و الأدوات لا يجعل التطبيقات منيعة من الهجوم , ولكن يجعل الهجمات الناجحة أقل احتمالاً.

ميزات أمان ++Visual C

يناقش هذا القسم ميزات الأمان المضمنة في برنامج التحويل البرمجي الخاص بـ ++Visual C و برنامج الربط .

  • /GS (التحقق من أمان المخزن المؤقت)
    خيار المحول البرمجي هذا يوجه برنامج التحويل البرمجي لإدخال تعليمات كشف التجاوز البرمجية في الدالات التي تكون في خطر من استغلالها. عند إكتشاف تجاوز , يتم إيقاف التنفيذ. بشكل افتراضي يكون هذا الخيار ممكناً .

  • / SAFESEH (صورة له معالجات الاستثناء الآمن)
    يرشد هذا خيار الرابط الرابط إلى تضمينها في الصورة إخراج جدول يحتوي على العنوان كل معالج ‏‏ استثناء. في وقت التشغيل ، يستخدم نظام التشغيل هذا الجدول لكى يتأكد من أنه يتم تنفيذ معالجات الاستثناء الشرعية فقط. ويساعد هذا في منع تنفيذ معالجات ‏‏ استثناء المقدمة بهجوم ضار في وقت التشغيل. بشكل افتراضي هذا الخيار معطّل .

  • / nxcompat, / NXCOMPAT (المتوافق مع البيانات تنفيذ التعليمات البرمجية)
    هذه المترجم و تمكين خيارات الرابط توافق منع تنفيذ التعليمات البرمجية "(DEP). ميزة DEP المتطورة تحمي CPU مقابل تنفيذ شفرة.

  • / تحليل (تحليل رمز المؤسسة)
    خيار المحول البرمجي هذا يقوم بتنشيط تحليل التعليمات البرمجية التي تبعث تقريراً عن المشاكل الأمنية المحتملة مثل تجاوز المخزن المؤقت , كون الذاكرة غير مهيأة , عدم مرجعية المؤشر الفارغ , و تسريبات الذاكرة . بشكل افتراضي هذا الخيار معطّل . لمزيد من المعلومات، راجع تحليل رمز نظرة عامة حول C++/C.

  • / DYNAMICBASE (استخدام عنوان مساحة التخطيط randomization)
    يتيح هذا خيار الرابط إنشاء نسخة قابلة للتنفيذ يمكن تحميله في مواقع? مختلفة في ذاكرة عند البدء التنفيذ. يعمل هذا خيار أيضا الموقع المكدس في ذاكرة أفضل بكثير أقل.

CRT المحسّن أمنياً

لـVisual C++ 2005 ،تم تعزيز مكتبة وقت تشغيل CRT) C) لتتضمن إصدارات آمنة من الدالات التي تشكل مخاطر الأمان. (دالة نسخ السلسلة "strcpy" التى لم يتم التحقق منها ، على سبيل المثال.) الإصدارات الأقدم , الغير الآمنة من تلك الدوال تم إهمالها الآن ، وبالتالي يؤدى استخدامها إلى تحذيرات وقت التحويل البرمجي. شدة ننصح باستخدام إصدارات هذه الدالات CRT اﻷمن بدلاً من اختيار لمنع التحذيرات التحويل البرمجي. لمزيد من المعلومات، راجع تحسينات الأمان في CRT.

مكتبة SafeInt

SafeInt أعضاء البياناتتساعد على منع تجاوز العدد الصحيح والأخطاء exploitable الأخرى التي قد ينتج عنه عندما يقوم تطبيق بإجراء العمليات الحسابية. SafeIntتتضمن المكتبة SafeInt أعضاء البيانات، SafeIntException أعضاء البيانات، و عدة SafeInt أعضاء البيانات.

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

كل SafeIntالدالة بحماية أحد رياضى العملية من على خطأ exploitable. يمكنك استخدم نوعين مختلفين من المعلمات دون الحاجة لتحويلها إلى نفس النوع. استخدام SafeIntالفئة إلى حماية عدة العمليات حسابية.

‏‫التكرارات (Iterators) التى تم التحقق منها

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

تحليل التعليمات البرمجية للتعليمات البرمجية المُدارة

‏‫تحليل التعليمات البرمجية للتعليمات البرمجية المُدارة , والتي تعرف أيضاً باسم FxCop ، هي أداة تقوم بفحص التجميعات بحثاً عن المطابقة بـ "إرشادات التصميم الخاصة بـ" Microsoft .NET Framework. يحلل FxCop الرمز و بيانات التعريف داخل كل تجميع للتحقق من وجود عيوب في النواحي التالية:

  • تصميم المكتبة

  • ترجمة

  • اصطلاحات التسمية

  • الأداء

  • الأمان

حليل التعليمات البرمجية للتعليمات البرمجية المُدارة مضمن فى Visual Studio Application Lifecyle Management، و يمكن أيضاً تنزيله من https://www.gotdotnet.com/team/fxcop/

أداة التحقق من تطبيقات Windows

توفر كـ جزءا من "مجموعة أدوات توافق البرنامج التطبيقي"، Application Verifier(AppVerifier) هو أداة التي تساعد المطورين تعريف المحتملة تطبيق التوافق واستقراره، وأمان المشكلات.

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

المحقق يسمح لك بتنفيذ ما يلي:

  • اختبار أخطاء توافق التطبيق المحتملة التى تكون ناتجة عن أخطاء البرمجة العامة.

  • فحص تطبيق للمشكلات المتعلقة بالذاكرة.

  • اختبار للتوافق تطبيق مع المتطلبات للشعار الحالي البرامج مثل كـ برنامج ‏‫نظام التشغيل Windows 7 البرامج Logo و ‏‫نظام التشغيل Windows الخادم 2008 R2 شعار البرنامج.

  • التعرف على مشكلات الأمان المحتملة في أحد التطبيقات.

أداة التحقق من تطبيقات Windows‬ متوفرة في https://www.microsoft.com/windows/appcompatibility/appverifier.mspx.

ميزات الأمان لـ NET Framework.

تكوين نهج الأمانتصف إرشادات و أدوات لضبط نهج الأمان.NET Framework.

حساب مستخدم Windows

إستخدام حسابات مستخدمي Windows التي تنتمي إلى مجموعة Administrators يعرض المطورين و --بالتالى-- العملاء لمخاطر الأمان . لمزيد من المعلومات، راجع تشغيل كعضو مجموعة المستخدمين.

زيادة الأمان باستخدام التحكم فى حساب المستخدم ضمن Windows Vista

التحكم في حساب المستخدم "(UAC) هو ميزة فى نظام التشغيل Windows Vista حيث تكون حسابات المستخدم محدودة الامتيازات. لمزيد من المعلومات، راجع كيف يؤثر التحكم في حساب المستخدم (UAC) على تطبيقاتك.

راجع أيضًا:

المرجع

System.Security

المبادئ

كيف يؤثر التحكم في حساب المستخدم (UAC) على تطبيقاتك

موارد أخرى

تأمين التطبيقات