天天看點

使用OWASP Dependency-Check對應用做個安檢

俗話說“人怕出名豬怕壯”,當系統小有名氣以後就會被一些黑客盯上,三天兩頭的用各種漏洞掃描工具做滲透,如果不希望某天你負責的系統因為安全問題而出名,那就提前行動起來吧,這就是今天要講的OWASP Dependency-Check。

使用OWASP Dependency-Check對應用做個安檢

圖檔來源于百度

随着業務的發展,系統的使用者逐漸增多,這時就會有一些不速之客找上門來。

依賴項檢查是一種軟體組成分析(SCA)工具,它試圖檢測項目依賴項中包含的公開披露的漏洞。它通過确定給定依賴項是否存在通用平台枚舉(CPE)辨別符來完成此操作。如果找到,它将生成一個報告,連結到相關的CVE條目。

翻譯成大白話就是借助掃描工具和一些公開的漏洞庫提前告知開發者潛在的風險,比如你項目中依賴了Struts 2.0.0,那這個工具會告訴你Struts2.0.0相關的jar包存在風險,如果你不為所動那隻能等老闆約你喝茶了。

使用OWASP Dependency-Check對應用做個安檢

具體介紹請參閱:https://owasp.org/www-project-dependency-check/

通過官方的介紹,目前提供了四種掃描方式,分别是Jenkins內建,指令行工具,Maven插件,Ant task,有興趣的去https://github.com/jeremylong/DependencyCheck了解,這裡不再多說。

我自己使用的是Maven插件這種方式,後面内容會以這種方式來展開。

Maven方式掃描很簡單,隻需要兩步即可。

1.在pom.xml增加dependency-check-maven插件的配置,如下:

2.執行mvn org.owasp:dependency-check-maven:check

為了測試,我給項目增加了fastjson依賴

幸運的話你會在target目錄看到dependency-check-report.html,這就是掃描結果,浏覽器打開看看大概長啥樣。

使用OWASP Dependency-Check對應用做個安檢

如果不幸運的話可能會遇到下面提到的問題,聽我娓娓道來。

依賴檢查的時候會通過外網去下載下傳&更新漏洞庫,初始下載下傳可能需要十分鐘或者更長時間,對于網絡環境超好的使用者來說自然不會有問題,但網絡環境一般的使用者失敗的幾率就會非常高,是以官方提供了一種方案“在區域網路内部建立漏洞庫”,以此來加速日常的檢查,内部漏洞庫的更新頻率結合自己的實際情況,可以是每天也可以是每周。

具體參考 :

https://github.com/stevespringett/nist-data-mirror/

https://jeremylong.github.io/DependencyCheck/data/mirrornvd.html

例如 java -jar nist-data-mirror.jar nist-data #運作nist-data-mirror.jar 将漏洞庫下載下傳到nist-data目錄

我是采用的nginx作為漏洞庫代理,參考如下配置:

借助現有的工具提前做一些安全預警,不要讓亡羊補牢的故事重演。

道高一尺魔高一丈,對自己的系統時刻保持一絲敬畏之心。

https://owasp.org/www-project-dependency-check/

使用OWASP Dependency-Check對應用做個安檢