APP下载

一种基于行为分析的Android系统恶意程序检测模型

2015-03-19江坤航

湖北理工学院学报 2015年3期
关键词:应用程序威胁模块

熊 皓,陈 杰,江坤航

(湖北理工学院计算机学院,湖北黄石435003)

0 引言

在当今时代,科技的进步推动了全球化经济的发展,同时也推动了信息产业的不断发展。在电子产品中,Android 系统已经占据了大份额的市场,对于善于设备刷机的用户而言,恶意软件成为用户难以预防的对象。这主要是由于这些软件都是在用户不知情的情况下,秘密安装下载程序[1-2]。因此,恶意软件已经成为IT 专业人士研究的热点。

根据思科2014年度安全报告称,在An-droid 设备上发现恶意软件中99%是移动恶意软件,但这丝毫没有减少它在全球市场的知名度和份额。由此可见,恶意程序是对智能机使用者最大的危害。针对Android 系统中恶意程序检测技术方面的研究成为目前研究的热点[3-4]。

1 Android 系统恶意程序检测技术

在Android 系统中权限机制是核心安全机制,其重要性不言而喻。但Android 应用程序的安装权限,只有在安装应用软件时才会出现在安装权限界面,用户在安装时不能修改权限,而且权限种类繁多,会导致很多用户在不了解的情况下安装应用软件[5-6]。

由于Android 系统存在安全缺陷,致使恶意程序可以通过Android 系统的安全缺陷很容易地控制用户手机。常用的检测技术有恶意程序的静态检测技术和动态检测技术[7-8]。

这2 种检测技术有各自解决问题的优势,当然也存在一定的缺陷,2 种检测恶意程序的方法比较如表1所示。

表1 2 种检测恶意程序的方法比较

除了以上常见的检测技术外,还有一种动静结合的混合检测技术。该技术在对恶意程序检测时采用动态检测方式,在检查签名时采用静态检测的方式。混合检测技术的优点是节省了时间、自动化程度高、方便实用。不过,混合检测技术也有一定的缺陷,有的误报率高,漏洞的类型不能完全覆盖;有的能量消耗太大,能够检测的漏洞类型单一[9-10]。

2 基于行为分析的Android 系统恶意程序检测模型

由于Android 的权限存在缺陷,用户无法对安装权限进行修改致使恶意程序乘机而入。对目前的动态检测技术、静态检测技术和混合检测技术进行分析,提出了一种基于行为分析的Android 系统恶意程序检测模型,如图1所示。本模型分为2 个部分:①对于已经通过检测的应用程序APK 文件,根据签名机制,提取消息摘要的MD5 值来进行匹配;②对于未检测的应用程序,通过权限和行为的分析来检测,首先检测运行时是否存在危险权限,然后进行污点传播分析,检测出APK 中是否存在信息窃取和恶意攻击的行为。

图1 Android 系统恶意程序检测模型

2.1 检测模型的系统结构

针对特征值检测技术的不足和权限存在的缺陷,提出了模型的设计思路:首先通过签名机制来匹配MD5 值是否一致,然后分析其运行权限,并与危险权限库中的权限进行比对;通过静态分析函数的行为[6],提取其各种行为并将恶意行为规则库载入进行分析,最终将分析结果存入已分析的程序库中保存。系统包括5 个模块,系统结构图如图2所示。

1)检测模块。首先计算APK 包的MD5值,提取后与已分析的程序库中的MD5 值进行比较,如果存在,就不需要检测直接进入结果分析模块并保存到已分析程序库中。

2)预处理模块。在这个模块中需要对应用程序APK 包进行解压和反编译,最终获取其配置文件和JAVA 源代码。

3)权限分析模块。利用函数调用,获取AndroidManifest.xml 中的权限,将其与危险权限库(类似病毒库)中的权限对比,提取应用程序中存在的恶意权限。

4)行为分析模块。通过污染传播分析,将存在的恶意行为提取出来,并与异常行为库中的恶意行为比对,发现异常提示用户,并保存到异常行为库中。

5)权限管理模块。这个模块主要是用户对恶意权限有选择地禁止,最后重新签名生成新的APK 包进行安装。

图2 系统结构图

2.2 系统的检测流程

本系统的检测是在应用程序安装前,对应用程序的APK 包反编译后对代码进行分析。首先检测APK 包的MD5 值是否匹配,如果匹配说明该应用程序由正规厂商提供,直接进入安装界面;如果不匹配,不能断定它一定具有恶意行为,那么就要通过对权限和行为的分析来进行检测。模型的检测流程如图3所示。

图3 模型的检测流程

2.3 关键技术的实现

2.3.1 Android APK 的签名比对

通过Android 签名机制的分析和APK 公钥的比对能判断一个APK 的发布机构,并且这个发布机构是很难伪装的,暂时可以认为是不可伪装的。下面介绍获取APK 文件公钥信息的方法。源码中有一个隐藏的类用于APK包的解析。这个类叫PackageParser,路径为:frameworks base core java android content pm PackageParser.java。当需要获取APK 包的相关信息时,可以直接使用这个类,获取到APK签名证书之后,就可以进行签名比对了。功能函数如下所示:

