基于权限特征的Android恶意软件检测方法及系统

著录项
  • CN201710871649.4
  • 20170925
  • CN107832609A
  • 20180323
  • 暨南大学
  • 孙玉霞;赵晶晶;刘明;翁健
  • G06F21/56
  • G06F21/56

  • 广东省广州市天河区黄埔大道西601号
  • 广东(44)
  • 广州市华学知识产权代理有限公司
  • 郑浦娟
摘要
本发明公开了一种基于权限特征的Android恶意软件检测方法和系统,步骤:构建第一训练样本集和第二训练样本集,提取各训练样本第一权限特征向量,根据d值挑选出权限特征构造第一权限特征集合,生成第一训练样本集中各训练样本第二权限特征向量,并构建关联系数矩阵;将第一训练样本集中各训练样本关联矩阵求和输入PPR算法,得到第一权限特征集合中每种权限特征的权限值;根据第一权限特征集合生成测试样本权限特征向量,利用第一权限特征集合中每种权限特征的权限值计算出测试样本所申请的权限特征权重η,将η与判断因子进行比较,判断出测试样本是否为Android恶意软件;该方法大大提高了Android恶意软件的检测准确率。
权利要求

1.一种基于权限特征的Android恶意软件检测方法,其特征在于,步骤如下:

步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一定数 量的Android非恶意软件训练样本构造第二训练样本集;

步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出对应各APK 文件中所申请的权限,从而生成训练样本的第一权限特征向量;其中各训练样本的第一权 限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被该训练样本申 请;

步骤S3、扫描第一训练样本集和第二训练样本集中各训练样本的第一权限特征向量, 计算各种权限特征在第一训练样本集的d值以及计算各种权限特征在第二训练样本集的d 值;然后针对每一权限特征,比较该权限特征在第一训练样本集的d值以及在第二训练样本 集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的权限特 征,由上述选取出来的各种权限特征构成第一权限特征集合;

其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的 训练样本总数除以第一训练样本集所有训练样本的总数;

其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特征的 训练样本总数除以第二训练样本集所有训练样本的总数;

步骤S4、针对于第一权限特征集合中的各种权限特征,计算出各种权限特征在第一训 练样本集的d值和在第二训练样本集的d值之比,取整后作为对应各种权限特征的初始权 值;

同时,针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限,然后 根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二权限 特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练样本 申请;

步骤S5、针对于第一训练样本集的各训练样本,扫描其第二权限特征向量,获取到各训 练样本针对于第一权限特征集合中各种权限特征的申请情况,从而对应生成各训练样本的 关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特 征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权 限特征与本身之间的关联系数;其中按照以下规则生成关联矩阵:针对第一权限特征集合 中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一种 权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联 系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样本 只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与 其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特征 的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵中 对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权限 特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联系 数为该种权限特征的初始权值;

步骤S6、将步骤S5中获取到的第一训练样本集中各训练样本的关联矩阵相加得到矩阵 和X,把矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:

Y=[PV 1,PV 2,…,PV n];

Y=[PV 1,PV 2,…,PV n]=[PPR(X)];

其中PV 1至PV n分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限 值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至 第n种权限特征的权限值构成的矩阵;

步骤S7、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试样 本,分析出其APK文件中所申请的权限,得到测试样本的权限特征向量,其中测试样本的权 限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限特 征是否被测试样本申请;然后根据测试样本的权限特征向量以及步骤S6中获取到的第一权 限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特征 的权重η:

η = T * Y Σ m = 1 n PV m ;

其中T为测试样本的权限特征向量,PV m为第一权限特征集合中第m种权限特征的权限 值;

步骤S8、将步骤S7得到的测试样本所申请的权限特征的权重η与判断因子k进行比较, 若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶意 软件。

2.根据权利要求1所述的基于权限特征的Android恶意软件检测方法,其特征在于,所 述步骤S8中判断因子k为0.25~0.35中的其中一个值。

3.根据权利要求1所述的基于权限特征的Android恶意软件检测方法,其特征在于,所 述步骤S2中,获取到训练样本的第一权限特征向量的具体过程如下:

步骤S21、通过开源Android静态分析工具Androguard分析训练样本的安装包APK:首先 将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入 到其初步分析文本中;

步骤S22、针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将 该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素 置为一个值,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析 文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被 申请的对应元素置为另一个值,表达该种权限特征未被该训练样本申请。

4.根据权利要求3所述的基于权限特征的Android恶意软件检测方法,其特征在于,所 述步骤S22中,针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将 该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素 置为二进制0,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步分析 文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是否被 申请的对应元素置为二进制0,表达该种权限特征未被该训练样本申请。

5.根据权利要求3所述的基于权限特征的Android恶意软件检测方法,其特征在于,所 述步骤S21中,通过Python程序批量化分析第一训练样本集和第二训练样本集中各训练样 本对应的各APK文件;所述步骤S22中,针对于各训练样本,通过Java程序工具对其初步分析 文本进行逐行扫描。

6.根据权利要求1所述的基于权限特征的Android恶意软件检测方法,其特征在于,所 述步骤S7中,得到测试样本的权限特征向量的具体过程如下:

步骤S71、通过开源Android静态分析工具Androguard分析测试样本的安装包APK:首先 将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表写入 到其初步分析文本中;

步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中 的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请 的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试样本申请;针对 于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量 中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被测试样 本申请。

7.根据权利要求6所述的基于权限特征的Android恶意软件检测方法,其特征在于,所 述步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集合中的 某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本申请的 对应元素置为二进制1,表达第一权限特征集合中的该种权限特征被测试样本申请;针对于 没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征向量中 表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被测试样本 申请。

8.一种基于权限特征的Android恶意软件检测系统,其特征在于,包括

训练样本集采集模块,用于获取一定数量的Android恶意软件训练样本构造第一训练 样本集;用于获取一定数量的Android非恶意软件训练样本构造第二训练样本集;

训练样本的第一权限特征向量提取模块,用于提取第一训练样本集和第二训练样本集 中的各训练样本的第一权限特征向量,具体为:针对于第一训练样本集和第二训练样本集 中的各训练样本,分析出各APK文件中所申请的权限,从而生成训练样本的第一权限特征向 量;其中第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被 训练样本申请;

权限特征选取模块,用于比较各种权限在第一训练样本集的d值以及在第二训练样本 集的d值,用于根据上述比较结果选取出在第一训练样本集的d值大于在第二训练样本集的 d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;其中各种权限特 征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除以第 一训练样本集所有训练样本的总数;其中各种权限特征在第二训练样本集的d值为:第二训 练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总数;

权限特征初始值计算模块,用于计算各种权限特征的初始权值,具体为:针对于第一权 限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训 练样本集的d值之比,作为对应各种权限特征的初始权值;

训练样本的第二权限特征向量提取模块,用于提取第一训练样本集各训练样本的第二 特征向量,具体为:针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权 限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的 第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该 训练样本申请;

关联矩阵生成模块,用于生成第一训练样本集的各训练样本的关联矩阵,具体过程如 下:针对于第一训练样本集的各训练样本,通过扫描其第二权限特征向量获取到训练样本 针对于第一权限特征集合中各种权限特征的申请情况,从而生成各训练样本的关联矩阵; 其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的 关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征与 本身之间的关联系数;其中针对第一权限特征集合中各种权值特征与其他另一种权限特 征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记 录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与 其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权 限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系 数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该 种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他 另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩 阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;

权限特征的权限值计算模块,用于计算第一权限特征集合中每种权限特征的权限值, 具体为:将第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,然后将矩阵和X经 过PPR算法后得到第一权限特征集合中每种权限特征的权限值:

Y=[PV 1,PV 2,…,PV n];

Y=[PV 1,PV 2,…,PV n]=[PPR(X)];

其中PV 1至PV n分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的权限 值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特征至 第n种权限特征的权限值构成的矩阵;

测试样本的权限特征向量提取模块,用于提取测试样本的权限特征向量,具体为针对 于测试样本分析出其APK文件中所申请的权限,从而得到测试样本的权限特征向量,其中测 试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中 一种权限特征是否被测试样本申请;

测试样本检测判据生成模块,用于根据测试样本的权限特征向量以及步骤S7中获取到 的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的 权限特征的权重η:

η = T * Y Σ m = 1 n PV m ;

其中T为测试样本的权限特征向量,PV m为第一权限特征集合中第m种权限特征的权限 值;

测试样本检测模块,用于将测试样本检测判据生成模块生成的测试样本所申请的权限 特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于判断因子 k,则将测试样本判断为Android恶意软件。

9.根据权利要求8所述的基于权限特征的Android恶意软件检测系统,其特征在于,所 述训练样本的第一权限特征向量提取模块包括训练样本的初步分析文本生成模块和训练 样本的权限特征向量形成模块,其中:

训练样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard 分析训练样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列 表,然后将对应权限列表写入到其初步分析文本中;

训练样本的权限特征向量生成模块,用于根据各训练样本的初步分析文件生成对应各 训练样本的第一权限特征向量,具体为,针对于各训练样本,逐行扫描其初步分析文件,若 扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该 训练样本申请的对应元素置为二进制0,表达该种权限特征被该训练样本申请;针对于没有 在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中 表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被该训练样 本申请。

10.根据权利要求8所述的基于权限特征的Android恶意软件检测系统,其特征在于,所 述测试样本的特征向量提取模块包括测试样本的初步分析文本生成模块和测试样本的权 限特征向量形成模块,其中:

测试样本的初步分析文本生成模块,用于通过开源Android静态分析工具Androguard 分析测试样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请的权限列 表,然后将对应权限列表写入到其初步分析文本中;

测试的权限特征向量生成模块,用于根据测试样本的初步分析文件生成对应测试样本 的权限特征向量,具体为,针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限 特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测 试样本申请的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试样本 申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权 限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征 未被测试样本申请。

说明书
技术领域

本发明涉及恶意软件的检测方法,特别涉及一种基于权限特征的Android恶意软 件检测方法及系统。

移动互联网的火热已经引领了新的互联网的浪潮,Android已成为了移动互联网 时代最流行的移动操作系统。Android流行的同时其本身的安全问题也日益凸显,比如安全 漏洞被频频利用、恶意应用数量呈爆炸式增长,用户隐私和财产面临着严重的安全威胁。因 此研究Android应用的安全性问题具有重要的学术和应用价值。Android恶意软件给用户的 日常使用带来了很大影响,常见问题有:骚扰电话和短信、手机运行慢或死机、无故消耗流 量、通知栏和弹窗广告、恶意扣费、手机内文件及数据被破坏、通讯录短信等个人信息泄露、 手机中毒或木马和账号信息被窃取等等。这些问题都是由于恶意软件的恶意行为导致,其 主要包括:a)通过劫持系统的短信和拨号,在后台自动拨打扣费号码或者发送扣费短信恶 意吸费;b)后台默默获取隐私信息,将隐私信息经由网络或短信外泄给团伙诱骗欺诈; c)通过消耗系统资源、锁定手机等方式影响用户使用,并通过破坏系统的权益来为恶意App 牟利;d)窃取隐私信息导致账号被盗及后续并发问题。

目前,典型的Android恶意代码检测技术主要有基于特征码的检测方式和基于行 为的检测方式,基于行为的检测方式主要有静态检测和动态检测两种方式。静态检测技术 主要通过反编译应用程序获得软件的组件,申请的权限,调用的API等信息,然后选择其中 的一种或几种作为特征,与恶意样本库中的样本进行对比从而判断该应用程序是否是恶意 的,但由于恶意样本的变种速度之快使得这种检测方式识别准确率不尽如人意

本发明的第一目的在于克服现有技术的缺点与不足,提供一种基于权限特征的 Android恶意软件检测方法,该方法大大提高了Android恶意软件的检测准确率。

本发明的第二目的在于提供一种基于权限特征的Android恶意软件检测系统。

本发明的第一目的通过下述技术方案实现:一种基于权限特征的Android恶意软 件检测方法,步骤如下:

步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一 定数量的Android非恶意软件训练样本构造第二训练样本集;

步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出对应 各APK文件中所申请的权限,从而生成训练样本的第一权限特征向量;其中各训练样本的第 一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被该训练样本 申请;

步骤S3、扫描第一训练样本集和第二训练样本集中各训练样本的第一权限特征向 量,计算各种权限特征在第一训练样本集的d值以及计算各种权限特征在第二训练样本集 的d值;然后针对每一权限特征,比较该权限特征在第一训练样本集的d值以及在第二训练 样本集的d值;最后从中选取出在第一训练样本集的d值大于在第二训练样本集的d值的权 限特征,由上述选取出来的各种权限特征构成第一权限特征集合;

其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特 征的训练样本总数除以第一训练样本集所有训练样本的总数;

其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特 征的训练样本总数除以第二训练样本集所有训练样本的总数;

步骤S4、针对于第一权限特征集合中的各种权限特征,计算出各种权限特征在第 一训练样本集的d值和在第二训练样本集的d值之比,取整后作为对应各种权限特征的初始 权值;

同时,针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限, 然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二 权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练 样本申请;

步骤S5、针对于第一训练样本集的各训练样本,扫描其第二权限特征向量,获取到 各训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而对应生成各训练样 本的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权 限特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各 种权限特征与本身之间的关联系数;其中按照以下规则生成关联矩阵:针对第一权限特征 集合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另 一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的 关联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练 样本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特 征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限 特征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩 阵中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种 权限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关 联系数为该种权限特征的初始权值;

步骤S6、将步骤S5中获取到的第一训练样本集中各训练样本的关联矩阵相加得到 矩阵和X,把矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:

Y=[PV1,PV2,…,PVn];

Y=[PV1,PV2,…,PVn]=[PPR(X)];

其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的 权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特 征至第n种权限特征的权限值构成的矩阵;

步骤S7、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试 样本,分析出其APK文件中所申请的权限,得到测试样本的权限特征向量,其中测试样本的 权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限 特征是否被测试样本申请;然后根据测试样本的权限特征向量以及步骤S6中获取到的第一 权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特 征的权重η:

其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的 权限值;

步骤S8、将步骤S7得到的测试样本所申请的权限特征的权重η与判断因子k进行比 较,若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶 意软件。

优选的,所述步骤S8中判断因子k为0.25~0.35中的其中一个值。

优选的,所述步骤S2中,获取到训练样本的第一权限特征向量的具体过程如下:

步骤S21、通过开源Android静态分析工具Androguard分析训练样本的安装包APK: 首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表 写入到其初步分析文本中;

步骤S22、针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征, 则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应 元素置为一个值,表达该种权限特征被该训练样本申请;针对于没有在该训练样本的初步 分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表达该种权限特征是 否被申请的对应元素置为另一个值,表达该种权限特征未被该训练样本申请。

更进一步的,所述步骤S22中,针对于各训练样本,逐行扫描其初步分析文件,若扫 描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训 练样本申请的对应元素置为二进制0,表达该种权限特征被该训练样本申请;针对于没有在 该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征向量中表 达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被该训练样本 申请。

