بحث موازٍ لنقاط ضعف GitHub

جميع المشاركات

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

سير عمل GitHub — مكون رئيسي لخطوط أنابيب GitHub CI/CD

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

 

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

 

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

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

 

هناك العديد من المشكلات الأمنية المحتملة التي يمكن أن تنشأ عند استخدام سير عمل GitHub. فيما يلي بعض الأشياء الشائعة:

 

  1. دخول غير مرخص: من المحتمل أن يتم الوصول إلى مهام سير العمل التي لم يتم تكوينها أو تأمينها بشكل صحيح وتشغيلها بواسطة مستخدمين غير مصرح لهم. قد يسمح لهم ذلك بتنفيذ تعليمات برمجية عشوائية أو تنفيذ إجراءات أخرى غير مصرح بها.
  2. تسرب الأسرار: تتطلب عمليات سير العمل في كثير من الأحيان استخدام الأسرار، مثل مفاتيح API أو كلمات المرور، للوصول إلى الموارد الخارجية أو تنفيذ إجراءات معينة. إذا لم تتم حماية هذه الأسرار بشكل صحيح، فمن المحتمل أن يتم تسريبها، مما يؤدي إلى انتهاكات أمنية.
  3. التبعية غير الآمنةs: من المحتمل أن تكون عمليات سير العمل التي تعتمد على مكتبات أو تبعيات خارجية عرضة للهجمات إذا لم تكن تلك التبعيات آمنة. من المهم مراجعة التبعيات وتحديثها بانتظام للتأكد من أنها آمنة.
  4. عدم التحقق من صحة المدخلات والتعقيم: من المحتمل أن يتم استغلال مهام سير العمل التي لا تتحقق من صحة الإدخال بشكل صحيح لتنفيذ تعليمات برمجية عشوائية أو تنفيذ إجراءات أخرى غير مصرح بها.

 

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

التسمم بالقطع الأثرية عبر سير العمل

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

 

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

تسمم ذاكرة التخزين المؤقت لسير العمل

يسمح GitHub بالتخزين المؤقت للعناصر والحزم لتسريع خط أنابيب CI/CD. بدلاً من تنزيل العناصر والحزم المطلوبة مرارًا وتكرارًا لكل سير عمل قد تكون هناك حاجة إليها، يمكن تخزينها مؤقتًا واستخدامها في مسارات عمل مختلفة. 

 

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

 

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

صورة لتسمم ذاكرة التخزين المؤقت لـ GitHub

ثغرات GitHub الأخرى الأقل شهرة وكيفية الدفاع عنها

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

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

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

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

 

لوحة الاعلان

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