如何識別與確認第三方軟體是否存在弱點 🛡️ (NIST NVC / CVE / CPE)

2020-10-30

資安領域的發展將資安弱點以 CWE 的方式做分類,其中 OWASP TOP 10 則是精選最常見的弱點種類。而具體資安弱點則是以 CVE 的方式進行標準編號,並且以 CVSS 的方式對弱點進行評分其嚴重程度。而 NIST NVD 則另外提出 CPE 的觀念,將資訊資產項目予以編號標準化,別且連結 CPE 與 CVE 之間的關係,使安全工具自動化驗證弱點成為可能。

本篇主要說明資安領域如何以標準化的方式表示資安弱點,並嘗試蒐羅各種自助式的弱點檢測方案。

logo

說明

CVE

Common Vulnerabilities and Exposures, CVE 由非營利組織 MITRE National Cybersecurity FFRDC 負責維護。

描述各種資安弱點,並以標準編號作為識別;藉由 CVE 可以將已知的弱點風險的名稱標準化,讓弱點資料庫與安全工具相輔相成為軟體弱點修正工具

編號範例:

CVE-XXXX-YYYYY

CVE

NIST NVD

NIST NVC Search

NVD CVE/CPE API

CPE

Common Platform Enumeration, CPE,為美國國家標準技術研究所(NIST)所提出將弱點標準化的方式,用於識別軟體上的應用程式、作業系統及硬體上的各種設備之資訊資產,並且有版本區別,目前最新的版本為 (2020/11)

CPE 共分為三類,分別是 作業系統(o)、應用程式(a)及硬體設備(h)

主要資訊再分為主要廠商名稱(vendor)、產品名稱(product)、產品版本(version)、產品更新(update)、產品版次(edition)及語系(language)

編號範例:

cpe:2.3:o:microsoft:windows_server_2008:r2:sp1:x64:*:*:*:*:*

OOS Index / Audit.NET / DevAudit

.NET 環境可以藉由安裝 Audit.NET 來掃描專案判斷存在弱點的元件,或是使用 DevAudit 對 packages.config 進行掃描元件弱點。但掃描的全面性沒有直接使用 NVD 來的全面,部分已知的弱點不會被掃出(例如 lodash - CVE-2019-10744)。

首先需要安裝:Audit.NET

對專案名稱點選右鍵,進行檢查

檢查後的結果

DevAudit

devaudit nuget - f "path\pacakges.config"

OWASP dependency-check

OWASP Dependency-Check

📚 參考資料

法務部 ISMS

綜合參考

政府機關資安弱點通報機制推動規劃

異質性弱點資料庫整合與研究

NIST NVD (National Vulnerability Database) 國家漏洞資料庫-使用心得

13 tools for checking the security risk of open-source dependencies

透過 Audit.NET 及 DevAudit 來掃描 .NET 專案中套件是否有資安問題

DevAudit: Development Auditing

sonastype - ossindex