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

一种跨App组件间隐私泄露的检测方法技术

技术编号:15199991 阅读:89 留言:0更新日期:2017-04-22 00:55
本发明专利技术公开了一种跨App组件间隐私泄露的检测方法,步骤为:提取待分析的应用程序中组件的属性信息,对待分析的应用程序按照是否能将隐私信息传递给第三方应用程序的判断方法对待分析的应用程序进行分类,得到潜在泄露隐私的应用程序的组合;分别生成潜在泄露隐私的组件子序列,并利用所述的子序列构建完整的潜在泄露隐私的组件序列,利用虚拟主函数和插桩技术解决由于代码不连续性造成无法进行静态污点分析的问题,并构建所述组件序列中组件的控制流程图;执行静态污点分析,并输出检测到的跨App组件间隐私泄露的路径。本发明专利技术解决了现有技术中存在的路径爆炸和代码的不连续性等问题,加快了跨App组件间隐私泄露的速度,提高了检测效率。

Method for detecting privacy leakage between App components

The invention discloses a detection method, a privacy cross between App components comprises the following steps: extracting attribute information of the application components to be analyzed in the treatment of application analysis according to whether the application can transfer the information to the privacy judgment method of third party applications to analyze the classification, combination application potential leakage of privacy; privacy leaks respectively generate potential component sub sequence, assembly sequence and sequence using the construction of the complete potential breach of privacy, the use of virtual instrumentation technology and the main function to solve the discontinuity caused by code can not be static Taint Analysis, and construct the control flow graph of the assembly components in the sequence of execution; static Taint Analysis, path and output across the App component detected between privacy. The invention solves the problems of the path explosion and the discontinuity of the code in the prior art, speeds up the speed of privacy leakage between the App components, and improves the detection efficiency.

【技术实现步骤摘要】

