留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于耗电分析的Android平台恶意软件检测

杨宏宇 唐瑞文

杨宏宇, 唐瑞文. 基于耗电分析的Android平台恶意软件检测[J]. 电子科技大学学报, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018
引用本文: 杨宏宇, 唐瑞文. 基于耗电分析的Android平台恶意软件检测[J]. 电子科技大学学报, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018
YANG Hong-yu, TANG Rui-wen. Android Malware Detection Based on Power Consumption Analysis[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018
Citation: YANG Hong-yu, TANG Rui-wen. Android Malware Detection Based on Power Consumption Analysis[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018

基于耗电分析的Android平台恶意软件检测

doi: 10.3969/j.issn.1001-0548.2016.06.018
基金项目: 

国家自然科学基金 60776807

国家自然科学基金 61179045

国家科技重大专项基金 2012ZX03002002

中国民航科技基金 MHRD201009

中国民航科技基金 MHRD201205

中央高校基本科研业务费专项 3122014D033

详细信息
    作者简介:

    杨宏宇(1969-), 男, 博士, 教授, 主要从事网络与信息安全方面的研究

  • 中图分类号: TP393

Android Malware Detection Based on Power Consumption Analysis

图(5) / 表(3)
计量
  • 文章访问数:  5550
  • HTML全文浏览量:  1950
  • PDF下载量:  146
  • 被引次数: 0
出版历程
  • 收稿日期:  2015-06-08
  • 修回日期:  2016-02-22
  • 刊出日期:  2016-11-01

基于耗电分析的Android平台恶意软件检测

doi: 10.3969/j.issn.1001-0548.2016.06.018
    基金项目:

    国家自然科学基金 60776807

    国家自然科学基金 61179045

    国家科技重大专项基金 2012ZX03002002

    中国民航科技基金 MHRD201009

    中国民航科技基金 MHRD201205

    中央高校基本科研业务费专项 3122014D033

    作者简介:

    杨宏宇(1969-), 男, 博士, 教授, 主要从事网络与信息安全方面的研究

  • 中图分类号: TP393

摘要: 该文提出一种基于电量分析的恶意软件检测方法。首先获取移动终端的耗电状态并利用Mel频谱倒谱系数(MFCC)构建高斯混合模型(GMM)。然后采用GMM模型对电量消耗状态进行分析,进而通过对应用软件的分类处理识别恶意软件。实验证明应用软件的功能与电量消耗关系密切,表明基于软件的电量消耗信息分析可以较准确地检测出移动终端的恶意应用。

English Abstract

杨宏宇, 唐瑞文. 基于耗电分析的Android平台恶意软件检测[J]. 电子科技大学学报, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018
引用本文: 杨宏宇, 唐瑞文. 基于耗电分析的Android平台恶意软件检测[J]. 电子科技大学学报, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018
YANG Hong-yu, TANG Rui-wen. Android Malware Detection Based on Power Consumption Analysis[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018
Citation: YANG Hong-yu, TANG Rui-wen. Android Malware Detection Based on Power Consumption Analysis[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(6): 981-985. doi: 10.3969/j.issn.1001-0548.2016.06.018
  • 根据文献[1]的最新统计,2014年新增的Android平台安全威胁多达277种,其中91%是例如后台短信发送、非授权下载、恶意APP应用和GPS位置追踪等对移动终端设备或个人信息的直接威胁。从目前情况看,这种威胁趋势还将持续并更加严峻。所以,Android平台的恶意软件检测问题是Android系统发展的瓶颈,应给予更多关注。

    在Android平台上,恶意软件的检测是非常困难的。理由是Android系统只能在操作系统层面通过安全机制进行软件的运行授权和访问控制。为了解决上述问题,本文提出在不获取Android系统root权限的前提条件下,通过分析软件或应用在运行期间的电量消耗状态,检测软件或应用是否为恶意的。

    目前的移动终端恶意应用检测方法主要有两种:基于特征签名的检测和基于行为的检测。早期的基于特征签名的检测技术主要通过检测目标文件中的各个签名与已知的恶意特征签名是否一致判断文件的性质。近期的主流方法是基于行为的检测,包括静态分析和动态分析。静态分析是指不运行应用程序,通过分析程序代码来推测程序的行为。动态分析是指通过运行软件并收集其运行时的额外信息来分析该软件[2]。其中,获取并分析软件电量消耗状态的恶意软件检测方法是目前的研究热点[3]

    文献[3]通过一系列实验验证了根据手机电量检测恶意软件的可行性。文献[4-5]提出获取手机应用电量信息的有效方法。文献[6]提出一种基于电量消耗的入侵检测模型,文献[7-8]在此基础上利用Android手机的电池配置文件实现对恶意软件的检测。但是上述方法中对电量的分析仅考虑了功率消耗的多少,而没有考虑电量消耗的时序特征。

    针对上述问题,本文针对以Android移动智能手机为代表的移动终端电量消耗的时序性和时序图单维性的特点,提出一种基于手机电量消耗的Android移动终端恶意软件检测方法。

    • 依据公共入侵检测框架规范的入侵检测系统通用模型,将MFCC[9-10]和GMM[11]的电量分析算法引入到Android系统的恶意软件检测中,提出一个基于电量分析的Android系统恶意行为检测模型,如图 1所示。

      图  1  恶意软件检测模型结构

      该检测模型主要包括电量信息采集、MFCC特征提取与分析、GMM模型匹配、检测结果输出4个模块。

      电量信息采集模块从安卓系统中采集应用软件的电量信息和耗电状态数据,将应用程序的电量消耗信息进行数值量化,生成时序波形图。

      MFCC特征提取与分析模块对已采集到的数据提取波形时序特征,为不同类型的应用建立耗电波形特征并输入到特征库;对采集到的新数据提取波形时序特征并将其输出到GMM模型匹配模块。

      GMM模型匹配模块在特征库中对耗电波形特征序列进行匹配,判断应用分类。

      检测结果输出模块输出软件的检测结果。

    • 本文通过PowerTutor[4]工具监控手机指定应用的电池电量消耗信息,监控并获取手机应用在运行期间内的CPU、音频、屏幕、Wi-Fi、3G和GPS等6个组件的电池电量消耗时序数据。图 2显示了“UC浏览器”和“ireader”两个Android应用软件在5 min内的CPU电量消耗情况。

      图  2  应用软件的电量消耗时序图

      图 2可以发现,具有不同功能的两个应用软件在运行时的CPU电量消耗时序曲线区别非常显著,这也表明通过对应用软件的电量消耗分析可以对不同应用软件进行有效区分和识别。

    • 图 2的软件电量消耗时序数据可以发现,不同功能的应用软件在电量消耗上有着明显的差别。当用此类时序数据对软件进行分类时,还需要考虑不同因素对电量消耗的影响,为了减少相关因素对应用软件识别或检测结果的影响,需要提取电量消耗时序波形的特征信息。

      MFCC波形分类方法在语音识别应用中的识别准确率较高[9-10]。由于电量消耗的时序波形具有与声音波形相似的特点,本文尝试采用MFCC进行电量消耗特征提取并设计处理流程,如图 3所示。

      图  3  MFCC计算流程

      处理流程设计如下:

      1)分帧及加窗处理:为了提取短时信号特征,对输入的原始数据S(n)做分帧和加窗处理。设定帧长为5 s,帧移(两帧之间的重合范围)为2.5 s,则有:

      $$ w(n) = 0.54 - 0.46\cos (\frac{{2{\rm{\pi }}n}}{{N - 1}}){\rm{ }}(0 \le n \le N - 1) $$ (1)

      式中,0.54和0.46为Hamming窗定义的常数;N为每帧的采样点个数。

      2)线性频谱计算:采用离散傅里叶变换(discrete fourier transform,DFT)方法计算短时频域信号和短时能量。将时域信号x(n)每帧后补充若干个0以形成每帧长为N(N取256)的时域信号;然后,经DFT得到线性频谱为:

      $$ X(k) = \sum\limits_{K = 0}^{N - 1} {x\left( k \right){{\rm{e}}^{{\raise0.5ex\hbox{$\scriptstyle { - {\rm{j2}}{{\rm{ \mathsf{ π} }}_j}k}$} \kern-0.1em/\kern-0.15em \lower0.25ex\hbox{$\scriptstyle N$}}}}} ,0 \le k \le N - 1 $$ (2)

      3)频率滤波器组计算:采用三角带通滤波器计算频率信号,得到复Mel频谱信号。设滤波器个数为k,信号的采样频率为fs,则最大Mel频率为:

      $$ {f_{\max }}[Mel] = 2595{\log _{10}}(1 + \frac{{{f_s}}}{{700}}) $$ (3)

      每个滤波器之间的中心频率间距为:

      $$ {\Delta _{Mel}} = \frac{{{f_{\max }}}}{{k + 1}} $$ (4)

      4)对数能量计算:为了对噪声有更好的鲁棒性,计算Mel频谱的对数能量是必不可少的。设三角滤波器个数为M,则有:

      $$ e(m) = \sum\limits_{k = 0}^{N - 1} {{{\left| {X(k)} \right|}^2}} {H_m}(k), {\rm{ }}0 \le m \le M $$ (5)
      $$ S(m) = \ln (e(m)) $$ (6)

      式中,X(k)为线性频谱;S(m)为对数频谱。

      5)倒频谱计算:采用离散余弦变换(discrete cosine transform, DCT)计算得到倒频谱系数:

      $$ {C_{{\rm{Mel}}}}(n) = \sum\limits_{m = 0}^{M - 1} {S(m)\cos \left( {\frac{{{\rm{\pi }}n(m + 1/2)}}{M}} \right)} $$ (7)
    • 首先创建应用软件的电量消耗特征库,然后将输入的软件电量消耗特征信号与特征库进行特征匹配计算。在特征匹配计算时采用GMM[11]

      本文设计的软件电量消耗特征匹配过程如下。

      1)构建特征库:采用最大似然估计法计算概率分布参数。

      设序列$X = \{ {x_t}, t = 1, 2, \cdots, T\} $,其中各分量相互独立,则其对应的GMM模型中的参数似然度为:

      $$ L(\lambda |X) = P(X|\lambda ) = \prod\limits_{t = 1}^T {P({x_t}|\lambda )} $$ (8)

      符合条件的参数即为找到一组$\tilde \lambda $,使得$L(\lambda |X)$的值最大:

      $$ \tilde \lambda = {\max _\lambda }L(\lambda |X) = {\max _\lambda }P(X|\lambda ) $$

      $$ \ell \left( {\tilde \lambda } \right) = \max \left( {\sum {\log P(x|\lambda )} } \right) $$ (9)

      在利用最大似然估计的基础上,采用期望最大化(expectation-maximization, EM)[12]进行迭代计算得到估计参数,计算步骤如下。

      设对于每一个给定的训练样例iz表示该样例可能属于的类别,Qi表示z的某种概率分布,则有:

      $$ {Q_i}({z^i}) = P({z^i}|{x^i};\lambda ) $$ (10)

      估计参数为:

      $$ \theta = {\max _\theta }\sum\limits_i {\sum\limits_{{z^i}} {{Q_i}({z^i})\log \frac{{P({x^i}, {z^i};\lambda )}}{{{Q_i}({z^i})}}} } $$ (11)

      重复上述两步骤直到结果收敛。

      2)特征值匹配:特征库建立后,一个给定的特征序列X即为已知特征,对于已有的类别z,计算$P(x|{z_i})$。则对特征值的类型匹配就是求解zi,使得$P(x|{z_i})$最大,zi即为输出的匹配类型。

    • 在测试实验中,首先用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  特征提取算法的基本参数

      参数
      预加重 1-0.95z-1
      采样率/kHz 8
      量化/bit 8
      加窗 海明窗
      帧长 256
      帧移 128
      特征向量 32维MFCC
      GMM 12
    • 按照前面的电量特征提取算法,对6台手机中被记录的应用软件的电量消耗数据进行特征提取和计算,得到GMM的概率分布参数。由于实际训练的数据太大,无法生成多维高斯混合模型的结果图,因此在此处选取ireader应用软件进行阶数为3的高斯混合模型建模实验。

      Ireader应用的电量检测结果的MFCC特征分布如图 4所示,其GMM参数模型构建结果如图 5所示。

      图  4  iReader电池电量消耗MFCC特征分布

      图  5  ireader电池电量消耗GMM模型

      图 4可见,虽然不同手机对于同一个应用的电量消耗MFCC特征值不完全相同,但在分布上是相似的,证明了MFCC特征在耗电特征对比方面的有效性。

    • 采用前面的方法构建了4类GMM模型,包括3类常用软件和1类恶意软件。在构建GMM模型库时,对每种类型软件通过监控10个该类别的软件并提取MFCC特征参数来构建GMM模型。

      在测试过程中,模拟了一种针对Android平台的浮点数攻击恶意软件。在每个软件类型中选取100个,在正常使用的情况下监控其5 min的CPU电量消耗,然后通过本文的电量分析模型进行检测分类。上述4类软件的检测结果如表 2所示,检测率统计如表 3所示。

      表 2  软件检测结果

      类别 结果
      游戏 浏览器 音乐播放 恶意软件
      游戏 78 9 3 10
      浏览器 12 72 7 9
      音乐播放 16 11 65 8
      恶意软件 3 7 11 79

      表 3  检测率统计

      类别 统计
      恶意检查率/% 良性检测率/% 正确率/%
      游戏 10 90 78
      浏览器 9 91 72
      音乐播放 8 92 65
      恶意软件 79 21 79

      表 3中的恶意检查率表示软件被分类为恶意软件的比例,良性检测率表示软件被分类为良性软件的比例,正确率表示软件被准确分类的比例。表 3的数据表明,本文提出的电量分析模型在区分良性软件和恶意软件方面的准确率较高。说明试验中模拟的浮点数攻击恶意软件的CPU电量消耗特征与普通软件区别明显,通过分析电量消耗可以对恶意软件进行有效的分类检测。

    • 针对移动智能终端Android应用软件电量消耗的时序性和时序图单维性特点,本文探索利用MFCC特征值提取算法对Android应用软件的电量消耗时序波形进行识别和特征提取,通过GMM模型分类算法方法构建特征库并识别恶意软件,从而实现对Android恶意软件的检测。实验结果表明,移动终端的应用软件功能与其电量消耗具有紧密的联系,通过对应用电量消耗信息的处理和分析可以较准确地识别移动终端的恶意运用。

参考文献 (12)

目录

    /

    返回文章
    返回