这篇文档介绍了如何解析FSS的检测结果,检测结果以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": {}
}
]
}
]
}
固件基本信息
基本信息的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": {}
}
]
}
]
字段定义如下:
字段 | 类型 | 描述 |
name | String | 风险类型中文名称 |
code | String | 风险类型英文名称或风险类型代码 |
category | String | 风险类型分组中文名称 |
enCategory | String | 风险类型分组英文名称 |
description | String | 风险描述 |
suggestion | String | 修复建议 |
vulnInfos | JSONArray<VulnInfo> | 风险详细情况列表 |
VulnInfo定义如下:
字段 | 类型 | 描述 |
filename | String | 受影响的文件名 |
severity | String | 风险安全等级 |
detail | JSONArray | 风险详细描述,不同风险描述也不相同 |
cve | JSONObject | CVE漏洞列表,只有当前分组为CVE漏洞(CveVuln),该字段才有效。 |
detail字段,保存检测到的非CVE漏洞的详细信息,定义如下:
字段 | 类型 | 描述 |
cnName | String | 详细信息的中文描述名 |
enName | String | 详细信息的英文描述名 |
value | JSONArray<String> | 风险详细信息,以JSONArray<String>存储。 |
cve字段,保存检测到的CVE漏洞的详细信息,定义如下:
字段 | 类型 | 描述 |
cveId | String | CVE漏洞标识 |
cweId | String | CVE漏洞类型标识 |
impact | JSONObject | 定义漏洞攻击向量、风险等级等。优先使用cvssV3,其中vectorString为攻击向量、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为修复当前版本所有漏洞,需要升级到的版本建议。其中version表示版本号,expression表示version包含关系,如果为“>”表示需要升级到在大于version的版本;如果为”>=“表示需要升级到在大于或等于version的版本。
如果version为空,表示目前还没有可用的修复版本号。highCriticalFixedVersion,为修复当前版本中严重、高危漏洞,需要升级到的版本建议。
在文档使用中是否遇到以下问题
更多建议
匿名提交