2025年8月13日 星期三

[研究]OWASP Dependency-Track (DT) 與 Mend(原 WhiteSource)實際掃描結果比較(一)

[研究]OWASP Dependency-Track (DT) 與 Mend(原 WhiteSource)實際掃描結果比較(一)

2025-08-13

這是同一個專案

OWASP Dependency-Track (DT) 畫面

註解:Attributed On 欄位的日期代表的是:該漏洞(Vulnerability)或安全資訊 被正式歸因(attributed)給該元件或套件的日期,是 Dependency-Track 從漏洞資料來源(Vulnerability Source)抓回來的日期。

**********

Mend(原 WhiteSource)畫面


Severity 點下去有詳細資訊
********************************************************************************
某 ASP.NET WebForm 專案,OWASP Dependency-Track (DT) 列出了有弱點的元件資訊

System.Security.Cryptography.X509Certificates 4.3.2 CVE-2024-0057
bootstrap 3.4.1 NVD CVE-2024-6484
bootstrap 3.4.1 NVD CVE-2024-6485
bootstrap 3.4.1 NVD CVE-2024-6531
RestSharp 106.15.0 NVD CVE-2024-45302
vue 2.6.11 NVD CVE-2024-9506
bootstrap 3.4.1 NVD CVE-2025-1647
System.Text.Json 9.0.8 NVD CVE-2024-43485

Mend 列出了有弱點的元件資訊
vue-2.6.11.min.js CVE-2024-9506 CVE-2024-6783
vue-2.5.21.js CVE-2024-9506
vue-2.5.21.min.js CVE-2024-9506
vue-2.6.11.js CVE-2024-9506 CVE-2024-6783
sixlabors.imagesharp.2.1.8.nupkg CVE-2025-27598 CVE-2025-54575 CVE-2024-41131 CVE-2024-41132

為何掃出的套件有差異?

ChatGPT 說:

你看到 OWASP Dependency-Track (DT) 和 Mend 掃描結果不一致,主要是因為兩者的元件識別方式、掃描範圍、資料來源、版本解析邏輯都有差異。
我幫你拆成幾個關鍵原因來看:

1. 識別方式不同
  • DT
主要透過 SBOM(Software Bill of Materials)或套件管理檔案(例如 .csproj、packages.config、package-lock.json)中宣告的套件名稱與版本,依照套件層級(NuGet package、NPM package、JAR、Docker image 等)來比對漏洞資料庫。
  • Mend
除了讀取套件管理檔案,也會直接掃描實際檔案內容(如 .js、.dll、.min.js、.nupkg)並用檔案指紋(hash / signature)去匹配漏洞資料庫。
→ 所以 Mend 才會報 vue-2.6.11.min.js 與 vue-2.5.21.js 這種單獨的檔案名稱,而 DT 則是只看到 vue 2.6.11 這個 package。

2. 掃描範圍不同
  • DT 偏向「專案依賴」層面,通常看你宣告安裝的**直接依賴(direct dependencies)**與已解析出的間接依賴(transitive dependencies)。
  • Mend 除了直接與間接依賴,也會去掃描:
    • 壓縮檔內的第三方資源(如 .nupkg 內嵌的 DLL/JS)
    • wwwroot、Scripts 資料夾中的第三方前端庫
    • 未透過套件管理器安裝的手動引用檔案(vendor code)

3. 漏洞資料來源不同
  • DT 常用的來源:
    • NVD(National Vulnerability Database)
    • GitHub Security Advisories
    • Sonatype OSS Index(視設定而定)
  • Mend 的來源更混合:
    • NVD
    • Mend 自家的漏洞資料庫(從各種 GitHub issue、專案 changelog、研究報告匯入)
    • 其他公開與商業威脅情報
    • 因此可能會掃到 NVD 尚未收錄的 CVE(例如 CVE-2024-6783)

4. 版本與比對演算法不同
  • 有些漏洞是針對特定版本範圍發佈的,但不同掃描工具在版本正則判斷上會有落差
    → 可能 DT 判斷你的版本不在漏洞範圍,但 Mend 的匹配規則比較寬鬆,於是報出來。
  • 反之,也可能 Mend 的 signature 沒對到你的檔案版本,於是沒報。

5. 更新頻率不同
  • 漏洞資料庫更新頻率不同會影響掃描結果。
    有些 CVE 發布初期,NVD 還沒「enrich」(補充詳細描述與受影響版本),DT 可能就暫時沒有資訊,而 Mend 可能已經自行補齊。

💡 簡單比喻
  • DT 比較像「看你說你家買了哪些電器,去查電器型號有沒有瑕疵」;
  • Mend 像是「直接進你家,數你有幾台電器,連朋友送你的、二手的、沒登記的都找出來比對」。

********************************************************************************


(完)

沒有留言:

張貼留言