[发明专利]漏洞检测方法及装置、设备及存储介质在审
| 申请号: | 201910464868.X | 申请日: | 2019-05-30 |
| 公开(公告)号: | CN110188544A | 公开(公告)日: | 2019-08-30 |
| 发明(设计)人: | 李凯;李彦成;慕海龙;吕志旺 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
| 主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F8/53 |
| 代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 安装包 漏洞检测 中间代码 源代码 地址信息 应用程序 源码 漏洞 存储介质 编译 方案解决 技术缺陷 | ||
本发明实施例公开了一种漏洞检测方法及装置、设备及存储介质。所述方法包括:对应用程序的安装包进行反编译得到包含源码地址信息的中间代码,其中,源码地址信息为中间代码中的各代码行在安装包的源代码中的对应位置;使用设定漏洞检测规则,对中间代码进行漏洞检测,获取漏洞对应的目标中间代码;根据目标中间代码的源码地址信息,确定漏洞在安装包的源代码中的位置。本发明实施例的技术方案解决了现有技术中使用Smali代码对应用程序的安装包进行漏洞检测时,难以确定漏洞在安装包的源代码中的位置的技术缺陷,实现了基于对应用程序的安装包的反编译得到的中间代码进行漏洞检测,可以准确确定漏洞在安装包的源代码中的位置。
技术领域
本发明实施例涉及应用程序的漏洞检测技术,尤其涉及一种漏洞检测方法及装置、设备及存储介质。
背景技术
早期,安卓系统的应用程序的漏洞审计工作主要通过人工反编译应用的Apk安装包,从而分析安全漏洞。这消耗了大量的人力,而且产出少、速度慢、漏洞覆盖率低。伴随着移动端应用生态的迅速繁荣,市场上逐渐出现了可以对安卓系统的应用程序进行自动审计的自动化审计工具,从而提升了审计效率,也扩大了漏洞检测覆盖面。
现有的自动化审计工具一般是通过下述两个步骤完成漏洞审计:第一,通过ApkTool工具反编译应用程序的Apk压缩包,反编译后得到应用程序的Smali代码;第二、将预设漏洞特征与Smali代码中的方法签名、函数参数特征等数据进行匹配,从而确定应用程序的Java代码是否存在漏洞。
发明人在实现本发明的过程中,发现现有技术存在如下缺陷:Smali代码与应用程序的Java源代码的代码行并非一一对应,因此,无法确定根据Smali代码所确定的漏洞,在Java源代码中的代码位置。
发明内容
本发明实施例提供了一种漏洞检测方法及装置、设备及存储介质,以实现准确确定漏洞在应用程序的安装包的源码中的位置。
第一方面,本发明实施例提供了一种漏洞检测方法,包括:
对应用程序的安装包进行反编译得到包含源码地址信息的中间代码,其中,所述源码地址信息为所述中间代码中的各代码行在所述安装包的源代码中的对应位置;
使用设定漏洞检测规则,对所述中间代码进行漏洞检测,获取漏洞对应的目标中间代码;
根据所述目标中间代码的源码地址信息,确定所述漏洞在所述安装包的源代码中的位置。
第二方面,本发明实施例还提供了一种漏洞检测装置,包括:
中间代码获取模块,用于对应用程序的安装包进行反编译得到包含源码地址信息的中间代码,其中,所述源码地址信息为所述中间代码中的各代码行在所述安装包的源代码中的对应位置;
漏洞检测模块,用于使用设定漏洞检测规则,对所述中间代码进行漏洞检测,获取漏洞对应的目标中间代码;
代码位置确定模块,用于根据所述目标中间代码的源码地址信息,确定所述漏洞在所述安装包的源代码中的位置。
第三方面,本发明实施例还提供了一种设备,所述设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的漏洞检测方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本发明任意实施例所述的漏洞检测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910464868.X/2.html,转载请声明来源钻瓜专利网。





