跳到主內容

【名詞解釋】CPE - 軟體/硬體/作業系統的標準化身分證

CPE 可以把它想成**「軟體/硬體/作業系統的標準化身分證」**,用來讓不同的弱掃、資產盤點、漏洞資料庫能用同一種語言描述「到底是哪個產品、哪個版本」。


CPE 是什麼

CPE(Common Platform Enumeration) 是 NIST 定義的一套命名標準。
它用統一格式描述:

  • 產品類型(應用程式 / 作業系統 / 硬體)

  • 廠商

  • 產品名稱

  • 版本

  • 其他屬性(語言、更新版、版次…)

目的:
讓「漏洞(CVE)」可以清楚綁到「受影響產品/版本」。


你會在哪裡看到 CPE

最常見的地方:

  • NVD 的 CVE 詳細頁
    下面會有 Known Affected Software Configurations
    就是用 CPE 寫出「哪些產品版本受影響」。

  • 弱點掃描/資產管理工具
    用 CPE 來做自動比對與風險盤點。


CPE 2.3 長什麼樣(看得懂就好)

你常見的是 CPE 2.3 格式:

cpe:2.3:<part>:<vendor>:<product>:<version>:...

其中 <part> 通常是:

  • a = application(應用)

  • o = operating system(作業系統)

  • h = hardware(硬體)

(後面還有很多欄位,但實務上你最常看前 4-5 個就夠了。)


為什麼 CPE 很重要(實務角度)

有 CPE,你就能做到:

  1. 自動化對帳

    • 你的資產清冊 / SBOM / 掃描結果

    • 跟 NVD 的受影響清單做比對
      → 快速找出「我是不是中招」。

  2. 跨工具一致性

    • 不同廠牌的掃描器

    • 不同資料來源
      都能用同一套識別方式對齊。


但 CPE 也有現實限制

這點很關鍵,避免誤判:

  • 更新可能慢半拍或不精準
    新框架、新套件或複雜相依
    CPE 可能不完整或延後補齊。

  • 對前端/開源生態有時不夠細
    特別是

    • 子套件

    • monorepo

    • canary/nightly

    • 特殊建置版本

所以最佳做法是:

CPE 用來快速盤點
最終以原廠公告 + 你的 lockfile/SBOM 驗證


一句超白話總結

CPE = 讓漏洞資料庫能精準說「哪個產品/哪個版本」的標準名稱。
它是 CVE 與你的資產之間的重要橋樑