当前位置: 首页 > 专利查询>暨南大学专利>正文

一种Android系统应用程序漏洞检测方法技术方案

技术编号:15763602 阅读:118 留言:0更新日期:2017-07-06 01:48
本发明专利技术公开了一种Android系统应用程序漏洞检测方法,可用于渗透测试和APK安全性测试。本发明专利技术方法首先分析待检测的APK包,确定其可能存在的漏洞种类;然后寻找APK包的早期版本,并按照发布时间顺序排序;循环遍历早期版本的APK包,对其进行APK可用性测试;对于存在网络连接的APK包,逐一进行网络抓包嗅探分析测试,寻找漏洞;对于不存在网络连接的APK包,进行解包逆向工程操作,分析是否存在漏洞;利用找到的漏洞进行攻击,试探攻击是否成功,如果成功,则确定为漏洞。

A vulnerability detection method for Android system applications

The invention discloses a Android system application vulnerability detection method, which can be used for penetration test and APK security test. The method of the invention firstly detected APK packets to determine the possible vulnerabilities types; and then find the early version of the APK package, and published in accordance with the time order; early version of loop through the APK package, APK usability testing on the existing network connection; for the APK package, by sniffing the network packet capture analysis the test, looking for loopholes; for there is no network connection of the APK package, unpack the reverse engineering operation, analysis of whether there are loopholes; find attacks using the vulnerability, to test whether the attack was successful, if successful, it is determined for the leak.

