计算机系统应用  2021, Vol. 30 Issue (1): 114-121   PDF    
基于textCNN模型的Android恶意程序检测
张雄冠, 邵培南     
中国电子科技集团公司第三十二研究所, 上海 201808
摘要:针对当前Android恶意程序检测方法对未知应用程序检测能力不足的问题, 提出了一种基于textCNN神经网络模型的Android恶意程序检测方法. 该方法使用多种触发机制从不同层面上诱导激发程序潜在的恶意行为; 针对不同层面上的函数调用, 采用特定的hook技术对程序行为进行采集; 针对采集到的行为日志, 使用fastText算法来提取词向量; 最后使用textCNN模型根据行为日志对Android程序进行检测与识别. 实验结果表明, 该方法对Android恶意程序检测的平均准确率达到了93.3%, 验证了该方法对Android恶意程序检测具有较高的有效性与正确性.
关键词: Android系统    恶意程序检测    行为触发    hook技术    fastText模型    textCNN模型    
Android Malware Detection Based on textCNN Model
ZHANG Xiong-Guan, SHAO Pei-Nan     
The 32nd Research Institute of China Electronics Technology Group Corporation, Shanghai 201808, China
Abstract: Aiming at the problem that the current Android malware detection method has insufficient ability to detect unknown applications, this study proposes an Android malware detection method based on the textCNN neural network model. This method uses a variety of trigger mechanisms to induce the potential malicious behavior of the application from different levels. For function calls at different levels, the specific hook technology is used to collect the application behavior. For the collected behavior logs, the fastText algorithm is used to extract word vectors. Finally, the textCNN model is used to detect and identify Android applications based on behavior logs. Experimental results show that the average accuracy of the method for detecting Android malicious applications reaches 93.3%, which verifies that the method has high effectiveness and correctness for detecting Android malwares.
Key words: Android system     malicious program detection     behavior trigger     hook technology     fastText model     textCNN model    

近10年来, 伴随着互联网技术的迅猛发展, 以及智能移动终端的普及, 传统的计算机软件也开始向基于智能终端的应用市场转移. 根据360互联网安全中心发布的《2019年手机安全状况报告》展示[1], 2019年截获的新增Android恶意程序样本约为180.9万个, 平均每天截获的新增恶意程序样本个数约为0.5万个. 观察新增样本的类型, 还是以恶意扣费、资费消耗和隐私窃取这3种类型为主. 由此可见, Android操作系统的安全形势依然刻不容缓, 为了减少恶意程序对用户造成的损失, Android恶意程序检测也就成为一个值得深入研究的课题.

目前, Android恶意程序检测技术主要分成两种: 基于签名的检测技术[2]和基于行为的检测技术. 基于签名的检测技术实际上利用了模式匹配的思想, 使用这种方法进行检测需要对比已知的恶意代码签名库, 因此这种方法无法识别未知的恶意程序. 而基于行为的检测技术因为不需要依赖签名的特性逐渐成为目前研究与应用的主流方法之一. 基于行为的检测技术又可依据是否需要实际运行目标程序进一步分为静态行为分析方法和动态行为分析方法.

静态行为分析法是目前应用相对广泛的恶意代码检测方法. 其优势在于可以直接利用反编译技术提取代码本身的特征, 不必在指定检测环境下运行代码, 从而能够在应用安装前完成分析. 文献[3]就提出了一种组合静态行为分析方法, 该方法使用API调用、API时间序列及API使用频率作为3种静态特征, 再结合C4.5、DNN、LSTM三种模型进行训练, 最后采用投票法确定测试样本的结果. 尽管应用广泛, 但静态行为分析法还是具有一定的局限性. 随着互联网安全技术的提高, 越来越多的Android应用为了抵抗未知的反编译分析而采用了代码保护技术. 与此同时, 恶意程序也在不断地进化, 比如采用代码混淆技术来隐藏和加密自身的恶意代码. 面对这样的情况, 使用静态行为分析技术的检测效率也是越来越低.

动态行为分析法则是要求在沙箱或隔离环境中安装并运行程序, 这样做的目的是尽可能监控程序执行过程中所产生的行为, 并判断是否存在恶意行为. 这种方法不需要反编译目标程序, 且不受代码混淆技术的影响, 因此具有较高的检测效率. 目前, 动态行为分析法从原理上可以分为以下两类.

第1类是基于污点跟踪技术[4]的分析方法, 这类方法首先标记程序对资源数据的访问范围, 然后依据程序对被标记的污点数据的使用情况来判断该程序的行为是否具有合法性. 采用污点跟踪技术的检测方法可以有效地识别出恶意程序所产生的隐私泄露、数据篡改甚至漏洞利用等问题. 文献[5]介绍了一个基于污点追踪技术的恶意软件数据流分析模型TaintART, 该模型采用多级污点分析技术把污点标签存储在寄存器中, 从而减少污染标签的存储量, 可以改善传统污点分析效率较低的问题. 尽管基于污点跟踪技术的检测方法能够更细粒度地分析恶意程序的行为属性, 但是这种分析通常只能在Android虚拟机层进行, 因而无法检测恶意程序在其他层(例如Native层)存在的恶意行为.

第2类则是基于系统函数调用情况的分析方法, 这类方法主要是通过检测程序对系统函数的调用行为来判断程序是否具有恶意性. 恶意程序往往需要利用系统提供的函数接口来实现其恶意行为, 因此这类方法可以通过分析程序的系统函数调用情况来识别恶意程序. 文献[6]就介绍了一种监控目标软件对Android Native层系统函数和框架层API的调用情况的方法, 然后通过分析函数的调用序列及调用函数所传递的参数来检测恶意软件.

随着机器学习技术的日渐成熟, 将机器学习算法应用到Android恶意代码检测中也逐渐成为了研究的主流趋势. 文献[7]就提出了一种基于机器学习的动态监测框架用来监控软件行为, 并通过实验分别对SVM、k近邻等多种机器学习算法进行了评价. 文献[8]的研究则是采用随机输入和人工交互输入来提取Android系统调用, 并使用两种特征选择方法来共同构建特征矩阵, 最后使用RandomForest、RotationForest及AdaBoost三种机器学习模型分别进行实验. 尽管目前机器学习在Android恶意代码检测的应用中取得了较好的效果, 但是其面对新增的、变种的恶意软件的检测能力依然有待提高. 同时基于传统机器学习的方法往往需要手动工程来判断一个文件的行为是否具有恶意, 但手动工程一般不仅时间消耗较长, 而且需要人为确定特征、参数、变量等.

针对静态行为分析方法与基于污点跟踪技术的分析方法在Android代码行为特征提取上的不足, 以及传统机器学习方法在恶意程序检测中存在的问题, 本文提出了一种在动态行为分析的基础上利用textCNN神经网络模型的Android恶意程序检测方法. 本方法的主要思路是首先采用多种触发机制相结合的行为诱导方法来触发Android程序潜在的恶意行为; 接着通过hook技术挂钩关键函数接口, 进而对程序的各种行为数据进行采集并构建行为日志; 然后基于行为日志提取行为特征数据作为模型输入; 最后使用textCNN神经网络对行为数据集进行训练、参数优化得到最终的分类模型, 并通过实验与传统机器学习方法SVM、RandomForest以及传统循环神经网络进行比较, 证明了本方法具有较好的检测效果.

1 动态行为采集方法

任何Android程序所产生的行为实际上都具有特定的行为模式, 即这些行为可以分解为由原子行为组成的时间序列. 而这些原子行为往往需要调用系统提供的函数接口来实现, 因此可以采用基于系统函数调用的动态行为分析方法从程序对Android框架层API和Native层函数的调用情况中提取行为特征, 再通过对比恶意程序的行为来判断程序的合法性. 基于这个原理, 本文提出了一种以监测系统函数调用为基础的动态行为采集方法, 该方法主要包含两个模块: 行为触发模块和行为采集模块. 行为触发模块的作用是采用多种触发机制尽可能多地触发程序的行为, 使得采集模块可以尽可能全面地采集到软件的所有行为数据. 行为采集模块的作用是通过hook技术来监控并记录程序对Android系统函数的调用情况以形成行为日志.

1.1 行为触发模块

已知动态行为检测方法是在沙箱或隔离环境中运行程序, 其中第一个关键的步骤就是要能够触发程序的行为. 倘若无法触发恶意程序的全部行为, 则后续的行为采集模块很可能就无法提取到有效的恶意行为数据, 继而一定会影响检测模型最后的检测效率. 因此, 为了提高程序行为触发的覆盖率, 首先需要明确的是被触发的行为所发生在Android系统中的层面, 主要包含以下3类: (1) 系统层面, 当系统层面的事件(例如开机、连接网络等)执行后会立即触发恶意程序的恶意行为, 比如当系统接入互联网后, 恶意程序会开始传输系统中隐私数据. (2) Service层面, 许多恶意程序会将其恶意行为隐藏在后台服务中, 这样就可以在用户未知的情况下执行操作. (3) UI及Activity层面, 当用户对恶意程序的UI进行操作时, 往往就会触发恶意的Activity活动. 针对不同系统层面的行为需要采取不同的触发机制, 具体的流程与框架如图1所示.

本模块通过使用Android模拟器模拟各种系统事件发生的方式来触发程序系统层面的恶意行为. 已知在Android系统中, 软件若要监听系统事件就必须在Manifest文件中注册广播组件. 因此本模块通过解析目标程序的Manifest文件来获取已注册的广播组件信息, 然后利用ADB调试桥与telnet远程控制命令在模拟器中模拟广播组件相对应的各种事件, 从而触发程序系统层面相对应的行为.

图 1 行为触发模块框架流程图

针对程序在Service层面的恶意行为, 本模块采用启动所有Service事务的方式来触发潜在该层面的恶意行为. 因为任何应用想要在Android系统中使用Service事务就必须在Manifest的文件中注册Service组件, 所以本模块通过解析目标程序的Manifest文件来获取已注册的Service组件, 然后利用ADB工具启动这些Service事务, 进而触发执行在这些Service中的恶意行为.

针对UI及Activity层面的恶意行为, 本模块所采用的方法相对复杂一些. 首先, 通过静态分析目标程序来获取软件中Activity之间的跳转路径信息; 接着, 针对每一个Activity, 在启动之后利用UI获取部件提取当前Activity的UI层次信息; 然后, 本模块会利用系统自动化测试工具MonkeyRunner[9]针对这些UI信息来模拟各种UI事件触发程序的行为; 当遍历完当前Activity的所有UI元素后, 即可按照Activity的跳转路径信息继续下一个Activity的遍历.

1.2 行为采集模块

考虑到目前Android平台的应用软件都会使用混淆、加壳技术来保护自身的程序代码, 因此本模块采用了一种基于动态分析的多层次的行为数据提取方法以应对该问题. 本模块所采用的方法主要以Android逆向技术和Android安全框架为理论基础, 分别对Android的应用框架层和Native层的程序行为进行采集.

针对Android应用框架层的行为数据, 本模块主要通过Android注入技术以及Java hook技术进行采集的. 已知Android系统一般采用虚拟机对应用层的软件程序进行隔离和管理, 其中4.4版本之前采用的是Dalvik虚拟机, 而4.4版本之后采用的是Android Runtime. 在Dalvik虚拟机进行Hook的原理是: 首先将虚拟机里面的Java方法的Method标识字段改为nativeMethod; 接着自己编写一个Native方法, 在这个Native方法中, 再自定义一个Java方法, 并在这个方法里调用了原方法; 然后在调用前后分别通过注入技术插入钩子, 从而可以记录原方法的调用情况了; 最后把原Java方法的nativeFunc字段指向这个Native方法. 当原方法被调用时, 首先会调用到自定义的Native方法, 在调用过程中, 原函数的调用数据就被采集. 对于Android Runtime进行hook的原理实际上是类似的, 已知Java层的每一个方法在Android Runtime实现中都对应一个ArtMethod结构体, 只要把原方法的结构体内容通过注入方式替换为新的结构体内容, 当然原方法被调用的时候, 真正执行的就是注入的新方法的指令. 为了兼容不同版本的Android虚拟机, 本模块采用了同时支持Dalvik虚拟机和ART虚拟机的Xposed[10]框架对Android应用框架层API进行hook工作.

对于Android Native层的行为数据, 本模块则采用基于Inline hook[11]的动态注入技术进行采集. 对比基于全局偏移表的hook方法, Inline hook的优势在于不会受到表的限制, 能够修改重写内存中任意一处的指令, 从而实现对系统函数的挂钩. Inline Hook的实现原理是首先获得被hook系统函数的入口地址, 然后在入口地址处插入强制跳转指令, 使进程跳转到特定函数中, 在该函数中执行监听并记录程序的行为数据, 从而就实现了对Android底层接口函数调用情况的监测.

当目标程序的一系列操作行为被成功触发之后, 各种操作行为必然依靠应用框架层或系统Native层的函数接口来实现, 此时行为采集模块就可以利用上述方法对函数接口的调用情况进行监测与记录, 根据记录结果即可生成程序的行为日志. 本实验所生成的行为日志的条目及相关含义如表1所示.

表 1 目标程序行为日志条目说明

2 基于textCNN的检测框架

卷积神经网络CNN曾被广泛应用于计算机视觉领域, 随着深度学习研究的不断深入, 不少学者也开始使用CNN模型来处理自然语言处理问题. textCNN[12]即是由Yoon Kim提出的一种用于处理文本分类问题的卷积神经网络模型. textCNN的主要思想是使用多个通道以及多个不同大小的卷积核, 并通过一维卷积的方式提取词向量矩阵的特征, 然后使用最大池化层从特征矩阵选出每个通道中的最大值, 与其他通道的最大值进行拼接, 组合成最终的特征向量, 最后通过全连接层计算分类的概率. 经过动态行为触发模块和采集模块后, 程序的行为数据实际上转换为了文本数据, 因此可以采用textCNN模型来进行处理.

2.1 嵌入层预处理文本数据

对于文本类数据, 首先需要将自然语言数值化, 以方便后续处理. 对于动态行为日志文本, 其中每一行的函数调用记录代表一个动态行为, 本文将每一行视为一个行为词汇, 然后分别对每个词汇构建相应的词向量. 将文本中的词汇表征成词向量最简单的方式就是采用one-hot编码方法, 但是这种方法也存在比较明显的缺点, 比如生成的向量长度过大以及无法准确表达词汇之间的相似关系. 而textCNN模型提供一个隐藏的嵌入层, 可以将one-hot向量投影到低维空间里, 在指定维度中编码语义特征. 本文在嵌入层采用的向量表示方法为fastText[13]. fastText实际上是Word2Vec中跳字模型[14]的一种改进, 使用子词嵌入的方法将构词信息引入到了模型中.

在fastText中, 往往使用子词集合来表示中心词, 假设一个中心词w, 将其长度在一定范围内的子词及特殊子词的并集记为Gw. 已知fastText中词典由所有词的子词集合的并集构成, 假设w的子词y在词典中的向量表示为 ${{\textit{z}}_y} $ , 则中心词的向量vw就表示成:

${{v}_w} = \sum\limits_{y \in {G_w}} {{{{\textit{z}}}_y}} $ (1)

对比跳字模型, fastText训练的词向量可以更加准确地描述动态行为词汇之间相关性. 当在检测过程中即便遇到词典中未曾出现的行为词汇, fastText模型也可以从与其结构类似的其他词汇中获得对该词汇更好的向量表示.

2.2 使用textCNN对数据进行分类

textCNN模型的核心结构是卷积神经网络, 其基本结构包括输入层、卷积层、池化层、全连接层和输出层. 卷积神经网络用于行为分类的模型结构图[15]图2所示.

图 2 textCNN行为分类模型图

图2中可以看到, 在textCNN模型的卷积层, 卷积核的宽度与词向量的维度是一致的, 表明模型在提取特征的时候, 将行为词汇作为日志文本的最小粒度. 在Android动态行为日志中, 往往恶意行为是由多个连续的动态行为词汇组成, 因此可以通过设置卷积核的高度来提取日志中相邻行为词汇的关联性, 不仅考虑了动态行为文本中的词义而且兼顾了词序以及上下文. 图2中卷积核的高度分别设置为2、3、4, 对应提取文本中的2-gram、3-gram、4-gram特征. 对比传统机器学习中的n-gram模型, 使用卷积核的优势在于, 只考虑连续词汇的组成, 不会使训练集词表爆炸式增长.

在卷积层中模型使用了不同大小的卷积核, 卷积得到的feature maps会具有不同的向量维度. 因此在池化层中, 可以使用1-max-pooling方法通过提取每个feature map中的最大值来表征该特征向量. 池化层的主要作用是下采样, 通过不断降低数据维度来减少网络中的参数和计算次数. 最后模型将每个特征向量经过1-max-pooling池化得到的值拼接起来, 即为池化层最终的输出向量.

textCNN模型最后一层为全连接层, 池化层的输出结果在进入全连接层之前, 需要进行Dropout操作来避免过拟合. 全连接层设置可以参照传统卷积神经网络, 第1层采用ReLU作为激活函数, 第2层则使用Softmax分类函数来进行分类.

3 实验分析 3.1 实验环境与数据

本文的实验环境与相关配置如表2所示.

表 2 实验环境与配置

本文实验所需的Android恶意软件样本均来自于VirusShare网站[16], 其中样本的数量为1500个. 同时, 实验所需的1000个正常样本均下载于Android官方应用市场Google Play. 对于1500个恶意样本和1000个正常样本, 分别使用其中的70%作为本文模型的训练样本, 剩下的30%作为测试样本.

对于每一个样本, 经过动态行为采集框架处理后会得到一个行为日志. 原始的行为日志是json数据格式, 为了便于后面textCNN模型的处理, 实验需要通过Python爬取日志中关键信息, 将其转换为txt文档表示. 文档中的每一行即为一个行为API, 每一行分为3个部分, 由空格分隔, 每个部分的说明如表1所示.

3.2 实验评价指标

为了充分评估模型的性能, 本文在验证模型训练结果的时候采用了k折交叉验证技术. 在本实验中, k的取值设定为10, 即将训练集划分为10个规模相等且无交集的子集, 在每次训练过程中依次选择1个子集作为测试集, 剩余9个子集作为训练集, 最终以10次计算结果的平均值作为模型评价指标的最终结果.

本实验使用3个通用的评价指标即准确率 ${P}_{\rm {Precision}}$ 、召回率 ${P}_{\rm {Recall}}$ 以及F1值来对实验结果进评价. 本实验采用的样本分类混淆矩阵如表3所示.

表 3 样本分类结果混淆矩阵

表3中, TP表示实际为正常样本, 被预测为正常样本的样本数目; FP表示实际为恶意样本, 被预测为正常样本的样本数目; FN表示实际为正常样本, 被预测为恶意样本的样本数目; TN表示实际为恶意样本, 被预测为恶意样本的数目. 实验评价指标的计算公式如下所示:

${\text{准确率}}:{P_{\rm {Precision}}} = \frac{{TP}}{{TP + FP}}$ (2)
${\text{召回率}}:{P_{\rm {Recall}}} = \frac{{TP}}{{TP + FN}}$ (3)
${{F}}_1{\text{值}}:{F_1} = \frac{{2{P_{\rm{Precision}}} \times {P_{\rm {R{{e}}call}}}}}{{{P_{\rm {Precision}}} + {P_{\rm {R{{e}}call}}}}}$ (4)
3.3 实验参数设置

由于实验结果在很大程度上会受到实验参数的影响, 因此在实验中将会对模型的参数进行设置. 首先实验将行为日志转换后的文本最大长度设置为400, 超过长度的部分将直接进行截断操作. 本实验使用fastText模型训练词向量时所设置的参数值如表4所示.

表 4 fastText模型训练参数设置

在textCNN模型的训练过程中, 本实验将卷积核的高度固定设置为3、4、5. 对于其他参数, 分别设置了几组对照实验, 其中卷积核数量分别对比了64、128、256三组值, Dropout参数分别对比了0.3、0.4、0.5三组值, 激活函数对比了ReLU和tanh两种函数. 通过对比上述几组参数值对实验结果的影响, 最终确定模型的参数如表5所示.

表 5 textCNN模型训练参数设置

3.4 实验结果与分析

为了验证本文提出的对于Android应用程序的动态行为采集框架的有效性, 本文设置了3组对照实验, 分别采用不同的方法来提取Android软件的行为特征. 第1组采用传统的静态行为分析法来提取程序的静态行为文本数据, 实验中具体参考文献[3]提出的方法; 第2组采用基于污点跟踪技术的分析方法来提取程序的行为文本数据, 实验中具体参考文献[5]中方法; 第3组就采用本文的基于系统函数调用的动态行为采集方法来提取实验数据. 3组实验均使用相同的Android样本数据集, 然后将3组实验得到的3组文本数据集都经过fastText模型预处理以及textCNN模型进行训练, 最后相同模型在不同数据集上的实验结果如表6所示.

表 6 不同数据集实验结果对比

表6中数据可以看出, 本文提出的动态行为采集框架可以更有效的提取出Android程序中行为特征. 第一组数据集的检测准确率相对较低, 原因在于现在的Android应用程序都添加了代码混淆和代码保护壳等对抗反编译的措施, 对比而言本文方法几乎没有受到这些措施的影响. 第2组与第3组实验结果的对比证实了基于污点跟踪技术分析方法存在的局限性, 即无法检测恶意程序在Android Native层的恶意行为.

为了对比textCNN模型与传统机器学习模型及传统深度学习模型在Android恶意程序上的检测能力, 本文设置了4组对照实验, 将textCNN模型与SVM模型、RandomForest模型以及循环神经网络LSTM模型进行了对比. SVM与RandomForest均是机器学习中比较成熟的分类模型, LSTM也是一种可以高效处理文本问题的神经网络模型. 对于SVM、RandomForest和LSTM模型中使用的词向量, 本实验均采用传统Word2Vec模型预处理行为数据集来得到. 不同模型在相同测试集上的实验结果对比如表7所示.

表 7 不同模型实验结果对比

表7中可以看出, 对比SVM与RandomForest这两种机器学习模型, textCNN模型的准确率、召回率和F1值分别高出了6.73%、5.48%、6.08%和3.39%、5.04%、4.2%, 同时LSTM模型的实验结果较两种机器学习模型而言也有明显的提升. 这说明采用神经网络模型较传统机器学习方法而言确实可以提高Android恶意程序的检测准确率. 对比textCNN与LSTM, 可以看到在相同测试集上textCNN模型的检测准确率还是有所提升的, 虽然这种提升是有限的, 但是应该考虑到textCNN具有模型复杂度更小且训练速度更快的先天优势. 图3展示的是4种模型在相同数据集上损失函数值随迭代次数变化而变化的情况. 从图中可以看出, textCNN模型的损失值相对于其他3种模型不仅下降速度较快, 而且最终收敛到一个更低的稳定值.

综合两部分的实验结果可以表明本文提出的基于textCNN模型的利用动态行为分析方法的Android恶意程序检测模型是切实可行的方案, 能够有效提升Android恶意程序检测的准确性和有效性.

图 3 不同模型损失值变化图

4 结论与展望

本文提出了基于textCNN模型的Android恶意程序检测方法. 该方法实现了包含多种触发机制的行为触发系统, 有效提高了程序动态行为的检测覆盖率; 通过hook技术动态采集程序系统函数接口和应用层API的调用情况来生成动态行为日志; 通过fastText算法对行为日志进行词嵌入处理, 将文本数据转换为词向量数据; 使用textCNN模型对程序的行为数据进行检测与分类. 在实验环节, 本文使用1500个恶意样本和1000个正常样本, 分别对动态行为采集模块和基于textCNN的检测模块设置了对照实验, 实验结果证实了本文提出的这两个模块是切实可行的且能够有效提高Android恶意软件检测的准确性.

在下一步工作中, 针对动态行为采集模块, 将研究更加智能的动态行为触发机制, 以提高行为检测的覆盖率; 针对动态行为检测与分类模块, 将继续研究分类模型的优化问题, 并尝试将捕捉行为词汇前后依赖关系的机制以及注意力机制引入到模型中, 使模型能够更高效地检测Android程序是否存在恶意性.

参考文献
[1]
360互联网安全中心. 2019年手机安全状况报告. 2020. 1–9.
[2]
吴震雄. Android恶意软件静态检测方案研究[硕士学位论文]. 南京: 南京邮电大学, 2015.
[3]
Ma Z, Ge HR, Liu Y, et al. A combination method for Android malware detection based on control flow graphs and machine learning algorithms. IEEE Access, 2019, 7: 21235-21245. DOI:10.1109/ACCESS.2019.2896003
[4]
Enck W, Gilbert P, Han S, et al. TaintDroid: An information- flow tracking system for realtime privacy monitoring on smartphones. ACM Transactions on Computer Systems, 2014, 32(2): 5. DOI:10.1145/2619091
[5]
Sun MS, Wei T, Lui JCS. TaintART: A practical multi-level information-flow tracking system for android RunTime. Proceedings of ACM SIGSAC Conference on Computer and Communications Security. Vienna, Austria. 2016. 331–342.
[6]
Sun YS, Chen CC, Hsiao SW, et al. ANTSdroid: Automatic malware family behaviour generation and analysis for Android apps. Proceedings of the 23rd Australasian Conference on Information Security and Privacy. Wollongong, Australia. 2018. 796–804.
[7]
孙润康, 彭国军, 李晶雯, 等. 基于行为的Android恶意软件判定方法及其有效性. 计算机应用, 2016, 36(4): 973-978. DOI:10.11772/j.issn.1001-9081.2016.04.0973
[8]
Vinod P, Zemmari A, Conti M. A machine learning based approach to detect malicious android apps using discriminant system calls. Future Generation Computer Systems, 2019, 94: 333-350. DOI:10.1016/j.future.2018.11.021
[9]
Hu YJ, Azim T, Neamtiu I. Versatile yet lightweight record-and-replay for Android. Proceedings of 2015 ACM SIGPLAN International Conference on Object-oriented Programming, Systems, Languages, and Applications. Pittsburgh, PA, USA. 2015. 349–366.
[10]
柯懂湘, 潘丽敏, 罗森林, 等. 基于随机森林算法的Android恶意行为识别与分类方法. 浙江大学学报(工学版), 2019, 53(10): 2013-2023. DOI:10.3785/j.issn.1008-973X.2019.10.019
[11]
Gu J, Xian M, Chen T, et al. A Linux rootkit improvement based on inline hook. Proceedings of the 2nd International Conference on Advances in Mechanical Engineering and Industrial Informatics (AMEII 2016). Hangzhou, China. 2016. 800–805.
[12]
Kim Y. Convolutional neural networks for sentence classification. Proceedings of 2014 Conference on Empirical Methods in Natural Language Processing. Doha, Qatar. 2014. 1746–1751.
[13]
Bojanowski P, Grave E, Joulin A, et al. Enriching word vectors with subword information. Transactions of the Association for Computational Linguistics, 2017, 5: 135-146. DOI:10.1162/tacl_a_00051
[14]
Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality. Proceedings of the 26th International Conference on Neural Information Processing Systems. Lake Tahoe, CA, USA. 2013. 3111–3119.
[15]
Zhang Y, Wallace B. A sensitivity analysis of (and Practitioners’ Guide to) convolutional neural networks for sentence classification. arXiv: 1510.03820, 2015.
[16]
侯勤胜. 基于网络行为分析的Android恶意软件动态检测[硕士学位论文]. 徐州: 中国矿业大学, 2017.