تصميم التطبيقات الآمنة على Azure

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

يتم تناول المراحل التالية لدورة تطوير الأمان من Microsoft في هذه المقالة:

  • التدريب
  • المتطلبات
  • التصميم

التدريب

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

استخدم الموارد التالية أثناء مرحلة التدريب للتعرّف على خدمات Azure المتوفرة للمطورين، وعلى أفضل ممارسات الأمان على Azure:

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

  • يوفر دليل البدء لمطوري Azure معلومات أساسية للمطورين الذين يتطلعون إلى بدء استخدام نظام Azure الأساسي لاحتياجات التطوير لديهم.

  • توضح عدد تطوير البرامج والأدوات الأدوات المتوفرة على Azure.

  • توفر خدمات Azure DevOps أدوات التعاون في التطوير. تشمل الأدوات المسارات عالية الأداء، ومستودعات Git المجانية، ولوحات Kanban القابلة للتكوين، واختبار التحميل الآلي الموسّع المستند إلى السحابة. يجمع مركز موارد DevOps بين مواردنا لتعلم ممارسات DevOps، والتحكم في إصدار Git، وأساليب التطوير السريع، وطريقة استخدامنا لـ DevOps في Microsoft، وطريقة تقييمك لتقدمك في DevOps.

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

  • حزمة DevOps الآمنة ل Azure هي مجموعة من البرامج النصية والأدوات والملحقات والأتمتة التي تلبي اشتراك Azure الشامل واحتياجات أمان الموارد لفرق DevOps التي تستخدم أتمتة واسعة النطاق. يمكن أن توضح لك حزمة DevOps الآمنة لـ Azure كيفية دمج الأمان بسلاسة في مهام سير عمل DevOps الأصلية. تتناول الحزمة أدوات مثل اختبارات التحقق من الأمان (SVTs)، والتي يمكن أن تساعد المطورين في كتابة تعليمة برمجية آمنة واختبار التكوين الآمن لتطبيقاتهم السحابية في مرحلة الترميز ومرحلة التطوير المبكر.

  • أفضل ممارسات وأنماط أمان Azure - مجموعة من أفضل ممارسات الأمان لاستخدامها عند تصميم الحلول السحابية ونشرها وإدارتها باستخدام Azure. تهدف الإرشادات إلى أن تكون موردا لمحترفي تكنولوجيا المعلومات. قد يشمل ذلك المصممين والمهندسين المعماريين والمطورين والمختبرين الذين يقومون ببناء ونشر حلول Azure الآمنة.

المتطلبات

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

النظر في مشكلات الأمان والخصوصية

هذه المرحلة هي أفضل وقت للنظر في مشكلات الأمان والخصوصية الأساسية. تحديد المستويات المقبولة من الأمان والخصوصية في بداية المشروع من شأنه مساعدة الفريق فيما يلي:

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

عند كتابة المتطلبات لتطبيقك، تأكد من مراعاة عناصر التحكم في الأمان التي يمكن أن تساعد في الحفاظ على أمان تطبيقك وبياناتك.

طرح الأسئلة الأمنية

