0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · درس

أمان الاعتماديات وسلسلة التوريد (SCA)

احمِ مسار العمل من الحزم الخارجية المعرضة للثغرات باستخدام Software Composition Analysis وDependabot ومراجعة الاعتماديات والإجراءات المثبتة الإصدارات

أمان الاعتماديات وسلسلة التوريد (SCA) درس مجاني في CI/CD with GitHub Actions & DevOps Pipelines على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في CI/CD with GitHub Actions & DevOps Pipelines، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة CI/CD with GitHub Actions & DevOps Pipelines 4 دروس في المجموع.

مخاطر سلسلة توريد البرمجيات

تُبنى التطبيقات الحديثة في معظمها من تبعيات الجهات الخارجية. ويمكن لحزمة واحدة معرضة للخطر، حتى لو كانت عميقة في شجرة التبعيات، أن تعرّض التطبيق بأكمله للخطر.

هذه هي مخاطر سلسلة توريد البرمجيات، ويُعد تأمينها جزءًا أساسيًا من DevSecOps.

ما هو SCA؟

يفحص تحليل مكوّنات البرمجيات (SCA) تبعيات مشروعك ويقارنها بقواعد بيانات الثغرات المعروفة (CVEs).

وعلى عكس SAST، الذي يفحص شفرتك، يركّز SCA على المكتبات التي تستوردها.

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

تنبيهات Dependabot

توفر GitHub أداة Dependabot التي تفحص ملفات البيان باستمرار وتصدر تنبيهات عند احتواء إحدى التبعيات على ثغرة معروفة.

يمكنك تفعيلها من الإعدادات > أمان التعليمات البرمجية وتحليلها. وتظهر التنبيهات في علامة تبويب الأمان مع تصنيفات لدرجة الخطورة.

تحديثات التبعيات التلقائية

يمكن لـ Dependabot أيضًا فتح طلبات سحب لترقية التبعيات المعرضة للخطر تلقائيًا. ويمكنك تكوينه باستخدام ملف dependabot.yml.

version: 2
updates:
  - package-ecosystem: npm
    directory: /
    schedule:
      interval: weekly

مراجعة التبعيات في طلبات السحب

يُشغَّل dependency-review-action عند فتح طلبات السحب، ويمنع الدمج إذا أضاف طلب السحب تبعية تحتوي على ثغرة معروفة.

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

  - name: Dependency Review
    uses: actions/dependency-review-action@v4
    with:
      fail-on-severity: high

تثبيت إصدارات الإجراءات

الإجراءات التي تستدعيها في سير العمل هي تبعيات بحد ذاتها. ويعني الرجوع إلى @v4 الوثوق بمن يتحكم في ذلك الوسم.

ولتحقيق أقصى درجات الأمان، ثبّت الإجراءات على SHA كامل للالتزام، فهو غير قابل للتغيير.

  - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11

أهمية ملفات القفل

يعمل ملف القفل، مثل package-lock.json أو poetry.lock، على تثبيت إصدارات التبعيات وقيم التجزئة الدقيقة.

استخدم في CI أمر تثبيت حتميًا، بحيث تكون عمليات البناء قابلة لإعادة الإنتاج ولا تتمكن من جلب إصدار تم العبث به دون علمك.

  - name: Install (locked)
    run: npm ci

إنشاء SBOM

تُعد قائمة مكوّنات البرمجيات (SBOM) جردًا كاملًا لكل مكوّن في عملية البناء. ويُطلب استخدامها بشكل متزايد لأغراض الامتثال.

يمكن لـ GitHub تصدير SBOM بتنسيق SPDX، كما يمكن لأدوات مثل Syft إنشاؤها داخل CI.

  - name: Generate SBOM
    uses: anchore/sbom-action@v0
    with:
      format: spdx-json

الامتثال للتراخيص

يغطي SCA أيضًا مخاطر التراخيص. فقد يؤدي تضمين مكتبة مرخّصة بموجب GPL في منتج مملوك إلى إنشاء التزامات قانونية.

كوّن أداة الفحص لوضع علامات على التراخيص غير المسموح بها أو رفضها، حتى تظهر المشكلة في CI بدلًا من ظهورها أثناء التدقيق.

إفشال عملية البناء

لا يكون الاكتشاف مفيدًا إلا إذا أوقف الشفرة السيئة. كوّن بوابات SCA بحيث تُفشل مسار التنفيذ عند العثور على ثغرة حرجة.

حدّد حدًا لدرجة الخطورة، بحيث تُصدر النتائج منخفضة المخاطر تحذيرات، بينما تمنع النتائج الحرجة الدمج أو النشر.

    with:
      fail-on-severity: critical

المراقبة المستمرة

يُكشف عن ثغرات جديدة يوميًا، لذا لا يكفي إجراء فحص لمرة واحدة. شغّل SCA وفق جدول زمني وكذلك عند كل طلب سحب.

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

on:
  schedule:
    - cron: '0 6 * * 1'

اختبار سريع

اختبر مدى فهمك لأمان سلسلة التوريد.

مراجعة

تعلّمت تأمين سلسلة توريد البرمجيات.

  • يفحص SCA التبعيات بحثًا عن الثغرات المعروفة
  • يرسل Dependabot تنبيهات ويحدّث الحزم الخطرة تلقائيًا
  • تمنع مراجعة التبعيات طلبات السحب الخطرة
  • ثبّت الإجراءات على SHAs، واستخدم ملفات القفل، وأنشئ SBOM

وبدمج ذلك مع SAST وإدارة الأسرار، يكتمل مسار آمن.

الأسئلة الشائعة

هل درس «أمان الاعتماديات وسلسلة التوريد (SCA)» مجاني؟

نعم — نص درس «أمان الاعتماديات وسلسلة التوريد (SCA)» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة CI/CD with GitHub Actions & DevOps Pipelines، انتقل إلى CoddyKit PRO. تتضمن دورة CI/CD with GitHub Actions & DevOps Pipelines 4 دروس في المجموع.

ماذا ستتعلم في «أمان الاعتماديات وسلسلة التوريد (SCA)»؟

احمِ مسار العمل من الحزم الخارجية المعرضة للثغرات باستخدام Software Composition Analysis وDependabot ومراجعة الاعتماديات والإجراءات المثبتة الإصدارات تتمرن على CI/CD with GitHub Actions & DevOps Pipelines مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ CI/CD with GitHub Actions & DevOps Pipelines؟

لا تُشترط خبرة سابقة. CI/CD with GitHub Actions & DevOps Pipelines على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «أمان الاعتماديات وسلسلة التوريد (SCA)»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس CI/CD with GitHub Actions & DevOps Pipelines هذا؟

نعم. كل درس في CI/CD with GitHub Actions & DevOps Pipelines يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أفضل ممارسات الأمان في CI/CD
  2. إدارة الأسرار باستخدام GitHub
  3. اختبار أمان التطبيقات الساكن (SAST)
  4. أمان الاعتماديات وسلسلة التوريد (SCA)
← العودة إلى CI/CD with GitHub Actions & DevOps Pipelines