简介
对传统的基于特征码的恶意应用检测技术!在应对新的恶意应用产生情况下处理速度上的不足!提出一种基于深度学习的安卓恶意应用检测方法,通过对包含应用静态信息的文件进行反编译处理!提取可表征应用是否为恶意应用的信息!经过数据预处理后生成特征信息输入矩阵!采用多层卷积神经网络进行训练!优化得到较优的参数%实验结果表明!所提方法能有效检测出恶意应用%
恶意应用分析
安卓应用安装采用的是后缀名为d(d的安装文件'是一个包含各种数据的压缩包,apk文件中包含工程属性文件%代码文件%应用程序资源文件和第三方库.
(1)一般的静态分析
内容有签名信息分析%代码语义分析%控制流分析%数据流分析等(典型的静态检测方法在没有运行应用或者安装应用的情况下'通过对应用程序中的代码内容采用源代码的静态分析工具进行检测分析'然后汇总分析代码在执行过程中对资源的使用
(2)动态行为检测
运用虚拟机环境$也称沙箱&'将未知待检测的代码运行其中'通过检测相应软件是否产生恶意行为作为判断依据来判断是否是恶意代码
(3)动态对比静态,对未知的恶意应用检测效果方面优于基于特征代码的检测方式'可以减少漏报'但是速度较慢'其计算资源和时间是很难承受的'并且有些应用检测到沙箱运行后会针对性地改变其行为'躲避检测
由静态分析方法速度较快'资源占用少的特点,和卷积神经网络提取特征的能力。本文章以静态信息表示为文本形式'输
入深度卷积网络模型,即可从特征信息序列中学到指示恶意软件的功能关键信息选取
(1)权限类
系统有一个权限控制系统'用户可在安装或者使用的过程中对某应用的权限进行合理控制'限定控制权限在用户手中'。而恶意应用会采用各种隐瞒策略诱骗用户打开超出程序功能所需的权限
(2)API
ENO7CN系统通过系统框架层提供了供应用使用的各种。去调取系统的各种资源'隐私数据也包括在其中
(3)action类
恶意应用常常为了实现某些隐藏功能而注册一些action组件'比如检测到电池状态低的时候挂起程序以免引起怀疑的情形。
卷积神经网络介绍
卷积神经网络不仅在图像领域有优异的效果,在文本分类上表现同样优异。
本文提出的方法将应用静态信息表示为文本形式,输入深度卷积网络模型,即可从特征信息序列中学到指示恶意软件的功能*'从而使文本分类神经网络适于本方法(深度学习模型一旦经过训练'就可以有效地在.CPU上执行')
检测系统架构设计
如图apk文件中提取出权限类、action类api序列. 将提取到的原始特征信息经过词向量编码后形成特征序列。
特征信息转化为序列采用随机化初始化的词向量嵌入方法. 即独热编码的方法。
经过预处理后的APK文本图如下。文本内容分为:权限类、action、类信息放到最前面。 “.”逗号分隔后面的是api类。
后是卷积网络训练过程(由于预处理我们从中把含有权限信息和action类、api序列的所有类连接在一起.
用单个序列代表整个应用程序的特征信息(卷积神经网络的输入序列长度一般是固定的
深度卷积网络参数初始化设置:
实验结果
本文所用的数据集分别来自360应用市场和VirusSHare平台'良性样本和恶意样本分别为2160个和1342个,分别随机划分其中的80%作为训练集,20%作为验证集.
(1)分类结果
TP 真正类'恶意应用被预测为恶意应用;
FN 假负类'恶意应用被预测成良性应用;
FP 假正类'良性应用被预测成恶意应用;
TN 真负类'良性应用被预测成良性应用;
(2)实验数据比较
本文的数据预处理中的反编译工具为aktool, 深度学习框架为tensorflow、'编程语言为python.
方法的精确度略高于随机森林算法'这是因为本方法将权限、acton类、api类等信息合理运用. 采用适宜的特征信息向量化方式'运用深度学习可获得应用深层特征的能力'实现了较好检测的效果
[1] 基于深度学习的安卓恶意应用检测[J].计算机工程与设计
对参考文献进行了小结