اطرح على نفسك الأسئلة الأمنية، مثل:

  • هل يحتوي تطبيقي على بيانات حساسة؟

  • هل يجمع تطبيقي أو يخزن بيانات تتطلب مني الالتزام بمعايير الصناعة وبرامج التوافق مثل مجلس اختبار المؤسسات المالية الفيدرالية (FFIEC) أو معايير أمان بيانات صناعة بطاقات الدفع (PCI DSS)؟

  • هل يجمع تطبيقي أو يحتوي على بيانات شخصية أو بيانات عملاء حساسة يمكن استخدامها، إما استخدامها وحدها أو مع معلومات أخرى، لتحديد هوية شخص واحد أو الاتصال به أو تحديد موقعه؟

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

  • أين وكيف تُخزَّن بياناتي؟ ضع في اعتبارك كيفية مراقبة خدمات التخزين التي يستخدمها تطبيقك لأي تغييرات غير متوقعة (مثل أوقات استجابة أبطأ). هل يمكنك التأثير على التسجيل لجمع بيانات أكثر تفصيلا وتحليل مشكلة في العمق؟

  • هل تطبيقي متاح للجمهور (على الإنترنت) أو داخليا فقط؟ إذا كان تطبيقك متوفرًا للجمهور، فكيف تحمي البيانات التي قد تُجمع من استخدامها بطريقة خاطئة؟ وإذا كان تطبيقك متوفرًا داخليًا فقط، ففكّر مَن في مؤسستك يجب أن يكون لديه حق الوصول إلى التطبيق والمدة الواجبة لتمتّعه بهذا الحق.

  • هل تفهم نموذج الهوية لديك قبل البدء في تصميم تطبيقك؟ هل يمكنك تحديد أن المستخدمين هم من يقولون أنهم وما هو المستخدم المصرح له بالقيام به؟

  • هل يؤدي تطبيقي مهاماً حساسة أو مهمة (مثل تحويل الأموال أو فتح الأبواب أو توصيل الأدوية)؟ ضع في اعتبارك كيفية التحقق من أن المستخدم الذي يقوم بمهمة حساسة مخول بتنفيذ المهمة وكيفية المصادقة على أن الشخص هو الشخص الذي يقول إنه هو. التخويل (AuthZ) هو إجراء منح إذن أمان أساسي مُصدَّق عليه لتنفيذ شيء ما. والمصادقة (AuthN) هي إجراء تحدٍّ لطرف ما للحصول على بيانات اعتماد مشروعة.

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

مراجعة العشرة الأهم من OWASP

فكّر في مراجعة أهم 10 مخاطر أمان تهدد التطبيقات من OWASP. تعالج قائمة العشرة الأهم من OWASP المخاطر الأمنية المهمة التي تهدد تطبيقات الويب. يمكن أن يساعدك الوعي بهذه المخاطر الأمنية على اتخاذ القرارات الخاصة بالمتطلبات والتصميم تحدّ من هذه المخاطر في تطبيقك.

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

  • كيف سأكتشف الهجوم؟
  • ماذا سأفعل إذا كان هناك هجوم أو خرق؟
  • كيف يمكنني التعافي من الهجوم، مثل حالات تسرب البيانات أو العبث بها؟

التصميم

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

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

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

مع وضع ذلك في الاعتبار، نناقش ما يلي من مفاهيم التصميم الآمن وعناصر التحكم في الأمان الواجب معالجتها عند تصميم التطبيقات الآمنة:

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

استخدام مكتبة ترميز آمنة وإطار عمل برنامج

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

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

تقدم Microsoft لغات وأطر عمل وأدوات مختلفة يمكنك استخدامها لتطوير التطبيقات على Azure. أحد الأمثلة على ذلك هو Azure for .NET ومطوّرو .NET Core. لكل لغة وإطار عمل نقدمهما، يمكنك العثور على قوالب التشغيل السريع والبرامج التعليمية ومراجع واجهة برمجة التطبيقات لمساعدتك على البدء بسرعة.

تقدم Azure خدمات مختلفة يمكنك استخدامها لاستضافة مواقع الويب وتطبيقات الويب. تتيح لك هذه الخدمات التطوير بلغتك المفضلة، سواءً كانت .NET أو .NET Core أو Java أو Ruby أو Node.js أو PHP أو Python. من هذه الخدمات تطبيقات الويب لخدمة تطبيق Azure (تطبيقات الويب).

تضيف تطبيقات الويب قوة Microsoft Azure إلى تطبيقك. وتتضمن الأمان وموازنة التحميل والتحجيم التلقائي والإدارة التلقائية. يمكنك أيضًا الاستفادة من إمكانيات DevOps في تطبيقات الويب؛ مثل إدارة الحزم، والتقسيم المرحلي للبيئات، والمجالات المخصصة، وشهادات SSL/TLS، والتوزيع المستمر من Azure DevOps وGitHub ومركز Docker والموارد الأخرى.

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

تطبيق التحديثات على المكونات

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

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

استخدام نمذجة المخاطر أثناء تصميم التطبيق

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

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

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

