[发明专利]漏洞检测方法及装置、设备及存储介质在审
| 申请号: | 201910464868.X | 申请日: | 2019-05-30 |
| 公开(公告)号: | CN110188544A | 公开(公告)日: | 2019-08-30 |
| 发明(设计)人: | 李凯;李彦成;慕海龙;吕志旺 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/53 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 安装包 漏洞检测 中间代码 源代码 地址信息 应用程序 源码 漏洞 存储介质 编译 方案解决 技术缺陷 | ||
1.一种漏洞检测方法,其特征在于,包括:
对应用程序的安装包进行反编译得到包含源码地址信息的中间代码,其中,所述源码地址信息为所述中间代码中的各代码行在所述安装包的源代码中的对应位置;
使用设定漏洞检测规则,对所述中间代码进行漏洞检测,获取漏洞对应的目标中间代码;
根据所述目标中间代码的源码地址信息,确定所述漏洞在所述安装包的源代码中的位置。
2.根据权利要求1所述的方法,其特征在于,所述使用设定漏洞检测规则,对所述中间代码进行漏洞检测,获取漏洞对应的目标中间代码,包括:
获取所述中间代码对应的函数调用图、函数参数特征以及方法签名;
依据设定漏洞检测规则,对所述函数调用图、所述函数参数特征以及所述方法签名进行漏洞检测,获取漏洞对应的目标中间代码。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标中间代码的源码地址信息,确定所述漏洞在所述安装包的源代码中的位置,包括:
根据所述目标中间代码对应的源码地址信息,确定所述目标中间代码在所述安装包的源代码中的对应目标位置;
将所述对应目标位置,确定为所述漏洞在所述安装包的源代码中的位置。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述包含源码地址信息的中间代码为Jimple中间代码,所述源码地址信息为ValueBox信息。
5.根据权利要求4所述的方法,其特征在于,所述对应用程序的安装包进行反编译得到包含源码地址信息的中间代码,包括:
通过Soot分析环境,对应用程序的安装包进行反编译,得到所述应用程序的安装包的Java class文件;
通过Soot分析环境,对所述Java Class文件进行代码建模,获取Jimple中间代码。
6.根据权利要求1所述的方法,其特征在于,所述源码地址信息为所述中间代码中的各代码行,在所述安装包的源代码中的对应代码行数。
7.一种漏洞检测装置,其特征在于,包括:
中间代码获取模块,用于对应用程序的安装包进行反编译得到包含源码地址信息的中间代码,其中,所述源码地址信息为所述中间代码中的各代码行在所述安装包的源代码中的对应位置;
漏洞检测模块,用于使用设定漏洞检测规则,对所述中间代码进行漏洞检测,获取漏洞对应的目标中间代码;
代码位置确定模块,用于根据所述目标中间代码的源码地址信息,确定所述漏洞在所述安装包的源代码中的位置。
8.根据权利要求7所述的装置,其特征在于,所述漏洞检测模块包括:
调用图获取单元,用于获取所述中间代码对应的函数调用图、函数参数特征以及方法签名;
目标中间代码获取单元,用于依据设定漏洞检测规则,对所述函数调用图、所述函数参数特征以及所述方法签名进行漏洞检测,获取漏洞对应的目标中间代码。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的漏洞检测方法。
10.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-6中任一所述的漏洞检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910464868.X/1.html,转载请声明来源钻瓜专利网。





