أمان التبعيات والحاويات

تحليل تكوين البرمجيات (SCA)

3 دقيقة للقراءة

التطبيقات الحديثة مبنية على جبال من التبعيات مفتوحة المصدر. مشروع Node.js نموذجي لديه 500+ تبعية متعدية. كل واحدة هي ثغرة محتملة.

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

تطبيقك (100% كودك)
    └── express (حزمة NPM)
        └── body-parser
            └── raw-body
                └── iconv-lite
                    └── safer-buffer  ← ثغرة هنا تؤثر على تطبيقك

إحصائيات رئيسية:

  • 96% من قواعد الكود تحتوي على مكونات مفتوحة المصدر
  • 84% من قواعد الكود لديها ثغرة واحدة على الأقل
  • المشروع المتوسط لديه 500+ تبعية (مباشرة + متعدية)
  • Log4Shell (CVE-2021-44228) أثر على 35,000+ حزمة

ما يفعله SCA

تحليل تكوين البرمجيات يفحص تبعياتك للعثور على:

نوع النتيجة مثال المخاطر
الثغرات المعروفة (CVEs) تنفيذ كود عن بعد Log4j حرج
التبعيات القديمة React 16.x (الحالي: 18.x) متوسط
امتثال الرخص GPL-3.0 في مشروع تجاري قانوني
الحزم الخبيثة اختراق ua-parser-js حرج
المشاريع المهجورة لا تحديثات لأكثر من سنتين متوسط

كيف يعمل SCA

┌─────────────┐     ┌──────────────┐     ┌─────────────┐
│ البيان      │ ──▶ │ محرك SCA    │ ──▶ │   التقرير   │
│ package.json│     │              │     │             │
│ Pipfile     │     │ ┌──────────┐ │     │ CVE-2024-XX │
│ go.mod      │     │ │قاعدة     │ │     │ الرخصة: GPL│
│ Cargo.toml  │     │ │الثغرات   │ │     │ قديم: 5    │
└─────────────┘     └──────────────┘     └─────────────┘

أدوات SCA:

  1. تحلل ملفات بيان التبعيات الخاصة بك
  2. تحل شجرة التبعيات الكاملة (بما في ذلك المتعدية)
  3. تستعلم قواعد بيانات الثغرات (NVD، OSV، قواعد بيانات المورد)
  4. تقدم تقريراً بالنتائج مع نصائح المعالجة

قواعد بيانات الثغرات

قاعدة البيانات التغطية الوصول
NVD (NIST) CVEs شاملة عام
OSV (Google) تركيز على المصدر المفتوح عام
GitHub Advisory نظام GitHub البيئي عام
Snyk DB منسقة + خاصة مستخدمو Snyk
VulnDB استخبارات تجارية مدفوع

SBOM: قائمة مواد البرمجيات

SBOM يسرد كل مكون في برمجياتك:

{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "components": [
    {
      "type": "library",
      "name": "express",
      "version": "4.18.2",
      "purl": "pkg:npm/express@4.18.2",
      "licenses": [{ "license": { "id": "MIT" }}]
    }
  ]
}

لماذا SBOMs مهم:

  • الاستجابة للحوادث: تحقق بسرعة إذا كنت متأثراً بـ CVEs جديدة
  • الامتثال: مطلوب بموجب الأمر التنفيذي الأمريكي 14028 لبرمجيات الحكومة
  • شفافية سلسلة التوريد: اعرف ما في برمجياتك

توليد SBOMs مع:

# باستخدام Syft
syft packages . -o cyclonedx-json > sbom.json

# باستخدام Trivy
trivy fs --format cyclonedx . > sbom.json

SCA مقابل SAST: أهداف مختلفة

الجانب SAST SCA
يفحص كودك كود الطرف الثالث
يجد ثغرات الكود CVEs المعروفة
المدخلات ملفات المصدر ملفات البيان
الإيجابيات الخاطئة أعلى أقل (CVE هي CVE)
المعالجة إصلاح الكود تحديث التبعية

بعد ذلك، سنتعمق في Snyk—أداة SCA الأكثر شعبية لفحص التبعيات. :::

اختبار

اختبار الوحدة 3: أمان التبعيات والحاويات

خذ الاختبار