التهديد خاصية الأمان التخفيف من المخاطر المُحتملة في نظام Azure الأساسي
تزييف الهوية المصادقة يتطلب اتصالات HTTPS.
العبث بالبيانات تكامل البيانات تحقق من صحة شهادات SSL/TLS. يجب أن تتحقق التطبيقات التي تستخدم طبقة مآخذ التوصيل الآمنة (SSL) أو بروتوكول أمان طبقة النقل (TLS) بشكل كامل من شهادات X.509 للكيانات التي تتصل بها. استخدم شهادات Azure Key Vault لـ إدارة شهادات x509.
القدرة على الإنكار عدم القدرة على الإنكار مكّن المراقبة والتشخيص من Azure.
كشف المعلومات السرية شفّر البيانات الحساسة الثابتة والمتنقلة.
⁧⁩رفض الخدمة⁧ التوافر راقب مقاييس الأداء لظروف حجب الخدمة المحتملة. طبّق عوامل تصفية الاتصال. توفر حماية Azure DDoS، بجانب أفضل ممارسات تصميم التطبيقات، دفاعاً ضد الهجمات المُوزَّعة لحجب الخدمة.
رفع الامتيازات التصريح استخدم إدارة الهويات المتميزة معرف Microsoft Entra.

تقليل الأجزاء المعرضة للهجوم لديك

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

  • التعليمات البرمجية للميزات التي لم تصدِرها بعد.
  • التعليمة البرمجية لدعم تصحيح الأخطاء.
  • واجهات الشبكة والبروتوكولات المُهملة أو غير المُستخدمة.
  • الأجهزة الظاهرية والموارد الأخرى غير المُستخدمة.

إجراء تنظيف منتظم لمواردك والتأكد من إزالة التعليمات البرمجية غير المُستخدمة هي طرق رائعة لضمان تقليل فرص الهجوم من جانب الجهات التي تستهدف الضرر.

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

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

يساعدك تحليل الأجزاء المعرضة للهجوم على تحديد ما يلي:

  • وظائف وأجزاء النظام التي تلزم مراجعتها واختبارها بحثًا عن الثغرات الأمنية.
  • المناطق عالية الخطورة من التعليمات البرمجية التي تتطلب حماية دفاعية متعمقة (أجزاء النظام التي تحتاج إلى الدفاع عنها).
  • متى يلزم تغيير الأجزاء المعرضة للهجوم وتوجد الحاجة إلى تحديث تقييم المخاطر.

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

نناقش إجراء مراجعة للأجزاء المعرضة للهجوم أثناء مرحلة التحقق من دورة تطوير الأمان.

إشعار

ما الفرق بين نمذجة المخاطر وتحليل الأجزاء المعرضة للهجوم؟ نمذجة المخاطر هي عملية تحديد المخاطر الأمنية المُحتملة التي تهدد تطبيقك، ثم ضمان تطبيق العوامل المناسبة للتخفيف من آثار المخاطر بالشكل الصحيح. يحدد تحليل الأجزاء المعرضة للهجوم المناطق عالية التعرض للخطر غير المُؤمَّنة ضد الهجوم في التعليمات البرمجية. ويشمل البحث عن طرق للدفاع عن المناطق عالية التعرض للخطر في تطبيقك، ومراجعة واختبار تلك المناطق في التعليمات البرمجية قبل توزيع التطبيق.

اعتماد سياسة هوية كمحيط أمني أساسي

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

فيما يلي ما يمكنك القيام به لتطوير نهج يركز على الهوية من أجل تطوير تطبيقات الويب:

  • قم بفرض المصادقة متعددة العوامل للمستخدمين.
  • استخدام أنظمة أساسية قوية للمصادقة والتخويل.
  • تطبيق مبدأ أقل الامتيازات.
  • تنفيذ الوصول في الوقت المناسب.

فرض المصادقة متعددة العوامل للمستخدمين

استخدم المصادقة ثنائية العوامل. المصادقة ثنائية العوامل هي المعيار الحالي للمصادقة والتخويل، لأنها تتجنب نقاط الضعف الأمنية الكامنة في أنواع اسم المستخدم وكلمة المرور المُستخدمين للمصادقة. يجب تصميم الوصول إلى واجهات إدارة Azure (مدخل Azure/PowerShell البعيد) وإلى الخدمات التي تواجه العملاء وتكوينها لاستخدام مصادقة Microsoft Entra متعددة العوامل.

