نمط العزل

Azure Container Registry

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

السياق والمشكلة

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

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

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

يمكن تجنب بعض مشكلات الأمان هذه عن طريق إضافة عمليات التحقق إلى كل أداة.

حل

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

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

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

فيما يلي سير عمل عزل نموذجي:

يوضح هذا الرسم التخطيطي سير عمل نمط العزل العام.

  1. يشير المستهلك إلى هدفه، ويحدد مصدر إدخال الأداة، ويحظر استخدامه.

  2. تتحقق عملية العزل من صحة أصل الطلب وتحصل على البيانات الاصطناعية من المخزن المحدد.

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

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

    تعتمد عمليات التحقق الفعلية على نوع البيانات الاصطناعية. يختلف تقييم صورة نظام التشغيل عن تقييم حزمة NuGet، على سبيل المثال.

  4. إذا نجحت عملية التحقق، يتم نشر الأداة في مخزن آمن مع تعليقات توضيحية واضحة. وإلا، فإنه يظل غير متوفر للمستهلك.

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

  5. تشير العملية إلى نهاية العزل عن طريق الإشارة إلى حدث بمعلومات الحالة مصحوبة بتقرير.

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

المسائل والاعتبارات

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

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

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

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

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

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

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

موعد استخدام النمط

استخدم هذا النمط عندما:

  • يدمج حمل العمل أداة تم تطويرها خارج نطاق فريق حمل العمل. تتضمن الأمثلة الشائعة:

    • أداة مبادرة الحاوية المفتوحة (OCI) من السجلات العامة مثل DockerHub وسجل حاوية GitHub وسجل حاويات Microsoft

    • مكتبة برامج أو حزمة من مصادر عامة مثل معرض NuGet ومؤشر حزمة Python ومستودع Apache Maven

    • حزمة البنية الأساسية كتعلم برمجية خارجية (IaC) مثل وحدات Terraform النمطية، كتب التعليمات الخاصة ب Community Chef، الوحدات النمطية التي تم التحقق منها من Azure

    • صورة نظام التشغيل التي يوفرها المورد

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

  • يتمتع الفريق بفهم واضح ومشترك لقواعد التحقق من الصحة التي يجب تطبيقها على نوع من البيانات الاصطناعية. وبدون توافق في الآراء، قد لا يكون النمط فعالا.

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

قد لا يكون هذا النمط مفيدًا في الحالات الآتية:

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

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

تصميم حمل العمل

يجب على المهندس المعماري وفريق حمل العمل تقييم كيفية استخدام نمط العزل كجزء من ممارسات DevSecOps لحمل العمل. تتم تغطية المبادئ الأساسية في ركائز Azure Well-Architected Framework.

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

- SE:02 دورة حياة التطوير الآمن
- SE:11 الاختبار والتحقق من الصحة
يساعد التميز التشغيلي على تقديم جودة حمل العمل من خلال العمليات الموحدة وتماسك الفريق. يدعم نمط العزل ممارسات النشر الآمنة (SDP) من خلال التأكد من عدم استهلاك البيانات الاصطناعية المخترقة بواسطة حمل العمل، ما قد يؤدي إلى خروقات أمنية أثناء عمليات نشر التعرض التدريجي.

- OE:03 ممارسات تطوير البرامج
- OE:11 الاختبار والتحقق من الصحة

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

مثال

يطبق هذا المثال سير عمل الحل على سيناريو حيث يريد فريق حمل العمل دمج عناصر OCI من السجلات العامة إلى مثيل Azure Container Registry (ACR)، الذي يمتلكه فريق حمل العمل. يعامل الفريق هذا المثيل كمخزن بيانات اصطناعية موثوق به.

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

يوضح هذا الرسم التخطيطي تنفيذ Azure Container Registry لنمط العزل.

  1. يتم تقديم طلب لصورة خارجية من قبل فريق حمل العمل من خلال تطبيق مخصص مستضاف على Azure Web Apps. يجمع التطبيق المعلومات المطلوبة فقط من المستخدمين المعتمدين.

    نقطة التحقق الأمنية: يتم التحقق من هوية الطالب وسجل حاوية الوجهة ومصدر الصورة المطلوب.

  2. يتم تخزين الطلب في Azure Cosmos DB.

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

  3. تتم معالجة الطلب من قبل منسق سير العمل، وهو دالة Azure دائمة. يستخدم المنسق نهج جمع مبعثر لتشغيل جميع عمليات التحقق من الصحة.

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

  4. يقدم المنسق طلبا لاستيراد الصورة إلى سجل حاويات Azure (ACR) المعزول الذي يعتبر مخزنا غير موثوق به.

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

    نقطة التحقق الأمنية: يحمي سجل العزل من العبث واستهلاك حمل العمل أثناء عملية التحقق من الصحة.

  6. يقوم المنسق بتشغيل جميع مهام التحقق من الصحة على النسخة المحلية للصورة. تتضمن المهام فحوصات مثل الكشف عن نقاط الضعف والتعرض الشائعة (CVE)، وتقييم فاتورة البرامج للمواد (SBOM)، والكشف عن البرامج الضارة، وتوقيع الصور، وغيرها.

    يقرر المنسق نوع عمليات التحقق وترتيب التنفيذ ووقت التنفيذ. في هذا المثال، يستخدم Azure Container Instance كمشغلات للمهمة وتكون النتائج في قاعدة بيانات تدقيق Cosmos DB. قد تستغرق جميع المهام وقتا كبيرا.

    نقطة التحقق الأمنية: هذه الخطوة هي جوهر عملية العزل التي تقوم بإجراء جميع عمليات التحقق من الصحة. يمكن أن يكون نوع الفحوصات مخصصا أو مفتوح المصدر أو حلولا اشتراها المورد.

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

    نقطة التحقق الأمنية: يحافظ المنسق على التجزئة بين مواقع الموارد الموثوق بها وغير الموثوق بها.

    إشعار

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

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

تتم تغطية جميع سجلات الحاويات بواسطة Microsoft Defender for Containers، الذي يقوم باستمرار بالفحص بحثا عن المشكلات التي تم العثور عليها حديثا. تظهر هذه المشكلات في إدارة الثغرات الأمنية في Microsoft Defender.

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

قد تكون الإرشادات التالية مناسبة عند تنفيذ هذا النمط:

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

  • أفضل الممارسات لسلسلة توريد البرامج الآمنة خاصة عندما يكون لديك تبعيات NuGet في تطبيقك.

  • وثائق Azure Artifacts هي مكتبة من المعلومات المتعلقة بإدارة حزم البرامج باستخدام Azure Artifacts.