كل ماتود معرفته عن DevSecOps
التطوير والأمان والعمليات DevSecOps | مستقبل الأمن السيبراني
التطوير والأمان والعمليات
DevSecOps – وهي إختصار لـ Development Security Operations التطوير والأمان والعمليات – واحدة من أكثر الكلمات إثارة في منظومة عمليات التطوير على مدى العامين الماضيين. من الناحية التجريدية ، من السهل أن نفهم ما تعنيه DevSecOps ولماذا يهتم الناس بها: إنها استراتيجية تسعي من خلالها مؤسسات التطوير لتحقيق الأمان الخاص بالبرامج.
ولكن عندما تجلس وتبدأ في تنفيذ DevSecOps ، يمكن أن تصبح الأمور أكثر صعوبة. حيث لا يوجد زر يمكنك الضغط عليه لتحقيق هذا النوع من التطوير – التنفيذ يتطلب مجموعة من الأدوات والممارسات.
دعونا نلقي نظرة على كيفية القيام بذلك من خلال السير في الاعتبارات الرئيسية التي يجب على أي مؤسسة إتباعها من أجل تحقيق DevSecOps.
ما هو DevSecOps؟
في الأساس ، هي عملية تطوير مدمج معها عنصر الأمان في كل مراحل تطوير البرامج من البداية، وهذا يعني ان الأمان أصبح من المتطلبات الأساسية ، في التصميم ، والكود ، ومراحل النشرــ باختصار ، يلازم كل مراحل عملية تطوير البرامج.
تميل الممارسات الأمنية القديمة إلى إبطاء فريق التطوير وعندما يصبح الوقت المتاح للنشر أقصر كل عام ، كان على فريق تطوير البرمجيات أن يجد طريقة لتسريع عملية تطوير برامجها دون المساس بالأمن. هكذا بدأت DevSecOps.
والهدف النهائي هو الربط بين فريق الأمن والمطورين مع ضمان تسليم الأكواد بسرعة وسلامة. واستبدال صومعة التفكير – أي الإحتفاظ بالافكار دون مشاركتها مع الزملاء – بالاتصال بين الفرق المختلفة ومشاركة تحمل المسؤلية لأمن التطبيقات.
أفضل ممارسات وأدوات DevSecOps
كيف يتم تحويل هذه الأهداف إلى ممارسات ؟ ما هي العمليات الأمنية المحددة التي يمكنك القيام بها آليا والمتابعة بها في كل مراحل التطوير ، وكيف يمكنك القيام بذلك ؟
دعونا نستكشف تلك الأسئلة ونبحث عن بعض الإجابات ، بناءً على الحالة الحالية لأدوات وممارسات DevSecOps.
-
فحص نقاط الضعف
فحص الكود الخاص بك لتحديد نقاط الضعف هي خطوة أساسية أولية لتأمين البرامج الخاصة بك. وإدماج فحص مناطق الضعف في مراحل التطوير المستمرة هو يعد مكان واضح للبدء في تنفيذ DevSecOps.
وما يعنيه ذلك هو ضمان التحقق من الكود بالنسبة لأوجه الضعف في كل مرحلة رئيسية من مراحل إنتاج البرنامج- من وقت كتابة الكود إلى وقت نشره في مرحلة الإنتاج. ولتحقيق هذا المستوى من التكامل ، ستحتاج إلى التأكد من أن الأطراف المسؤولة عن هذه المراحل المختلفة من مراحل الإنتاج لديها التدريب والأدوات التي تحتاجها للكشف عن مواطن الضعف في كودك البرمجي.
وتخضع هذه البرمجيات ذات الصلة لمنهج الكشف عن أوجه الضعف في الكود الخاص بك وأدوات (الكشف عن الكود مفتوح المصدر) تقوم بالكشف عن مواطن الضعف المعروفة في الأكواد المفتوحة المصدر في برنامجك. ويوفر العديد من مزودي الخدمتين – أي خدمة الكشف عن أوجه الضعف في الكود الأساسي والكود مفتوح المصدر- المساعدة عن طريق دمج الخوادم والأدوات التي تساعد في الكشف عن أي مشاكل في البرامج في وقت أسرع.
-
تأمين الحماية أثناء التشغيل
وتشكل الحماية أثناء التشغيل عملية أمنية حاسمة ينبغي دمجها في مراحل التطوير المستمر كجزء من استراتيجية DevSecOps.
وهي تعني تأمين البرامج ضد التهديدات التي يمكن أن تواجه التطبيق عندما يبدأ بالعمل. وعلى الرغم من أن التحدث بشأن الأمان أثناء التشغيل كانت تركز في الأساس على تأمين البرمجيات فقط بمرحلة الإنتاج ، إلا أن التهديدات أثناء التشغيل يمكن أن تكون موجودة خلال المراحل السابقة قبل مرحلة الإنتاج وحتى لو لم تكن كذلك ، فإن التفكير في الأمان أثناء التشغيل في وقت مبكر من عملية التسليم يساعد في ضمان أنه عندما يتم نشر البرنامج ، فقد قمت بالفعل بتخفيف التهديدات أثناء التشغيل. وكل من هذين السببين هو يؤكدان ضرورة إدماج الأمن أثناء التشغيل خلال كل مراحل تطوير البرنامج المستمر ، ولا يقتصر على مرحلة الإنتاج.
وتختلف الأدوات والاستراتيجيات المحددة التي تستخدمها للكشف عن هذه التهديدات وفقاً لاحتياجاتك المحددة. على الأقل ، على أية حال ، أنت سَتُريدُ التأكد بأنّك تُراقبُ برنامجك للبحث عن أي شئ غير عادي الذي يُمْكِنُ أَنْ يُشيرَ بوجود إختراق أمني. وعلى نفس القدر من الأهمية ، ينبغي أن تكون على دراية بالمتغيرات والإعدادات التي يمكن أن تخلق نقاط ضعف أمنية أثناء التشغيل، وأن تكون لديك إجراءات مجهزة لتحديد تلك المخاطر.
-
مزود الخدمة السحابية
وهي استراتيجية هامة أخرى لتوفير الأمان في عملية إنتاج تطبيقك وتتمثل في الاستفادة من المزايا الأمنية التي يوفرها مزود الخدمة السحابية الخاص بك. ويوجد العديد من هذه الأدوات في مرحلة نشرة التطبيق ومرحلة ما بعد النشر ، وبالتالي فهي تشبه الخدمات الأمنية التقليدية بعد مرحلة الإنتهاء. ولكنها لا تزال تخدم وظيفة مهمة كجزء من الحماية الخارجية لتطبيقك ــ ولأنها جزء من البنية الأساسية للخدمة السحابية ، فمن السهل عموماً أن تعمل آلياً وبنظام أيضاً.
لاحظ أن خاصية التأمين (Https) قد لا يتم تمكينها بشكل إفتراضي ، و قد تحتاج إلى بعض الإعدادات ، لذا قد تحتاج إلى اتخاذ بعض الخطوات الهامة من أجل الاستفادة منها على أفضل وجه.
-
المعايير والسياسات
وضع معايير وسياسات للأمن هو إلى حد كبير عمل مهم. يمكنك فحص الكود والبنية التحتية الخاصة بك للكشف عن مواطن الضعف ، ولكن تحديد ما أولوياتك الأمنية الأساسية وكيفية تنفيذها لا تزال تتطلب تفكيرا جديا من جانب البشر. وينطبق نفس الشيء على بناء معايير أمنية على مستوى التصميم والأكواد.
ويزيد تنفيذ اللائحة العامة لحماية البيانات من أهمية صياغة المعايير الأمنية بوضوح ووضعها موضع التنفيذ في مرحلة التصميم.
ومن ناحية أخرى ، فإن بناء مثل هذه المعايير في مرحلة التشغيل يمكن أن يكون آليا إلى حد كبير عن طريق استخدام أدوات/خدمات مثل التحكم في صلاحيات الوصول من أجل تطبيق سياسات تتسم بدرجة عالية من الدقة. وينبغي إعطاء تصميم سياسات الوصول للأدوار نفس القدر من الاهتمام الذي يحظى به تصميم المعايير الأمنية في الكود الأساسي لتطبيقك ــ وينبغي النظر إلى كل منهما على أنها مهام ذات أولوية عالية.
-
الحاويات وإدارة الخدمات
وأصبحت أدوات تنظيم حاويات البرامج – الحاويات هي أحد وحدات البرامج التي يمكن تنفيذها والتي يتم تجميع التعليمات البرمجية بها- مثل Kubernetes – وهي منصة مفتوحة المصدر لإدارة أجزاء العمل والخدمات البرمجية في حاويات أو اقسام – شبه ضرورية عندما يتعلق الأمر بنشر تطبيقات بها أقسام كبيرة. التي يمكن أن تعمل علي مثل اكتشاف الخدمات والوصول إليها ، وتزداد أهمية الخدمات ، التي يمكن أن تعمل بأدوات التنسيق وإدارة أمور مثل اكتشاف الخدمات والوصول إليها ، فضلا عن العلاقة بين المستخدمين ، والتطبيقات القائمة على الحاويات ، والخدمات الخارجية ، في حد ذاتها في غاية الأهمية.
وتشكل أدوات من هذا القبيل عنصرا رئيسيا من عناصر DevSecOps على مستوى الانتشار. فهي تعمل كطبقات عالية التعمق من العزل بين الحاويات والعالم الخارجي (بحيث لا يستطيع المستخدمون والمهاجمون المحتملون الوصول إلا إلى الخدمات المخفية عن طريق البروكسي) ، كما يمكنهم الاهتمام بمهام مثل التوثيق ، وإعطاء الصلاحية ، والتشفير. وهي مصممة للتشغيل الآلي من البداية للنهاية.
وهناك الكثير أيضا مع أستخدام حماية (Https) ، فيتعين عليك أن تدرك السمات الأمنية التي توفرها أدوات التنظيم والخدمات ، وأن تتمكن (إذا لزم الأمر) من إعدادها. إن تشكيل Kubernetes لصلاحيات الوصول للأدوار (RBAC) ، على سبيل المثال ، لابد وأن يتوفر عنصراً رئيسياً من عناصر مراحل التطوير في أغلب الظروف ، ولكنه ليس ممكناً بشكل إفتراضي.
الإنتقال إلي تأمين مراحل التطوير في DevSecOps
ويقتضي تنفيذ DevSecOps أن تقوم بتقييم واسع النطاق لمواردك الحالية من تكنولوجيا المعلومات ومراحل تطوير برنامجك ، ثم تبني استراتيجية شاملة تتضمن توفير مستوي أمان عالي في جميع هذه المراحل.
خلاصة القول: الاستفادة المثلى من مراحل DevSecOps الخاص بك
وهناك جوانب هامة أخرى في DevSecOps ينبغي أن تدخل في استراتيجيتك التنفيذية مثل المراقبة وتحليل السجلات والتنبيهات. إلي أخره ، ومع ذلك ، هي عناصر أساسية من البرمجيات وتأمين الإنترنت علي أي حال ، لذلك لم أركز عليها في هذه التدوينة ، بدلا من ذلك ، ركزت النقاش حول كيف DevSecOps يمكن أن يدمج بشكل كامل تطوير التطبيقات ، وإدارة البنية التحتية ، وغيرها من أنشطة تطوير التطبيقات التي لم تكن مرتبطة مسبقاً بالأمان.
ولعل هذا هو خلاصة القول: فعندما يتم دمج الأمان بشكل كام مع كل مراحل التطوير ، سيصبح كل من DevOps و DevSecOps هما نفس الشيء ، وهذا بدوره يصبح ببساطة “الطريقة التي ننتج بها البرامج”.
اقرأ المزيد: كيفية إجراء تدقيق الأمن السيبراني لأعمالك