论文部分内容阅读
随着智能手机的迅速普及,Android系统也得了快速的发展。当前,Android手机系统的市场份额已经达到了超过了一半,成为用户最喜欢的移动平台之一。Android系统使用了Linux内核,具有很大的开放性和易操作性。但是,由于Android应用市场管理的混乱,Android平台上的恶意程序也非常多,这对Android系统的安全造成了很大的威胁。Rootkit是一种具有很强隐蔽性的恶意程序,在攻击者成功入侵到系统之后,通常会在系统中留下一个后门程序,Rootkit就是不二之选,它能够帮助攻击者收集用户的私密信息,清除攻击留下的痕迹,并且很难被发现和清除。基于Rootkit的特点和运行环境,本文首先对Android平台的Rootkit进行了详细的分类,阐述了Rootkit的具体功能;接着对Android操作系统特别是对Android系统架构、安全机制、电话系统和可加载模块进行了详细的分析;最后,详细介绍了ARM处理器,并对ARM软中断的流程进行了分析。随后,本论文又对Android平台Rootkit的实现原理和关键技术进行了深入的分析,主要包括系统调用劫持、模块隐藏、文件隐藏、电话系统攻击和进程隐藏。基于这些原理和技术,本论文设计了与之相对应的Rootkit测试用例,并将它们进行了实现。最后,针对Android平台Rootkit的特征,本论文提出了一种基于MD5的Android内核Rootkit的检测及防护方案,并对方案进行了设计和实现。该系统包括三个组成部分,分别是守护模块、检测模块和保护模块,其中守护模块主要是为检测模块和保护模块提供数据。检测模块是系统的核心部分,它首先从守护模块中提取数据做为检测和保护的参考数据标准;然后依次进行隐藏进程的检测、系统调用函数入口地址的检测、系统调用函数函数体的检测、隐藏文件检测、隐藏模块的检测和电话系统的检测。隐藏模块的检测是对系统中模块链表第一模块的模块名进行MD5计算,并将计算得到的值与守护模块中的值进行比对,如果相等则说明系统中不存在隐藏模块,使用新模块模块名的MD5值和模块名对守护模块中的对应值进行更新;否则系统中可能存在Rootkit,从守护模块中取出模块名,即为Rootkit模块名。保护模块主要是在检测模块发现系统中的关键数据遭到篡改后,对其进行恢复,该模块的实现集成于检测模块之中。