تفاصيل ما يحدث داخل خطوط أنابيب CI/CD غامضة بشكل سيئ. على الرغم من كتابة ملف تكوين YAML، وهو قائمة التعليمات، كيف يمكنك التأكد من أن كل شيء يحدث تمامًا كما هو موصوف؟ والأسوأ من ذلك، أن غالبية خطوط الأنابيب عابرة تمامًا، لذلك حتى في حالة حدوث عطل، لا يوجد سوى القليل من الأدلة بخلاف ما تم تسجيله والذي قد يتضمن أو لا يتضمن تفاصيل المشكلة.
يتم تحقيق التطوير السريع من خلال استخدام خطوط الأنابيب الآلية للتكامل المستمر/التسليم المستمر (CI/CD). يعد وجود مشغلات أو جدولة لتجميع التعليمات البرمجية الخاصة بك وإنشائها واختبارها وشحنها تلقائيًا أمرًا رائعًا. ومع ذلك، لم يتم إنشاء معظم خطوط الأنابيب مع مراعاة الأمان، حيث تم تصميمها من أجل سرعة وراحة الاستخدام. نظرًا لأن خطوط الأنابيب تتطلب عادةً الوصول إلى الإنترنت لتنزيل التبعيات والملفات، فبمجرد اختراق خط الأنابيب، يكون لدى المهاجم مجموعة متنوعة من الخيارات لتعطيل العملية أو سرقة المعلومات أو الأسرار.
في هذه المقالة، سأغطي بعضًا من أفضل الممارسات التي يمكنك تطبيقها لحماية مسار CI/CD الخاص بك. ولأغراضنا، لا يهم أدوات التشغيل الآلي أو الأنظمة التي تستخدمها - فمبادئ الأمان لا تزال صالحة. كل ما تحتاجه هو العثور على الأداة المناسبة لمهمة تأمين هذا القسم من خط الأنابيب الخاص بك.
ما هو خط أنابيب CI/CD (التكامل المستمر/التسليم المستمر)؟
يعد خط أنابيب CI/CD عملية تلقائية لإنشاء واختبار ونشر البرامج أو التطبيقات أو العناصر. أصبحت خطوط الأنابيب هذه شائعة ومعقدة بشكل متزايد. تعد خطوط الأنابيب أداة ممتازة لزيادة إنتاجية الفريق وإنتاج منتجات برمجية بشكل أكثر اتساقًا وقابلية للتنبؤ. تصبح أهمية أتمتة هذه الإجراءات أكثر وضوحًا عندما تأخذ في الاعتبار أن الشركات الكبيرة قد يكون لديها مئات من خطوط الأنابيب المترابطة والمصممة، وكلها تعتمد على بعضها البعض لتعمل بشكل جيد.
يُعرف إنشاء واختبار تغييرات التعليمات البرمجية بشكل تلقائي ومنتظم في منتج نهائي جديد بالتكامل المستمر، أو CI. يتم تسليم تغييرات الترميز واختبارها ودمجها كجزء من عملية من خطوتين تسمى التسليم المستمر و/أو النشر - القرص المضغوط. يقوم النشر المستمر بتسليم التحديثات إلى بيئة الإنتاج تلقائيًا، بينما يتوقف التسليم المستمر قبل النشر التلقائي للإنتاج مباشرةً. ما إذا كان خط الأنابيب الخاص بك يستخدم واحدًا أو الآخر هو أمر متروك لك تمامًا والطريقة التي يتم بها إعداد بيئاتك وتسليماتك.
أهمية أمان CI/CD لسلسلة توريد البرامج الخاصة بك
تعتمد معظم الشركات على أدوات CI / CD لأتمتة خطوط الأنابيب الخاصة بهم. وهذا يعني أنه، مثل كثيرين آخرين هجمات سلسلة توريد البرمجياتكل ما يحتاجه الممثلون السيئون هو اختراق هدف واحد للحصول على نصف قطر انفجاري واسع. إحدى نقاط الضعف الرئيسية هي الحاجة إلى تنزيل التبعيات ودمجها في المنتج النهائي أو المنتج النهائي. حتى تبعية واحدة سيئة تكفي لمنح عنصر غير مرغوب فيه موطئ قدم في المسار. نظرًا لأن المسار لديه حق الوصول إلى التعليمات البرمجية المصدر والعديد من العناصر الأخرى للبنية الأساسية الخاصة بك (حسب الحاجة)، يمكن لتصعيد الامتيازات الوصول إلى أي جزء من المنتج الذي تم إنشاؤه في هذا المسار المحدد وتغييره لاحقًا أو تصفيته لاحقًا.
يمكن العثور على مثال بسيط في شرحنا لـ أ تسمم ذاكرة التخزين المؤقت أو التبعية.
في السنوات القليلة الماضية، عانت العديد من الشركات الكبيرة من هجمات سلسلة توريد البرامج التي كان خط أنابيب CI/CD هو نقطة انطلاقها. على سبيل المثال، يمكنك أن تنظر إلى خرق CircleCI في يناير 2023، تسوية Argo CD في يناير من عام 2022، و خرق Codecove في أبريل 2021.
إن التداعيات المحتملة لمثل هذه الهجمات شديدة، لذا فمن المنطقي أن تفعل كل ما بوسعك للتأكد من أن خطوط الأنابيب الخاصة بك آمنة قدر الإمكان.
أفضل ممارسات أمان CI/CD
مهما كانت منصة CI/CD أو الأدوات التي تستخدمها، هناك بعض الأشياء التي يمكنك القيام بها لتعزيز أمانك وتقليل الضرر المحتمل في حالة تمكن جهة فاعلة معادية من الوصول إلى خط الأنابيب أو الشبكة لديك.
الرصد والتنبيه – يمكن أن يحدث الاختراق حتى لو قمت بتدريب المهندسين لديك على توخي الحذر من التصيد الاحتيالي وغيره من عمليات الاحتيال في مجال الهندسة الاجتماعية. نظرًا لأن غالبية بيئات خطوط الأنابيب عابرة، بمجرد الانتهاء من العمل، لن يكون هناك الكثير من الآثار المتبقية إلا إذا قمت بتسجيلها بشكل نشط. أثناء العمل على كل عملية علاقات عامة ودمج وبناء واختبار، تأكد من تسجيل أي تعديلات يتم إجراؤها على البيئة أو ملفات التكوين. ويجب أيضًا تسجيل بيانات المستخدم مع جميع البيانات الأخرى للفحص إذا كانت هناك مشكلة تستدعي ذلك. الهدف هنا هو القدرة على إعادة بناء الاختراق وتحديد الخطأ الذي حدث وكيف حدث الخطأ. حدد الأحداث التي يجب أن تؤدي إلى تنبيه مسبقًا، وتأكد من إبلاغ الأطراف المناسبة. احرص على عدم إرباك الأفراد بتنبيهات لا طائل من ورائها أو شديدة الحساسية؛ قد يؤدي هذا إلى إرهاق التنبيه، مما قد يجعلهم ببساطة يتجاهلون التنبيهات أو يتفاعلون في وقت متأخر جدًا عما هو حكيم.
استخدم مبدأ RBAC مع أقل الامتيازات – يعد توفير الوصول إلى موارد النظام بناءً على الدور المعين للمستخدم أو الوظيفة الوظيفية داخل المؤسسة هو أساس التحكم في الوصول المستند إلى الدور أو RBAC. يتم منح المستخدمين أدوارًا في RBAC تحدد حقوق الوصول والأذونات الخاصة بهم إلى موارد النظام المختلفة، مثل الملفات والمجلدات والبرامج. من ناحية أخرى، يشير مفهوم الامتياز الأقل إلى ممارسة منح المستخدمين الحد الأدنى من الوصول والامتيازات المطلوبة لتنفيذ واجباتهم الوظيفية. وهذا يعني أن المستخدمين يقتصرون على استخدام الموارد اللازمة لإكمال المهام المخصصة لهم وليس أكثر. يتم تطبيق الامتياز الأقل وRBAC بشكل متكرر جنبًا إلى جنب كمفاهيم أمان مجانية. يتأكد مبدأ الامتياز الأقل من أن المستخدمين لا يمكنهم الوصول إلا إلى الحد الأدنى من الموارد المطلوبة للقيام بواجباتهم الخاصة، ويقوم RBAC بتعيين الأدوار التي توفر للمستخدمين القدر المناسب من الوصول إلى الموارد التي يحتاجونها لتنفيذ وظائفهم الوظيفية وليس أكثر. . عند دمج هذه الإرشادات، فإنها تساعد في الحفاظ على نظام آمن نسبيًا وحسن الصيانة. يمكنك تكوينه ليطلب تفويضات مستخدم متعددة لإجراءات النظام الأساسية كطبقة إضافية من الأمان. يجب استخدام هذه الإستراتيجية بعناية لأنها قد تتسبب في تأخر عملية التطوير بشكل ملحوظ.
احتفظ بمصدر خط الأنابيب كسجل غير قابل للتغيير – المعلومات التي يمكن التحقق منها حول المصنوعات البرمجية التي تصف أين ومتى وكيف تم إنشاء شيء ما تُعرف باسم المصدر. يمكن إنشاء معرفة الملفات التي تم إدخالها بدقة وما حدث لها في خط الأنابيب كملف مصدر لتكوين سجل غير قابل للتزوير لخط الأنابيب هذا. لكي تكون آمنًا، يجب إنشاء المصدر بشكل مستقل عن أي مستخدم، حيث أن أي شيء يمكن للمستخدم تعطيله أو تعديله ليس جديرًا بالثقة تمامًا. الكاتب فالينت تمكنك من تحديد المصدر في خط الأنابيب الخاص بك لمجموعة واسعة من أنظمة SCM. يمكن الوصول إلى كل ملف مصدر (JSON) لاحقًا، لذا يمكنك مراجعته لتحديد ما إذا كان قد حدث أي شيء غير متوقع أو غير مرغوب فيه. بالمناسبة، يعد إنشاء ملفات المصدر وإدارتها من جميع أنحاء خطوط الأنابيب الخاصة بك هو قلب العملية إطار عمل SLSA.
الاستفادة الكاملة من SBOM الخاص بك - فقط في حالة فاتك بعض الاستخدامات المحتملة، يمكن أن يساعد SBOM الذي تم إنشاؤه في نهاية المسار في قائمة جميع الحزم مفتوحة المصدر المستخدمة. يمكن أن تخبرك مقارنة هذه القائمة مع التهديدات الشائعة المعروفة بنقاط الضعف المحتملة الموجودة في منتجك النهائي. يمكنك أيضًا استخدام القائمة للتحقق مما إذا كنت لا تزال تستخدم إصدارات قديمة من الحزم مفتوحة المصدر، وحتى استخدام شيء مثل بطاقة قياس أداء OpenSSF للتحقق من "صحة" الحزم التي تستخدمها. نظرًا لأن CVEs الجديدة تظهر باستمرار، يجب أن يكون لديك خدمة، على عكس SAST لمرة واحدة، تتيح لك معرفة ما إذا كانت إحدى حزمك الحالية قد تم اكتشاف CVE جديدة فيها. يمكن أن تساعدك خدمة Scribe في القيام بكل ذلك تلقائيًا.
التحقق من الامتثال لسياساتك - لدى كل شركة، وأحيانًا كل خط أنابيب، سياسات يجب تنفيذها للتأكد من أن كل شيء على ما يرام. بعض السياسات عامة (مثل التأكد من وجود عملية تحقق من شخصين)، والبعض الآخر فريد (مثل التأكد من أن مايك يوقع على آخر تغيير قبل أن نقوم بشحنه إلى الإنتاج). باستخدام آلية التشفير والتحقق من التوقيع وملف سياسة فريد، يمكنك الآن تضمين السياسات المطلوبة مع كل مسار والتحقق (لنفسك وللآخرين) من حدوثها. إنها نقطة ضعف بشرية، عند التشديد عليها، قد تتسبب في تخطي بعض المتطلبات وتعديل بعض القواعد للوفاء بالموعد النهائي. مع تطبيق هذا الإجراء، لم يعد بإمكان الأشخاص خرق القواعد، ومن المفترض أن يساعد ذلك في الحفاظ على أمان خط الأنابيب الخاص بك من التهديدات الداخلية والخارجية. لقد طور Scribe طريقة جديدة لفرض مثل هذه السياسات وحتى السماح لك بكتابة سياساتك الخاصة. تحقق من ذلك هنا.
قم بتأمين ملف تعليمات خط الأنابيب - يمكن للجهات التهديدية "تسميم" خط أنابيب CI باستخدام تقنية تعرف باسم تنفيذ خط الأنابيب المسموم (PPE)، والتي تعدل بشكل أساسي مراحل خط الأنابيب أو تسلسلها كما هو محدد في الأصل في ملف تعليمات خط الأنابيب. يعالج الأسلوب عملية الإنشاء عن طريق إساءة استخدام الأذونات في مستودعات إدارة التعليمات البرمجية المصدر (SCM). من خلال إدراج تعليمات برمجية أو أوامر ضارة في إعدادات مسار البناء، من الممكن إفساد المسار والتسبب في تنفيذ تعليمات برمجية ضارة أثناء اكتمال البناء. لن تتمكن من معرفة أن إصداراتك لا تعمل بالطريقة التي تريدها إلا إذا قمت بفحص ملف تعليمات خط الأنابيب. للتأكد من تشغيل خطوط الأنابيب الخاصة بك كما تريد، يجب عليك التحقق من ملف التعليمات قبل كل تشغيل. من الناحية المشفرة، يعد توقيع الملف وإضافة التحقق من التوقيع كخطوة أولى في المسار إحدى الطرق لتحقيق هذا الأمان. الكاتب فالينت التوقيع والتحقق تعد الوظائف إحدى الطرق للتحقق من أن ملف التعليمات الخاص بك ظل دون تغيير قبل بدء تشغيل أي مسار جديد.
تأمين النتيجة النهائية الخاصة بك – لماذا يجب على المهاجم أن يبذل قصارى جهده لتعطيل خط الأنابيب الخاص بك عندما يكون استبدال منتجك النهائي بإصدار احتيالي أسهل بكثير؟ وبما أن الشركة المولدة تبدو وكأنها مصدر الصورة في هذه الأنواع من الهجمات، فلا يكفي أن يكون لدى تلك الشركة شهادة صالحة لحمايتها. ببساطة، من شأنه أن يزيد من مصداقية المزيف. الحل هو التوقيع المشفر مهما كانت القطعة الأثرية النهائية التي ينتجها خط الأنابيب والسماح للمستخدم النهائي بالتحقق من هذا التوقيع. يمكن استخدام Scribe's Valint لـ التوقيع والتحقق مجموعة كبيرة ومتنوعة من العناصر التي تمنحك الأمان الإضافي الذي يحصل عليه المستخدمون تمامًا كما كنت تنوي أن يحصلوا عليه.
يتطلع إلى المستقبل
لن يتوقف أحد عن استخدام تقنيات الأتمتة مثل CI/CD لتسريع عملهم. بل على العكس تمامًا، في العالم الذي نعيش فيه، نسعى دائمًا إلى تكرار تحديثات البرامج بشكل أسرع من أي وقت مضى. يجب علينا، على الأقل، التأكد من أننا نتعامل مع المهمة بحذر، مع الحرص على عدم تعريض بيئة الإنتاج لدينا أو كود المصدر الخاص بنا للخطر في هذه العملية.
الشيء الحاسم هو النظر في العواقب المحتملة لحصول شخص ما على وصول غير قانوني إلى خط الأنابيب الخاص بك، أو البيئة الخاصة بك، أو التعليمات البرمجية المصدر الخاصة بك. أنا متأكد من أنك ستكون قادرًا على اتخاذ الإجراء المناسب لإيقاف أو تخفيف التسريبات المحتملة بمجرد أن تدرك مدى خطورة الأمر والأماكن التي تكون فيها خطوط الأنابيب والشبكة الخاصة بك أكثر عرضة للخطر.
نظرًا لأن خطوط الأنابيب المترابطة ستزداد تعقيدًا، فمن الضروري الحفاظ على أمان بيئتك بشكل عام (الشبكة المجزأة، وRBAC، والثقة المعدومة، وما إلى ذلك) كخطوة أولى للمساعدة في حماية خطوط الأنابيب الخاصة بك. بعد ذلك، تطلع إلى إنشاء أدلة قوية وغير قابلة للدحض واستخدام التوقيع المشفر والتحقق من البيانات لمحاولة التخفيف قدر الإمكان من احتمال حدوث هجوم على سلسلة توريد البرامج والذي قد يؤدي إلى تسميم خط الأنابيب أو ذاكرة التخزين المؤقت لخط الأنابيب. إن البقاء في حالة تأهب وشكوك يمكن أن ينقذ شركتك من صداع لا يوصف.
يتم تقديم هذا المحتوى إليك بواسطة Scribe Security، وهي شركة رائدة في مجال توفير حلول أمان سلسلة توريد البرامج الشاملة - حيث توفر أحدث الأمان لعناصر التعليمات البرمجية وعمليات تطوير التعليمات البرمجية وتسليمها عبر سلاسل توريد البرامج. تعرف على المزيد.