2.3.2 计算MD5 值

在Android 系统中的应用程序是由JAVA编写的,在JAVA 中实现MD5 很容易,在包java.security 中有个类MessageDigest。部分代码如下:

2.3.3 权限分析技术

每个Android 应用程序要求所有的需要申请的权限都必须在AndroidManifest.xml 文件中定义,权限定义代码如下:<uses-permission android:name =“android.permission.INSTALL_PACKAGES”/ >;这是一个允许安装应用程序的权限请求。权限分析模块的功能是将检测的应用程序AndroidManifest.xml 中申请的权限提取分析,并与危险权限库(相当于病毒库)中的权限进行比对,如果发现恶意权限,则进入黑名单提示用户禁止;如果没有发现就进入行为分析模块,因为考虑到有可能存在权限串谋的恶意程序。

3 模型检测

Android 系统漏洞主要是权限存在串谋和刷机风险,恶意权限能够很好地检测,不足的是Android 系统的权限是在AndroidManifest.xml 文件中定义的,不经过分析随便用代码去调用API 修改权限很危险。因此,在本模型中对Android 应用程序安装时对恶意性进行分析,允许对权限进行动态修改。

一个应用程序APK 包在其AndroidManifest.xml 文件中定义的权限一般有很多个,这里面可能会有很多的恶意权限,权限组合的不同对应用软件是否存在恶意程序也起着决定性的作用。

为了便于区分,对应用程序声明的权限分为4 类:严重威胁、一般威胁、普通威胁、安全。将上述的权限组合进行分类统计,权限组合有11 种,用数组描述如下:

P[1,2],P[1,3],P[1,4];

P[2,3],P[2,4],P[3,4];

P[1,2,3],P[1,2,4],P[1,3,4],P[2,3,4];

P[1,2,3,4]。

其中P 是权限Permission 的英文缩写,权限组合复杂度越高,相对的安全威胁级别越高。对权限分析模块检测出的权限和行为分析模块中检测出的存在权限串谋的权限综合提示给用户,并对其单个威胁值和组合威胁值进行分析,当威胁值为0 或1 时,不提示用户进行禁止操作。

本模型采用的公式如下:

式(1)中,T 表示安全威胁值;N0表示单个威胁值;N1表示2 类组合权限的威胁值;N2表示3 类组合权限的威胁值;N3表示4 类组合权限威胁值;K0表示单独权限威胁值的数量;Ki(i = 1,2,3)表示权限组合对应的威胁值数量;当应用程序是需要付费时,Pm取值为0.2,否则Pm取值为0.8。

从Android 应用商店中随机选取100 个应用程序,包括游戏、娱乐、购物、系统工具4 类,检测前威胁值分布如图4所示。

图4 检测前威胁值分布

从图4 中可以看出,绝大部分的应用程序,其威胁值集中在0 ~150 之间,超过150 的威胁值,基本可以判定应用程序具有恶意行为。

有了安全威胁值的检测前提,对恶意程序的检测就将范围缩小了很多,通过本模型中的签名到权限,权限再到行为的3 重检测,能够将权限串谋的恶意行为检测出,提高了系统的效率。

4 结束语

随着信息产业的发展,恶意程序攻击手段不断升级,Android 系统的漏洞也在不断更新,依靠传统的单一的检测方法已经不能再防范恶意程序的攻击。本文结合系统的漏洞,对基于特征值的检测技术和行为的检测技术的工作原理进行分析,提出了一种基于行为分析的权限综合检测模型。实验表明,该模型对权限串谋的恶意行为能起到很好的抑制作用,同时也为用户提供更多的权限,从而加强用户的安全防范意识。

[1]吴世忠,郭涛.信息安全漏洞分析基础[M].北京:科学出版社,2013:81-85.

[2]王雨晨.系统漏洞原理与常见攻击方法[J].计算机工程与应用,2001(3):62-64.

[3](美)麦克克鲁尔,斯坎布雷,克茨.黑客大曝光:网络安全机密与解决方案[M].北京:清华大学出版社,2013:45-47.

[4]徐明,陈纯,应晶.基于系统调用分类的异常检测[J].软件学报,2004,15(3):391-403.

[5]王清.Oday 安全:软件漏洞分析技术[M].北京:电子工业出版社,2011:75-82.

[6]蒋绍林,王金双,于晗,等.改进的Android 强制访问控制模型[J].计算机应用,2013,33(6):1630-1636.

[7]王雨晨.系统漏洞原理与常见攻击方法[J].计算机工程与应用,2001,37(3):62-64.

[8]王丰辉.漏洞相关技术研究[D].北京:北京邮电大学,2006.

[9]练坤梅.基于漏洞分级和Fuzz 技术的Web 漏洞检测系统的设计与实现[D].天津:南开大学,2011.

[10]庞智.Web 系统安全渗透测试方案的分析与设计[D].北京:北京邮电大学,2011.

猜你喜欢

应用程序威胁模块
28通道收发处理模块设计
“选修3—3”模块的复习备考
人类的威胁
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
受到威胁的生命
面对孩子的“威胁”,我们要会说“不”
集成水空中冷器的进气模块
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序