
أداة تحليل تكوين البرامج تكتشف الثغرات الأمنية المكشوفة علنًا في تبعيات المشروع باستخدام مطابقة CPE، وتوليد تقارير مفصلة مع روابط CVE لتكامل CI/CD.
Dependency-Check هي أداة تحاول اكتشاف الثغرات الأمنية المُعلنة علنًا والموجودة في تبعيات المشروع. تقوم بذلك عن طريق تحديد ما إذا كان هناك معرّف Common Platform Enumeration (CPE) لتبعية معينة. إذا تم العثور عليه، فسوف يُنشئ تقريرًا يربط بإدخالات CVE المرتبطة.
يمكن العثور على الوثائق وروابط الإصدارات الثنائية الجاهزة للإنتاج على صفحات github. بالإضافة إلى ذلك، يمكن العثور على مزيد من المعلومات حول البنية وطرق توسيع dependency-check على الويكي.
للحصول على إرشادات حول استخدام إضافة Jenkins، يرجى الاطلاع على صفحة إضافة OWASP Dependency-Check.
يمكن العثور على تعليمات أكثر تفصيلاً على صفحات dependency-check على github. يمكن تنزيل أحدث إصدار من CLI من صفحة dependency-check الخاصة بـ bintray.
على *nix
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --project Testing --out . --scan [path to jar files to be scanned]
على Windows
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --project Testing --out . --scan [path to jar files to be scanned]
على Mac مع Homebrew
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --project Testing --out . --scan [path to jar files to be scanned]
يمكن العثور على تعليمات أكثر تفصيلاً على صفحات dependency-check-maven على github.
افتراضيًا، تكون الإضافة مرتبطة بمرحلة verify (أي mvn verify). بدلاً من ذلك،
يمكنك استدعاء الإضافة مباشرة عبر mvn org.owasp:dependency-check-maven:check.
يمكن تكوين إضافة dependency-check باستخدام ما يلي:
<project>
<build>
<plugins>
...
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
للحصول على إرشادات حول استخدام مهمة Ant، يرجى الاطلاع على صفحة dependency-check-ant على github.
توضح الإرشادات التالية كيفية تجميع واستخدام اللقطة الحالية. على الرغم من أن النية هي الحفاظ على لقطة مستقرة، يُنصح باستخدام الإصدارات الرسمية المذكورة أعلاه.
يحتوي المستودع على بعض الملفات الكبيرة بسبب موارد الاختبار. حاول الفريق تنظيف السجل قدر الإمكان. ومع ذلك، يُنصح بإجراء استنساخ ضحل لتوفير وقتك:
git clone --depth 1 https://github.com/jeremylong/DependencyCheck.git
على *nix
$ mvn install
$ ./cli/target/release/bin/dependency-check.sh -h
$ ./cli/target/release/bin/dependency-check.sh --project Testing --out . --scan ./src/test/resources
على Windows
> mvn install
> .\dependency-check-cli\target\release\bin\dependency-check.bat -h
> .\dependency-check-cli\target\release\bin\dependency-check.bat --project Testing --out . --scan ./src/test/resources
ثم افتح الملف الناتج 'dependency-check-report.html' في متصفحك المفضل.
في المثال التالي، يُفترض أن المصدر المطلوب فحصه موجود في دليل العمل الحالي. يتم استخدام دلائل بيانات وتقارير دائمة، مما يتيح لك تدمير الحاوية بعد التشغيل.
#!/bin/sh
OWASPDC_DIRECTORY=$HOME/OWASP-Dependency-Check
DATA_DIRECTORY="$OWASPDC_DIRECTORY/data"
REPORT_DIRECTORY="$OWASPDC_DIRECTORY/reports"
if [ ! -d "$DATA_DIRECTORY" ]; then
echo "Initially creating persistent directories"
mkdir -p "$DATA_DIRECTORY"
chmod -R 777 "$DATA_DIRECTORY"
mkdir -p "$REPORT_DIRECTORY"
chmod -R 777 "$REPORT_DIRECTORY"
fi
# Make sure we are using the latest version
docker pull owasp/dependency-check
docker run --rm \
--volume $(pwd):/src \
--volume "$DATA_DIRECTORY":/usr/share/dependency-check/data \
--volume "$REPORT_DIRECTORY":/report \
owasp/dependency-check \
--scan /src \
--format "ALL" \
--project "My OWASP Dependency Check Project"
# Use suppression like this: (/src == $pwd)
# --suppression "/src/security/dependency-check-suppression.xml"
لاحظ أنه عند الترقية من الإصدار 1.x.x، ستحتاج إلى إجراء التغييرات التالية على إعداداتك.
من أجل دعم ملفات استبعاد متعددة، تغيرت آلية تكوين ملفات الاستبعاد. وبالتالي، سيحتاج المستخدمون الذين عرّفوا ملف استبعاد في إعداداتهم إلى التحديث.
انظر الأمثلة أدناه:
قديم:
<dependency-check
failBuildOnCVSS="3"
suppressionFile="suppression.xml">
</dependency-check>
جديد:
<dependency-check
failBuildOnCVSS="3">
<suppressionFile path="suppression.xml" />
</dependency-check>
قديم:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFile>suppression.xml</suppressionFile>
</configuration>
</plugin>
جديد:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFiles>
<suppressionFile>suppression.xml</suppressionFile>
</suppressionFiles>
</configuration>
</plugin>
بالإضافة إلى التغييرات التي طرأت على ملف الاستبعاد، تمت إعادة تسمية المهمة dependencyCheck إلى dependencyCheckAnalyze.
قديم:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:2.0.1-SNAPSHOT'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
suppressionFile='path/to/suppression.xml'
}
check.dependsOn dependencyCheckAnalyze
جديد:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:2.0.1-SNAPSHOT'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
suppressionFiles = ['path/to/suppression1.xml', 'path/to/suppression2.xml']
}
check.dependsOn dependencyCheckAnalyze
الاشتراك: [[email protected]] subscribe
إرسال: [[email protected]] post
الأرشيف: مجموعة Google
Dependency-Check محمية بحقوق النشر (c) 2012-2017 Jeremy Long. جميع الحقوق محفوظة.
يُمنح الإذن بالتعديل وإعادة التوزيع بموجب شروط ترخيص Apache 2.0. راجع ملف LICENSE.txt للحصول على الترخيص الكامل.
يستخدم Dependency-Check العديد من مكتبات المصدر المفتوح الأخرى. يرجى الاطلاع على ملف NOTICE.txt لمزيد من المعلومات.