تخطَّ إلى المحتوى

Dependency-Track - تحليل SBOM المستمر (Cheatsheet)

Dependency-Track - تحليل SBOM المستمر (Cheatsheet)

Dependency-Track (مشروع OWASP الرئيسي) هي منصة لـ إدارة مخاطر سلسلة التوريد البرمجية المستمرة. فكرتها الأساسية: بدلاً من مسح تبعياتك مرة واحدة في وقت البناء، تحمل SBOM من CycloneDX لكل مشروع والمنصة تعيد تقييم تلك المكونات بشكل مستمر عندما يتم الكشف عن ضعف جديد. عندما يسقط CVE، تعرف فوراً أي من تطبيقاتك يحتوي على المكون المتأثر — بدون إعادة بناء أو إعادة فحص أي شيء.

النشر

الطريقةالأمر
Docker Composecurl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d
حاوية (API)docker run -p 8081:8080 dependencytrack/apiserver
الواجهة الأماميةdependencytrack/frontend container (واجهة المستخدم الافتراضية على 8080)
Kubernetesمخطط Helm متاح
المتطلبات~4GB+ RAM؛ PostgreSQL للإنتاج

المفاهيم الأساسية

المصطلحالمعنى
Projectتطبيق/خدمة تتابعها
Componentتبعية ضمن مشروع
SBOMCycloneDX bill of materials التي تحملها
VulnerabilityCVE/advisory تؤثر على مكون
Policyقواعس بوابة المخاطرة (الترخيص، الشدة، العمر)
Portfolioجميع المشاريع، مجمعة

تحميل SBOM

أنشئ باستخدام Syft أو أدوات cyclonedx-*، ثم قم بالتحميل عبر API:

# قم بإنشاء CycloneDX SBOM
syft dir:. -o cyclonedx-json > bom.json

# حمل إلى Dependency-Track
curl -X POST "http://localhost:8081/api/v1/bom" \
  -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" \
  -F "bom=@bom.json"
نقطة النهايةالغرض
POST /api/v1/bomتحميل SBOM
GET /api/v1/projectمشاريع القائمة
PUT /api/v1/projectإنشاء مشروع
GET /api/v1/vulnerability/project/{uuid}الضعف لمشروع
GET /api/v1/metrics/project/{uuid}/currentمقاييس المخاطرة الحالية

مصادر استخبارات الضعف

المصدريوفر
NVDبيانات CVE
GitHub Advisoriesالمشورة الخاصة بالنظام البيئي
OSVقاعدة بيانات Open Source Vulnerabilities
VulnDBتجاري (اختياري)
Internalالمشورة الخاصة بك

تعكس المنصة هذه التغذيات وتعيد تحليل كل مكون مخزن ضدهم على جدول زمني.

محرك السياسة

شرط السياسةمثال
الشدةفشل إذا كان هناك أي ضعف CRITICAL
الترخيصحظر GPL في المنتجات المملوكة
عمر المكونعلم التبعيات غير المحفوظة لـ N سنة
الإحداثياتحظر حزمة/إصدار معين
CWEعلم فئات الضعف المحددة

تنتج السياسات انتهاكات تظهر جنباً إلى جنب مع الضعف، لذا يتم تتبع المخاطرة المرخصة والنظافة في نفس المكان.

تكامل CI/CD

# في خط الأنابيب: بناء → توليد SBOM → تحميل → بوابة
syft dir:. -o cyclonedx-json > bom.json
curl -X POST "$DT_URL/api/v1/bom" -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" -F "bom=@bom.json"

# استطلع نتيجة التحليل والفشل على انتهاكات السياسة
التكاململاحظة
Jenkins/GitHub Actionsالبلاجينات/الإجراءات الرسمية متاحة
Webhooksإخطار Slack/Teams/Jira عند النتائج الجديدة
VEXسجل قرارات القابلية للاستغلال (غير متأثر، وما إلى ذلك)

الفحص و VEX

الإجراءالمعنى
غير متأثرمسار الكود الضعيف غير قابل للوصول
False Positiveالاكتشاف خاطئ
Resolvedتم الإصلاح في هذا المشروع
مكبوتخطر مقبول مع تبرير

تسجيل هذه باسم VEX يقلل الضوضاء ويوثق القرارات للمدققين.

Dependency-Track مقابل أجهزة ماسح النقطة

الجانبDependency-TrackGrype/TrivySocket
النموذجمنصة SBOM المستمرةفحص نقطة زمنيةكشف الأسلحة الحية
إعادة التقييمتلقائي على CVEs الجديدةفقط عند إعادة التشغيلعلى تغييرات التبعية
عرض المحفظةنعم (جميع المشاريع)لكل مسحلكل PR
الأفضل لـخطر سلسلة التوريد على مستوى المنظمةمسح CIكشف حزمة ضارة

قدمه SBOMs من Syft؛ اقترنه مع Grype لمسح وقت البناء و Socket لكشف الحزمة الضارة.

الموارد