图5.2.6 运行结果示例图25
图5.2.7 logcat输出的日志25
表1 Dalvik字节码类型描述8
表2 流程测试25
表3 兼容性测试26
表4 功能测试26
1 引言
1.1 研究背景
这是一个信息爆炸的年代,也是一个移动通信飞速发展的时代。我们的工作和生活已经在不知不觉中与移动通信紧密相连。随着智能手机的普及使用,手机自身的安全性也就随之成为了我们不得不去关注的话题。手机病毒借助着文件下载、网站捆绑、静默安装等恶意方式传播,严重影响用户的财产和信息安全。恶意软件中潜藏的病毒木马可以窃取手机中的通讯录等个人私密信息,窃听电话,恶意扣费,偷跑流量,严重的甚至可以损坏SIM卡,烧毁硬件。
Android系统是目前使用最广泛的智能移动操作系统。其近年来的市场占有率逐步提高,与苹果公司的IOS手机操作系统分庭抗礼[ ],且由于相对搭载Android系统的手机价格相对亲民,“飞入寻常百姓家”的Android系统安全性更加不容忽视。而其开源性意着任何组织和个人都可以将自己开发的应用程序在官方或者第三方的安卓市场发布,从某种意义上来讲这也使得其更加容易成为部分别有用心的不法分子的目标,成为恶意软件孕育的温床。目前来看,针对Android系统手机的恶意程序已经大量出现。这些恶意软件有的会占用系统资源,导致手机运行速度变慢,有的则利用后门将手机连接到远程服务器上,泄露用户的私密信息。还有一些则可以通过发送隐蔽短信等方式来订购用户不需要的服务从而恶意扣费。如上所述,恶意软件对于广大的Android用户群已经构成了严重的威胁,现在的智能手机已经不仅仅是用来通话的工具,更多的还扮演着个人信息中心甚至是信用卡和钱包的角色,所以行之有效的恶意软件检测方法对于保护用户的隐私安全,经济财产不受损失是极其有现实意义的。
1.2 研究现状
1.3 研究内容
本文主要分析和介绍了以应用广泛的Android系统为代表的移动智能操作系统的发展和目前的安全状况,通过研究Dalvik字节码,Android系统的API和注入代码的重打包技术,提出一种Android恶意软件的动态检测方法。
各章节内容如下:
第一章:主要介绍了本文多对应的研究背景、内容和现状等。
第二章:主要介绍Android系统,其内部机制、安全机制和恶意软件的特征。
第三章:介绍了Dalvik虚拟机,Smali语法格式和Python脚本语言。
第四章:介绍了基于Android应用进行修改和重打包的方法原理。
第五章:实现了可用的检测工具,并且进行了相应测试。
本文通过研究Android应用程序的反编译,代码注入和重打包等技术,在不改变应用程序源代码中结构和功能的情况下,配置相应的敏感API库,在Android运行代码,也就是Dalvik码中增加敏感信息的log输出,再重新将应用打包,在Android模拟器上安装和运行打包后的应用程序,通过分析logcat命令输出的相应日志验证应用程序是否实施了恶意行为。通过python脚本语言实现整个过程的自动化运行。
2 Android系统内部机制和相关的安全机制
2.1 Android系统架构分析
Android系统的架构采用了分层的思想,这样一来就减少了各层之间的依赖性,便于独立分发,容易收敛问题和错误[ ]。如下图所示,从上往下可以划分为应用层、应用框架层、系统运行库层和Linux内核层四层。其中最顶上的两层是由Java语言来实现,运行库则是由一个Java的代码运行环境,也就是Dalvik虚拟机和Java核心库以及C和C++的函数库框架构成。Linux内核层包含了底层的相应驱动,主要由C语言来实现。 基于Android平台恶意软件动态检测方法设计与实现(2):http://www.751com.cn/jisuanji/lunwen_22794.html