【Android论文栏目提醒】:网学会员,鉴于大家对Android论文十分关注,论文会员在此为大家搜集整理了“基于Android平台的手机木马关键技术分析 - 期刊论文”一文,供大家参考学习!
2012年第11期 技 术 研 究 doi : 10.3969/j.issn.1671-1122.2012.11.017 基于
Android 平台的 手机木马关键技术分析 董蕾,黄淑华,尹浩然,杨晶 (中国人民公安大学,北京 100038) 摘 要 :随着手机、PDA 和各种移动接入设备的普及,越来越多的信息正从 PC 转移到手机等网络终 端上,同时,利用这一终端设备的犯罪也逐渐增加。
文章研究了
Android 平台下手机木马植入、Rootkit 隐 藏、信息获取和回传技术,并在此基础上分析了该平台下手机木马模型,以期有针对性的进行防护。
关键词 :
Android 系统 ;
Android Rootkit ;手机木马 ;监听 ;信息获取 中图分类号 :TP393.08 文献标识码 :A 文章编号 :1671-1122(2012)11-0063-03 The Research on the Key Technology of Mobile Trojans based on
Android Platform DONG Lei HUANG Shu-hua YING Hao-ran YANG Jing Chinese Peoples Public Security University Beijing 100038 China Abstract: With the popularity of mobile phone PDA and mobile access equipment more and more information transfers from the PC to the network terminal such as mobiles at the same time the criminal of taking advantage of the equipment is gradually increasing. This paper studied Trojan implantation Rootkit hidden information acquisition and feedback technology on
android platform and designs a mobile Trojans model. Key words:
Android system
Android rootkit mobile trojans listening information acquisition 当今社会,手机已经成为人们必不可少的通信工具,其中
Android 系统已成为一种主流手机操作系统,许多大型手机厂商都开始使用该系统,其开源、开放、免费的特性也受到了众多手机开发商的支持。
手机通信在给我们的生活带来便利的同时,也成为不法分子实施犯罪时惯用的手段。
手机通信包含着大量的信息,如短信信息、通话信息,还有一些本地存储的信息等,这些信息对用户而言都有着重要价值,需注意保护。
1 手机木马的定义和发展 手机木马可参照计算机木马定义 :是具有隐藏性和自发性的可被用来进行恶意操作的程序,一般不会直接对手机产生危害,而是以控制手机为主的一种应用程序。
它的主要功能是接收程序制造者的一些命令,然后完成这些命令任务,同时将结果返回给制造者,手机木马给人们造成的危害还是以远程窃密、通话监听、信息截获和伪造欺骗为主。
而且逐渐向以下特点发展 : 1)多样化 :随着手机功能的多样化,留给木马的可乘之机也就越多,其功能和结构也就呈现出多样化。
2)隐蔽化 :目前手机木马都还很简单,但随着手机性能的提高,例如多任务执行,这样可以使病毒更难以被发现。
3)底层化 :随着手机恶意程序制造者对手机系统内部核心了解得越来越透彻,那么借助底层的开发能力就可以写出一些类似 PC 机内核级别的程序,从而使查杀更加困难。
4)顽固化 :特别是像
Android 这样的开源系统,手机恶意程序制造者可以通过阅读其源代码来找到系统的薄弱点,从而写出和系统结合在一起的恶意程序。
5)反杀毒化 :当手机恶意程序获得较高权限时,类似 PC 机就可能关闭或者欺骗各种杀毒软件,这样杀毒软件就无法发现手机木马程序。
2 木马的植入和隐藏2.1 手机木马的植入 植入是手机木马能够发挥作用的前提,但这也一直都是该项研究的难点,目前智能手机的木马绝大部分是通过诱骗进行植 收稿时间 :2012-09-11 作者简介 :董蕾(1986-),女,河北,硕士研究生,主要研究方向 : 信息网络安全 ;黄淑华(1974-),女,黑龙江,硕士生导师,副教授,主 要研究方向 : 信息网络安全 ;尹浩然(1990-),男,贵州,本科,主要研究方向 :信息网络安全 ;杨晶(1990-),女,山东,本科,主要研究 方向 :信息网络安全。
63技 术 研 究 2012年第11期 入,即通过由用户打开一个带木马的文件或者点击一个带木 38: ee01cf10 mcr 15 0 ip cr1 cr0 0 3c: f1080080 cpsie i 马的链接植入。
一些木马程序也会利用手机现有的权限漏 40: e1a096ad mov r9 sp lsr 13 44: e1a09689 mov r9 r9 lsl 13 洞实现对手机的控制,如
Android 平台的 BD.DroidDream 就 48: e59f8000 ldr r8 pc 0 是通过已知的 exploid 和 rageagainstthecage 漏洞提取 root 权 4c: e59ff000 ldr pc pc 0 50: lthacked_sys_call_table addressgt 跳转到攻击代码 限,并在后台静默安装了一个能够嵌入 com.
android.providers. 54: ltvector_swi address to jmpgt 58: lt__cr_alignment routine address referring at 0x30gt downloadsmanager 的包,搜集手机部分信息发送到特定的服 星号部分是修改或添加到原代码的代码。
我们除了修改 务器,并在后台下载一些其他的恶意安装包,可能给用户手机 代码以外,还增加了一些指令使 sys_call_table 副本的地址保 带来严重的安全威胁。
存到 R8 寄存器中,并跳回原 vector_swi 处理程序功能。
2.2
Android系统木马的隐藏 此代码获取 vector_swi 程序内处理 sys_call_table 的地 自身的隐藏也是手机木马程序运行的一个重要组成部分。
址,然后将 vector_swi 的原始内容复制到 fake vector_swi 中。
它可以通过后台运行、注册服务等实现程序运行界面或者进 在改变 fake vector_swi 代码的部分内容后,我们需要为保存 程的隐藏。
还可以通过 Rootkit 技术实现文件和任务的隐藏, sys_call_table 副本地址的 R8 寄存器添加说明,然后返回到原 Rootkit 程序的最核心目的就在于能够利用手机系统的底层技 vector_swi 函数。
最后,当我们用异常向量表修改了vector_swi 术来达到“高权限”的目的。
它可以将自身在手机的文件系统 处理函数的地址后,Hooking 启动。
中“隐藏”起来,让手机的用户及防毒软件等都无法发现这些 由 于 sys_call_table 在 不 同 主 机 上 的 地 址 是 不 一 样 文件。
的,建立副本时直接赋值是行不通的。
这就 需要通过其他 目前已 经 出现 通 过修 改 异 常处 理 函 数 中 某 些 部 分 的 方式获取 sys_call_table 的地址和大小,通过如下代码获取 方 法实现 Hooking 技 术的手段,然而,这些 技 术很容易被 vector_swiroutine 的地址,然后再反汇编 vector_swi 处理程序 Rootkit 检 测 工具 检 测到, 本文介 绍的 技 术 无 需 直 接 修 改 找到 sys_call_table 的起始地址。
sys_call_table,而是在内核堆内存中产生一个 sys_call_table 的 voidget_sys_call_table 副本,然后通过改变软件中断异常向量表和 fake vector_swi 处 void swi_addrlong 0xffff0008 unsigned long offset0 理例程来改变异常处理例程的地址。
具体做法如下 : unsigned long vector_swi_addr0 1)产生 sys_call_table 在内核堆上的副本,并将其覆盖 unsigned long sys_call_table0 offsetlong swi_addramp0xfff8 vector_swi 处理程序附近的 nop 代码,然后改变异常处理程序 vector_swi_addrunsigned long swi_addroffset whilevector_swi_addr 的地址。
ifunsigned long vector_swi_addramp 2)复制 vector_swi 处理例程中将 sys_call_table 放入内核 0xfffff0000xe28f8000 offsetunsigned long vector_swi_addramp 堆进行简单 Hooking 操作之前的部分代码。
0xfff8 sys_call_tablevoid vector_swi_addroffset 3)将正确的值填入 fake vector_swi 处理例程中,使之正 break 常工作,并且改变代码来调用 sys_call_table 副本的地址。
4)跳转到原 vector_swi 处理程序例程的 sys_call_table 处 return 理代码的下一个位置。
whilevector_swi_addr 5)将向量表中 vector_swi 异常处理例程的地址替换为 ifunsigned long vector_swi_addramp fake vector_swi 处理程序代码的地址。
0xffff00000xe3570000 i0x10-unsigned long vector_swi_addramp 完整的 fake vector_swi 处理有如下代码 : 0xff00gtgt8 sizeunsigned long vector_swi_addramp 00000000 ltnew_vector_swigt: 0xffltlt2i 00: e24dd048 sub sp sp 72 0x48 break 04: e88d1fff stmiasp r0 - r12 08: e28d803c add r8 sp 60 0x3c 0c: e9486000 stmdb r8 sp lr 10: e14f8000 mrs r8 SPSR 14: e58de03c strlr sp 60 这段代码寻找的是控制 sys_call_table vector_swi 常规大 18: e58d8040 str r8 sp 64 1c: e58d0044 str r0 sp 68 小的代码,通过获取的代码,得到一个 sys_call_table 的大小。
20: e3a0b000 movfp 0 0x0 24: e3180020 tst r8 32 0x20 下面这段代码决定了sys_call_table 的大小,而且它还是控制 28: 12877609 addne r7 r7 9437184 系统 call 存储到 sys_call_table 的函数中的一部分。
2c: 051e7004 ldreq r7 lr -4 30: e59fc020 ldrip pc 32 0x58 lt__cr_alignmentgt 118: e92d0030 stmdbsp r4 r5 push fifth and sixth args 34: e59cc000 ldrip ip 11c: e31c0c01 tstip 256 are we tracing syscalls 64 2012年第11期 技 术 研 究 120: 1a000008 bne 148 lt__sys_tracegt 124: e3570f5b cmp r7 364 check upper syscall limit 128: e24fee13 sub lr pc 304 return address 12c: 3798f107 ldrcc pc r8 r7 lsl 2 call sys_ routine “”号部分比较了sys_call_table 的大小。
这段代码检测的是存有系统 call number 的 R7 寄存器的值是否大于 syscall的上限。
如果我们寻找到的操作码与“CMP R7”相一致,那么我们就可以得到 sys_call_table 的确切大小。
所有的偏移值都可以通过使用 ARM 架构操作数技术方式来得到。
3 木马的控制方式 图1 信息监听和回传的基本架构 木马程序植入手机后,窃密者需要对木马进行控制。
与计算机不同,手机除了通过 Internet 进行通信之外,还可以通过短信、电子邮件等形式进行通信。
其中短信控制是最可行的控制途径。
在正常工作情况下,手机接到短信后,由 Modem、RLL 向上层应用上报,最终呈现给手机用户进行查看。
植入手机木马后,程序中的 Rootkit 会截获 Modem上报的所有短信,并对内容进行分析,根据分析结果触发各种行为,最后再将命令短信删除。
为了区别攻击命令格式与正常短信格式,可以对短信指令做一些调整,比如 : 1) 如: “” 短信前面加上一些特殊字符, “cmd”、 等。
2)指令可以由一定的格式组成,分成多个部分,可以方 图2 监听系统的流程图便的对应不同的攻击行为,类似于命令提示,如发送 lt20gtlt激活码 gt,可以关闭通话监听功能 ;发送 lt73gtlt 激活码 gtlt 5 结束语第一关键字 gtlt 第二关键字 gt,表示当手机短信包含第一或者 随着智能手机的快速普及和手机系统的不断更新,手机第二关键字时,短信将被自动删除等。
上集成的功能会越来越多,针对该平台下的木马植入、隐藏 和通信等关键技术也会不断更新,这将会给移动通信的安全4
Android 平台下的信息截取和回传方式 带来更大的威胁。
研究 A nd roid 平台下木马关键技术,可以 木马实质上是运行在系统上完成特定功能的应用程序, 帮助我们做好手机木马的反查杀工作,更好地保证移动终端本文所实现的木马功能包括 : 的设备安全。
(责编 杨晨) 1)对宿主接收的短信进行监听,并将短信内容和对方电话号码以文件形式暂存于手机中,待文件上传模块时进行信息 参考文献:的回传。
1 耿东久,索岳,陈渝,文军,吕勇强 . 基于
Android 手机的远程 访问和控制系统 J. 计算机应用,2011,31 : 560-561. 2)监听通话信息 , (对方电话号码) 并在建立通话连接后, 2 胡伟 .
Android 系统架构及其驱动研究 J. 广州广播电视大学学报,自动打开音频设备,对通话内容进行录音,将获得的录音数 2010, : (04) 96-112.据暂存于手机中,待文件上传模块启动后进行信息的回传。
3 曾健平,邵艳洁 .
Android 系统架构及应用程序开发研究 J. 技术 创新,2011, : (27) 1-3. 3)对手机的本地文件进行监听,包括通讯录等信息。
4 宋杰,党李成,郭振朝,赵萌 .
Android OS 手机平台的安全机制 4)短信远程控制,实现通过短信形式对运行在手机上的 分析和应用研究 J. 计算机技术与发展,2010,20 : 152-155.木马进行控制,包括用短信控制进行开启和关闭指定功能、 5 黄晓昆 . WindowsMobile 平台木马关键技术的研究与实现 D. 中山大学,2008.获取手机上的指定文件等。
6 赖超,龙曦,李金霖,吴林志 . 基于
Android 平台的手机后台监 5)信息的回传,通过连接 Internet 用 Socket 方式将截取 听技术 J. 计算机工程应用技术,2011, : (06) 9472-9474.的信息传送到 Internet 指定服务器上。
7 李佐彬 .
Android 开发入门与实战体验 M. 北京 : 机械工业出版 其中,该平台下信息监听和回传的基本架构和监听系统的 社,2011. 78-268. 8 徐向阳 . Linux 内核.