本专利技术属于Android应用程序内部的隐私泄露检测
,具体涉及一种基于构件潜在泄露隐私的组件序列,并利用静态污点分析技术实现跨App组件间隐私泄露的自动检测方法。
技术介绍
随着Android设备市场份额的不断扩大,更多的恶意攻击者将目标瞄向Android设备。研究发现,以泄漏用户隐私信息为目标的恶意软件占据比例很大,而且近年来国内移动设备用户信息泄漏事件频发。中国互联网协会2015年发布的《中国网民权益保护调查报告》称,78.2%的网民个人身份信息被泄漏过,63.4%的网民个人网上活动信息被泄漏过。2015年百度Wormhole漏洞影响许多用户量过亿的应用程序,带来大量用户隐私泄漏风险。面对移动用户隐私保护的严峻形势,隐私泄漏的检测颇受关注。现有的隐私泄露检测主要针对Android应用程序内部的隐私泄漏,包括组件内隐私泄漏、组件间隐私泄漏、ICC漏洞检测(如Activity劫持的第三方App来达到隐私泄漏的目的),而忽略Android中跨App组件间隐私泄漏的问题。跨App组件间的隐私泄露指恶意软件利用存在ICC漏洞(如Activity劫持的第三方App来达到隐私泄漏的目的)。研究表明,60%的应用程序至少存在1个以上的ICC漏洞,因此,利用ICC漏洞实现跨App组件间隐私泄漏非常容易。如:AndroidApplication1中组件能获取位置信息;AndroidApplication2中存在ICC漏洞的组件能将接收到的信息写入文件。Application1将位置信息通过ICC方法(inter-componentcommunication)传递Application2,则Application2将位置信息写入文件,导致隐私信息泄漏。恶意软件泄漏隐私的主要途径分为组件内隐私泄漏、组件间隐私泄漏和跨App组件间隐私泄漏等。其中对组件内部的隐私泄露检测技术已经达到很高的识别精度,但是对跨App组件间的隐私泄露检测研究较少。基于静态污点分析技术,以及基于函数调用关系实现检测隐私泄漏的方法,精确度很高,但是仅限于组件内隐私泄漏问题。跨App组件间隐私泄漏检测,与之相关的Epicc和ComDroid等ICC漏洞检测方法,仅能对ICC漏洞进行检测,并没有执行数据流分析,即只能检测组件是否可能泄漏隐私信息,不能判断是否有隐私信息通过此泄漏点泄漏隐私。所以,单纯以ICC漏洞的存在来判断隐私数据泄漏会造成极高的误报率。跨App组件间隐私泄漏的检测,由于App中组件数量庞大、依赖关系复杂,并存在很多与跨App组件间隐私泄漏无关的组件序列路径问题,如果直接利用现有的隐私泄漏检测技术,会导致在CFG的构建上引起空间爆炸,严重影响检测效率。而且,跨App组件间隐私泄漏涉及多个应用程序,由于App间代码不连续导致无法建立一个连续的CFG,导致不能执行静态污点分析,所以现有技术不能被直接利用解决此问题。
技术实现思路
针对上述现有技术中存在的问题,本专利技术的目的在于,提供一种跨App组件间隐私泄露的检测方法,以解决现有技术中存在的路径爆炸问题以及多种代码不连续性问题等。为了实现上述任务,本专利技术采用以下技术方案:一种跨App组件间隐私泄露的检测方法,包括以下步骤:提取待分析的应用程序中组件的属性信息,利用属性信息对待分析的应用程序按照是否能将隐私信息传递给第三方应用程序的判断方法对待分析的应用程序进行分类,根据分类结果得到潜在泄露隐私的应用程序的组合;根据所述组合中的应用程序,分别生成潜在泄露隐私的组件子序列,并利用所述的子序列构建完整的潜在泄露隐私的组件序列,在此基础上,利用虚拟主函数和插桩技术解决由于代码不连续性造成无法进行静态污点分析的问题,并构建所述组件序列中组件的控制流程图;在所述的控制流程图上执行静态污点分析,并输出检测到的跨App组件间隐私泄露的路径。进一步地,所述的提取待分析的应用程序中组件的属性信息的具体内容包括:利用数据流分析工具Epicc提取待分析的应用程序中Dex和AndroidManifest文件中的以下信息:声明的组件列表、每个组件的intent-filter标签、每个组件的exported属性值、每个组件的intent参数值。进一步地,所述的利用属性信息对待分析的应用程序按照是否能将隐私信息传递给第三方应用程序的判断方法对待分析的应用程序进行分类的具体过程包括:根据组件的intent参数值来判断组件能否将隐私信息传递给第三方应用程序,若当前组件能将隐私信息传递给第三方应用程序,则将当前组件所在的应用程序归类为SourceApp;若当前组件能被第三方应用程序调用,则将当前组件所在的应用程序归类为SinkApp;若应用程序同时满足SourceApp和SinkApp的条件,则将该应用程序归类为SourceOrSink;则根据分类结果得到潜在泄露隐私的应用程序的组合有以下几种:(SourceApp,SinkApp)、(SourceApp,SourceOrSink)、(SourceOrSink,SinkApp)、(SourceOrSink,SourceOrSink)。进一步地,所述的生成潜在泄露隐私的组件子序列的具体方法为:根据应用程序中intent参数值与intent-filter标签,利用组件间的匹配规则生成组件调用关系,根据组件调用关系生成应用程序运行时可能出现的组件执行序列,然后判断组件执行序列中是否存在能够构建完整的潜在泄露隐私的组件序列的子组件序列,如果存在,则将该子组件序列输出。进一步地,所述的利用虚拟主函数和插桩技术的具体过程包括:对于生命周期方法在代码上的不连续性:在生成的潜在泄露隐私的组件序列基础上,为序列中的每个组件生成虚拟主函数dummyMain,按照Android开发文档中生命周期的调用顺序,在dummyMain中生成调用生命周期方法的语句,从而解决生命周期方法在代码上的不连续性问题;对于回调函数在代码上的不连续性:利用FlowDroid收集回调函数,判断当前组件是否包含回调函数,如果包含,则在组件的dummyMain方法的调用onResume与onPause语句之间,生成调用回调函数的语句,从而解决回调函数在代码上的不连续性问题;对于组件间的代码不连续性:利用Soot生成Jimple中间语言,采用插桩技术修改所述的潜在泄漏隐私的组件序列中组件的ICC方法,从而解决组件间的代码不连续性问题。本专利技术提出了一种采用静态污点分析的手段检测跨App组件间隐私泄露的方法,解决了现有技术中存在的问题,为跨App组件间隐私泄露问题提供了一种新的研究思路;本专利技术与现有技术相比具有以下技术特点:1.本专利技术在保证覆盖泄漏隐私信息路径的情况下提出生成潜在泄漏隐私的组件序列的方法,精简与跨App组件间隐私泄漏无关的组件序列,解决了路径爆炸问题;2.针对App间代码不连续造成无法构建完整CFG,从而导致不能执行数据流分析的问题,通过移植IccTA中的插桩方法进行了有效解决;3.通过生成虚拟主函数的方法和插桩技术,解决了跨App组件间隐私泄漏中的多种代码不连续性问题;4.构建精简的控制流图加快了跨App组件间隐私泄露的速度,提高了检测效率。附图说明图1为在360应用市场上统计的81个App中组件数量本文档来自技高网
...
一种跨App组件间隐私泄露的检测方法

