论文部分内容阅读
移动互联网飞速发展,智能终端成为人们生活或者工作的一个重要接入点,承载着越来越多的用户个人隐私数据。作为全球最活跃的移动终端平台,Android平台是恶意攻击者的首要目标,目前Android平台上的软件种类繁多,恶意软件层出不穷且隐蔽性很强。另外,一些公司出于业务的需求和对大数据分析的需要,会利用应用程序在后台收集用户的隐私数据。这种情况下,动态监控可以帮助一般用户和安全研究人员掌握所有应用程序的运行状况。因此,对于Android平台应用程序动态监控技术的研究具有重要的理论价值和现实意义。 本文提出了以应用程序敏感行为监控和文件访问监控,两种监控方式相结合的设计方案,实现了一套Android平台上的动态监控系统。在动态监控的基础上,研究恶意软件的分析检测技术,提出了一种基于动态监控的,根据应用行为进行风险等级评估的方法。本文主要工作包括以下方面: (1)介绍目前手机主要的安全威胁以及Android安全的研究现状。Android安全研究的两大主流方法包括静态分析和动态分析,其中动态监控是动态分析的一种重要手段。本文比较了动态监控的不同实现方案,包括修改系统内核函数、重打包软件和动态注入内存,并确定采用动态注入内存的方案。 (2)深入研究Android动态监控的相关技术。首先说明Android平台的系统架构,从宏观上了解系统的设计布局;分析Android主要的安全机制,包括沙箱机制、权限机制和签名机制;研究基于Binder的进程间通信机制,为寻找hook的关键入口提供理论依据。然后分析动态共享库注入的实现原理,包括Android平台下应用程序的动态链接和加载机制,利用ptrace函数跟踪调试目标进程;阐述ELF文件的解析过程,说明如何修改hook函数的入口地址。 (3)设计和实现一个Android平台应用程序动态监控系统。系统首先检测并获取root权限,然后执行注入程序将监控代码注入到目标系统进程的内存空间中,接着hook关键系统函数实现监控功能,另外对于文件访问的监控手段是通过FileObserver类的功能实现文件监听服务。所有的监听记录都保存在相应的数据库中,并且以图表和检测报告的形式直观的展现。实验数据表明,本文设计的监控系统能够有效的监控应用程序的敏感行为,监听敏感数据的泄露情况。 (4)分析已有的恶意软件检测技术,研究基于动态监控的异常检测方法,提出了基于动态监控的风险等级评估方法,样本测试表明,该方法能够对应用程序的风险等级进行有效划分。