论文部分内容阅读
随着移动互联网的发展,越来越多的人受益于移动应用带来的便利。其中Android系统拥有着最大的市场占有率,但是也因其开源的特性和开发者的能力问题存在着许多质量良莠不齐的应用。不单单恶意应用会窃取人们的隐私数据,良性应用也会出现信息泄露的问题。现有的静态检测工具FlowDroid因其分析精确为广大科研工作者所使用,但是它在数据流分析时存在着内存占用过高的问题。针对上述问题,本文提出了基于第三方库识别的数据流分析方案,设计并实现了基于数据流的Android应用信息泄露检测平台,主要研究成果如下:1.针对FlowDroid在对Android应用进行数据流分析时存在内存占用过高的问题,从代码分析和应用示例角度提出了基于第三方库识别的数据流分析方案。该方案对FlowDroid代码中调用图的构成算法进行改进,并以此改进算法生成删去无用边的调用图来进行数据流分析。在对500个应用进行实验验证后,结果证明,该方法可以在CG创建时间和内存占用两个指标上都为改进前的80%,在数据流分析中可以在95%以上的正确率下仅为未优化前内存占用的80%,优于 FlowDroid。2.从检测应用信息泄露的需求出发,设计了一套Android应用信息泄露检测平台。系统分为客户端与服务端。客户端为Android应用,包括应用发现模块、数据处理模块和用户模块,为人们提供上传应用和信息展示的平台;服务端采用了微服务的架构,包括基础支持与业务模块,基础支持是协调业务服务的存储、顺序执行和启动停止,业务模块则是提供核心功能的模块,包括静态检测、动态检测、资源文件分析、脱壳。3.以设计方案为准,实现了 Android应用信息泄露检测平台。平台最终展示给人的是APK应用,人们可以通过提交APK来检测应用是否存在信息泄露。主要使用到的技术有脱壳分析、静态检测和动态检测,还有一些起辅助作用的中间件,比如Redis、ZooKeeper和Genymotion模拟器。最后,同时向服务端提交100个模拟请求,请求可以有序执行,在取消某些节点时,系统也可以正常执行,说明系统存在高可用性和高并发性的优点。