استخدام أنظمة أساسية قوية للمصادقة والتخويل

استخدم آليات المصادقة والتخويل التي يوفرها النظام الأساسي بدلاً من التعليمات البرمجية المخصصة. وذلك لأن تطوير التعليمات البرمجية للمصادقة المخصصة يمكن أن يكون عرضة للخطأ. غالبًا ما تُراجَع التعليمات البرمجية التجارية (من Microsoft مثلاً) على نطاق واسع لفحص الأمان. معرف Microsoft Entra (معرف Microsoft Entra) هو حل Azure لإدارة الهوية والوصول. تساعد أدوات وخدمات Microsoft Entra هذه في التطوير الآمن:

  • النظام الأساسي للهويات في Microsoft هو مجموعة من المكونات التي يستخدمها المطورون لإنشاء تطبيقات تسجل دخول المستخدمين بأمان. يساعد النظام الأساسي المطورين الذين يقومون بإنشاء تطبيقات مستأجر واحد وخط العمل (LOB) والمطورين الذين يتطلعون إلى تطوير تطبيقات متعددة المستأجرين. بالإضافة إلى تسجيل الدخول الأساسي، يمكن للتطبيقات المُنشأة باستخدام النظام الأساسي للهويات في Microsoft استدعاء واجهات برمجة تطبيقات Microsoft وواجهات برمجة التطبيقات المخصصة. يدعم النظام الأساسي للهويات في Microsoft البروتوكولات المتوافقة مع معايير المجال، مثل OAuth 2.0 وOpenID Connect.

  • Azure Active Directory B2C (Azure AD B2C) هي خدمة إدارة الهوية التي تستخدمها لتخصيص والتحكم في كيفية تسجيل العملاء وتسجيل الدخول وإدارة ملفات التعريف الخاصة بهم عند استخدام تطبيقاتك. وهذا يشمل التطبيقات المُطوَّرة لأنظمة التشغيل iOS وAndroid و‎.NET وغيرها. تمكّن خدمة متاجرة عمل-مستهلك في Azure Active Directory هذه الإجراءات مع حماية هويات العملاء.

تطبيق مبدأ أقل الامتيازات

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

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

تأكد من أن تطبيقك يفرض أقل الامتيازات في مختلف أنماط الوصول التي يتضمنها.

إشعار

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

تطبيق الوصول في نفس الوقت

طبّق الوصول في نفس الوقت (JIT) للمزيد من تقليل وقت التعرض للامتيازات. استخدم إدارة الهويات المتميزة Microsoft Entra من أجل:

  • منح المستخدمين الأذونات التي يحتاجونها فقط في نفس الوقت.
  • تعيين أدوار لمدة مختصرة مع الثقة في أن الامتيازات يتم إبطالها تلقائيًا.

طلب إعادة المصادقة للمعاملات الهامة

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

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

استخدام حل لإدارة المفاتيح لغرض تأمين المفاتيح وبيانات الاعتماد والبيانات السرية الأخرى

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

عليك دائمًا وضع المفاتيح والشهادات والبيانات السرية وسلاسل الاتصال في حل لإدارة المفاتيح. يمكنك استخدام حل مركزي حيث يمكن تخزين المفاتيح والبيانات السرية في الوحدات النمطية لأمان الأجهزة (HSMs). يوفر لك Azure وحدة نمطية لأمان الأجهزة في السحابة مع Azure Key Vault.

يمثّل Key Vault ⁧⁩مخزنًا سريًا⁧⁩: خدمة سحابية مركزية لتخزين البيانات السرية للتطبيق. يحافظ Key Vault على بياناتك السرية بأمان من خلال حفظ البيانات السرية للتطبيق في موقع مركزي واحد، إلى جانب توفير الوصول الآمن والتحكم في الأذونات وتسجيل الوصول.

