什么是CPE?CPE是由哪个组织定义和维护的?CPE主要用途是什么?CPE共有多少个条目?CPE由哪几部分组成?如何申请CPE条目?读完本文你将收获所有答案。如还有其他相关疑问,欢迎留言讨论。
文章目录
1. 简介
1.1. 定义
通用平台枚举(Common Platform Enumeration,简称,CPE)是描述和识别企业计算资产中存在的应用程序、操作系统和硬件设备类别的标准化方法,它提供了一个标准的机器可读的格式,利用这个格式可以对IT产品和平台进行唯一编码。CPE字典当前最新的版本为2.3,发布于2011年7月29日,该字典以XML格式提供,由NIST托管和维护,公众可以免费使用。可以点击下载Official CPE Dictionary v2.3, gz format - 16.27 MB, Updated: 03/04/2023
1.2. 应用场景
IT管理工具可以收集有关已安装产品的信息,使用其CPE名称标识这些产品,然后使用这些标准化信息来帮助对资产进行自动化决策。例如,识别fastjson 1.2.70版本的存在可能会触发漏洞管理工具来检查系统中是否存在软件中的已知漏洞。
Note: 一句话总结,CPE名称主要是用作标准化信息源,可用于实施和验证IT管理策略,尤其是安全策略。
2. 命名规范
CPE名称的命名主要由7部分组成,某些字段可以留空,规则如下:
cpe:<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>
解释:
- part:这只能采用三个值: a表示应用/软件; h表示硬件平台; o表示操作系统
- vendor:供应商
- product:产品名称
- version:发布版本,此属性的值应为供应商发布产品的字母、数字组成的版本字符串;
- update:更新版本,此属性的值应为字母、数字组成的字符串,表示产品的特定更新、服务包,如sp3;
- edition:在2.3版本规范中不推荐使用,除非需要与CPE规范2.2版向后兼容,否则应为其分配逻辑值ANY;
- language:该属性的值应为[RFC5646]定义的有效语言标签,并应用于定义所描述产品的用户界面中支持的语言,如en,us等。
有些细心的读者会发现CPE除了上面7部分,还有更多部分构成,这些部分被称为扩展部分。关于CPE每个部分的详情介绍可以参阅官方论文《Common Platform Enumeration: Naming Specification Version 2.3》点击下载。
2.1. 检索CPE
可以在NVD官网上查询到CPE信息https://nvd.nist.gov/products/cpe/search,比如开源软件FastJson 1.2.70对应的part部分为a
操作系统CenterOS 7.6对应的part部分为o
3. 申请添加CPE条目
主要通过向cpe_dictionary@nist.gov发送邮件的方式来添加CPE新条目。邮件中需要包括指向权威(最好是供应商)信息的超链接等,以证明字典中名称的实例化是正确的。然后对这些条目进行分析,并用字典中现有的CPE名称条目进行规范化。如果提交中的任何CPE名称条目被修改,NIST会首先向提交者发送邮件通知,以确认更改是否可接受。一旦达成协议,这些条目将被添加到字典中。
4. 常见问题
4.1. version中经常出现的"*“和”-"是什么意思?
“*” 表示ANY(任何版本),“-“ 表示N/A(不涉及版本)
5. 参考
https://nvd.nist.gov/general/faq
https://csrc.nist.gov/projects/security-content-automation-protocol/specifications/cpe
https://nvd.nist.gov/products/cpe
https://nmap.org/book/output-formats-cpe.html
版权归原作者 筑梦之月 所有, 如有侵权,请联系我们删除。