【技术实现步骤摘要】
一种Android系统应用程序漏洞检测方法
本专利技术属于网络空间安全
,尤其涉及一种Android系统应用程序漏洞检测方法。
技术介绍
近年来,智能移动端发展迅速,Android操作系统以其开源、界面美观、用户体验好等诸多优势在智能移动端操作系统林立涌现的局势下,迅速占据了最大的市场份额。Android的安装程序APK也由于其开发者入门门槛较低,支持第三方开发等原因,备受开发者的青睐。在一个APK开发到应用的过程中,正常情况要经历很多个版本,从一开始的内测版本到公测版本,再到后来的商用版本。每一次的更新都是对自身的一次提升,早期版本的APK由于技术所限,开发人员的经验不足,尤其是在开发过程中涉及到网络与信息安全问题的处理不当,很可能导致早期版本存在很多逻辑设计上或安全应用上的漏洞或者缺陷。对于最新版的APK应用程序,要想通过逆向工程手段进行分析是十分困难的,因为其代码一般采取了相应的保护措施。但是这一点在早期版本中并不明显。事实上,如果攻击者能对早期的APK包展开攻击,恢复出源代码,或者通过分析协议,拿到一些企业仍在使用的RestfulAPI接口,那么攻击者的能力就会变得非常强,很可能拿到一些有价值的信息,甚至直接对企业服务器展开攻击。前述逆向工程,顾名思义,就是通过现有的产品,采用一些技术手段对其进行逆向推演,最后还原出产品本来的系统架构、模块组成等。对于一个Android应用程序来说,我们可以通过最原始的APK包,利用一些工具还原出APK的逻辑代码、架构、函数调用树、界面源码等。常见的工具有APKTool和dex2jar,这也是我们主要使用的工具。另外,有专门针对于Android逆向工程的Linux操作系统,集成了很多可以进行反编译的工具。传统的APK漏洞检测方法,侧重于在最新的版本中进行漏洞检测,这样只能发现当前版本客户端应用的漏洞,而无法发现存在于服务器端、但未在新版本中使用的漏洞。这是传统的检测方法的一个盲点。此外,传统的APK漏洞检测方法,仅对一个版本的APK进行漏洞检测,忽略了版本与版本之间的联系,因而检测结果具有局限性,无法对APK的安全性进行全面综合的评测。
技术实现思路
本专利技术的目的在于提供一种Android系统应用程序漏洞检测方法,能有效检测出应用程序的漏洞,辅助于服务器渗透测试或者渗透测试工程师对第三方APK软件的安全性评估等。本专利技术Android系统应用程序漏洞检测方法,包括以下步骤:步骤一、分析待检测的APK包,确定其可能存在的漏洞种类;步骤二、寻找APK包的早期版本,并按照发布时间顺序从早到晚排序各版本;步骤三、从最早发布的APK包进行APK可用性的测试,即测试APK包能否正常使用;如果不能正常使用,按照发布时间顺序继续选择下一个APK包进行测试,以此类推,直至找到一个可用的APK包为止,找到后进入步骤四;步骤四、对于不存在网络连接的APK包,直接进入步骤五,对于存在网络连接的APK包,对APK包进行网络抓包嗅探分析测试,寻找漏洞;测试完毕后,对剩下的可用早期版本APK包逐一进行网络抓包嗅探分析测试,寻找漏洞,并记录找到的每一个漏洞;步骤五、对APK包进行解包逆向工程操作,分析其是否存在漏洞;对剩下的可用早期版本APK进行逆向工程测试,记录找到的每一个漏洞;步骤六、利用找到的漏洞进行攻击,试探攻击是否成功,如果成功,则确定为漏洞。从以上技术方案可知,本专利技术通过分析测试待检测的APK包,确定其可能存在的漏洞种类;然后寻找APK包的早期版本,按照从旧到新排序各版本;循环遍历早期版本的APK包,对其进行APK可用性测试,对于存在网络连接的APK包,对APK进行抓包分析操作,记录APK产生的各种参数。对于不存在网络连接的APK,或是抓包分析完毕的APK,进行解包逆向工程操作,结合网络流分析其是否存在漏洞,最后,利用找到的漏洞进行攻击,试探攻击的是否成功。与现有技术相比,本专利技术具有如下优点和有益效果:对APK包的众多版本,从旧版本到新版本逐一进行漏洞测试,即采用全局版本的方式进行漏洞检测。一方面,可利用以前版本的漏洞来推断新版本的漏洞,使得在检测过程中,更有目的性;另外一方面,全局版本的漏洞检测方式,可以更全面的检测漏洞,从而对APK的安全性有一个更为综合的评测结果。附图说明图1是本专利技术实施例提供的一种Android系统应用程序漏洞检测方法的流程图。具体实施方式下面结合实施例和说明书附图对本专利技术作进一步详细的描述,但本专利技术的具体实施方式不限于此。实施例本专利技术Android系统应用程序漏洞检测方法先确定准备检测的APK应用程序与其可能存在的漏洞种类;然后,寻找APK包的早期版本,将早期版本按照一定顺序逐一展开一系列的渗透测试;最后,对APK包进行抓包嗅探测试与逆向工程分析;最后,利用早期版本发现的漏洞,攻击现有版本的APK应用。如图1,各步骤具体如下:步骤一、分析待检测的APK包,确定其可能存在的漏洞种类。可能存在的漏洞种类包括以下情形:1、泄露沿用的核心算法。最突出的就是在游戏中,很多算法一旦确定后都不会变更的。如2048、像素鸟、植物大战僵尸、水果忍者等游戏。如果早期的源代码被破解,现在的游戏便很容易被盗版。2、泄露沿用的UI设计。在现有的很多Android系统应用程序中,可能存在部分界面和早期的类似甚至完全相同。3、通信机制和内部协议。如百度云3.0版本的Andriod系统客户端,仍然可以访问百度云现有的服务器。4、客户端与服务器协商的保密参数,该参数可用作APK登录的认证凭证。5、泄露企业的编程风格。不同的企业在代码开发管理规范上都有不同的管理要求。有的是可以公开的,而有的编程风格或者所透露的代码管理规范是企业不允许公开的。6、弱安全机制操作接口。通过早期版本暴露出来的操作接口,直接攻击安全机制较差的服务器。7、攻击者通过Android系统平台,揣摩其他平台的代码与算法。很可能他们用的算法是一样的,至少结构是一样的。8、篡改源代码。绕过客户端内嵌的检验机制或者植入病毒,如有的客户端存在访问次数和期限的限制,如果拿到之前容易反编译的客户端版本,我们就可以利用其重新篡改源代码转入后台。步骤二、寻找该APK包的早期版本,并按照发布时间顺序从早到晚排序各版本。寻找早期版本可以通过如下方式:1、第三方平台:很多第三方平台,如安卓市场、手机乐园等,都提供了一个APK对应历史版本的下载链接。2、官方发布:官方会有自己的网站、微博账号、贴吧等,通过这些渠道发布自己最新的APK版本。通过其多个版本的发布情况,我们可以获取到早期的APK版本。3、搜索引擎。通过百度或者谷歌搜索引擎进行搜索,搜索的关键字包括:1)APK名称+“历史版本”,如淘宝历史版本;2)APK名称+模糊版本号,如淘宝1.0,百度云2.0,优酷2.2;3)APK名称+具体版本号,具体版本号一般建立于模糊版本号的基础上,假如当搜索了淘宝1.0,搜索引擎反馈回来的是所有与1.0有关的版本信息,如淘宝1.0.5今日发布,淘宝3.1.0重要更新。鉴于此,可以细化版本号,完成精确搜索下载。步骤三、从最早发布的APK包进行APK可用性的测试,即测试该APK包是否可以正常使用;如果不可以正常使用,按照发布时间顺序继续选择下一个A本文档来自技高网
...
一种Android系统应用程序漏洞检测方法

