DependencyCheck踩坑記錄


DependencyCheck 是owasp開源的一個SCA工具,之前在群里交流,有幾家也在嘗試落地實踐了。

剛好Q3的時候在做代碼審計系統的,Q4增加了SCA的檢測功能,簡單的調研了幾個工具,如下:

 

Dependency Check ,OWASP開源,主要是檢測java也支持檢測其他的語言。

支持命令行方式,直接對jar包進行資產清點

支持maven的方式,直接使用mvn org.owasp:dependency-check-maven:check即可。

檢測原理:將Dcheck,讀取jar或maven包內的數據,將包內的數據轉換為CPE格式,

例如:

 

 而CPE格式是NVD漏洞庫提供的cpe32格式:

可以參考,后門會專門單獨寫這塊:https://stackoverflow.com/questions/56680580/nvd-json-feeds-tags-meaning-and-their-purpose

例如在fastjson NVD這樣定義CPE:

 

 

私有化部署,需要鏡像NVD漏洞庫,track同理

初次啟動或間隔幾個小時沒有使用將會更新,官網有幾個參數,可以仔細留意一下。

mvn org.owasp:dependency-check-maven:check -Dformats=CSV -DcveUrlModified=http://127.0.0.1:8000/nvdcve-1.1-modified.json.gz -DcveUrlBase=http://127.0.0.1:8000/nvdcve-1.1-%d.json.gz -Danalyzer.retirejs.repo.js.url=http://127.0.0.1:8000/jsrepository.json -Dinherited=false

 

 

 

 

 

 

 

支持生成HTML默認,CSV,JSON等格式,私有化需要指定參數,如項目中存在多個子任務,可能生成報表時出現問題,inherited=false啟用聚合。

 

Dependency track,OWASP開源,支持的語言比較豐富。

檢測原理:使用插件對代碼項目生成bom.xml,類似pip request requirements,清點出使用的組件,Dependency track相當於一個漏洞庫和分析引擎

這個方法好處就是只需要在客戶端直接生成bom.xml,PUT track的REST接口即可。在測試過程中測試fastjson沒清點出來。

 

 

snyk是商業化的,某公司在最開始Dependency Check切換到這個,漏洞庫比較豐富。

 

2020年12月21日18:51:11 更新

最終還是自己重寫了一套,便於后期維護,解析CPE,錄入漏洞庫,根據手機項目組件信息,自動實時檢索組件相關漏洞。

 

 

查看漏洞:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM