论文部分内容阅读
随着移动信息化的普及,人们生活运转越发依赖于移动终端,而iOS作为当前移动端主流操作系统之一,其搭载的iOS应用不可避免成为了用户数据的集中地。为了保护用户信息安全,安全分析人员需要识别应用的运行时行为,并判断行为是否符合应用的自我描述及用户预期。但随着应用复杂度提升,人工分析难度增大,如何自动化识别应用行为来对iOS应用进行理解已然成为亟待解决的问题。自动化识别应用行为的前提是存在行为特征库,然而iOS作为闭源系统,其相关研究与技术尚未成熟,目前也没有合适的特征库。考虑到程序执行路径作为应用行为的直接表现能提供大量行为信息,且通过分析路径来识别功能场景已经是一个相对成熟的程序理解方法,本文对Mach-O二进制分析与功能场景特征挖掘展开研究,提出一种iOS应用场景API序列模式挖掘方法。该方法使用符号执行技术从Mach-O二进制中提取出iOS应用的执行路径,从路径中提取出场景实例集合并对其进行模式挖掘,最终获得场景的API序列模式。本文的主要成果包括:1.提出面向Mach-O二进制的分析框架MachOA。该分析框架基于angr框架实现并弥补了 angr对Mach-O二进制支持上的不足,通过模拟iOS应用的运行时环境来维护符号执行的完整性,经实验验证该框架能良好支持Mach-O二进制的符号执行。2.基于上述MachOA框架提出一种基于符号执行技术的Mach-O二进制执行路径生成方法。该方法可以有效避免动态监测所得路径覆盖率低、静态分析所得路径不合理的问题,并通过限制符号执行的代码区域来避免无意义分析,同时缓解路径爆炸的可能性。3.设计并实现iOS应用场景API序列模式挖掘系统,并选取设备标识符生成、设备定位服务初始化两个场景进行实验以验证系统的可行性与有效性。实验结果表明,给定实现一个功能的核心API或ADT作为场景种子,该系统可以挖掘出应用在不同系统状态下实现该功能的API序列模式。后续可以使用挖掘所得API序列模式构建场景特征库,结合模式匹配技术,从iOS应用的执行路径中自动识别出场景进而帮助程序理解。