組件漏洞測試工具---Dependency-Check


目錄

文章綜述

Dependency-Check簡介

工作原理

常用命令

報告解讀

使用場景

 缺點


文章綜述

本文主要介紹Dependency-Check工具的工作原理和使用方法,並提供一個開源方案幫助企業建設SDL中的一環。

 

Dependency-Check簡介

使用 "存在已知漏洞的組件" 已經成為OWASP TOP 10的漏洞之一了。所以,越來越有必要對上線前的項目做好三方依賴庫的檢測,尋找中已知的漏洞,降低上線后的安全風險。Dependency-Check 就是這樣的一款工具。他會分析軟件構成,檢測項目中依賴項的公開披露漏洞。Dependency-Check 常用於掃描java和.NET程序,另外還有些實驗性的分析器,例如:python、ruby、php以及nodejs等,這些作為實驗性研究是因為他們的高誤報率。如果你公司主要使用c#,java開發程序,那這款工具作為項目上線前的漏洞掃描不乏是個好選擇。

Dependency-Check 發行的版本主要有jenkins插件、命令行工具、maven插件等,詳解介紹可查看https://github.com/jeremylong/DependencyCheck,以下是基於命令行工作模式的介紹。

 

工作原理

  1. Dependency-Check工作的方式是通過分析器對文件進行掃描搜集信息,搜集到的信息被叫做跡象。

  2. 這邊共搜集3種跡象,分時是vendor(供應商),product(產品)和version(版本)。例如,jarAnalyzer將從jar文件包中的Mainfest、pom.xml和包名進行信息搜集,然后把各種搜集到的源放到一個或者多個跡象表里。

  3. 通過搜集到的跡象和CPE條目(NVD、CVE數據索引)進行匹配,分析器匹配到了就會給個標志發送到報告。

  4. Dependency-Check 目前不使用hash識別文件,因為第三方依賴從源碼中的hash值構建通常不會匹配官方發布版本的hash。后續版本中可能會增加一些hash來匹配一些常用的第三方庫,例如Spring, Struts等。

 

常用命令

詳細參數可使用./dependency-check.sh -h查看,以下列出一些最常用的參數:

  • ./dependency-check.sh -n --project "test" --scan "WEB-INF/lib/" -o output.html

  • · -n 不更新漏洞庫,默認4小時自動拉取

  • · --project 項目名字

  • · --scan 掃描的路徑或文件(可以掃目錄,也可以直接掃壓縮文件,zip,war,tgz等)

     

  • /dependency-check.sh -n --project "test" --scan "strusts2.war" --log logfile

  • · 掃描壓縮文件

  • · --log 日志記錄

     

  • ./dependency-check.sh --updateonly

  • · --updateonly 只更新數據庫,不做掃描

 

報告解讀

部分報告截圖:

圖片1.png

圖片2.png

 

 

關於掃描的准確性,筆者搜集測試了java三方依賴庫。得到的結論是准確率高、誤報率低、覆蓋率高,適合在實際業務中使用該工具進行上線前的漏洞掃描(java三方依賴庫)。

報告中一些重要字段的含義:

· Dependency - 被掃描的第三依賴庫名字

· CPE - 所有被識別出來的CPE.

· GAV - Maven 組, Artifact, 版本 (GAV).

· Highest Severity - 所有關聯的cve的最高漏洞等級

· CVE Count - 關聯的cve個數

· CPE Confidence - dependency-check正確識別cpe的程度

· Evidence Count - 識別CPE的數據個數

 

使用場景

在企業中實際應用的場景:

1、項目很多,迭代很塊:可以考慮結合代碼管理系統,每次新發布前,自動提交進行掃描

2、項目迭代不快,或者只想監控重點項目:可讓業務提單,安全人員進行掃描后提供結果和修復建議給到業務方。

(注意點:報告是英文報告,不過很直觀,可以根據上面的介紹寫個說明文檔供業務參考;報告沒有修復參考,一般的修復方案是推薦有漏洞的組件更新到最新版。)

根據實際業務場景的需求,筆者把這個Dependency-Check二進制版本封裝成web接口,可供自己和業務方調用。項目地址:https://github.com/he1m4n6a/dcweb。項目中還有很多地方可以完善,后續根據需求會補充改造。

例如:

1、添加接口鑒權

2、解析報告並輸出中文漏洞報告到郵件


 缺點

      報告的可讀性還是有點差的,這個項目貌似開源的,如果能將呈現方式修改一下就好了,特別是將CVE也放到一覽里面就更好了。。。


免責聲明!

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



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