
OWASP dependency-check هي أداة لتحليل تركيبة البرمجيات تكتشف الثغرات الأمنية المُعلنة للعموم في تبعيات التطبيقات.
Dependency-Check هي أداة تحليل تكوين البرامج (SCA) تحاول اكتشاف الثغرات الأمنية المعلن عنها علنًا والموجودة ضمن تبعيات المشروع. تقوم بذلك عن طريق تحديد ما إذا كان هناك معرف تعداد النظام الأساسي المشترك (CPE) لتبعية معينة. إذا تم العثور عليه، فسيقوم بإنشاء تقرير يربط بإدخالات CVE المرتبطة.
يمكن العثور على الوثائق وروابط إصدارات الثنائيات الإنتاجية على صفحات github. بالإضافة إلى ذلك، يمكن العثور على مزيد من المعلومات حول البنية وطرق توسيع dependency-check على [الويكي].
يستخدم هذا المنتج واجهة برمجة تطبيقات NVD ولكنه غير معتمد أو مصدق من قبل NVD.
نظرًا لتغييرات توافق واجهة برمجة تطبيقات NVD، فإن الترقية إلزامية. راجع #7463 لمزيد من المعلومات.
يتطلب الآن Java 11 لتشغيل dependency-check 11.0.0 أو أعلى
ترقية قاعدة بيانات H2
يحتوي الإصدار 11.0.0 على تغييرات جذرية باستخدام قاعدة بيانات H2 المحلية. سيتم تنزيل كامل
لبيانات NVD. لاحظ أنه إذا كنت تستخدم دليل بيانات مشترك،
فإن ملف قاعدة بيانات h2 غير متوافق مع الإصدارات الأقدم من dependency-check.
إذا واجهت مشاكل، قد تحتاج إلى تشغيل عملية مسح:
./gradlew dependencyCheckPurgemvn org.owasp:dependency-check-maven:11.0.0:purgedependency-check.sh --purgeانتقل Dependency-check من استخدام تغذية بيانات NVD إلى واجهة برمجة تطبيقات NVD منذ 9.0.0+ (يناير 2024).
يتم تشجيع مستخدمي dependency-check بشدة على الحصول على مفتاح NVD API؛ راجع https://nvd.nist.gov/developers/request-an-api-key
بدون مفتاح NVD API، ستكون تحديثات dependency-check بطيئة للغاية.
يرجى مراجعة الوثائق الخاصة بـ cli أو maven أو gradle أو ant integrations حول
كيفية تعيين مفتاح NVD API.
تفرض واجهة برمجة تطبيقات NVD حدودًا للمعدل. إذا كنت تستخدم مفتاح API واحدًا و حدثت عدة عمليات بناء، فقد تصل إلى حد المعدل وتتلقى أخطاء 403. في بيئة CI، يجب استخدام استراتيجية التخزين المؤقت.
في سبتمبر 2025، بدأت Sonatype OSS Index في فرض استخدام رموز API للمصادقة. في أبريل 2026، بدأ ترحيل لاحق إلى Sonatype Guide، مما أدى إلى بدء الانتقال إلى استخدام رموز Sonatype Guide API التي من المخطط أن تحل محل مفاتيح/رموز OSS Index API القديمة قبل نهاية عام 2026.
بدون بيانات الاعتماد، سيقوم Dependency Check بتعطيل محلل OSS Index تلقائيًا. يرجى مراجعة الوثائق لـ CLI أو Maven أو Gradle أو Ant integrations حول كيفية تعيين بيانات اعتماد المحلل لاستخدام رمز Sonatype Guide أو مفتاح OSS Index API القديم.
إذا كنت ترغب في استخدام Sonatype OSS Index (عبر Guide)، يجب عليك تكوين Dependency-Check والنظر في الآثار المترتبة على الترحيل إلى Sonatype Guide؛ الذي تغير نموذج استخدامه/التجاري. راجع وثائق المحلل لمزيد من المعلومات.
مع 9.0.0+ قد يواجه المستخدمون مشاكل مع استثناءات NoSuchMethodError بسبب
حل التبعيات. إذا واجهت هذه المشكلة، ستحتاج إلى تثبيت بعض
التبعيات العابرة لـ dependency-check إلى إصدارات محددة. على سبيل المثال:
/buildSrc/build.gradle
dependencies {
constraints {
// org.owasp.dependencycheck needs at least this version of jackson. Other plugins pull in older versions..
add("implementation", "com.fasterxml.jackson:jackson-bom:2.21.2")
// org.owasp.dependencycheck needs these versions. Other plugins pull in older versions..
add("implementation", "org.apache.commons:commons-lang3:3.20.0")
add("implementation", "org.apache.commons:commons-text:1.15.0")
}
}
الحد الأدنى لإصدار Java: Java 11
يتطلب OWASP dependency-check الوصول إلى العديد من الموارد المستضافة خارجيًا. لمزيد من المعلومات، راجع الوصول إلى الإنترنت مطلوب.
من أجل تحليل بعض مكدسات التقنية، قد يتطلب dependency-check تثبيت أدوات تطوير أخرى. قد يكون بعض التحليل المذكور أدناه تجريبيًا ويتطلب تمكين المحللات التجريبية.
go.Elixir تثبيت mix_audit.npm و pnpm و yarn تثبيت npm أو pnpm أو yarn.
audit الخاصة بكل منها.bundle-audit، والذي يجب تثبيته.للحصول على تعليمات حول استخدام مكون Jenkins الإضافي، يرجى مراجعة صفحة مكون OWASP Dependency-Check الإضافي.
يمكن العثور على تعليمات أكثر تفصيلاً على صفحات github الخاصة بـ dependency-check. يمكن تنزيل أحدث CLI من github في قسم الإصدارات.
تنزيل أحدث إصدار:
$ VERSION=$(curl -s https://dependency-check.github.io/DependencyCheck/current.txt)
$ curl -Ls "https://github.com/dependency-check/DependencyCheck/releases/download/v$VERSION/dependency-check-$VERSION-release.zip" --output dependency-check.zip
على *nix
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --out . --scan [path to jar files to be scanned]
على Windows
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --out . --scan [path to jar files to be scanned]
على Mac مع Homebrew
ملاحظة - سيحتاج مستخدمو homebrew الذين يقومون بالترقية من 5.x إلى 6.0.0 إلى تشغيل dependency-check.sh --purge.
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --out . --scan [path to jar files to be scanned]
يمكن العثور على تعليمات أكثر تفصيلاً على صفحات github الخاصة بـ dependency-check-maven.
افتراضيًا، يرتبط المكون الإضافي بمرحلة verify (أي mvn verify). بدلاً من ذلك،
يمكن استدعاء المكون الإضافي مباشرة عبر mvn org.owasp:dependency-check-maven:check.
يمكن تكوين مكون dependency-check الإضافي باستخدام ما يلي: