论文部分内容阅读
国家、经济和公共安全取决于关键基础设施的可靠运作,网络安全威胁利用了关键基础设施系统的复杂性和连通性,给国家安全、经济安全和公共安全等带来巨大风险,网络空间安全已上升为我国的国家战略。随着移动互联网高速发展,政务等关键业务移动化的发展趋势显著,高安全等级的移动终端和移动应用程序作为其基础支撑,对于提升我国高安全需求行业的工作效率、保障移动互联网信息安全具有重要意义。移动互联网安全是网络空间安全的重要组成部分,保障移动应用安全是国内外工业界和学术界研究的共同目标。进入移动互联网时代,移动应用安全技术迅猛发展,过去数十年以来形成的成熟代码安全分析方法已经逐渐不适用于移动应用的安全分析。一方面,在移动终端操作系统的演进过程中,移动应用高内聚低耦合的设计模式被开发者广泛接受,组件成为操作系统为开发者提供的基本单元,操作系统为组件提供了大量生命周期回调函数,针对指令代码的传统分析方法无法处理回调函数,因而在安全分析时存在严重的不足;另一方面,由于模块化设计和功能重用需求的提高,组件间通信(Inter-Component Communication,ICC)机制成为不同应用之间、应用与系统之间的重要通信手段,组件权限机制的复杂性导致大量组件劫持、权限泄露、数据窃取等安全问题出现,传统分析方法只针对单个应用进行分析,不具备多个应用之间安全缺陷分析能力。目前国内外学者已经开始对组件相关领域进行深入研究。针对组件内回调函数的处理问题,学者提出基于虚拟主函数的静态污点分析技术,根据代码特征自动生成回调函数调用流程并以此构建虚拟主函数,实现对生命周期函数控制流和数据流追踪,成为后续ICC研究工作的基础。针对组件间的信息传递问题,学者相继提出应用控制流超图概念、多值复杂常量传播问题等,逐渐具备跨组件甚至跨应用的代码分析能力,并保证了一定的检出率;随后针对多应用的静态污点分析技术的提出,推动了多个应用间组合行为分析技术的发展。然而,现有研究成果需要在给定测试应用样本集的前提下进行多应用安全分析,尚不具备在海量应用中快速发现存在交互行为应用的能力,且在检出率方面仍然存在一定的不足。为此,本文系统总结目前移动应用安全方面的理论研究成果,针对目前移动应用面临的威胁和挑战,分析传统的应用安全分析技术和现有的多应用安全分析技术在海量应用安全分析中存在的不足,建立一种基于ICC形式化描述的海量应用组件交互关联分析模型,构建海量应用的交互知识库,从组件层面研究海量应用之间的交互关系。ICC形式化描述方法及构建的海量应用交互知识库,对于海量应用的缺陷分析具有重要意义,由于Android应用及其交互关联的数量规模非常巨大,交互知识库中应用的重要性评估对于整个移动互联网安全态势分析、脆弱点识别等具有重要意义。因此,本文总结复杂网络现有理论,提出一种针对交互知识库中海量应用的重要性评估方法,对应用交互知识库中的关键节点进行评估与识别。在构建的海量应用交互知识库的基础上,进一步研究海量应用间包括代码缺陷利用和恶意攻击在内的ICC安全威胁,总结并提出基于交互知识库的海量应用安全缺陷分析方法,发现海量应用中存在的ICC安全问题。本文的主要工作与贡献如下:一,在深入研究AndroidICC机制、发现应用内和应用间的控制传递和数据传播方式的基础上,创新性地提出一种针对海量应用中ICC声明特征和调用特征的形式化描述方法,建立基于ICC形式化描述的海量应用组件交互关联分析模型,构建海量应用的交互知识库,在代码层面发现海量应用及其组件的交互关系。研制交互关联分析原型工具CRSDroid并对海量样本进行分析,构建海量应用交互知识库并绘制应用交互图,在此基础上研究目前国内外应用商店中海量样本的串联情况,总结讨论目前海量应用的整体安全态势。针对海量应用交互知识库进行统计分析发现,目前Android应用之间普遍存在串联,尤其是同公司或同组织不同应用之间交互情况更为普遍;第三方库中组件普遍存在严重的权限泄露风险,是导致不同应用串联的最主要原因;为了降低缺陷和漏洞利用带来的风险,应用间的交互关联情况必须得到更高的关注。二,考虑到海量应用交互知识库中节点的脆弱性问题,本文将应用主题特征(如应用商店等渠道中的类别、下载量等)、应用间内在关联强度、通过ICC可以影响的应用数量等因素考虑在内,提出针对海量应用的扩展激活力的概念,并提出一种基于扩展激活力进行权重分配的重要性度量算法,对交互知识库中关键应用及组件进行评估与识别。通过对交互知识库中海量应用的重要性评估发现,虽然大部分系统预置应用被调用次数较多,但其中仅有一小部分应用的重要性很高、遭受攻击后的影响巨大;社交类和支付类应用往往重要性较高,一旦它们面临安全风险,影响的应用数量非常巨大,它们理应得到更高的关注。三,基于对典型应用间ICC安全问题的分析,归纳应用ICC安全缺陷及其利用方式,提出基于组件声明和通信实例属性的应用安全缺陷分析方法;基于构建的应用交互知识库对典型ICC安全问题进行分析,快速发现海量应用中存在的ICC安全缺陷。基于交互知识库对热门手机终端和海量应用进行分析并发现,部分系统应用的组件被其他应用以重写的方式劫持,虽然目前并未给用户造成实际危害,但不能忽视系统组件被劫持可能带来的系统功能拒绝服务和隐私泄露等风险;大量第三方库中组件存在被滥用的风险,第三方库中组件的权限泄露是大量应用之间的串联启动的主要原因,可能会导致手机终端出现严重的数据泄露和资源损耗等问题。