检测结果格式说明

检测结果以JSON格式存储,可以分为四部分:固件基本信息、检测结果统计、基础检测风险列表、检测规则的检测结果。本文介绍了各部分内容的详细情况。

检测结果

检测结果总体格式如下:

{
    "fwBasicInfo": {  //固件基本信息
        "fwFileSize": 0,
        "arch": "",
        "fwSha256": "",
        "filesystem": "",
        "scanStartTime": 0
    },
    "riskStatistics": {  //检测结果统计
        "severityStatistics": [  //风险等级漏洞数统计
            { "name": "严重", "count": 0 },
            { "name": "高危", "count": 0 },
            { "name": "中危", "count": 0 },
            { "name": "低危", "count": 0 },
            { "name": "通告", "count": 0 }
        ],
        "riskBrief": [  //按风险等级及分类统计
            {
                "risks": [{"riskType": "", "suggestion": "", "count": 0, "description": ""}],
                "name": "严重", "count": 0
            }
        ]
    },
    "risks": [  //检测风险列表
        {
           "name": "",  "code": "", "enCategory": "", "category": "",
           "description": "", "suggestion": "",
           "vulnInfos": [
                {
                    "severity": "", "filename": "",
                    "detail": [],
                    "cve": {}
                }
            ]
        }
    ],
    "detectionRuleResult": [  //检测规则(等保2.0)的检测结果
        {
          "detectionUnitName": "",  //控制点
          "attackSurface": "",      //控制面
          "category": "",           //分类
          "categoryCode": "",       //分类Code
          "detectionRuleName": "",  //合规分级名称,如等保2.0三级
          "classification": "",     //合规分级Code
          "description": "",        //描述
          "severity": "",           //风险等级
          "detail": "",             //风险详情
          "solution": "",           //改进建议
          "status": ""              //合规检测状态。0表示不通过,1表示通过。
        }
    ]
}

固件基本信息

基本信息的key为fwBasicInfo,类型为JSONObject。格式为:

    "fwBasicInfo": {
        "fwFileSize": 0,
        "arch": "",
        "fwSha256": "",
        "filesystem": "",
        "scanStartTime": 0
    }

字段定义参考:

字段名

类型

说明

fwFileSize

long

固件文件大小。

arch

String

固件的CPU体系。

fwSha256

String

固件文件的SHA256。

filesystem

String

固件的文件系统。

scanStartTime

Date

检测时间。

检测结果统计

检测结果统计的key为riskStatistics,类型为JSONObject。格式为:

    "riskStatistics": {
        "severityStatistics": [  //风险等级漏洞数统计
            { "name": "严重", "count": 0 },
            { "name": "高危", "count": 0 },
            { "name": "中危", "count": 0 },
            { "name": "低危", "count": 0 },
            { "name": "通告", "count": 0 }
        ],
        "riskBrief": [  //按风险等级及分类统计
            {
                "risks": [{"riskType": "", "suggestion": "", "count": 0, "description": ""}],
                "name": "严重", "count": 0
            }
        ]
    }

检测结果统计分为2部分:

  1. 风险等级漏洞数统计。

    按风险等级统计的当前固件风险结果,风险等级分为严重、高危、中危、低危和通告。

    key为severityStatistics,类型为JSONArray,每个item格式为:

    字段名

    类型

    说明

    name

    String

    风险等级名。

    count

    int

    风险数量。

  2. 按风险等级及分类统计。

    按风险等级及分类统计的当前固件风险结果,每个风险等级下检测到了哪些风险类型及风险数量等。

    key为riskBrief,类型为JSONArray,每个item格式为:

    字段名

    类型

    说明

    name

    String

    风险等级名。

    count

    int

    风险数量。

    risks

    JSONArray

    风险列表。

    其中risks格式为:

    字段名

    类型

    说明

    riskType

    String

    风险类型名。

    count

    int

    风险数量。

    description

    String

    风险描述。

    suggestion

    String

    描述修复紧急程度。

基础检测风险列表

基础检测风险列表的key为risks,类型为JSONArray,格式如下:

    "risks": [
        {
            "name": "",  
            "code": "",
            "enCategory": "", 
            "category": "",
            "description": "", 
            "suggestion": "",
            "vulnInfos": [
                {
                    "severity": "", "filename": "",
                    "detail": [],
                    "cve": {}
                }
            ]
        }
    ]