【技术保护点】
一种Android系统应用程序漏洞检测方法,其特征在于,包括以下步骤:步骤一、分析待检测的APK包,确定其可能存在的漏洞种类;步骤二、寻找APK包的早期版本,并按照发布时间顺序从早到晚排序各版本;步骤三、从最早发布的APK包进行APK可用性的测试,即测试APK包能否正常使用;如果不能正常使用,按照发布时间顺序继续选择下一个APK包进行测试,以此类推,直至找到一个可用的APK包为止,找到后进入步骤四;步骤四、对于不存在网络连接的APK包,直接进入步骤五,对于存在网络连接的APK包,对APK包进行网络抓包嗅探分析测试,寻找漏洞;测试完毕后,对剩下的可用早期版本APK包逐一进行网络抓包嗅探分析测试,寻找漏洞,并记录找到的每一个漏洞;步骤五、对APK包进行解包逆向工程操作,分析其是否存在漏洞;对剩下的可用早期版本APK进行逆向工程测试,记录找到的每一个漏洞;步骤六、利用找到的漏洞进行攻击,试探攻击是否成功,如果成功,则确定为漏洞。

【技术特征摘要】
1.一种Android系统应用程序漏洞检测方法,其特征在于,包括以下步骤:步骤一、分析待检测的APK包,确定其可能存在的漏洞种类;步骤二、寻找APK包的早期版本,并按照发布时间顺序从早到晚排序各版本;步骤三、从最早发布的APK包进行APK可用性的测试,即测试APK包能否正常使用;如果不能正常使用,按照发布时间顺序继续选择下一个APK包进行测试,以此类推,直至找到一个可用的APK包为止,找到后进入步骤四;步骤四、对于不存在网络连接的APK包,直接进入步骤五,对于存在网络连接的APK包,对APK包进行网络抓包嗅探分析测试,寻找漏洞;测试完毕后,对剩下的可用早期版本APK包逐一进行网络抓包嗅探分析测试,寻找漏洞,并记录找到的每一个漏洞;步骤五、对APK包进行解包逆向工程操作,分析其是否存在漏洞;对剩下的可用早期版本APK进行逆向工程测试,记录找到的每一个漏洞;步骤六、利用找到的漏洞进行攻击,试探攻击是否成功,如果成功,则确定为漏洞。2.如权利要求1所述的Android系统应用程序漏洞检测方法,其特征在于,步骤一所述可能存在的漏洞种类包括:泄露沿用的核心算法;泄露沿用的UI设计;通信机制和内部协议;客户端与服务器协商的保密参数;泄露企业的编程风格;弱安全机制操作接口;早期版本暴露出来的操作接口;篡改源代码。3.如权利要求1所述的Android系统应用程序漏洞检测方法,其特征在于,步骤...

【专利技术属性】
技术研发人员:翁健张悦魏林锋侯琳
申请(专利权)人:暨南大学
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1