NVD JSON供稿,标签含义及其用途

时间:2019-06-20 06:56:04

标签: security owasp

我开始从NVD XML提要转向JSON提要(因为从2019年10月起将不再支持XML)。现在,我很难理解标签及其使用目的。

例如:

  1. “配置”中的“操作员”标签有什么用途?

  2. “影响”标签列出了与该CVE-ID相关的所有易受攻击的库,那么“配置”标签的用途是什么?因为在它们内部指定的信息似乎只是对情感标签的重复,除了cpeId也可以在情感标签内指定。

我尝试在NVD网站上搜索任何此类相关文档,但找不到任何文档。 JSON模式未提及详细信息或目的(符合预期)。

请指出是否已创建任何文档。

2 个答案:

答案 0 :(得分:1)

  1. 配置标签指定导致漏洞的特定配置/环境。运营商基于看到它的许多不同用法,旨在描述不同的产品版本。例如,下面是CVE-2003-0001的Configuration键下的Nodes键的副本。
"nodes" : [ {
        "operator" : "OR",
        "cpe_match" : [ {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:o:freebsd:freebsd:4.2:*:*:*:*:*:*:*"
        }, {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:o:freebsd:freebsd:4.3:*:*:*:*:*:*:*"
        }, {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:o:freebsd:freebsd:4.4:*:*:*:*:*:*:*"
        }, {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:o:freebsd:freebsd:4.5:*:*:*:*:*:*:*"
        }, ...]

此处的操作员表示该漏洞可能出现在上述cpe23Uri的任何位置。  1.“影响”列出了供应商名称,产品名称和版本详细信息。是的,考虑到配置,这是多余的。 CPE 2.3旨在借助行业的帮助来识别每个软件产品。有了冗余,您会发现NVD在2019年9月更改为架构。

最后,以字段描述的名义,可以在提供的模式中找到详细信息(同意,这还不够)。 https://csrc.nist.gov/schema/nvd/feed/1.1/nvd_cve_feed_json_1.1.schema(v1.1) https://csrc.nist.gov/schema/nvd/feed/1.0/nvd_cve_feed_json_1.0.schema(v1.0)

答案 1 :(得分:0)

  

1。 “配置”中的“操作员”标签有什么用途?

在每个CVE配置中都有“操作员”的定义目的。这是我想解释的。

  

如果CVE配置的nodes [...]数组包含运算符“ AND”,则它必须至少具有两个或多个子代,以表示子代之间的逻辑AND组合,才有资格成为易受攻击者。

让我们看一个例子:对于“ CVE-2018-4926”,我采用以下代码段:

  "configurations": {
    "CVE_data_version": "4.0",
    "nodes": [
      {
        "operator": "AND",
        "children": [
          {
            "operator": "OR",
            "cpe_match": [
              {
                "vulnerable": true,
                "cpe23Uri": "cpe:2.3:a:adobe:digital_editions:*:*:*:*:*:*:*:*",
                "versionEndIncluding": "4.5.7"
              }
            ]
          },
          {
            "operator": "OR",
            "cpe_match": [
              {
                "vulnerable": false,
                "cpe23Uri": "cpe:2.3:o:apple:iphone_os:-:*:*:*:*:*:*:*"
              },
              {
                "vulnerable": false,
                "cpe23Uri": "cpe:2.3:o:apple:mac_os_x:-:*:*:*:*:*:*:*"
              },
              {
                "vulnerable": false,
                "cpe23Uri": "cpe:2.3:o:google:android:-:*:*:*:*:*:*:*"
              },
              {
                "vulnerable": false,
                "cpe23Uri": "cpe:2.3:o:microsoft:windows:-:*:*:*:*:*:*:*"
              }
            ]
          }
        ]
      }
    ]
 }

在上面的配置中,AND运算符有两个子代。请注意,:a:用于application:o:用于operating system在cpe23Uri中。例如

"cpe23Uri": "cpe:2.3:a:adobe:digital_editions:*:*:*:*:*:*:*:*",

AND

cpe23Uri": "cpe:2.3:o:apple:iphone_os:-:*:*:*:*:*:*:*"

现在,为了使以4.5.7结尾的应用程序“ adobe:digital_editions”版本具有脆弱性,操作系统必须为:o:apple:iphone_os:o:apple:mac_os_x:o:google:android:或{{1 }}。

我们可以将其改写为:

以4.5.7结尾的adobe digital_editions应用程序版本容易受上述操作系统的影响。

什么是带走的东西:

配置中的AND运算符总是带有以下两种可能性: 1.应用程序和操作系统 2.硬件cpe:2.3:o:microsoft:windows和操作系统

  

如果该配置没有子级,则:h:中的任何一个具有保留权限的操作系统或应用程序都将受到攻击,如以下两个示例所示。

示例1:对于应用程序的OR运算符

cpe23Uri

示例2:对于操作系统的OR运算符

"configurations" : {
      "CVE_data_version" : "4.0",
      "nodes" : [ {
        "operator" : "OR",
        "cpe_match" : [ {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:a:oracle:flexcube_private_banking:2.0.0:*:*:*:*:*:*:*"
        }, {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:a:oracle:flexcube_private_banking:2.0.1:*:*:*:*:*:*:*"
        }, {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:a:oracle:flexcube_private_banking:2.2.0:*:*:*:*:*:*:*"
        }, {
          "vulnerable" : true,
          "cpe23Uri" : "cpe:2.3:a:oracle:flexcube_private_banking:12.0.1:*:*:*:*:*:*:*"
        } ]
      } ]
    },

我希望现在可以澄清一下。如果没有,我可以在这方面提出任何疑问。

祝你好运!