【技术保护点】
一种跨App组件间隐私泄露的检测方法,其特征在于,包括以下步骤:提取待分析的应用程序中组件的属性信息,利用属性信息对待分析的应用程序按照是否能将隐私信息传递给第三方应用程序的判断方法对待分析的应用程序进行分类,根据分类结果得到潜在泄露隐私的应用程序的组合;根据所述组合中的应用程序,分别生成潜在泄露隐私的组件子序列,并利用所述的子序列构建完整的潜在泄露隐私的组件序列,在此基础上,利用虚拟主函数和插桩技术解决由于代码不连续性造成无法进行静态污点分析的问题,并构建所述组件序列中组件的控制流程图;在所述的控制流程图上执行静态污点分析,并输出检测到的跨App组件间隐私泄露的路径。

【技术特征摘要】
1.一种跨App组件间隐私泄露的检测方法,其特征在于,包括以下步骤:提取待分析的应用程序中组件的属性信息,利用属性信息对待分析的应用程序按照是否能将隐私信息传递给第三方应用程序的判断方法对待分析的应用程序进行分类,根据分类结果得到潜在泄露隐私的应用程序的组合;根据所述组合中的应用程序,分别生成潜在泄露隐私的组件子序列,并利用所述的子序列构建完整的潜在泄露隐私的组件序列,在此基础上,利用虚拟主函数和插桩技术解决由于代码不连续性造成无法进行静态污点分析的问题,并构建所述组件序列中组件的控制流程图;在所述的控制流程图上执行静态污点分析,并输出检测到的跨App组件间隐私泄露的路径。2.如权利要求1所述的跨App组件间隐私泄露的检测方法,其特征在于,所述的提取待分析的应用程序中组件的属性信息的具体内容包括:利用数据流分析工具Epicc提取待分析的应用程序中Dex和AndroidManifest文件中的以下信息:声明的组件列表、每个组件的intent-filter标签、每个组件的exported属性值、每个组件的intent参数值。3.如权利要求2所述的跨App组件间隐私泄露的检测方法方法,其特征在于,所述的利用属性信息对待分析的应用程序按照是否能将隐私信息传递给第三方应用程序的判断方法对待分析的应用程序进行分类的具体过程包括:根据组件的intent参数值来判断组件能否将隐私信息传递给第三方应用程序,若当前组件能将隐私信息传递给第三方应用程序,则将当前组件所在的应用程序归类为SourceApp;若当前组件能被第三方应用程序调用,则将当前组件所在的应用程序归类为SinkApp;若应用程序同时满足SourceApp和SinkApp的条件,则将该应用程序归类...

【专利技术属性】
技术研发人员:房鼎益李蓉汤战勇赵贝贝陈峰李政桥陈美玲杨蕾
申请(专利权)人:西北大学
类型:发明
国别省市:陕西;61

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

1