字段定义如下:

字段

类型

描述

nameS

String

风险类型中文名称。

code

String

风险类型英文名称或风险类型代码。

category

String

风险类型分组中文名称。

enCategory

String

风险类型分组英文名称。

description

String

风险描述。

suggestion

String

修复建议。

vulnInfos

JSONArray<VulnInfo>

风险详细情况列表。

其中vulnInfos定义如下:

字段

类型

描述

filename

String

受影响的文件名。

severity

String

风险安全等级。

detail

JSONArray

风险详细描述,详细结构件下文“1.detail字段”。

cve

JSONObject

CVE漏洞列表,详细结构见下文“2.cve字段”。

说明

只有当前分组为CVE漏洞(CveVuln),该字段才有效。

  1. detail字段

    保存检测到的非CVE漏洞的详细信息,定义如下:

    字段

    类型

    描述

    cnName

    String

    详细信息的中文描述名。

    enName

    String

    详细信息的英文描述名。

    value

    JSONArray<String>

    风险详细信息,以JSONArray<String>存储。

  2. cve字段

    字段

    类型

    描述

    cveId

    String

    CVE漏洞标识。

    cweId

    String

    CVE漏洞类型标识。

    impact

    JSONObject

    orString为攻击向量、severity为风险等级。

    cpe

    JSONObject

    为Common Platform Enumeration的缩写,描述软硬件产品的唯一标识符。参考下面的cpe结构说明。

    description

    String

    漏洞描述信息。

    references

    JSONArray<JSONObject>

    参考信息。其中referenceType为参考类型,referenceSource为参考源,referenceUrl为参考链接地址。

    cpe结构示例如下:

    "cpe": {
      "cpeName": "",
      "cpeType": "",
      "allFixedVersion": {
        "expression": "",
        "version": ""
      },
      "highCriticalFixedVersion": {
        "expression": "",
        "version": ""
      }
    }

    字段

    描述

    cpeName

    cpe名称。

    cpeType

    cpe类型。

    allFixedVersion

    表示修复当前版本所有漏洞所需要升级到的版本。

    • expression表示version包含关系,如果为“>”表示需要升级到大于version的版本;如果为”≥“表示需要升级到大于或等于version的版本。如果version为"",表示目前还没有可用的修复版本号。

    • version表示版本号。

    highCriticalFixedVersion

    表示修复当前版本中严重、高危漏洞所需要升级到的版本。

    • expression表示version包含关系,如果为“>”表示需要升级到大于version的版本;如果为”≥“表示需要升级到大于或等于version的版本。如果version为"",表示目前还没有可用的修复版本号。

    • version表示版本号。

检测规则的检测结果

检测结果统计的key为detectionRuleResult,类型为JSONArray,格式如下:

    "detectionRuleResult": [  //检测规则(等保2.0)的检测结果
        {
          "detectionUnitName": "",  //控制点
          "attackSurface": "",      //控制面
          "category": "",           //分类
          "categoryCode": "",       //分类Code
          "detectionRuleName": "",  //合规分级名称,如等保2.0三级
          "classification": "",     //合规分级Code
          "description": "",        //描述
          "severity": "",           //风险等级
          "detail": "",             //风险详情
          "solution": "",           //改进建议
          "status": ""              //合规检测状态。0表示不通过,1表示通过。
        }
    ]

字段定义如下:

字段

类型

描述

detectionUnitName

String

控制点。

attackSurface

String

控制面。

category

String

分类。

categoryCode

String

分类Code。

detectionRuleName

String

合规分级名称,如等保2.0三级。

classification

String

合规分级Code。

description

String

描述。

severity

String

风险等级。

detail

String

风险详情,为JSON字符串。

solution

String

改进建议。

status

String

合规检测状态。0表示不通过,1表示通过。

其中detail字段为JSON字符串,可解析为JSON数组,数组每个成员结构为:

字段

类型

描述

riskName

String

检测到的风险名称。

filename

String

受影响文件。

riskDetail

String

检测到的风险详细。