首先需要说明的是results.json设计的目的就是为了方便程序处理而不是人工阅读. 我们重点关注的是SecurityInfo和ComplianceInfo字段.
这里的安全漏洞会根据你在规则中desc
指定的category
和name
进行分类. 方便程序处理,也方便人工阅读.
其中vulners
字段是这种类型漏洞的列表. 其中每个漏洞都有一个hash字段,该字段可以认为是漏洞的唯一标识.
details字段包含了漏洞的大量信息:
- Source 规则中source字段匹配到的变量.
- Sink 规则中sink字段匹配到的变量
- position source对应变量所在的函数
- entryMethod 分析的入口
- target 污点在变量之间传播的过程.
- url 以html格式展示的污点在变量之间传播的过程.
ComplianceInfo专门针对隐私合规问题. 如果category是ComplianceInfo
,那么appshark将会到其特殊处理.比如:
{
"desc": {
"name": "GAID_NetworkTransfer_body",
"detail": "存在<GAID>[获取]相关操作通过网络发送-body",
"category": "ComplianceInfo",
"complianceCategory": "PersonalDeviceInformation_NetworkTransfer",
"complianceCategoryDetail": "个人设备信息_NetworkTransfer",
"level": "3"
}
}
其分类将是:
- 第一级是ComplianceInfo
- 第二级是ComplianceCategory指定的PersonalDeviceInformation_NetworkTransfer
- 第三级是name指定的GAID_NetworkTransfer_body.
比如:
{
"ComplianceInfo": {
"PersonalDeviceInformation_NetworkTransfer": {
"GAID_NetworkTransfer_body": {
"category": "ComplianceInfo",
"detail": "存在<GAID>[获取]相关操作通过网络发送-body",
"name": "GAID_NetworkTransfer_body",
"vulners": [],
"deobfApk": "",
"level": "3"
}
}
}
}
至于vulners中的字段和SecurityInfo中的含义是一样的.
漏洞详情网页设计的目的是,他可以脱离results.json独立展示信息给用户,方便分析漏洞的形成原因.
是app的基本信息以及漏洞的基本信息.
上面的target字段
污点传播经历了哪些函数.
详细展示了污点传播的过程. 如果config.json5
中指定了javaSource为true,那么还会展示反编译后的函数的java代码.