
dep-scan v6.3.0
ماسح ضوئي للثغرات الأمنية في التبعيات من الجيل التالي مع تحليل الوصول، توليد SBOM، تدقيق التراخيص، ومسح صور الحاويات لتكامل CI/CD.
مقدمة
OWASP dep-scan هي أداة تدقيق أمني ومخاطر من الجيل التالي تستند إلى الثغرات المعروفة والإرشادات وقيود التراخيص لتبعيات المشروع. يتم دعم كل من المستودعات المحلية وصور الحاويات كمدخلات، والأداة مثالية للتكامل مع منصات ASPM/VM وفي بيئات CI.
المحتويات
الميزات
- فحص معظم كود التطبيق (المستودعات المحلية، صور حاويات لينكس، ملفات Kubernetes، ونظام التشغيل) لتحديد الثغرات المعروفة (CVEs) مع تحديد الأولويات
- إجراء تحليل وصول متقدم للغات متعددة (انظر مصفوفة الوصول أدناه)
- يتم فحص ثغرات الحزم محليًا وبسرعة كبيرة. لا يتم استخدام خادم
- إنشاء قائمة مواد البرمجيات (SBOM) مع معلومات تقرير الإفصاح عن الثغرات (VDR)
- إنشاء مستند VEX لإطار الاستشارات الأمنية المشترك (CSAF) 2.0/2.1 (اطلع على ملف قراءة CSAF)
- إجراء تدقيق عميق لمخاطر الحزم لهجمات الخلط بين التبعيات ومخاطر الصيانة (انظر وثائق تدقيق المخاطر)
تدفقات البيانات القابلة للوصول الدقيقة
تدفقات بيانات مفصلة لتحديد كل من المسارات القابلة للوصول وغير القابلة للوصول في تطبيقك بناءً على السياق الكامل.

مصفوفة الوصول
يقوم dep-scan بحساب إمكانية الوصول لسبعة أنظمة بيئية للغات من خلال أربع قطاعات. يتم وضع علامة قابل للوصول على حزمة ثغرات كودها موجود فعليًا على مسار منفذ، بينما الحزمة التي تم إعلانها فقط في BOM ولكن لم يتم استدعاؤها مطلقًا لا يتم وضع علامة عليها. كل قطاع يغذي نفس محرك الوصول المشترك والمفهرس بمفاتيح purl، لذا فإن السلوك موحد عبر اللغات. إمكانية الوصول مفعلة افتراضيًا (--reachability-analyzer FrameworkReachability); SemanticReachability يضيف بالإضافة إلى ذلك الخدمات التي تم الوصول إليها ونقاط النهاية وإمكانية الوصول بعد البناء (ثنائي/حاوية).
| اللغة / النظام البيئي | محرك الوصول | المحلل الافتراضي |
|---|---|---|
| Java / JVM (Groovy, Kotlin, Scala) | atom | FrameworkReachability |
| JavaScript / TypeScript | atom | FrameworkReachability |
| Python | atom | FrameworkReachability |
| PHP | atom | FrameworkReachability |
| Rust | rusi | FrameworkReachability |
| Go | golem | FrameworkReachability |
| .NET (C#, VB, F#, R) | dosai | FrameworkReachability |
للاطلاع على المفاهيم الكامنة وراء إمكانية الوصول وتحديد الأولويات، اقرأ فصول نموذج الوصول و تحديد الأولويات. للحصول على أمثلة عملية لكل لغة، راجع أدلة اللغات. بالنسبة لقصة الامتثال (VDR و CSAF VEX)، راجع دليل VDR و دليل CSAF VEX.
إمكانية الوصول مفعلة افتراضيًا تحت --profile research، وهو ما يستخدمه dep-scan عند تفعيل إمكانية الوصول. الأوامر أدناه كافية للبدء؛ تغطي أدلة كل لغة دقة الثنائيات، وأمان الواجهة الخلفية والشبكة، ومتطلبات الاستعادة، والأمثلة العملية على الملفات الثابتة في المستودع.
Rust (rusi). يقوم cdxgen بتشغيل rusi ويحتفظ بتقريره، والذي يقوم dep-scan بتحويله إلى المسار المشترك، لذا فإن crate تم استدعاؤه فعليًا (على سبيل المثال time::now() لـ RUSTSEC-2020-0071) يكون قابلًا للوصول بينما crate موجود فقط لا يكون كذلك. راجع دليل إمكانية الوصول في Rust.```bash
depscan -i ./my-rust-app -o ./reports --profile research
**Go (golem).** يستدعي dep-scan [golem](https://github.com/cdxgen/cdxgen-plugins-bin) مباشرة لمشاريع Go (يحتاج إلى `go` في `PATH`)، ويضع علامة "قابل للوصول" (Reachable) على الوحدة عندما تكون دوالها على مسار متتبع. استخدم `--go-analyzer-network offline` للمستودعات غير الموثوقة مع وجود ذاكرة تخزين مؤقتة دافئة للوحدة. راجع [دليل الوصولية لـ Go](https://depscan.readthedocs.io/languages/go-reachability).```bash
depscan -i ./my-go-app -o ./reports -t go
.NET (dosai). يقوم cdxgen بتشغيل dosai، الذي يُصدر حكمًا صريحًا حول قابلية الوصول لكل حزمة (PackageReachability مع ReachabilityKind و Confidence) يعامله dep-scan على أنه موثوق، لذا فإن حزمة NuGet تسمى فعليًا (على سبيل المثال JsonConvert.DeserializeObject على مدخلات مُتحكم بها) تكون قابلة للوصول. امسح شجرة مستعادة (restored tree) بحثًا عن purls ذات إصدارات. انظر .NET دليل قابلية الوصول.```bash
depscan -i ./my-dotnet-app -o ./reports -t dotnet
**JVM, JavaScript/TypeScript, Python, and PHP (atom).** تشارك هذه النظم الأربعة المُقطِّع [atom](https://github.com/AppThreat/atom) الذي يبني تمثيلاً وسيطًا غير مرتبط بلغة ويقوم بالتقطيع الثابت. راجع [JVM, JS, Python, and PHP reachability guide](https://depscan.readthedocs.io/languages/jvm-js-python-php-reachability).```bash
depscan --profile research -t java -i ./my-java-app -o ./reports --explain
للتجاوز عن إمكانية الوصول الموجهة نحو الإطار إلى طبقات نقطة النهاية والخدمة وما بعد البناء، مرر --reachability-analyzer SemanticReachability مع --bom-dir من BOMs دورة الحياة. راجع دليل إمكانية الوصول الدلالي.
رؤى واضحة حول CVEs
افهم CVEs بوضوح دون الحاجة لقراءة الوصف.

الأولوية التلقائية
ركز فقط على CVEs التي تحتاج انتباهك.
