一起來看看Dependency Check的實戰(zhàn)應(yīng)用
Dependency Check來檢查代碼中是否存在任何已知的,公開披露的安全漏洞。他檢查依賴項中是否存在漏洞的原理也跟我們熟知的病毒查殺軟件一樣,預(yù)先定義好目前已知的安全漏洞庫,檢查依賴包時,發(fā)現(xiàn)這些漏洞就會報錯,最后定期更新安全漏洞庫即可!關(guān)于Dependcy check 的原理和基礎(chǔ)使用方式我在前面的文章中已經(jīng)介紹了,具體參考文章:
代碼依賴包安全漏洞檢測神器——Dependency Check
本文我會重點介紹一下dependency check在實戰(zhàn)中的使用細節(jié),主要包括在maven中的使用配置和命令行方式的使用細節(jié)。
Maven方式
在maven構(gòu)建時,執(zhí)行dependency check的jar包依賴檢測工作。
基礎(chǔ)配置如下:

如果需要添加參數(shù),需要在
- <configuration>
- <failBuildOnCVSS>8</failBuildOnCVSS>
- </configuration>
dependency maven中常用的配置如下所示:

其中cveUrlModified 和cveUrlBase可以指定本地的nvd庫來提高更新效率;
outputDirectory 指定了檢測報告的生成位置,默認是html報告;
excludes 設(shè)置不需要檢測的jar包,在實際項工作中,經(jīng)常有一些維護類的項目,使用的框架版本很低,例如spring 3.x版本,會有很多的jar包安全問題,基于某些原因這些jar包不能升級,因此使用dependency check檢測時需要跳過對這些jar包的檢測,這時就需要使用excludes參數(shù)了。注意:這個格式是固定的,采用
groupId:artifactId::version的形式(此處花費我很多時間調(diào)試)
如果想?yún)⒖几嚓P(guān)于dependency check maven configuration的配置請參考:
https://jeremylong.github.io/DependencyCheck/dependency-check-maven/configuration.html
命令行方式
關(guān)于dependency-check的命令行參數(shù)的具體使用大家可以通過下面命令查看詳情
- dependency-check.bat --advancedHelp
在這里我給大家介紹幾點需要特別注意的地方
參數(shù)--format 用來指定輸出報告的格式,默認是html
如果設(shè)置--format ALL,將會分別生成HTML, XML, CSV, JSON形式的檢測報告。如果需要生成多種格式的測試報告可以進行如下設(shè)置:
- --format HTML --format CSV
會只生成html 和csv兩種格式的測試報告,命名為
- dependency-check-report.csv和dependency-check-report.html
--out 報告路徑,會指定生成報告的路徑
--exclude A.jar,不檢測A.jar,如果不檢測多個jar包,則需要設(shè)置如下:
- --exclude A.jar --exclude B.jar --exclude C.jar…形式比較麻煩。
- --scan ./ 對當(dāng)前目錄進行掃描,可以直接掃描maven工程的項目。