【名詞解釋】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,你就能做到:
-
自動化對帳
-
你的資產清冊 / SBOM / 掃描結果
-
跟 NVD 的受影響清單做比對
→ 快速找出「我是不是中招」。
-
-
跨工具一致性
-
不同廠牌的掃描器
-
不同資料來源
都能用同一套識別方式對齊。
-
但 CPE 也有現實限制
這點很關鍵,避免誤判:
-
更新可能慢半拍或不精準
新框架、新套件或複雜相依
CPE 可能不完整或延後補齊。 -
對前端/開源生態有時不夠細
特別是-
子套件
-
monorepo
-
canary/nightly
-
特殊建置版本
-
所以最佳做法是:
CPE 用來快速盤點
最終以原廠公告 + 你的 lockfile/SBOM 驗證
一句超白話總結
CPE = 讓漏洞資料庫能精準說「哪個產品/哪個版本」的標準名稱。
它是 CVE 與你的資產之間的重要橋樑。