كيفية التخفيف من حدة هجمات سلسلة التوريد باستخدام الفحص المسبق

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




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

curl https: 

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


مجموعات التحقق من الملفات

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

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


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

استخدام Preflight

يمكنك تنزيل Preflight من موقعه إصدارات GitHub الصفحة. يتم توزيع الأداة أيضًا كـ preflight في مدير حزمة Homebrew.

في أبسط صوره، يمكن استخدام Preflight في أي مكان قد تستخدمه عادةً | sh. قم بإرسال أمر آخر إلى Preflight، مع توفير مبلغ اختباري مطابق قبل تنفيذ أي شيء.

curl https: 

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

لقطة شاشة لفحص ما قبل الرحلة الفاشل


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

الفحوصات البرمجية

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

curl https://example.com/install-script.sh | preflight check sha256=abc...123 

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

إنشاء تجزئات باستخدام Preflight

لا تنشر جميع مشاريع البرمجيات تجزئة لإصداراتها. يحتوي Preflight على دعم مدمج لإنشاء تجزئة جديدة إذا كنت بحاجة إلى واحدة لتبعية.

قم بتنزيل الملف من موقع البائع على الويب. ثم مرره إلى preflight create للحصول على تجزئة محتويات الملف.


wget https:
preflight create install-script.sh
لقطة شاشة لإنشاء تجزئة ملف باستخدام Preflight

يتم إنشاء تجزئة SHA256 افتراضيًا. يمكنك التبديل إلى SHA1 أو MD5 عن طريق إضافة --digest العلم إلى الأمر.

إضافة عمليات فحص البرامج الضارة

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

يتم توفير قوائم البرامج الضارة من خلال خدمات الجهات الخارجية. تعمل Preflight مع أي ملف نصي يحتوي على قائمة بمجموعات التحقق من البرامج الضارة المعروفة. مالشير هو أحد مقدمي هذه القوائم.

ضبط PF_FILE_LOOKUP متغير البيئة للإشارة إلى موقع الملف الخاص بك. سيكتشف Preflight هذا المتغير ويمكّن عمليات البحث عن البرامج الضارة. عند تشغيل preflight check أو preflight runسيتم مقارنة مجموع التحقق الخاص بالملف المستهدف بالإدخالات الموجودة في قائمة البرامج الضارة. ستفشل عملية التحقق إذا كان هناك تطابق.


ماذا عن أنواع التبعية الأخرى؟

تركز ميزة Preflight على فحص الملفات الثابتة. وهي مناسبة بشكل أفضل للتنزيلات الثنائية المعدة مسبقًا والتي تحصل عليها مباشرة من البائع.

من غير الواقعي استخدام Preflight مع التبعيات المكتسبة عبر مديري الحزم. يجب التعامل مع المخاطر الناشئة عن البرامج المثبتة عبر npm أو Composer أو NuGet أو Maven بطريقة مختلفة. يمكنك استخدام ميزات مدير الحزم مثل نطاق البائع لضمان تثبيت التبعيات من مستودعات موثوقة.

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

ملخص

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


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

أضف تعليق