论文部分内容阅读
据猎豹移动公司2014年上半年的统计数据,Android病毒的数量持续稳定增长,约十分之一的移动应用是恶意应用或部分感染了恶意代码;消耗资费类型的恶意移动应用变的越来越普遍,威胁着用户的资费。在2014过去的六个月里猎豹移动收集了2440万的样本文件中大约有220万样本被证明是病毒,占总数的百分之九。Android平台的恶意软件数量的持续增长,给Android平台的移动用户带来很大的损害,因此对Android平台的移动应用安装前安全检测是目前亟需解决的问题。本文基于Android静态逆向分析Androguard方法提出了一种Android平台的移动APP安装前安全检测方法。该方法提取一个APK中使用的各种权限信息、APP的PackageName信息、包含的Activity、Service、启动Activity信息、BroadcastReceiver、签名文件信息和包含的各种文件,解析其中包含代码的classes.dex文件,分析其中包含的类、类中的方法、包含的字符串以及类中方法包含的函数调用信息。文中设计了Android应用程序包信息获取、基于Android申请权限的检测、重打包检测和基于系统API调用序列的启发式特征检测四大功能模块。Android应用程序包信息获取技术通过解析AndroidManifest.xml文件获取系统使用的Activity、Service、Broadcast Receiver等组件信息。解包APK文件获取其中包含的文件信息。解析classes.dex文件获取代码中定义的类和方法信息。正常情况下,一个没有在安装前申请了敏感权限的APP是没有进行敏感操作的能力的。基于Android申请权限的检测技术通过提取APK中的各种的权限信息,检测其中是否包含恶意软件经常申请的敏感权限信息来判定待检测APP是不是一个安全的Android应用。重打包检测技术使用APK中提取出的PackageName信息和签名文件的公钥信息去检测一个APP是否经过修改并重新被打包发布,该过程只能够判定APP被重打包不能判定没有经过重打包。基于系统API调用序列的启发式特征检测技术提取classes.dex文件中各个类中方法中的系统API调用信息,形成一个API调用序列。通过将待检测APP中提取的API调用序列与恶意API调用序列库进行相似比较来判断该检测APP是否包含特定的恶意代码或者和它功能类似的变种。本文为Android应用APP的安装前安全检测提供了一种检测方法,该方法实际测试表明对已知的和未知的恶意APP或代码具有良好的检测效果。