基于逆向符号执行的应用权限泄漏检测方法及系统技术方案

技术编号:11198637 阅读:92 留言:0更新日期:2015-03-26 05:27
本发明专利技术涉及一种基于逆向符号执行的应用权限泄漏检测方法及系统,所述方法包括:S1、构建待检测应用的控制流图;S2、通过应用程序编程接口API与预设权限的映射关系,在所述控制流图上标记可能泄露权限的节点;S3、以所述可能泄露权限的节点为起点,通过逆向的符号执行遍历所述控制流图,寻找从所述起点到程序入口点的所有路径,从所述起点到所述程序入口的所有路径即为可能泄露权限的路径。该方法使用逆向的符号执行的方式,只需要遍历从敏感应用程序编程接口API调用点到程序入口点之间的所有可能路径,避免遍历与权限泄露无关的路径,从而提高了检测效率。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种基于逆向符号执行的应用权限泄漏检测方法及系统,所述方法包括:S1、构建待检测应用的控制流图;S2、通过应用程序编程接口API与预设权限的映射关系,在所述控制流图上标记可能泄露权限的节点;S3、以所述可能泄露权限的节点为起点,通过逆向的符号执行遍历所述控制流图,寻找从所述起点到程序入口点的所有路径,从所述起点到所述程序入口的所有路径即为可能泄露权限的路径。该方法使用逆向的符号执行的方式,只需要遍历从敏感应用程序编程接口API调用点到程序入口点之间的所有可能路径,避免遍历与权限泄露无关的路径,从而提高了检测效率。【专利说明】基于逆向符号执行的应用权限泄漏检测方法及系统
本专利技术涉及移动信息安全
,尤其涉及一种基于逆向符号执行的应用权限泄漏检测方法及系统。
技术介绍
Android应用的安全性已经成为威胁产业发展的严峻问题。每天,软件商店和病毒工具厂商每天都能收到上百甚至上千个可疑的恶意应用样本。如何对这些恶意应用进行快速、准确的分析,确定其是否存在威胁以及威胁的严重程度,是安全分析专家的核心工作之一。安全专家对恶意软件进行细致的人工动态分析是一个有效的手段,但是人工动态分析需要耗费大量的人力和时间,其检测效率很低。
技术实现思路
基于上述问题,本专利技术提供一种基于逆向符号执行的应用权限泄漏检测方法及系统,通过使用逆向的符号执行的方式,只需要遍历从敏感应用程序编程接口 API调用点到程序入口点之间的所有可能路径,避免遍历与权限泄露无关的路径,从而提高了检测效率。 根据上述目的,本专利技术提供了一种基于逆向符号执行的应用权限泄漏检测方法,所述方法包括: S1、构建待检测应用的控制流图; S2、通过API与预设权限的映射关系,在所述控制流图上标记可能泄露权限的节占. S3、以所述可能泄露权限的节点为起点,通过逆向的符号执行遍历所述控制流图,寻找从所述起点到程序入口点的所有路径,从所述起点到所述程序入口的所有路径即为可能泄露权限的路径。 其中,所述方法还包括: 对遍历所述控制流图得到的所有路径的约束条件进行求解,得到所有可能泄露权限的路径的输入条件。 在对遍历所述控制流图得到的路径的约束条件的求解时,当任一条路径的约束条件无解时,则排除该路径。 其中,所述方法还包括: 根据所述可能泄露权限的路径、对应约束条件和输入条件,生成针对所述待检测应用的权限泄露风险报告。 其中,所述步骤S3具体包括: S31,以标记的所述可能泄露权限的节点为起点,设定约束条件通过逆向的符号执行遍历所述控制流图; S32,当在遍历过程中遇到分支节点时,对所述分支节点的各个分支分别设定约束条件进行遍历; S33,重复步骤S32,直至遍历到所述程序入口,从所述起点到所述程序入口点的所有路径即为可能泄露权限的路径。 其中,所所述步骤S32还包括: 当在遍历时发现对所述预设权限的检查语句的调用时,则结束该路径的遍历。 其中,所述控制流图为过程间控制流图。 根据本专利技术的另一个方面,提供一种基于逆向符号执行的应用权限泄漏检测系统,其特征在于,所述系统包括: 控制流图构建单元,用于构建待检测应用的控制流图; 可能泄露权限标记单元,用于通过API与预设权限的映射关系,在所述控制流图上标记可能泄露权限的节点; 控制流图遍历单元,用于以所述可能泄露权限的节点为起点,通过逆向的符号执行遍历所述控制流图,寻找从所述起点到程序入口点的所有路径,所述从所述起点到所述程序入口的所有路径即为可能泄露权限的路径。 其中,所述系统还包括: 约束条件求解单元,用于对遍历所述控制流图得到的所有路径的约束条件进行求解,得到所有可能泄露权限的路径的输入条件。 其中,所述系统还包括: 权限泄露风险报告单元,用于根据所述可能泄露权限的路径、对应约束条件和输入条件,生成针对所述待检测应用的权限泄露风险报告。 本专利技术所述的基于逆向符号执行的应用权限泄漏检测方法及系统,通过使用逆向的符号执行的方式,只需要遍历从敏感API调用点到程序入口点之间的所有可能路径,避免遍历与权限泄露无关的路径,从而避免全局性的正向执行的开销,提高了检测效率。 【专利附图】【附图说明】 通过参考附图会更加清楚的理解本专利技术的特征和优点,附图是示意性的而不应理解为对本专利技术进行任何限制,在附图中: 图1示出了本专利技术的基于逆向符号执行的应用权限泄漏检测方法的流程图。 图2示出了本专利技术的基于逆向符号执行的应用权限泄漏检测系统的结构框图。 【具体实施方式】 为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。 图1示出了本专利技术的基于逆向符号执行的应用权限泄漏检测方法的流程图。 参照图1,本专利技术的基于逆向符号执行的应用权限泄漏检测方法的过程具体包括: S1、构建待检测应用的控制流图;通过对待检测应用的二进制字节码进行解析,通过字节码分析,构建待检测应用的过程间控制流图。和过程内的控制流图不同,过程间控制流图需要在调用函数的控制流图中添加函数调用节点和函数返回结点,并将这两个节点和被调函数的入口和出口分别连接起来。 此外,对于Android应用程序来说,应用程序大量的调用了 Android的应用框架API,而应用程序框架在完成一些库函数的工作后,又会回调被分析应用的相关代码。这样,在控制流图上,从应用调用框架API到应用代码被回调的过程中,其实存在隐式的控制流关系。对于Android应用的事件驱动特性,这种隐式的控制流调用非常普遍。 因此,在生成的过程间控制流图中显示的添加这些控制依赖关系,例如线程的启动,事件的监听和回调,异步消息,Intent等相关代码对应的控制流图节点都需要添加相应的控制流边。 S2、通过API与预设权限的映射关系,在所述控制流图上标记可能泄露权限的节点。 本专利技术的实施例中对应用代码进行快速扫描,通过API及其对应权限的映射表,找到对敏感权限的相关API调用点,并在控制流图上的相应结点进行标记。这些结点也是下一步逆向符号执行的起点。同时,本实施例解析Android应用中的Manifest, xml文件,找到程序的所有入口点,并在控制流图上对其进行标注。 S3、以所述可能泄露权限的节点为起点,通过逆向的符号执行遍历所述控制流图,寻找从所述起点到程序入口点的所有路径,所述从所述起点到所述程序入口的所有路径即为可能泄露权限的路径。 步骤S3的具体过程包括: 以标记的节点即敏感API调用点为起点,进行逆向的符号执行,其执行过程是一个对控制流图遍历并对节点语句进行解释执行的过程。 逆向的符号执行是和程序执行相反的方向遍历控制流图,对于控制流图中遍历到的节点,取出其对应的语句进行解析。整个解析的过程为每个变量维护了一个的符号表达式。对每个语句进行解析的时候,需要根据不同的操作运算符的逻辑,对操作数变量对应的符号表达式进行相本文档来自技高网...
基于逆向符号执行的应用权限泄漏检测方法及系统

【技术保护点】
一种基于逆向符号执行的应用权限泄漏检测方法,其特征在于,所述方法包括:S1、构建待检测应用的控制流图;S2、通过应用程序编程接口API与预设权限的映射关系,在所述控制流图上标记可能泄露权限的节点;S3、以所述可能泄露权限的节点为起点,通过逆向的符号执行遍历所述控制流图,寻找从所述起点到程序入口点的所有路径,从所述起点到所述程序入口的所有路径即为可能泄露权限的路径。

【技术特征摘要】

【专利技术属性】
技术研发人员:姜博陈鹏高小鹏吴煜龙翔万寒
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

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

1