Android隐式信息流检测的本体模型
2018-03-20刘其源曹宏盛
刘其源,焦 健,曹宏盛
(1.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京 100101; 2.北京信息科技大学 计算机学院,北京 100101)(*通信作者电子邮箱jiaojian@bistu.edu.cn)
0 引言
Android平台上的隐私信息泄漏检测主要采用污点分析技术,该技术先确定敏感信息源Source和泄漏点Sink,然后再对敏感信息从Source到Sink的传播路径进行静态分析[1-2]或动态监控[3-4],最终判断信息源和泄漏点间是否存在一条传播路径。污点分析本质是一种信息流分析技术,信息流分为显式和隐式,显式信息流(Explicit Information Flow, EIF)产生于数据依赖,而隐式信息流(Implicit Information Flow, IIF)产生于控制依赖[5]。然而,现有的污点分析技术如FlowDroid[1]、TaintDroid[3]都只考虑了EIF,它们在EIF(数据依赖)泄露检测领域是有效的;然而对于IIF(控制依赖)而言,由于控制结构无规律的内容转换会对分支结构的执行造成影响,进而影响程序控制流的走向[6],且控制结构的条件语句变量与分支变量间无直接的EIF传递关系,因此,上述方法对隐式流的分析是无效的。
文献[6]的实验表明FlowDroid不支持隐式流漏洞的检测,说明传统的污点分析方法在隐式流中的污点传播存在缺陷,污点标记会在控制结构进行内容转换时丢失,导致基于该技术的隐私泄漏检测出现较高的漏报率。文献[7]将动态污点分析与静态分析结合以追踪IIF,使用Dytan工具首先静态地分析出所有的控制结构,然后将控制结构条件表达式中谓词变量的污点不加区分地传递给每一个分支中的一般语句变量;该方法虽然降低甚至避免了漏报率,但产生了过度污染的问题,使得检测系统的误报率较高。……
