我的IT产品已定义CPE,例如:
cpe:/o:microsoft:windows_vista:6.0:sp1:~-~home_premium~-~x64~-
我正在使用NVD数据馈送获取所有众所周知的漏洞。 CVE在.json文件中给出,并且在每个CVE项下都有一个 configuration 节点。 如果我想检查当前CVE项中是否存在我的CPE,我想我必须检查配置节点,但是我不确定“ operator”:“ OR”,“ vulnerable”:false的目的是什么。 >
我可以仅将CPE与cpe23Uri进行比较,还是必须以某种方式考虑操作员和易受攻击的节点?
"configurations" : {
"CVE_data_version" : "4.0",
"nodes" : [ {
"operator" : "AND",
"children" : [ {
"operator" : "OR",
"cpe_match" : [ {
"vulnerable" : true,
"cpe23Uri" : "cpe:2.3:a:adobe:flash_player:*:*:*:*:*:*:*:*",
"versionStartIncluding" : "10.3",
"versionEndExcluding" : "10.3.183.19"
}, {
"vulnerable" : true,
"cpe23Uri" : "cpe:2.3:a:adobe:flash_player:*:*:*:*:*:*:*:*",
"versionStartIncluding" : "11.2",
"versionEndIncluding" : "11.2.202.233"
} ]
}, {
"operator" : "OR",
"cpe_match" : [ {
"vulnerable" : false,
"cpe23Uri" : "cpe:2.3:o:apple:mac_os_x:-:*:*:*:*:*:*:*"
}, {
"vulnerable" : false,
"cpe23Uri" : "cpe:2.3:o:linux:linux_kernel:-:*:*:*:*:*:*:*"
}, {
"vulnerable" : false,
"cpe23Uri" : "cpe:2.3:o:microsoft:windows:-:*:*:*:*:*:*:*"
} ]
} ]
}]
答案 0 :(得分:0)
这取决于您要确定的信息。请注意,节点下半部分的“ OR”运算符仅适用于这三个项目,它们与上半部分进行“与”运算。该节点的骨骼结构为:
"operator" : "AND",
"children" : [ {
"operator" : "OR",
"cpe_match" : [ {
...
} ]
}, {
"operator" : "OR",
"cpe_match" : [ {
...
} ]
} ]
(我已经缩进,因为“子级”节点在逻辑上位于“ AND”之内,即使它们在结构上处于同一级别。)
换句话说,需要匹配两个cpe23Uri
才能满足此节点描述的条件:上半部中的任何一个和下半部中的任何一个。您的Windows示例似乎只与后者匹配,而与系统中易受攻击的组件不匹配。要确定您的系统是否易受攻击,您需要寻找与易受攻击的商品 匹配的组件。