论文部分内容阅读
隐私泄露是当前Android安全中最为重要的问题之一,目前检测隐私泄露的主要方法是污点分析。静态污点分析技术凭借其代码覆盖率高、漏报率低的特点而被广泛应用在Android应用隐私泄露检测上。然而,现有的静态污点分析工具却不能对较大的Android应用进行有效、快速的分析(实际的Android应用都比较大),并且这些工具分析输出的结果缺失上下文信息,使得后续的处理难以进行。针对这些问题,本文设计并实现了一种基于污点分析的Android隐私数据泄漏检测系统TaintPathTracker。TaintPathTracker首先对Android应用进行快速的污点分析,再对污点传播路径做处理,处理包括污点传播路径的上下文信息搜索构造、上下文信息压缩去重、无关信息删减,然后根据处理后的带上下文信息的污点传播路径建立图形元素,最后输出图形化结果。本文主要工作如下:(1)针对现有的污点分析工具的不足,设计了一个基于污点分析的Android隐私泄漏检测系统TaintPathTracker。TaintPathTracker可对Android应用进行快速的污点分析,并输出包含上下文、压缩去重后的图形化检测结果。(2)设计并实现了污点传播路径图形化引擎CTFPVisual,CTFPVisual为污点传播路径添加上下文信息,再对包含上下文的污点传播路径进行压缩去重、无关语句节点删除处理,然后根据处理结果,建立图形数据,最后将图形化数据输出。(3)对Flowdroid源码进行了详细分析,发现了Flowdroid的不足(测试慢、运行内存要求高、无法有效的检测Android市场的上的Android App),分析了引起不足的原因,提出了App单组件测试改进方案和App部分组件搜索改进方案。另外,对改进方案做了可行性分析,在证明改进方案的可行性与正确性后,对这两个改进方案进行了实现,并进行了性能测试,证明了这两个改进方案的有效性。(4)基于污点传播路径图形化引擎CTFPVisual和本文改进后的Flowdroid,实现了TaintPathTracker系统,并对TaintPathTracker进行了完整的测试。测试结果显示,该系统能够在保证隐私数据泄露检测有效性的前提下,提高了污点检测的速度,并能够输出图形化后的带有上下文信息的隐私数据传播路径。