论文部分内容阅读
随着Android手机的广泛普及,由其带来的安全问题也越来越多。Android中的后门程序大部分采用的是Rootkit技术,许多不良厂商及黑客通过各种非法手段将这类后门安装到手机上,一般的消费者根本无法察觉。内核级的Rootkit凭借其隐蔽性和持久性使得攻击者可以从目标机器里获得数据。现在的Rootkit通过在内核层面改变相应软件执行流程来防止被检测到。所以,理解和评估这些技术可以更好地对Rootkit进行检测,防止个人甚至企业隐私的泄露。本文通过研究安卓操作系统的源码,基于Rootkit技术实现了四项安全功能,即隐藏、自启动、远程控制及网络嗅探。攻击端预先植入到手机中的Reverse Shell连接程序可以在开机阶段实现自启动,通过Shell连接不仅对目标手机进行远程控制,还可以传输文件,隐藏和网络嗅探模块经由它可以传输到目标手机,用来隐藏相应的的文件、进程、模块、通信端口以及捕获用户敏感信息。首先,研究了基于Rootkit的隐藏功能的实现,利用劫持系统调用、API Hook、VFS Hook和Inline Hook等Hook技术实现了功能模块的加载控制及隐藏、文件隐藏和进程隐藏。本文中Rootkit的实现主要基于可加载模块技术。通过API Hook技术来修改模块的init函数及序列操作的show函数实现了控制模块加载,模块和通讯端口隐藏的功能。文件和进程的隐藏通过劫持调用、VFS Hook、Inline Hook技术实现。其次,研究了基于Rootkit的进程自启动技术。通过分析安卓的启动过程找到Rootkit实现自启动功能的时间点,利用init语法向init.rc启动脚本里添加相应的service及command,解决了模块的自启动以及可执行文件在控制台的自启动问题。第三,研究了基于Rootkit的远程控制技术。攻击端通过与目标手机建立Reverse Shell连接,即攻击端处于监听状态,受控端主动连接的过程。连接过程中通过发送标志结构体来区别字符串和文件,通过发送字符串消息,攻击端可以发送常用的Shell命令到受控端,受控端执行之后会将结果返回到攻击端。通过连接还可以将文件发送到受控端或者获取受控端的通讯录、短信息等文件。最后,研究了基于Rootkit的网络嗅探技术。通过分析Netfilter模块在IPv4的Hook点,对进入上层协议栈的数据包进行了过滤。通过将过滤端口设置为80捕获到了基于Http协议通讯的数据包,利用嗅探到的数据包对Http协议头和其中可能涉及到的敏感信息进行分析。