ملاحظة
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في هذه المقالة، نقدم أنشطة الأمان وعناصر التحكم التي يجب مراعاتها عند تطوير تطبيقات للسحابة. تتم تغطية أسئلة ومفاهيم الأمان التي يجب مراعاتها أثناء مرحلتي التنفيذ والتحقق من دورة حياة تطوير الأمان من Microsoft (SDL ). الهدف هو مساعدتك في تحديد الأنشطة وخدمات Azure التي يمكنك استخدامها لتطوير تطبيق أكثر أمانا.
يتم تناول المراحل التالية لدورة تطوير الأمان من Microsoft في هذه المقالة:
- تنفيذ
- التحقق من الصحة
تنفيذ
ينصب تركيز مرحلة التنفيذ على وضع أفضل الممارسات للوقاية المبكرة واكتشاف مشكلات الأمان وإزالتها من التعليمات البرمجية. افترض أن التطبيق الخاص بك يستخدم بطرق لم تكن تنوي استخدامها. يساعدك هذا على الحماية من إساءة الاستخدام العرضية أو المتعمدة لتطبيقك.
إجراء مراجعات التعليمات البرمجية
قبل إيداع التعليمات البرمجية، قم بإجراء مراجعات التعليمات البرمجية لزيادة الجودة الإجمالية للتعليمات البرمجية وتقليل مخاطر إنشاء الأخطاء. يمكنك استخدام Visual Studio لإدارة عملية مراجعة التعليمات البرمجية.
إجراء تحليل التعليمات البرمجية الثابتة
يتم إجراء تحليل التعليمات البرمجية الثابتة (المعروف أيضا باسم تحليل التعليمات البرمجية المصدر) كجزء من مراجعة التعليمات البرمجية. يشير تحليل التعليمات البرمجية الثابتة عادة إلى تشغيل أدوات تحليل التعليمات البرمجية الثابتة للعثور على الثغرات الأمنية المحتملة في التعليمات البرمجية غير المقتطاعة. يستخدم تحليل التعليمات البرمجية الثابتة تقنيات مثل فحص العيوبوتحليل تدفق البيانات.
يقدم Azure Marketplace أدوات المطور التي تقوم بإجراء تحليل التعليمات البرمجية الثابتة وتساعد في مراجعات التعليمات البرمجية.
التحقق من صحة كل إدخال لتطبيقك وتعقيمه
تعامل مع جميع الإدخالات على أنها غير موثوق بها لحماية التطبيق الخاص بك من الثغرات الأمنية لتطبيق الويب الأكثر شيوعا. البيانات غير الموثوق بها هي وسيلة لهجمات الحقن. يتضمن إدخال التطبيق معلمات في عنوان URL، وإدخال من المستخدم، وبيانات من قاعدة البيانات أو من واجهة برمجة تطبيقات، وأي شيء يتم تمريره يمكن للمستخدم معالجته. يجب أن يتحقق التطبيق من صحة البيانات من الناحية التركيبية والدلالية قبل أن يستخدم التطبيق البيانات بأي شكل من الأشكال (بما في ذلك عرضها مرة أخرى للمستخدم).
تحقق من صحة الإدخال في وقت مبكر من تدفق البيانات للتأكد من أن البيانات التي تم تكوينها بشكل صحيح فقط تدخل سير العمل. لا تريد استمرار وجود بيانات غير مشوهة في قاعدة البيانات أو تشغيل خلل في مكون انتقال البيانات من الخادم.
قائمة الحظر وقائمة السماح هما نهجان عامان لإجراء التحقق من صحة بناء جملة الإدخال:
تحاول قائمة الحظر التحقق من أن إدخال مستخدم معين لا يحتوي على محتوى "معروف بأنه ضار".
يحاول السماح بالقائمة التحقق من تطابق إدخال مستخدم معين مع مجموعة من الإدخالات "الجيدة المعروفة". قائمة السماح المستندة إلى الأحرف هي شكل من أشكال السماح حيث يتحقق التطبيق من أن إدخال المستخدم يحتوي على أحرف "جيدة معروفة" فقط أو أن الإدخال يطابق تنسيقا معروفا.
على سبيل المثال، قد يتضمن ذلك التحقق من أن اسم المستخدم يحتوي على أحرف أبجدية رقمية فقط أو أنه يحتوي على رقمين بالضبط.
Allowlisting هو النهج المفضل لبناء برامج آمنة. قائمة الحظر عرضة للخطأ لأنه من المستحيل التفكير في قائمة كاملة من الإدخالات التي يحتمل أن تكون سيئة.
قم بهذا العمل على الخادم، وليس على جانب العميل (أو على الخادم وعلى جانب العميل).
التحقق من مخرجات التطبيق الخاص بك
يجب دائما ترميز أي إخراج تقدمه إما بصريا أو داخل مستند وإلغاءه. يتم استخدام الهروب، المعروف أيضا باسم ترميز الإخراج، للمساعدة في ضمان أن البيانات غير الموثوق بها ليست وسيلة لهجوم الحقن. يوفر الهروب، جنبا إلى جنب مع التحقق من صحة البيانات، دفاعات ذات طبقات لزيادة أمان النظام ككل.
يتأكد الهروب من عرض كل شيء كإخراج. يتيح الهروب أيضا للمترجم الفوري معرفة أن البيانات غير مقصودة ليتم تنفيذها، وهذا يمنع الهجمات من العمل. هذه تقنية هجوم شائعة أخرى تسمى البرمجة النصية عبر المواقع (XSS).
إذا كنت تستخدم إطار عمل ويب من جهة خارجية، يمكنك التحقق من خيارات ترميز الإخراج على مواقع الويب باستخدام ورقة المعلومات المرجعية لمنع OWASP XSS.
استخدام الاستعلامات ذات المعلمات عند الاتصال بقاعدة البيانات
لا تقم أبدا بإنشاء استعلام قاعدة بيانات مضمن "قيد التشغيل" في التعليمات البرمجية الخاصة بك وإرساله مباشرة إلى قاعدة البيانات. قد تتسبب التعليمات البرمجية الضارة المدرجة في التطبيق الخاص بك في سرقة قاعدة البيانات أو مسحها أو تعديلها. يمكن أيضا استخدام التطبيق الخاص بك لتشغيل أوامر نظام التشغيل الضارة على نظام التشغيل الذي يستضيف قاعدة البيانات الخاصة بك.
بدلا من ذلك، استخدم الاستعلامات ذات المعلمات أو الإجراءات المخزنة. عند استخدام الاستعلامات ذات المعلمات، يمكنك استدعاء الإجراء من التعليمات البرمجية بأمان وتمرير سلسلة دون القلق من أنه سيتم التعامل معها كجزء من عبارة الاستعلام.
إزالة رؤوس الخادم القياسية
AspNet-Version تكشف عناوين مثل الخادم وX-Powered-By وX- معلومات حول الخادم والتقنيات الأساسية. نوصي بقمع هذه الرؤوس لتجنب أخذ بصمات الأصابع للتطبيق. راجع إزالة رؤوس الخادم القياسية على مواقع Azure على الويب.
فصل بيانات الإنتاج
لا ينبغي استخدام بيانات الإنتاج الخاصة بك، أو البيانات "الحقيقية"، للتطوير أو الاختبار أو أي غرض آخر غير المقصود من العمل. يجب استخدام مجموعة بيانات مخفية (مجهولة المصدر) لجميع عمليات التطوير والاختبار.
وهذا يعني أن عددا أقل من الأشخاص لديهم حق الوصول إلى بياناتك الحقيقية، ما يقلل من سطح الهجوم. وهذا يعني أيضا أن عددا أقل من الموظفين يرون البيانات الشخصية، ما يلغي خرقا محتملا للسرية.
تنفيذ نهج كلمة مرور قوية
للدفاع ضد التخمين القائم على القوة الغاشمة والقاموس، يجب تطبيق نهج كلمة مرور قوية للتأكد من أن المستخدمين ينشئون كلمة مرور معقدة (على سبيل المثال، 12 حرفا كحد أدنى للطول وتتطلب أحرفا أبجدية رقمية وخاصة).
يساعدك معرف Microsoft Entra الخارجي في المستأجرين الخارجيين في إدارة كلمة المرور، من خلال توفير إعادة تعيين كلمة مرور الخدمة الذاتية والمزيد.
للدفاع ضد الهجمات على الحسابات الافتراضية، تحقق من أن جميع المفاتيح وكلمات المرور قابلة للاستبدال وأن يتم إنشاؤها أو استبدالها بعد تثبيت الموارد.
إذا كان يجب على التطبيق إنشاء كلمات المرور تلقائيا، فتأكد من أن كلمات المرور التي تم إنشاؤها عشوائية وأن لديها إنتروبيا عالية.
التحقق من صحة تحميلات الملفات
إذا كان التطبيق الخاص بك يسمح بتحميل الملفات، ففكر في الاحتياطات التي يمكنك اتخاذها لهذا النشاط الخطر. الخطوة الأولى في العديد من الهجمات هي الحصول على بعض التعليمات البرمجية الضارة في نظام يتعرض للهجوم. يساعد استخدام تحميل ملف المهاجم على إنجاز ذلك. يقدم OWASP حلولا للتحقق من صحة ملف للتأكد من أن الملف الذي تقوم بتحميله آمن.
تساعد الحماية من البرامج الضارة على تحديد الفيروسات وبرامج التجسس والبرامج الضارة الأخرى وإزالتها. يمكنك تثبيت Microsoft Antimalware أو حل حماية نقطة النهاية لشريك Microsoft (Trend Micro و Broadcom و McAfee و Microsoft Defender Antivirus في Windows و Endpoint Protection).
تتضمن Microsoft Antimalware ميزات مثل الحماية في الوقت الحقيقي، والمسح المجدول، ومعالجة البرامج الضارة، وتحديثات التوقيع، وتحديثات المحرك، وإعداد تقارير العينات، وجمع أحداث الاستبعاد. يمكنك تكامل Microsoft Antimalware وحلول الشركاء مع Microsoft Defender for Cloud لتسهيل النشر والكشف المضمن (التنبيهات والحوادث).
عدم تخزين المحتوى الحساس مؤقتا
لا تقم بالتخزين المؤقت للمحتوى الحساس على المستعرض. يمكن للمستعرضات تخزين المعلومات للتخزين المؤقت والمحفوظات. يتم تخزين الملفات المخزنة مؤقتا في مجلد مثل مجلد ملفات الإنترنت المؤقتة، في حالة Internet Explorer. عند الإشارة إلى هذه الصفحات مرة أخرى، يعرض المستعرض الصفحات من ذاكرة التخزين المؤقت الخاصة به. إذا تم عرض المعلومات الحساسة (العنوان وتفاصيل بطاقة الائتمان ورقم الضمان الاجتماعي واسم المستخدم) للمستخدم، فقد يتم تخزين المعلومات في ذاكرة التخزين المؤقت للمستعرض ويمكن استردادها عن طريق فحص ذاكرة التخزين المؤقت للمستعرض أو بالضغط على الزر رجوع في المستعرض.
التحقق من الصحة
تتضمن مرحلة التحقق جهدا شاملا لضمان تلبية التعليمات البرمجية لقواعد الأمان والخصوصية التي تم إنشاؤها في المراحل السابقة.
البحث عن الثغرات الأمنية وإصلاحها في تبعيات التطبيق
يمكنك مسح تطبيقك ومكتباته التابعة ضوئيا لتحديد أي مكونات معرضة للخطر معروفة. تتضمن المنتجات المتوفرة لإجراء هذا الفحص فحص تبعية OWASPوSnyk و Black Duck.
اختبار التطبيق الخاص بك في حالة تشغيل
اختبار أمان التطبيق الديناميكي (DAST) هو عملية اختبار تطبيق في حالة تشغيل للعثور على الثغرات الأمنية. تحلل أدوات DAST البرامج أثناء تنفيذها للعثور على الثغرات الأمنية مثل تلف الذاكرة وتكوين الخادم غير الآمن والبرمجة النصية عبر المواقع ومشكلات امتيازات المستخدم وحقن SQL وغيرها من المخاوف الأمنية الحرجة.
يختلف DAST عن اختبار أمان التطبيق الثابت (SAST). تحلل أدوات SAST التعليمات البرمجية المصدر أو الإصدارات المحولة برمجيا من التعليمات البرمجية عندما لا يتم تنفيذ التعليمات البرمجية من أجل العثور على عيوب أمنية.
تنفيذ DAST، ويفضل بمساعدة متخصص أمني ( مختبر اختراق أو تقييم الثغرات الأمنية). إذا لم يكن أحد محترفي الأمان متوفرا، فيمكنك إجراء DAST بنفسك باستخدام ماسح ضوئي لوكيل الويب وبعض التدريب. قم بتوصيل ماسح DAST الضوئي مبكرا للتأكد من عدم إدخال مشكلات أمان واضحة في التعليمات البرمجية الخاصة بك. راجع موقع OWASP للحصول على قائمة بالماسحات الضوئية للثغرات الأمنية لتطبيق الويب.
إجراء اختبار الزغب
في اختبار غامض، يمكنك إحداث فشل البرنامج عن طريق إدخال بيانات غير مشوهة أو عشوائية عمدا إلى تطبيق. يساعد تحريض فشل البرنامج على الكشف عن مشكلات الأمان المحتملة قبل إصدار التطبيق.
Security Risk Detection هي خدمة اختبار غامض فريدة من نوعها من Microsoft للعثور على الأخطاء الحرجة للأمان في البرامج.
إجراء مراجعة سطح الهجوم
تساعد مراجعة سطح الهجوم بعد إكمال التعليمات البرمجية على ضمان مراعاة أي تغييرات في التصميم أو التنفيذ على تطبيق أو نظام. يساعد على ضمان مراجعة وتخفيف أي ناقلات هجوم جديدة تم إنشاؤها نتيجة للتغييرات، بما في ذلك نماذج التهديد.
يمكنك إنشاء صورة لسطح الهجوم عن طريق مسح التطبيق ضوئيا. تقدم Microsoft أداة تحليل سطح الهجوم تسمى محلل سطح الهجوم. يمكنك الاختيار من بين العديد من أدوات أو خدمات الاختبار الديناميكي التجاري ومسح الثغرات الأمنية، بما في ذلك OWASP Attack Surface Detector و Arachniوw3af. تتبع أدوات الفحص هذه في تطبيقك وتعيين أجزاء التطبيق التي يمكن الوصول إليها عبر الويب. يمكنك أيضا البحث في Azure Marketplace عن أدوات مطور مماثلة.
إجراء اختبار اختراق الأمان
يعد التأكد من أن تطبيقك آمنا بنفس أهمية اختبار أي وظائف أخرى. جعل اختبار الاختراق جزءا قياسيا من عملية الإنشاء والنشر. قم بجدولة اختبارات الأمان المنتظمة ومسح الثغرات الأمنية على التطبيقات التي تم توزيعها، وراقب المنافذ المفتوحة ونقاط النهاية والهجمات.
تشغيل اختبارات التحقق من الأمان
يحتوي Azure Tenant Security Solution (AzTS) من حزمة DevOps الآمنة ل Azure (AzSK) على SVTs لخدمات متعددة من النظام الأساسي ل Azure. يمكنك تشغيل SVTs هذه بشكل دوري للتأكد من أن اشتراك Azure والموارد المختلفة التي تشكل تطبيقك في حالة آمنة. يمكنك أيضا أتمتة هذه الاختبارات باستخدام ميزة ملحقات التكامل المستمر/النشر المستمر (CI/CD) في AzSK، ما يجعل SVTs متوفرة كملحق Visual Studio.
الخطوات التالية
في المقالات التالية، نوصي بعناصر التحكم في الأمان والأنشطة التي يمكن أن تساعدك في تصميم التطبيقات الآمنة ونشرها.