从NVD数据提要中提取数据和cpe_match的含义

时间:2019-08-22 22:06:02

标签: java security

我的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:-:*:*:*:*:*:*:*"
      } ]
    } ]
  }]

1 个答案:

答案 0 :(得分:0)

这取决于您要确定的信息。请注意,节点下半部分的“ OR”运算符仅适用于这三个项目,它们与上半部分进行“与”运算。该节点的骨骼结构为:

"operator" : "AND",
  "children" : [ {
    "operator" : "OR",
    "cpe_match" : [ {
      ...
    } ]
  }, {
    "operator" : "OR",
    "cpe_match" : [ {
      ...
    } ]
  } ]

(我已经缩进,因为“子级”节点在逻辑上位于“ AND”之内,即使它们在结构上处于同一级别。)

换句话说,需要匹配两个cpe23Uri才能满足此节点描述的条件:上半部中的任何一个和下半部中的任何一个。您的Windows示例似乎只与后者匹配,而与系统中易受攻击的组件不匹配。要确定您的系统是否易受攻击,您需要寻找与易受攻击的商品 匹配的组件。