[发明专利]一种Apk安全风险自动化静态审计系统以及方法在审
申请号: | 201710030223.6 | 申请日: | 2017-01-17 |
公开(公告)号: | CN106933645A | 公开(公告)日: | 2017-07-07 |
发明(设计)人: | 符利华 | 申请(专利权)人: | 深圳市能信安科技股份有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 深圳市中联专利代理有限公司44274 | 代理人: | 李俊 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 apk 安全 风险 自动化 静态 审计 系统 以及 方法 | ||
技术领域
本发明涉及移动信息安全技术领域,特别涉及一种Apk安全风险自动化静态审计系统以及方法。
背景技术
随着移动互联网的发展,移动终端安全也越来越受到关注。特别是Android系统的快速发展,使得Android平台逐渐成为了世界上第一大的移动终端平台,产品覆盖了机顶盒、手机、平板,以及各种智能终端,从各个角度影响着人们的生活。而且这些智能终端的功能越发的强大,包括了语音通话、数据业务、NFC近场通讯等。Android智能终端已经深入的进入到了我们每个人的生活中,支付类服务、生活类服务、地图类服务、娱乐类服务、个人信息类服务等等。在这种情况下,APP应用程序的使用者日益增加,与此同时,APP开发者运营商和Android手机用户所面临的安全问题日益增加。一方面由于Android应用程序开发者水平参差不齐,开发者并没有统一的编码规范要求,开发者本身的安全意识相对薄弱,以及开发者会有意无意滥用权限;另一方面,由于一些不法分子故意利用、制造不安全的APP应用程序,部分恶意代码还会通过利用厂商开发的系统应用的漏洞获取高权限,进一步危害用户的隐私安全,因此对Android源码和APP应用程序等这些应用程序的安全审计行为越来越重要。
现有技术中,主要有以下两种方式来对基于Android的应用程序进行审计:
一种是通过人工审计,主要基于有经验的开发人员的代码走读和单元测试来发现源代码逻辑安全性、审计违反程序规范的源代码,测试人员人工的渗透测试来发现程序错误,安全漏洞。人工代码审计的方法人工成本高、效率低,而且依赖于开发和测试人员水平的高低,应用程序的质量难以把控。
另一种是收集系统日志和APP应用程序的运行日志,或者对反编译日志信息进行还原,得到原始日志信息;将原始日志信息和运行日志信息统一输出,得到最终日志信息;根据审计日志信息白名单对最终日志信息进行过滤,确定待审计的日志信息;利用所述待审计的日志信息进行Android应用的审计。例如,公开号为CN105653943A的专利提供的一种Android应用的日志审计方法。这种审查方式一方面需要依赖操作系统日志模块和APP运行日志,日志信息量大,冗余信息过多,因此还需对日志进行大量且复杂的分析工作,才能正确地分析出APP的恶意行为,该方法也对代码的规范性无法审计。另一方面需要先运行或者模拟运行APP一段相对较长的时间,收集足够多的日志才能更全面的审计APP的行为,在运行阶段才能发现APP的安全问题,存在着审计系统审计粒度不够精细,审计的安全性和灵活性等方面存在不足的问题。
发明内容
针对以上问题,本发明专利目的在于设计了一种Apk安全风险自动化静态审计系统以及方法,可以快速、有效地对应用程序进行安全审计分析,具有很强的实用性。
本发明具体的技术方案如下:
一种Apk安全风险自动化静态审计方法,包括如下步骤:
步骤S101,反编译出Apk的AndroidManifest.xml、classes.dex和资源文件,读取其Dalvik字节码和AndroidManifest.xml文件,以所述AndroidManifest.xml文件作为函数入口解析所有的函数调用指令并生成基本函数调用图;
步骤S102,将Apk中使用到的具有异步性质的调用函数、生命周期相关的函数的Android库都加入所述基本函数调用图中,得到扩展函数调用图;
步骤S103,对所述扩展函数调用图中的代码路径进行过滤,得到包含可能污点数据传播行为的可疑路径集合;
步骤S104,污点分析器对可疑路径集合中每条可疑路径函数的字节码指令进行模拟执行,基于内存对象模型进行污点分析,并准确的检测污点数据信息以及污点数据传播行为。
具体的,本发明所述基于内存对象模型进行污点分析,进一步包括:
当污点分析器遇到包含未知值的未知条件分支时,引入模糊规则来进行控制流的决策,将未知条件分支分为未知值分支、无限循环分支和无限递归分支三种模式并分别进行处理。
具体的,本发明所述将未知条件分支分为未知值分支、无限循环分支和无限递归分支三种模式并分别进行处理,具体包括:
未知值分支重建上下文环境,恢复到已知分支状态;
无限循环分支设定循环最大次数阀值p,当计数达到p时,跳出循环,继续执行后续字节码;
无限递归设定递归最大深度阀值q,当计数达到最大深度q时,中止递归,恢复后续字节码执行。
具体的,本发明所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市能信安科技股份有限公司,未经深圳市能信安科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710030223.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种根据不同产品加载不同固件的方法
- 下一篇:云应用系统的负载管理方法及系统