-
根据文献[1]的最新统计,2014年新增的Android平台安全威胁多达277种,其中91%是例如后台短信发送、非授权下载、恶意APP应用和GPS位置追踪等对移动终端设备或个人信息的直接威胁。从目前情况看,这种威胁趋势还将持续并更加严峻。所以,Android平台的恶意软件检测问题是Android系统发展的瓶颈,应给予更多关注。
在Android平台上,恶意软件的检测是非常困难的。理由是Android系统只能在操作系统层面通过安全机制进行软件的运行授权和访问控制。为了解决上述问题,本文提出在不获取Android系统root权限的前提条件下,通过分析软件或应用在运行期间的电量消耗状态,检测软件或应用是否为恶意的。
目前的移动终端恶意应用检测方法主要有两种:基于特征签名的检测和基于行为的检测。早期的基于特征签名的检测技术主要通过检测目标文件中的各个签名与已知的恶意特征签名是否一致判断文件的性质。近期的主流方法是基于行为的检测,包括静态分析和动态分析。静态分析是指不运行应用程序,通过分析程序代码来推测程序的行为。动态分析是指通过运行软件并收集其运行时的额外信息来分析该软件[2]。其中,获取并分析软件电量消耗状态的恶意软件检测方法是目前的研究热点[3]。
文献[3]通过一系列实验验证了根据手机电量检测恶意软件的可行性。文献[4-5]提出获取手机应用电量信息的有效方法。文献[6]提出一种基于电量消耗的入侵检测模型,文献[7-8]在此基础上利用Android手机的电池配置文件实现对恶意软件的检测。但是上述方法中对电量的分析仅考虑了功率消耗的多少,而没有考虑电量消耗的时序特征。
针对上述问题,本文针对以Android移动智能手机为代表的移动终端电量消耗的时序性和时序图单维性的特点,提出一种基于手机电量消耗的Android移动终端恶意软件检测方法。
HTML
-
在测试实验中,首先用PowerTutor软件对系统中的各应用进行电量监测,从生成的日志文件中,提取有效的电量消耗数据;然后采用上文方法构建GMM特征库;而后在特征库基础上对软件进行检测。
实验中,在手机端实现对本机电量消耗的监控,在PC端实现电量消耗时序特征提取与分析、电量消耗特征库构建、波形特征匹配等处理过程。
-
为了减少设备硬件对实验结果的影响,实验中使用6台手机进行电量收集,分别是3台三星GALAXY S5和3台LG G2手机。
使用PowerTutor工具检测所有应用软件在手机上运行时的电量消耗状态,包括屏幕、CPU、WiFi、3G、GPS和扩音器,将CPU、WiFi和GPS作为重点采集对象进行数据采集。数据采集时间为5 min,采样频率是40 Hz,即每隔25 ms采集并统计1次电量信息,并将结果记录在日志文件中。
实验中,所有手机均进行相同的初始化设置:
1)硬件GPS模块处于激活状态;
2)屏幕显示亮度被设置为固定值25且30 s不活动则自动关闭;
3)主屏幕上设置为标准的手机桌面壁纸,不同步背景资料;
4)手机中的各个小工具设置为活跃状态;
5)网络连接根据测试需要通过WiFi提供。
所有样本采样率为40 Hz,帧长为256,帧移为128,特征提取的基本参数设置如表 1所示。
参数 值 预加重 1-0.95z-1 采样率/kHz 8 量化/bit 8 加窗 海明窗 帧长 256 帧移 128 特征向量 32维MFCC GMM 12 -
按照前面的电量特征提取算法,对6台手机中被记录的应用软件的电量消耗数据进行特征提取和计算,得到GMM的概率分布参数。由于实际训练的数据太大,无法生成多维高斯混合模型的结果图,因此在此处选取ireader应用软件进行阶数为3的高斯混合模型建模实验。
Ireader应用的电量检测结果的MFCC特征分布如图 4所示,其GMM参数模型构建结果如图 5所示。
从图 4可见,虽然不同手机对于同一个应用的电量消耗MFCC特征值不完全相同,但在分布上是相似的,证明了MFCC特征在耗电特征对比方面的有效性。
-
采用前面的方法构建了4类GMM模型,包括3类常用软件和1类恶意软件。在构建GMM模型库时,对每种类型软件通过监控10个该类别的软件并提取MFCC特征参数来构建GMM模型。
在测试过程中,模拟了一种针对Android平台的浮点数攻击恶意软件。在每个软件类型中选取100个,在正常使用的情况下监控其5 min的CPU电量消耗,然后通过本文的电量分析模型进行检测分类。上述4类软件的检测结果如表 2所示,检测率统计如表 3所示。
类别 结果 游戏 浏览器 音乐播放 恶意软件 游戏 78 9 3 10 浏览器 12 72 7 9 音乐播放 16 11 65 8 恶意软件 3 7 11 79 类别 统计 恶意检查率/% 良性检测率/% 正确率/% 游戏 10 90 78 浏览器 9 91 72 音乐播放 8 92 65 恶意软件 79 21 79 表 3中的恶意检查率表示软件被分类为恶意软件的比例,良性检测率表示软件被分类为良性软件的比例,正确率表示软件被准确分类的比例。表 3的数据表明,本文提出的电量分析模型在区分良性软件和恶意软件方面的准确率较高。说明试验中模拟的浮点数攻击恶意软件的CPU电量消耗特征与普通软件区别明显,通过分析电量消耗可以对恶意软件进行有效的分类检测。