发明名称 基于静态分析的Android应用日志中信息泄漏隐患的检测方法
摘要 本发明属于程序信息安全检测技术领域,具体为一种基于静态分析的Android应用日志中信息泄漏隐患的检测方法。方法分为预处理阶段、私密信息识别、信息流传播阶段及日志记录点检测阶段。本发明设计了一种将传统静态信息流分析技术与新兴移动平台操作系统编程模型相结合的安全检测策略,该策略主要针对现有移动应用商城,用以离线检测现有移动应用中的信息安全隐患,以防范程序中的安全性风险,从而确保商城中的应用质量。
申请公布号 CN102737190A 申请公布日期 2012.10.17
申请号 CN201210228277.0 申请日期 2012.07.04
申请人 复旦大学 发明人 杨珉;张源;彭智俊
分类号 G06F21/00(2006.01)I 主分类号 G06F21/00(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;盛志范
主权项 一种基于静态分析的Android应用日志中信息泄漏隐患的检测方法,其特征在于,具体步骤如下:   (1)预处理阶段将应用程序的DEX字节码转化成传统Java字节码,随后对应用程序中的AndroidManifest文件进行解析,获取元信息,以便应用于后续私密信息的识别;   (2)私密信息识别阶段结合Android权限模型,制定权限‑操作映射表,以记录权限和隐私信息源的映射关系,通过获取应用申请的权限,再结合权限‑操作映射表检测出应用能够访问的隐私信息源;   (3)信息流传播阶段识别应用组件,分别根据Android应用组件入口表和Android用户交互事件入口列表选取相应组件和相应事件相应的入口作为函数调用图的入口节点,之后从函数调用图入口开始解析所有函数调用语句,进行函数调用图构建;构建完函数调用图后,从函数调用图入口开始,为函数调用图中的可到达函数逐一生成函数信息流图,根据生成语句的类型不同分别进行信息流传播分析;函数分析完成时,对函数信息流图进行指向优化和合并优化;   (4)日志记录点检测阶段在分析中间表达式语句时,若当前语句包含函数调用语句,则按照以下算法进行日志记录点检测操作:① 当前函数调用语句为日志记录点函数调用检查当前日志记录点函数所接受实参的依赖集中是否包含私密信息, 若包含,则为一次信息泄露,同时若其依赖集中包含逃逸变量,则将逃逸变量同该日志记录点函数之间的映射关系加入当前函数的泄漏点记录中;② 当前函数调用语句为普通函数调用获取被调用者函数的泄漏点记录,在当前函数上下文中对该泄漏点记录中的逃逸变量进行替换操作找到其在当前函数上下文中的对应节点,替换算法如信息流传播阶段中函数信息流图合并中所示,随后检测该对应节点在当前函数上下文中的依赖集中是否包含私密信息;若包含,则为一次信息泄露。同时若其依赖集中包含逃逸变量,则将该逃逸变量同此日志记录点函数之间的映射关系加入当前函数的泄漏点记录当中。
地址 200433 上海市杨浦区邯郸路220号