代碼依賴包安全漏洞檢測神器—Dependency Check
目前各個企業(yè)對于應(yīng)用的安全越來越重視,而解決應(yīng)用漏洞的本質(zhì)是從代碼安全抓起。通常關(guān)于代碼的安全問題有兩類:代碼本身的安全問題和代碼依賴包存在的安全問題。對于代碼本身的安全問題,我們可以通過靜態(tài)代碼分析工具解決。
而對于代碼依賴包的安全問題是我們這篇文章重點(diǎn)解決的事情,業(yè)界通常使用Dependency-Check來檢查代碼中是否存在任何已知的,公開披露的安全漏洞。他檢查依賴項(xiàng)中是否存在漏洞的原理也跟我們熟知的病毒查殺軟件一樣,預(yù)先定義好目前已知的安全漏洞庫,檢查依賴包時(shí),發(fā)現(xiàn)這些漏洞就會報(bào)錯,最后定期更新安全漏洞庫即可!
工具介紹:
Dependency-Check
Dependency-Check是OWASP(Open WebApplication Security Project)的一個實(shí)用開源程序,用于識別項(xiàng)目依賴項(xiàng)并檢查是否存在任何已知的,公開披露的漏洞。目前,已支持Java、.NET、Ruby、Node.js、Python等語言編寫的程序,并為C/C++構(gòu)建系統(tǒng)(autoconf和cmake)提供了有限的支持。而且該工具還是OWASP Top 10的解決方案的一部分。
NVD
Dependency-Check依賴NVD漏洞數(shù)據(jù)庫(美國國家通用漏洞數(shù)據(jù)庫)進(jìn)行依賴漏洞檢查(全球信息安全領(lǐng)域著名的漏洞數(shù)據(jù)庫包括中國國家信息安全漏洞庫,美國國家信息安全漏洞庫NVD,賽門鐵克漏洞庫等等)官網(wǎng):https://nvd.nist.gov/
NVD的更新頻率是出現(xiàn)問題實(shí)時(shí)更新,具體鏈接:
https://nvd.nist.gov/general/nvd-dashboard
CVSS
NVD評級依賴CVSS(CommonVulnerability Scoring System),即“通用漏洞評分系統(tǒng)”,是一個“行業(yè)公開標(biāo)準(zhǔn),其被設(shè)計(jì)用來評測漏洞的嚴(yán)重程度,并幫助確定所需反應(yīng)的緊急度和重要度,具體評分標(biāo)準(zhǔn)如下:

目前主要參考cvss v3.0,具體級別的漏洞數(shù)目如下圖所示:

使用方法
命令行方式
命令行方式建議測試人員使用,可以在沒有源碼的情況下進(jìn)行代碼安全檢測。
Dependency-Check工具下載地址
https://owasp.org/www-project-dependency-check/,在右側(cè)選擇command line,如下圖:

默認(rèn)方式
下載解壓后進(jìn)入bin文件夾,在windows系統(tǒng)下執(zhí)行命令:
dependency-check.bat --disableRetireJS --disableNodeJS --project test -s D:\checkjar\-o D:\report\
其中:
-project代表工程名
–s代表檢查的jar包文件夾,把需要檢查的jar包放到該目錄下即可
–o代表報(bào)表輸出的路徑
--disableRetireJS不檢查js,
--disableNodeJS不檢查nodejs
本地NVD庫方式
我們可以在本地搭建一個NVD庫來提高更新效率,
具體可以參考
https://jeremylong.github.io/DependencyCheck/data/mirrornvd.html
使用本地nvd庫,具體命令如下:
dependency-check.bat
--cveUrlModified 本地nvd庫的
url/nvdcve-1.1-modified.json.gz
--cveUrlBase本地nvd庫的
url/nvdcve-1.1-2020.json.gz
--project test -s D:\checkjar\ -oD:\report\
其中–cveUrlModified和–cveUrlModified指定本地NVD庫
注意,如果執(zhí)行命令失敗,重新執(zhí)行一次就OK!
報(bào)告分析
生成的報(bào)表文件如下圖,一般只需關(guān)注HighestSeverity 列中的CRITICAL和HIGH級別漏洞,可以看到檢測出2個jar包存在高危漏洞。

點(diǎn)擊具體jar包,可以看到具體的修復(fù)方案,如下所示:

報(bào)告中的含義是jackson-xc-1.8.3jar是有安全問題的,這個問題在2.8.10和2.9.1版本之前是存在的,所以我們只要把jar包升級到2.9.1版本以上即可修復(fù)這個問題!
配置Maven插件方式
該方式建議開發(fā)人員使用,通過maven方式檢測依賴包中是否存在安全問題則需要修改較多pom中的內(nèi)容。
https://search.maven.org/artifact/org.owasp/dependency-check-maven/5.3.2/maven-plugin
總結(jié)
一般來說對于代碼依賴包的安全問題是由開發(fā)自己測試的,如果我們測試想要介入的話使用命令行方式即可,把需要檢查的jar包放到指定的目錄中,然后對所有jar包進(jìn)行整體掃描。原創(chuàng)不易,如果文章幫到了你,歡迎轉(zhuǎn)發(fā)點(diǎn)贊,讓更多的朋友受益!