更进一步的,所述步骤S21中,通过Python程序批量化分析第一训练样本集和第二 训练样本集中各训练样本对应的各APK文件;所述步骤S22中,针对于各训练样本,通过Java 程序工具对其初步分析文本进行逐行扫描。

优选的,所述步骤S7中,得到测试样本的权限特征向量的具体过程如下:

步骤S71、通过开源Android静态分析工具Androguard分析测试样本的安装包APK: 首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表 写入到其初步分析文本中;

步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集 合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本 申请的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试样本申请; 针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第一权限特征 向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限特征未被测 试样本申请。

更进一步的,所述步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到 第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征 是否被测试样本申请的对应元素置为二进制1,表达第一权限特征集合中的该种权限特征 被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样 本的第一权限特征向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该 种权限特征未被测试样本申请。

本发明的第二目的通过下述技术方案实现:一种基于权限特征的Android恶意软 件检测系统,包括

训练样本集采集模块,用于获取一定数量的Android恶意软件训练样本构造第一 训练样本集;用于获取一定数量的Android非恶意软件训练样本构造第二训练样本集;

训练样本的第一权限特征向量提取模块,用于提取第一训练样本集和第二训练样 本集中的各训练样本的第一权限特征向量,具体为:针对于第一训练样本集和第二训练样 本集中的各训练样本,分析出各APK文件中所申请的权限,从而生成训练样本的第一权限特 征向量;其中第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是 否被训练样本申请;

权限特征选取模块,用于比较各种权限在第一训练样本集的d值以及在第二训练 样本集的d值,用于根据上述比较结果选取出在第一训练样本集的d值大于在第二训练样本 集的d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;其中各种权 限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除 以第一训练样本集所有训练样本的总数;其中各种权限特征在第二训练样本集的d值为:第 二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总 数;

权限特征初始值计算模块,用于计算各种权限特征的初始权值,具体为:针对于第 一权限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第 二训练样本集的d值之比,作为对应各种权限特征的初始权值;

训练样本的第二权限特征向量提取模块,用于提取第一训练样本集各训练样本的 第二特征向量,具体为:针对于第一训练样本集的各训练样本,分析出其APK文件中所申请 的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样 本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否 被该训练样本申请;

关联矩阵生成模块,用于生成第一训练样本集的各训练样本的关联矩阵,具体过 程如下:针对于第一训练样本集的各训练样本,通过扫描其第二权限特征向量获取到训练 样本针对于第一权限特征集合中各种权限特征的申请情况,从而生成各训练样本的关联矩 阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间 的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征 与本身之间的关联系数;其中针对第一权限特征集合中各种权值特征与其他另一种权限特 征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记 录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与 其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权 限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系 数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该 种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他 另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩 阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;

权限特征的权限值计算模块,用于计算第一权限特征集合中每种权限特征的权限 值,具体为:将第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,然后将矩阵和X 经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:

Y=[PV1,PV2,…,PVn];

Y=[PV1,PV2,…,PVn]=[PPR(X)];

其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的 权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特 征至第n种权限特征的权限值构成的矩阵;

测试样本的权限特征向量提取模块,用于提取测试样本的权限特征向量,具体为 针对于测试样本分析出其APK文件中所申请的权限,从而得到测试样本的权限特征向量,其 中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中 其中一种权限特征是否被测试样本申请;

测试样本检测判据生成模块,用于根据测试样本的权限特征向量以及步骤S7中获 取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申 请的权限特征的权重η:

其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的 权限值;

测试样本检测模块,用于将测试样本检测判据生成模块生成的测试样本所申请的 权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于判断 因子k,则将测试样本判断为Android恶意软件。

优选的,所述训练样本的第一权限特征向量提取模块包括训练样本的初步分析文 本生成模块和训练样本的权限特征向量形成模块,其中:

训练样本的初步分析文本生成模块,用于通过开源Android静态分析工具 Androguard分析训练样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请 的权限列表,然后将对应权限列表写入到其初步分析文本中;

训练样本的权限特征向量生成模块,用于根据各训练样本的初步分析文件生成对 应各训练样本的第一权限特征向量,具体为,针对于各训练样本,逐行扫描其初步分析文 件,若扫描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是 否被该训练样本申请的对应元素置为二进制0,表达该种权限特征被该训练样本申请;针对 于没有在该训练样本的初步分析文件中扫描到的权限特征,将该训练样本的第一权限特征 向量中表达该种权限特征是否被申请的对应元素置为二进制0,表达该种权限特征未被该 训练样本申请。

优选的,所述测试样本的特征向量提取模块包括测试样本的初步分析文本生成模 块和测试样本的权限特征向量形成模块,其中:

测试样本的初步分析文本生成模块,用于通过开源Android静态分析工具 Androguard分析测试样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请 的权限列表,然后将对应权限列表写入到其初步分析文本中;

测试的权限特征向量生成模块,用于根据测试样本的初步分析文件生成对应测试 样本的权限特征向量,具体为,针对于测试样本,逐行扫描其初步分析文件,若扫描到第一 权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否 被测试样本申请的对应元素置为一个值,表达第一权限特征集合中的该种权限特征被测试 样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特征,将测试样本的第 一权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个值,表达该种权限 特征未被测试样本申请。

本发明相对于现有技术具有如下的优点及效果:

(1)本发明Android恶意软件检测方法首先构建训练样本集,包括由Android恶意 软件训练样本构造的第一训练样本集以及由Android非恶意软件训练样本构造的第二训练 样本集;然后提取出第一训练样本集和第二训练样本集中各训练样本的第一权限特征向 量;计算各种权限特征在第一训练样本集和第二训练样本集的d值,将在第一训练样本集的 d值大于在第二训练样本集的d值的权限特征挑选出来作为第一权限特征集合中的各种权 限特征;根据第一权限特征集合,生成第一训练样本集中各训练样本的第二权限特征向量, 并制定规则建立第一训练样本集中各训练样本的关联系数矩阵,其中各训练样本的关联系 数矩阵中各元素分别记录的是该训练样本中各特征权限之间的关联系数;接着将第一训练 样本集中各训练样本的关联矩阵求和后输入PPR算法,通过PPR算法获取到第一权限特征集 合中每种权限特征的权限值;获取待检测的Android软件作为测试样本,然后根据第一权限 特征集合,生成测试样本的权限特征向量,接着利用第一权限特征集合中每种权限特征的 权限值计算出测试样本所申请的权限特征的权重η,最后将η与判断因子k进行比较,根据比 较结果判断出测试样本是否为Android恶意软件。由上述可知,本发明制定规则建立每个训 练样本的关联矩阵,并且通过把各训练样本的关联矩阵相加得到的和输入PPR算法获取到 第一权限特征集合中各权限特征的权限值,从而获取到测试样本所申请的权限特征的权重 η,最后通过测试样本所申请的权限特征的权重η判断出测试样本是否为Android恶意软件, 大大提高了Android恶意软件的检测准确率。

(2)本发明Android恶意软件检测方法中,根据各种权限特征在第一训练样本集和 第二训练样本集的d值,将在第一训练样本集的d值大于在第二训练样本集的d值的权限特 征挑选出来作为第一权限特征集合,由于某种权限特征在某一训练样本集的d值指的是:某 一训练样本集中申请该权限特征的训练样本总数除以某一训练样本集所有训练样本的总 数,故d值反映的是各种权限特征被训练样本集各训练样本申请的概率,因此上述挑选的第 一权限特征集合中的各种权限特征,其被Android恶意软件训练样本申请的概率大于被 Android非恶意软件训练样本申请的概率,故第一权限特征集合中的各种权限特征更能够 反应Android恶意软件的特点;针对于第一训练样本集的各训练样本,根据第一权限特征集 合得到维度更低的第二权限特征向量,进而通过扫描第一训练样本集中各训练样本的第二 权限特征向量得到各训练样本的关联矩阵,相比未挑选之前,第一权限特征集合中的权限 特征种类大大减少并且更加能够反应Android恶意软件的特点,因此通过挑选出的第一权 限特征集合形成训练样本的第二权限特征向量能够更加快速的获取到更加合适的关联矩 阵,另外针对于测试样本,通过第一权限特征集合提取出测试的权限特征向量,该权限特征 向量仅仅包括表达第一权限特征集合中各种权限特征是否被申请的各元素,因此大大降低 了测试样本的权限特征向量的维度,加快了测试样本特征向量的提取。

(3)本发明Android恶意软件检测方法中,在获取训练样本的第一权限特征向量 时,针对于各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样 本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为1,通 过1表达该种权限特征被该训练样本申请;针对于没有被训练样本申请的权限特征,将第一 权限特征向量中表达该种权限特征是否被申请的对应元素置为0,通过0表达该种权限特征 未被对应训练样本申请;可见通过本发明上述方法获取到的训练样本的第一权限特征向量 各元素为1或0,因此训练样本的第一权限特征向量非常简单,更便于后期使用。同样的,针 对于测试样本的权限特征向量,本发明方法获取到测试样本的权限特征向量中各元素也是 为1或0,大大简化了测试样本的权限特征向量。

图1是本发明Android恶意软件检测方法的流程图。

图2是本发明Android恶意软件检测方法权限特征选取的流程图。

图3是本发明Android恶意软件检测系统的结构框图。

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。

实施例

本实施例公开了一种基于权限特征的Android恶意软件检测方法,如图1所示,步 骤如下:

步骤S1、获取一定数量的Android恶意软件训练样本构造第一训练样本集,获取一 定数量的Android非恶意软件训练样本构造第二训练样本集;

步骤S2、针对于第一训练样本集和第二训练样本集中的各训练样本,分析出对应 各APK文件中所申请的权限,从而生成各训练样本的第一权限特征向量;其中各训练样本的 第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是否被训练样本 申请;

在本实施例中,上述获取到训练样本的第一权限特征向量的具体过程如下:

步骤S21、通过开源Android静态分析工具Androguard分析训练样本的安装包APK: 首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表 写入到其初步分析文本中;其中在本实施例中,通过Python程序批量化分析第一训练样本 集和第二训练样本集中各训练样本对应的各APK文件;

步骤S22、针对于各训练样本,通过Java程序工具逐行扫描其初步分析文件,若扫 描到某种权限特征,则将该训练样本的第一权限特征向量中表达该种权限特征是否被该训 练样本申请的对应元素置为一个值,在本实施例中,该值可以为二进制1,表达该种权限特 征被该训练样本申请;对于没有在该训练样本的初步分析文件中扫描到的权限特征,将将 该训练样本的第一权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素 置为另一个值,在本实施例中,该值可以为二进制0,表达该种权限特征未被该申请。例如训 练样本第一权限特征向量中总共包括51个元素,51个元素分别对应表达51种权限特征是否 被训练样本申请,若某训练样本申请了51种权限特征中的第1至5、8至11、16、18、19、26、33、 34、40、43、46、49至51种权限特征,则得到该训练样本的第一权限特征向量如下:

111110011110000101100000010000001100000100100100111;

步骤S3、扫描第一训练样本集中各训练样本的第一权限特征向量,计算各种权限 特征在第一训练样本集的d值;扫描第二训练样本集中各训练样本的第一权限特征向量,计 算各种权限特征在第二训练样本集的d值;然后针对每一权限特征,比较该权限特征在第一 训练样本集的d值以及在第二训练样本集的d值;最后从中选取出在第一训练样本集的d值 大于在第二训练样本集的d值的权限特征,如图2所示,由上述选取出的各种权限特征构成 第一权限特征集合;例如某种权限特征在第一训练样本集的d值为0.992,在第二训练样本 集的d值为0.949,则该权限特征将被选取出来。

其中各种权限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特 征的训练样本总数除以第一训练样本集所有训练样本的总数,在本实施例中,上述除法得 到的值保留3位小数。比如第一训练样本集总共包括1000个训练样本,即1000个Android恶 意软件,针对于某种权限特征,若第一训练样本集中有900个训练样本申请该种权限特征, 则该种权限特征在第一训练样本集的d值为910除以1000,即为0.91。其中在本实施例中,通 过扫描各训练样本的第一权限特征向量获取到其是否申请某种权限特征,若某训练样本Z 的第一权限特征向量中表达某种权限特征z是否被申请的元素为1,则表示该训练样本Z申 请了该种权限特征z。

其中各种权限特征在第二训练样本集的d值为:第二训练样本集中申请该权限特 征的训练样本总数除以第二训练样本集所有训练样本的总数,在本实施例中,上述除法得 到的值保留3位小数。其中第二训练样本集中申请某种权限特征的训练样本总数的获取方 法和上述第一训练样本集中申请某种权限特征的训练样本总数的获取方法相同。

步骤S4、针对第一权限特征集合中的各种权限特征,即本步骤S3中选取出来的各 种权限特征,计算出各种权限特征在第一训练样本集的d值和在第二训练样本集的d值之 比,取整后作为对应各种权限特征的初始权值;例如第一权限特征集合中的某种权限特征 在第一训练样本集的d值为0.992,在第二训练样本集的d值为0.949,那么该权限特征的初 始权值为1。

同时,针对于第一训练样本集的各训练样本,分析出其APK文件中所申请的权限, 然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样本的第二 权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否被该训练 样本申请;

步骤S5、针对于第一训练样本集的各训练样本,扫描其第二权限特征向量,获取到 训练样本针对于第一权限特征集合中各种权限特征的申请情况,从而对应生成各训练样本 的关联矩阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限 特征之间的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种 权限特征与本身之间的关联系数;其中按照以下规则生成关联矩阵:针对第一权限特征集 合中各种权值特征与其他另一种权限特征,若训练样本同时申请该种权限特征和其他另一 种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关 联系数为该种权限特征的初始权值与其他另一种权限特征的初始权值相加之和,若训练样 本只申请到该种权限或其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征 与其他另一种权限特征之间的关联系数为该种权限特征的初始权值或其他另一种权限特 征的初始权值,若训练样本既未申请该种权限也未申请其他另一种权限特征,则关联矩阵 中对应元素记录的该种权值特征与其他另一权限特征之间的关联系数为零;针对于各种权 限特征与本身之间的关联系数,关联矩阵中对应元素记录该种权限特征与本身之间的关联 系数为该种权限特征的初始权值;

假设本实施中步骤S3中选取出来13种权限特征为第一权限特征集合,即第一权限 特征集合中包括13种权限特征,假如第1至13种权限特征分别为A至M,步骤S4中计算得到第 1至13种权限特征的初始权值分别为WA~WM;本实施例上述步骤在构建第一训练样本集的某 训练样本的关联矩阵时,扫描该训练样本的第二权限特征向量,获取到该训练样本针对于 第一权限特征集合中13种权限特征的申请情况,通过这13种权限特征的申请情况构建得到 关联矩阵,其中关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间的关联 系数;比如针对于第x种权限特征和第y种权限特征,将第x种权限特征和第y种权限特征的 关联系数置于该训练样本的关联矩阵第x行第y列,x∈[A~B],y∈[A~B];其中针对于第x 种权限和第y种权限特征,如果训练样本同时申请第x种权限特征和第y种权限特征,则训练 样本中第x种权限特征和第y种权限特征的关联系数为Wx+Wy,关联矩阵中对应元素即第x行 第y列元素为Wx+Wy;若训练样本只申请第x种权限特征或第y种权限特征,则训练样本中第x 种权限特征和第y种权限特征的关联系数对应为Wx或Wy,关联矩阵中对应元素即第x行第y列 元素为Wx或Wy;若训练样本既未申请第x种权限特征也未申请第y种权限特征,则训练样本中 第x种权限特征和第y种权限特征的关联系数为0,关联矩阵中对应元素即第x行第y列元素 为0;其中关联矩阵中第x行第x列的元素为第x种权限特征的初始权值Wx。例如本实施例中, 步骤S4中计算得到第1至13种权限特征的初始权值WA~WM如下:

{WA,WB,WC,WD,WE,WF,WG,WH,WI,WJ,WK,WL,WM}={1,1,3,3,5,2,16,16,3,2,1,3,1}, 则扫描某一训练样本第二权限特征向量后,构建得到某一训练样本的关联矩阵如下:

步骤S6、将步骤S5中获取到的第一训练样本集中各训练样本的关联矩阵相加得到 矩阵和X,把矩阵和X经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:

Y=[PV1,PV2,…,PVn];

Y=[PV1,PV2,…,PVn]=[PPR(X)];

其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的 权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特 征至第n种权限特征的权限值构成的矩阵;如果步骤S3中选取出来13种权限特征,那么本实 施例中此次n即为13。

步骤S7、将需要检测其是否为恶意软件的Android软件作为测试样本,针对于测试 样本,分析出其APK文件中所申请的权限,得到测试样本的权限特征向量,其中测试样本的 权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中其中一种权限 特征是否被测试样本申请;然后根据测试样本的权限特征向量以及步骤S6中获取到的第一 权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本所申请的权限特 征的权重η:

其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的 权限值;

其中在本步骤中,得到测试样本的权限特征向量的具体过程如下:

步骤S71、通过开源Android静态分析工具Androguard分析测试样本的安装包APK: 首先将APK文件解析成一个对象,接着生成APK文件申请的权限列表,然后将对应权限列表 写入到其初步分析文本中;

步骤S72、针对于测试样本,逐行扫描其初步分析文件,若扫描到第一权限特征集 合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征是否被测试样本 申请的对应元素置为一个值,在本实施例中该值为二进制1,表达第一权限特征集合中的该 种权限特征被测试样本申请;针对于没有在测试样本的初步分析文件中扫描到的权限特 征,将测试样本的权限特征向量中表达该种权限特征是否被申请的对应元素置为另一个 值,在本实施例中该值为二进制0,表达该种权限特征未被对应测试样本申请。

步骤S8、将步骤S7得到的测试样本所申请的权限特征的权重η与判断因子k进行比 较,若测试样本所申请的权限特征的权重η大于判断因子k,则将测试样本判断为Android恶 意软件。在本实施例中,判断因子k可选择0.25~0.35中的其中一个值。

本实施例还公开了一种用于实现上述方法的基于权限特征的Android恶意软件检 测系统,如图3所示,包括

训练样本集采集模块,用于获取一定数量的Android恶意软件训练样本构造第一 训练样本集;用于获取一定数量的Android非恶意软件训练样本构造第二训练样本集;

训练样本的第一权限特征向量提取模块,用于提取第一训练样本集和第二训练样 本集中的各训练样本的第一权限特征向量,具体为:针对于第一训练样本集和第二训练样 本集中的各训练样本,分析出各APK文件中所申请的权限,从而生成训练样本的第一权限特 征向量;其中第一权限特征向量由多个元素组成,其中一个元素对应表达一种权限特征是 否被训练样本申请;

权限特征选取模块,用于比较各种权限在第一训练样本集的d值以及在第二训练 样本集的d值,用于根据上述比较结果选取出在第一训练样本集的d值大于在第二训练样本 集的d值的权限特征,由上述选取出来的各种权限特征构成第一权限特征集合;其中各种权 限特征在第一训练样本集的d值为:第一训练样本集中申请该权限特征的训练样本总数除 以第一训练样本集所有训练样本的总数;其中各种权限特征在第二训练样本集的d值为:第 二训练样本集中申请该权限特征的训练样本总数除以第二训练样本集所有训练样本的总 数;

权限特征初始值计算模块,用于计算各种权限特征的初始权值,具体为:针对于第 一权限特征集合中的各种权限特征,计算出各种权限特征在第一训练样本集的d值和在第 二训练样本集的d值之比,作为对应各种权限特征的初始权值;

训练样本的第二权限特征向量提取模块,用于提取第一训练样本集各训练样本的 第二特征向量,具体为:针对于第一训练样本集的各训练样本,分析出其APK文件中所申请 的权限,然后根据第一权限特征集合得到该训练样本的第二权限特征向量,其中该训练样 本的第二权限特征向量的各元素对应表达的是第一权限特征集合中的各种权限特征是否 被该训练样本申请;

关联矩阵生成模块,用于生成第一训练样本集的各训练样本的关联矩阵,具体过 程如下:针对于第一训练样本集的各训练样本,通过扫描其第二权限特征向量获取到训练 样本针对于第一权限特征集合中各种权限特征的申请情况,从而生成各训练样本的关联矩 阵;其中各训练样本的关联矩阵中各元素对应记录第一权限特征集合中各种权限特征之间 的关联系数,包括各种权限特征与其他另一种权限特征之间的关联系数以及各种权限特征 与本身之间的关联系数;其中针对第一权限特征集合中各种权值特征与其他另一种权限特 征,若训练样本同时申请该种权限特征和其他另一种权限特征,则关联矩阵中对应元素记 录的该种权值特征与其他另一种权限特征之间的关联系数为该种权限特征的初始权值与 其他另一种权限特征的初始权值相加之和,若训练样本只申请到该种权限或其他另一种权 限特征,则关联矩阵中对应元素记录的该种权值特征与其他另一种权限特征之间的关联系 数为该种权限特征的初始权值或其他另一种权限特征的初始权值,若训练样本既未申请该 种权限也未申请其他另一种权限特征,则关联矩阵中对应元素记录的该种权值特征与其他 另一权限特征之间的关联系数为零;针对于各种权限特征与本身之间的关联系数,关联矩 阵中对应元素记录该种权限特征与本身之间的关联系数为该种权限特征的初始权值;

权限特征的权限值计算模块,用于计算第一权限特征集合中每种权限特征的权限 值,具体为:将第一训练样本集中各训练样本的关联矩阵相加得到矩阵和X,然后将矩阵和X 经过PPR算法后得到第一权限特征集合中每种权限特征的权限值:

Y=[PV1,PV2,…,PVn];

Y=[PV1,PV2,…,PVn]=[PPR(X)];

其中PV1至PVn分别对应为第一权限特征集合中第1种权限特征至第n种权限特征的 权限值,n为第一权限特征集合中权限特征的种类数;Y为第一权限特征集合中第1种权限特 征至第n种权限特征的权限值构成的矩阵;

测试样本的权限特征向量提取模块,用于提取测试样本的权限特征向量,具体为 针对于测试样本分析出其APK文件中所申请的权限,从而得到测试样本的权限特征向量,其 中测试样本的权限特征向量由多个元素组成,其中一个元素对应表达第一权限特征集合中 其中一种权限特征是否被测试样本申请;

测试样本检测判据生成模块,用于根据测试样本的权限特征向量以及步骤S7中获 取到的第一权限特征集合中每种权限特征的权限值,通过以下公式计算得到测试样本检测 判据,即测试样本所申请的权限特征的权重η:

其中T为测试样本的权限特征向量,PVm为第一权限特征集合中第m种权限特征的 权限值;

测试样本检测模块,用于将测试样本检测判据生成模块生成的测试样本所申请的 权限特征的权重η与判断因子k进行比较,若测试样本所申请的权限特征的权重η大于因子 k,则将测试样本判断为Android恶意软件。

在本实施例中,上述训练样本的第一权限特征向量提取模块包括训练样本的初步 分析文本生成模块和训练样本的权限特征向量形成模块,其中:

训练样本的初步分析文本生成模块,用于通过开源Android静态分析工具 Androguard分析训练样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请 的权限列表,然后将对应权限列表写入到其初步分析文本中;

训练样本的权限特征向量生成模块,用于根据各训练样本的初步分析文件生成对 应各训练样本的第一权限特征向量,具体为,针对于第一训练样本集和第二训练样本集中 的各训练样本,逐行扫描其初步分析文件,若扫描到某种权限特征,则将该训练样本的第一 权限特征向量中表达该种权限特征是否被该训练样本申请的对应元素置为一个值,在本实 施例中该值可以为二进制1,表达该种权限特征被该训练样本申请;针对于没有在训练样本 的初步分析文件中扫描到的权限特征,将训练样本的第一权限特征向量中表达该种权限特 征是否被申请的对应元素置为另一个值,在本实施例中该值可以为二进制0,表达该种权限 特征未被对应训练样本申请。

本实施例上述测试样本的特征向量提取模块包括测试样本的初步分析文本生成 模块和测试样本的权限特征向量形成模块,其中:

测试样本的初步分析文本生成模块,用于通过开源Android静态分析工具 Androguard分析测试样本的安装包APK,将APK文件解析成一个对象,接着生成APK文件申请 的权限列表,然后将对应权限列表写入到其初步分析文本中;

测试样本的权限特征向量生成模块,用于根据测试样本的初步分析文件生成对应 测试样本的权限特征向量,具体为,针对于测试样本,逐行扫描其初步分析文件,若扫描到 第一权限特征集合中的某种权限特征,则将测试样本的权限特征向量中表达该种权限特征 是否被测试样本申请的对应元素置为一个值,在本实施例中,该值可以为二进制1,表达第 一权限特征集合中的该种权限特征被测试样本申请;针对于没有在测试样本的初步分析文 件中扫描到的权限特征,将测试样本的权限特征向量中表达该种权限特征是否被申请的对 应元素置为另一个值,在本实施例中,该值可以为二进制0,表达该种权限特征未被测试样 本申请。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的 限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化, 均应为等效的置换方式,都包含在本发明的保护范围之内。

本文发布于:2024-09-25 18:27:02,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/86841.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议