تُخزَّن البيانات السرية في مخازن فردية. لكل مخزن له نُهجه الخاصة للتكوين والأمان للتحكم في إمكانية الوصول. يمكنك الوصول إلى بياناتك من خلال واجهة برمجة تطبيقات REST، أو من خلال عدة تطوير برامج العميل المتوفرة لمعظم لغات الكمبيوتر.

هام

صُمِّم Azure Key Vault لتخزين بيانات التكوين السرية لتطبيقات الخادم. وهو غير مخصص لتخزين البيانات التي تخص مستخدمي التطبيق. وينعكس ذلك في خصائص الأداء وواجهة برمجة التطبيقات ونموذج التكلفة.

يجب تخزين بيانات المستخدم في مكان آخر؛ مثلاً في مثيل قاعدة بيانات Azure SQL الذي يحتوي على تشفير البيانات الشفاف (TDE) أو في حساب تخزين يستخدم تشفير خدمة تخزين Azure. ويمكن الاحتفاظ بالبيانات السرية التي يستخدمها تطبيقك للوصول إلى مخازن البيانات هذه في Azure Key Vault.

حماية البيانات الحساسة

حماية البيانات جزء أساسي من استراتيجية الأمان لديك. يساعدك تصنيف بياناتك وتحديد احتياجات حماية البيانات في تصميم تطبيقك مع وضع أمان البيانات في الاعتبار. تصنيف (فرز) البيانات المُخزَّنة حسب الحساسية وتأثير الأعمال يساعد المطورين في تحديد المخاطر المرتبطة بالبيانات.

عليك تسمية جميع البيانات القابلة للتطبيق على أنها حساسة عند تصميم تنسيقات البيانات. تأكد من أن التطبيق يعامل البيانات القابلة للتطبيق على أنها حساسة. يمكن أن تساعدك هذه الممارسات في حماية بياناتك الحساسة:

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

استخدام التشفير

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

تجنب الترميز المضمن

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

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

بشكل أساسي، افترض أن كل شيء في مشروع التطوير الخاص بك هو معرفة عامة عند نشره. تجنب تضمين البيانات الحساسة من أي نوع في المشروع.

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

تنفيذ تدابير الفشل الآمن

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

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

الاستفادة من معالجة الأخطاء والاستثناءات

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

تأكد من:

  • يمكنك معالجة الاستثناءات بطريقة مركزية لتجنب تكرار كتل المحاولة/الالتقاط في التعليمة البرمجية.

  • تُعالج جميع السلوكيات غير المُتوقعة داخل التطبيق.

  • لا تسرّب الرسائل المعروضة للمستخدمين البيانات الهامة، ولكنها توفر معلومات كافية لشرح المشكلة.

  • تُسجَّل الاستثناءات ويُسجَّل أنها توفر معلومات كافية للطب الشرعي أو فرق الاستجابة للحوادث للتحقيق فيها.

توفر Azure Logic Apps تجربة من الدرجة الأولى لمعالجة الأخطاء والاستثناءات التي تسببها الأنظمة التابعة. يمكنك استخدام Logic Apps لإنشاء مهام سير العمل لغرض أتمتة المهام والعمليات التي تدمج التطبيقات والبيانات والأنظمة والخدمات عبر الشركات والمؤسسات.

استخدام التسجيل والتنبيه

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

تحقق من عدم تسجيل أية بيانات حساسة يرسلها المستخدم إلى موقعك. من أمثلة البيانات الحساسة:

  • بيانات اعتماد المستخدم
  • أرقام الضمان الاجتماعي أو معلومات التعريف الأخرى
  • أرقام بطاقات الائتمان أو المعلومات المالية الأخرى
  • المعلومات الصحية
  • المفاتيح الخاصة أو البيانات الأخرى التي يمكن استخدامها لفك تشفير المعلومات المشفرة
  • معلومات النظام أو التطبيق التي يمكن استخدامها لمهاجمة التطبيق بشكل أكثر فعالية

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

الخطوات التالية

في المقالات التالية، نوصي بعناصر تحكم وأنشطة أمنية يمكن أن تساعدك في تطوير التطبيقات الآمنة وتوزيعها.