Android应用的恶意代码注入.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android应用的恶意代码注入.doc

Android应用的恶意代码注入 摘要: 关键词:; Malicious Code Injection for Android Applications 【Abstract】 This paper analyzes the vulnerability of the apk file format and the broadcast functionality of Android OS, introduces a malicious code injecting method based on Android SDK, and tests thirty applications with this method to demonstrate that the Android application lacks protection against malicious code injection . 【Key words】; Code Injection; Malware; Android. 引言 2011年3月,黑客通过将名为“DroidDream”的恶意代码注入到多款应用中并上传到Android市场,最终导致超过一万用户下载并安装使用了带有恶意代码的软件。尽管Google通过远程方式清除了这些终端上的应用,并将超过50款带有“DroidDream”的应用下架,但是从此之后“DroidDream”的各类变体不断出现,严重威胁着Android生态体系。这类应用的特点是:将已注入恶意代码的应用伪装成正常应用,应用安装后,恶意代码通过一定条件触发执行,完成进一步的恶意行为[1]。由于对Android平台发布的时间较短,黑客能够利用的漏洞有限,所以通过注入恶意代码并伪装成正常应用进行发布和传播仍是他们使用的主要方式。网秦发布的2012年第二季度Android手机安全报告显示,约有八成的恶意样本是将恶意代码注入到系统应用、游戏或桌面壁纸等应用中的。由此可见,对Android应用恶意代码注入方式的研究对现阶段Android平台的安全防护具有重要的意义。 Android恶意代码注入的原理 Android程序能够被恶意注入,根本上是Android应用文件的自身特点和系统的某些功能能够被攻击者利用,以下将就这两方面详述。 Android应用APK文件的特性 在Android系统中,所有的应用格式都被加以后缀名apk,其实质上是zip格式的文件,用户用pc上的解压缩软件打开apk文件就可以看到它的结构,不过其中各类文件都是经过编译的,直接打开无法浏览其内容。但是通过互联网可以轻易地获得Android平台各类逆向工具来反编译apk,进而得到apk中包含的以dex为后缀的源程序字节码文件,程序所需的各类资源文件,签名文件,以及关键的程序描述文件AndroidManifest.xml[2]。 AndroidManifest.xml文件的重要作用 AndroidManifest.xml文件存在于每一个apk中,描述了Android系统运行该应用所必须的全局配置信息。在这些信息中,对代码注入最有价值的有三处:第一,程序使用的各类组件的声明,包括Activity,BroadcastReceiver和Service等;第二,程序的入口点,一般是包含ent.action.MAIN的Activity;第三,程序使用受保护API或订阅特定广播消息时所需权限的声明。通过分析AndroidManifest.xml文件提供的这些信息,可以获得代码注入的两种思路:替换原程序的入口点或者使用BroadcastReceiver使恶意代码在接收到特定消息的时候触发,并开启其他Service或Activity执行恶意行为,而这两种选择都只要在AndroidManifest.xml中修改或添加相应组件,并声明所需权限即可。事实上,替换原程序入口点正是恶意代码“DroidDream”所采用的注入手段[1],本文不再赘述;而另一种设想的可行性,还需要Android系统广播机制的支持。 Android系统的广播机制 Android系统的广播机制,从抽象层面可描述为软件设计模式中的“观察者模式”,也可以理解为分布式模型中的“消息发布者-订阅者”模型[3],如图1所示: 图1 Android系统的广播机制 其中广播消息发布者包括系统本身和应用程序,广播消息的订阅者则是各类应用软件,而广播消息则对应于Android系统的ent中封装了动作信息和其他数据信息,动作信息包括当前已完成的动作或者下一步将要执行的动作。由Android系统广播的intent一般封装当前已完成的动作[3],如“ACTION_BOOT_COMPLETED”;由应用程序广播的intent一般包含下一步将要执行的动作

文档评论(0)

ucut + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档