CN115600200A - 基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法 - Google Patents

基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法 Download PDF

Info

Publication number
CN115600200A
CN115600200A CN202211263564.5A CN202211263564A CN115600200A CN 115600200 A CN115600200 A CN 115600200A CN 202211263564 A CN202211263564 A CN 202211263564A CN 115600200 A CN115600200 A CN 115600200A
Authority
CN
China
Prior art keywords
entropy
convolution
adaptive
file
android
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211263564.5A
Other languages
English (en)
Inventor
汤俊伟
徐微
胡博超
邢欢
何儒汉
彭涛
许子龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Textile University
Original Assignee
Wuhan Textile University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Textile University filed Critical Wuhan Textile University
Priority to CN202211263564.5A priority Critical patent/CN115600200A/zh
Publication of CN115600200A publication Critical patent/CN115600200A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Virology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

本发明涉及一种基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,包括以下步骤:收集恶意软件数据集;Dex头部特征提取;香农熵分布特征提取;马尔可夫图像结合灰度图像特征提取;安卓清单文件解析模块;使用自适应软投票方法来进行集成学习,并预测最终结果。本发明本发明引入了一种轻型多源快速安卓恶意软件检测方法,使用了一个安卓应用程序包中的多个文件,从多个维度中提取文件中包含的相关特征,如文件头中的信息和可执行文件的结构熵的功率谱密度等,使特征的提取更加全面。

Description

基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法
技术领域
本发明涉及安卓恶意软件检测技术领域,具体的讲是一种基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法。
背景技术
自2008年安卓发布以来,它已经成为智能移动设备最流行的操作***。2021年中国网民智能手机操作***为安卓的占比89.6%,由于安卓应用的开放生态模式、粗粒度的权限管理、调用第三方代码的能力等多种因素,出现了许多安全攻击面,严重威胁着Android应用的完整性。目前,而当前安卓平台的恶意软件检测大多需要通过权威安全机构建立庞大的病毒数据库和云技术来给用户提供服务,且只对对官方应用市场提供的应用进行检测,但来自第三方的应用仍会给用户带来严重的安全威胁。而当前大多数离线的安卓恶意软件检测方法使用了复杂的模型以至于难以运行在缺乏计算资源的用户终端。由此可见,安卓恶意软件检测仍是一个巨大的挑战。
传统的反病毒技术大多基于签名和启发式的检测方法能够快速有效地检测已知恶意软件,基于签名的检测主要通过从恶意软件中提取签名和建立恶意软件库来实现,但一些恶意软件可以通过使用不同的混淆和伪装技术隐藏在***中,以至于它无法检测未知恶意软件。机器学习算法通常只有不到三层的计算单元,处理原始数据的计算能力有限。因此,机器学习模型的性能在很大程度上依赖于提取的特征,并且恶意软件生产商也能通过不断更新其欺诈技术,来绕过训练有素的机器学习模型,从而伤害到用户和公司。面对Android恶意软件检测的日益困难,仅通过传统的机器学习技术构建一个健壮、透明的检测模型或***并非易事。而深度学习是近年来的主流算法之一,深度学习方法的特征提取与传统的机器学习技术不同,深度学习可以从输入的原始数据中学习特征表示,而不需要什么先验知识。并且其基于识别已知恶意软件的特定模式,具有检测以前未发现的恶意软件类型的能力,能够在检测效率和效率方面提供更好的性能,这也是深度学习的关键优势。
申请号CN202210483736.3的专利提出了一种基于卷积神经网络的安卓恶意软件检测方法,采用全新逻辑设计,解决了目前安卓检测方法中存在的准确率低、召回率低的问题。但该专利存在的问题是由于当前大多数安卓恶意软件检测技术多是基于签名的,而使用深度学习的检测技术资源消耗过大无法在用户终端运行。
发明内容
本发明要解决的技术问题是针对以上不足,提供一种基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其目的在于解决无法在用户终端运行和在不损失精确度的情况下大幅提升了检测速度并减少了资源占用的问题。
为解决以上技术问题,本发明采用以下技术方案:
基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,包括以下步骤:
步骤S1、收集恶意软件数据集;
步骤S2、提取并解析恶意软件数据集中apk文件的classes.dex文件的头部信息,并将头部信息中的关键字段进行编码,得到头部特征;
步骤S3、将恶意软件数据集中apk文件的classes.dex文件作为二进制流计算熵信号,通过最大熵方法提取熵信号的熵谱密度特征;
步骤S4、将恶意软件数据集中的apk文件以二进制格式进行读入,生成一张灰度图像,再将恶意软件数据集中的apk文件通过马尔可夫进行转移概率,生成一张马尔可夫图像,将灰度图像和马尔可夫图像结合,得到一张马尔可夫图像结合灰度图像特征图像;
步骤S5、将恶意软件数据集中的apk文件中的AndroidManifest.xml文件进行解码和解析,提取权限和意图关键词,再通过Bag-of-words模型编码为特征;
步骤S6、将步骤S2、步骤S3、步骤S4和步骤S5得到的头部特征、熵谱密度特征、马尔可夫图像结合灰度图像特征图像和通过Bag-of-words模型编码的特征输入自适应收缩卷积单元来进行降噪和特征提取;
步骤S7、利用上一步提取的特征对分类器进行训练,得到自适应软投票模型;
步骤S8、利用自适应软投票模型进行安卓恶意软件检测。
进一步的,所述步骤S2包括如下步骤S2A-1至步骤S2A-3:
步骤S2A-1、校验classes.dex文件的魔数字段来判断是否为有效的classes.dex文件,若是则转到下一步,否则跳过该样本;
步骤S2A-2、将classes.dex文件按照DexFile.h中的DexHeader结构体定义进行解析,获取结构体中的所有字段,解析得到文件签名、链接区段、映射项、类型标识符、字符串标识符和原型标识符的大小及偏移量信息;
步骤S2A-3、将解析得到的文件签名、链接区段、映射项、类型标识符、字符串标识符和原型标识符的大小及偏移量信息,通过16进制编码并归一化得到一维灰度矩阵,即为classes.dex文件的头部特征。
进一步的,所述步骤S3包括如下步骤S3A-1至步骤S3A-2:
步骤S3A-1、将classes.dex文件二进制流作为信号输入到熵分布特征提取模块中;
步骤S3A-2、提取恶意软件与良性软件的香农熵序列和熵谱密度。
进一步的,所述步骤S3A-2中香农熵的公式表示为:
Figure BDA0003892141030000041
其中,H(x)是变量X的熵,p(xi)是变量X的可能结果xi发生的概率,其中i代表结果数(i在1和n之间变化);
熵谱密度的计算公式表示为:
Figure BDA0003892141030000042
其中,P(f)为熵谱密度,P(m)为值为第m序次的波动周期时滤波器的输出功率,γm,k为m=0,1,…,M(M为最优滤波器序次时相应的滤波器系数),Pm和γm,k通过Burg氏过程解Yule-Walker方程求得。
进一步的,所述步骤S4包括如下步骤S4A-1至步骤S4A-3:
步骤S4A-1、将apk文件以二进制格式进行读入,以8位无符号的整形为一个字节单位,再固定好行和宽,最后生成一个二维数组;对于该数组中每个元素的取值范围为0-255内,刚好为一张灰度图图像的取值范围,得到一张灰度图像;
步骤S4A-2、将apk文件以字符码序列进行读入,然后统计每个apk文件的字节转移频率,最后再通过计算出每个字节转移概率矩阵,得到一张256*256的马尔可夫图像;
步骤S4A-3、将灰度图像和马尔可夫图像分别以16位二进制进行拼接,分别取出8位二进制值映射到一个像素点,再利用转移概率进行压缩,生成一张256*256的马尔可夫图像结合灰度图像特征图像。
进一步的,所述步骤S5包括如下S5A-1至S5A-4:
步骤S5A-1、将AndroidManifest.xml文件解密为合法的xml文档,并进行解析,提取了应用程序的权限使用权、组件和意图并进行统计;
步骤S5A-2、使用Bag-of-words模型的思想,将每个权限使用权、组件和意图的关键词的出现看作独立的概率;
步骤S5A-3、将恶意软件数据集中的所有权限和意图进行提取并过滤筛除频率小于2的关键词,构成一个包含N个关键词的词典;
步骤S5A-4、将恶意软件数据集中的每个AndroidManifest.xml文件进行BOW提取,对于不在词典中的关键词采用UNK来代替,构成一个N+1维特征向量。
进一步的,所述步骤S6中的自适应收缩卷积单元对于每个卷积层,通过动态卷积方法根据注意力以非线性方式叠加卷积核,提升模型表达能力,设传统的静态卷积表示为:
Figure BDA0003892141030000051
其中,W和b是权重矩阵和偏置向量,g是一个激活函数;
通过聚合多个(K)线性函数
Figure BDA0003892141030000052
定义动态卷积如以下公式:
Figure BDA0003892141030000053
Figure BDA0003892141030000054
其中,πk是第k个线性方程
Figure BDA0003892141030000055
的注意力权重,πk(x)∈[0,1],且
Figure BDA0003892141030000056
权重
Figure BDA0003892141030000057
和偏置
Figure BDA0003892141030000058
是输入的函数,并共享相同的注意力,注意力权重πk(x)不是固定的,而是针对每个输入的x而变化,它们代表了一个给定输入的线性模型
Figure BDA0003892141030000059
的最佳聚合,聚合的模型
Figure BDA00038921410300000510
是一个非线性函数;
自适应收缩卷积单元中还引入了软阈值激活函数,借助软阈值化将这些噪声所对应的特征置为零,并通过注意力机制动态地根据每个样本的情况单独的为每个样本设置阈值,作为非线性变换层集成到本单元中,软阈值的公式表示为:
Figure BDA0003892141030000061
其中x为输入特征,y为输出特征,τ为阈值。
进一步的,所述步骤S7中训练得到自适应软件投票模型的方法包括如下的步骤如下步骤S7A-1至步骤S7A-4:
步骤S7A-1、计算恶意软件数据集中所有样本的二元交叉熵,二元交叉熵的公式为:
Figure BDA0003892141030000062
其中,N为样本数量,pi为第i个样本为正例的概率,yi为第i个样本的标签;
步骤S7A-2、计算所有样本的所有特征输入分类器所得到的得出的正例的概率{p1,p2,…,pj}和权重W,再经过Softmax运算的Hadamard积得出经过软投票后的正例概率pvote,计算公式如下:
Figure BDA0003892141030000063
Figure BDA0003892141030000064
其中,M为所有样本总特征的数量,M=样本的数量*特征的数量,σ(W)j为第j个特征对应的Softmax函数(j=1、2……M),pj为第j个特征对应的正例的概率(j=1、2……M),W为权重;
步骤S7A-3、计算动态加权软投票的损失Loss,计算公式如下:
Figure BDA0003892141030000065
其中,
Figure BDA0003892141030000066
为M个特征得出的二元交叉熵损失{l1,l2,…,lj}进行Softmax运算的值与权重经过Softmax运算的值之差的绝对值的平均数,μ为权重参数,LBCE(pvote,y)为软投票结果的二元交叉熵之和;
步骤S7A-4、通过最小化损失函数Loss对分类器进行训练,然后得到训练好的自适应软件投票模型。
本发明采用以上技术方案后,与现有技术相比,具有以下优点:
(1)本发明引入了一种轻型多源快速安卓恶意软件检测方法,使用了一个安卓应用程序包中的多个文件,从多个维度中提取文件中包含的相关特征,如文件头中的信息和可执行文件的结构熵的功率谱密度等,使特征的提取更加全面;
(2)本发明研究了DEX文件头的每个字段中的信息,发现在DEX文件头中存在一些可用于恶意软件检测的关键特性。因此,提出了一个DEX头解析器来从DEX文件头中提取关键特性;
(3)提出一种马尔可夫图像结合灰度图像特征图像;首先将apk文件转换一张灰度图像;再将APK文件转换成一张马尔可夫图像;将所选的两个特征文件灰度图像和马尔可夫图像分别以16位二进制进行拼接,分别取出8位二进制值映射到一个像素点,再利用转移概率进行压缩,生成一张256*256的马尔可夫图像结合灰度图像特征图像;
(4)本发明引入了一种自适应收缩卷积神经网络,该网络可以通过注意机制动态调整卷积核权值和激活函数阈值,使卷积网络具有去噪能力,同时提高了神经网络模型的表达能力,在小幅度提高卷积层计算复杂度的情况下,大幅提升了卷积网络针对熵特征的提取能力,使得本方法仅需使用浅层神经网络,降低了整体模型的时间复杂度;
(5)提出一种新的自适应软投票方法,可以动态改变每个基本特征在训练过程中的权重,克服传统的软投票由于基础模型的大性能差距而产生的抖动,同时显著提高软投票的性能。
下面结合附图和实施例对本发明进行详细说明。
附图说明
图1为本发明的总体流程示意图;
图2为安卓程序包结构示意图;
图3为DEX文件结构示意图;
图4为马尔可夫图像结合灰度图像结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例1:
如图1所示的一种基于熵谱密度和自适应收缩卷积的快速安卓恶意软件检测方法,包括如下步骤:
步骤S1,收集并制作恶意软件数据集;
本发明使用了3个公开数据集,分别为来自加拿大网络安全研究所(CIC)构建的CICMalDroid 2020数据集、CIC-InvesAndMal2019数据集,来自布伦瑞克工业大学***安全研究所的Drebin数据集:其中CICMalDroid 2020数据集有超过17341个Android样本,包括VirustoTalService、Contagio Security Blog、AMD、Maldozer和最近的研究贡献所使用的其他数据集;CIC-InvesAndMal2019包含了10854个样本(4354个恶意软件和6500个良性软件);Drebin数据集包含5560个恶意样本。
步骤S2,Dex头部特征提取;
安卓程序包(Android Package)是一个扩展名为.apk的ZIP压缩文件,它包含了安卓应用程序的所有内容。assets存放应用程序需要的静态资源文件,如图片等。res目录下资源文件会被编译成二进制在R.java文件中生成对应的索引ID。lib目录下存使用C/C++编写的库文件。META-INF存放应用的签名信息,在安装应用前会进行签名校验,确保安卓应用程序包的完整性和安全性resources.arsc文件用来纪录res目录中的资源文件和ID的对应关系,其结构示意图如图2所示。
classes.dex为Android Runtime(ART)和Dalvik虚拟机的可执行文件,紧凑的Dalvik可执行文件格式被设计成适用于存储器和处理器速度受限的***。classes.dex本质上是安卓应用程序的所有程序逻辑,给定安卓应用程序通常用Java编写,并由dx工具编译成字节码。Java编译器将所有的Java源文件编译为Java字节码(.class文件),然后由dx工具将它们从Java字节码转换为与Dalvik兼容的字节码.dex文件,dx工具消除了类中存在的冗余信息,在dex文件中,所有的.class文件都被包装为一个文件,合并了.class的头部信息并共享一个常量池和索引。因此,安卓应用程序的绝大部分代码逻辑都包含在classes.dex文件中,其结构示意图如图3所示。
步骤S2中根据dex的头部信息区分恶意和良性应用程序的方法,步骤S2包含三个分支S2A,步骤S2A包括S2A-1到S2A-2到S2A-3如下步骤:
步骤S2A,提取并解析classes.dex文件的头部信息,将关键字段进行编码作为头部特征;
步骤S2A-1,通过校验Dex魔数字段来判断其是否为有效的dex文件,dex魔数通常为dex文件的前8个字节,由8个1字节无符号数表示,它的值为dex字符串和文件版本号的组合,如“64 65 78 0A 30 33 35 00”,使用ASCII码表进行转换后得到“dex\n\035\0”,其中版本号用于为***识别解析不同版本格式的Dex文件提供支持,035版本的格式于Android5.0中被增加。
步骤S2A-2,通过校验判断为合法的dex文件后,按照DexFile.h中的DexHeader结构体定义进行解析,获取结构体中的所有字段。
步骤S2A-3,将解析得到的文件签名、链接区段、映射项、类型标识符、字符串标识符、原型标识符等的大小及偏移量信息,通过16进制编码并归一化得到一维灰度矩阵,即为从dex头部提取得到的特征。
步骤S3,香农熵分布特征提取;
同种类型的恶意软件通常会有相似的恶意代码段,这些恶意代码段的波动最终会体现在dex文件的二进制信息中,恶意软件在其二进制数据流中,因此,这些恶意代码特征也会反应到二进制数据流分块计算得到的熵序列中。将classes.dex文件的二进制流进行信息量度量,得到熵序列,由于不同安卓程序的classes.dex文件大小不一致,因此得到的熵序列长度也不一致。
步骤S3包含三个分支S3A,步骤S3A包括S3A-1到S3A-2到S3A-3如下步骤:
步骤S3A,将classses.dex作为二进制流计算其熵信号,并将熵信号通过最大熵方法提取熵谱密度作为特征,将该特征通过自适应收缩卷积进行去噪和特征提取,作为熵特征;
步骤S3A-1,通过将dex文件二进制流作为信号输入到熵分布特征提取模块中;
步骤S3A-2,提取到恶意软件与良性软件的香农熵序列和熵谱密度;
步骤S3A-3,得到的熵谱密度通过自适应收缩卷积进行去噪和特征提取后,作为后端分类器的输入向量之一。
熵是对变量的随机性或不确定性的度量,香农将信息和不确定性联系起来,如果能够度量一个事情的不确定性,那么也能度量某一信息的信息量,香农熵的公式表示为:
Figure BDA0003892141030000101
其中H(x)是变量X的熵,p(xi)是变量X的可能结果xi发生的概率,其中i代表结果数,在1和n之间变化。
信号的功率谱密度(Power Spectral Density)将信号中存在的功率描述为每单位频率的函数。功率谱的计算方法主要包括快速傅里叶变换法、Welch法、多窗口法、最大熵法等,前三种属于周期图法,由于周期图法是一种估计信号有限长度自相关的方法,需要对信号序列进行截断或加窗处理,使估计的功率谱为信号序列真实谱和窗谱的卷积,所以其产生的精确功率谱估计的能力有限,因此本文才用最大熵方法计算功率谱密度P(f),计算公式表示为:
Figure BDA0003892141030000111
其中P(m)为值为第m序次的波动周期时滤波器的输出功率,γm,k为m=0,1,…,M,M为最优滤波器序次时相应的滤波器系数。
步骤S4,马尔可夫图像结合灰度图像特征提取;
步骤S4A,马尔可夫图像结合灰度图像特征提取,首先通过将apk文件以二进制格式进行读入,生成一张灰度图像;再通过马尔可夫进行转移概率,生成一张马尔可夫图像结合灰度图像特征;
步骤S4A-1,灰度图图像特征提取;首先,通过给定的二进制代码文件DEX,以8位无符号的整形为一个字节单位,再固定好行和宽,最后生成一个二维数组;对于该数组中每个元素的取值范围为0-255内,刚好为一张灰度图图像的取值范围;
步骤S4A-2,马尔可夫图像提取;首先将apk文件以字符码序列进行读入,然后统计每个apk文件的字节转移频率,最后再通过计算出每个字节转移概率矩阵,得到一张256*256的马尔可夫图像。
步骤S4A-3,马尔可夫图像结合灰度图像提取;首先将apk文件转换一张灰度图像;再将APK文件转换成一张马尔可夫图像;将所选的两个特征文件灰度图像和马尔可夫图像分别以16位二进制进行拼接,分别取出8位二进制值映射到一个像素点,再利用转移概率进行压缩,生成一张256*256的马尔可夫图像结合灰度图像特征图像,如图4所示。
步骤S5,安卓清单文件解析模块;
AndroidManifest.xml是安卓应用程序的清单文件,其中描述了应用程序的各个组件,并定义了组件的表现形式如组件名、主题、启动类型、组件的操作、启动意图等。同时该清单文件也声明了应用程序的属性和权限信息。
步骤S5包含三个分支S4A,步骤S4A包括S4A-1到S4A-2到S4A-3到S4A-4如下步骤:
步骤S5A,将AndroidManifest.xml文件进行解码和解析,提取权限和意图关键词,通过Bag-of-words模型编码为特征;
步骤S5A-1,通常AndroidManifest.xml被加密编码,通过对该文件进行解密成合法的XML文档,并进行解析,提取了应用程序的权限使用权、组件和和意图并进行统计;
步骤S5A-2,由于权限和意图关键词集合较小,采用稀疏表达的形式降低模型复杂度,使用Bag-of-words模型的思想,将每个权限和意图关键词的出现看作独立的概率;
步骤S5A-3,将数据集的所有权限和意图进行提取并过滤筛除频率小于2的关键词,构成一个包含N个关键词的词典。
步骤S5A-4,每个应用程序清单文件进行BOW提取,对于不在词典中的关键词采用UNK来代替,构成一个N+1维特征向量,使用自适应收缩卷积单元进行深层次提取和分类;
步骤S6,使用自适应软投票方法来进行集成学习,并预测最终结果。
对于classes.dex这样一个复杂的文件,其熵信号反应了文件的整体信息,有许多与恶意代码片段无关的噪声都混杂在需要提取的恶意代码片段的熵表征中。针对这个问题,需要对上一步采集到的特征进行降噪处理以提高特征学习能力,经典的小波阈值降噪方法主要由三个步骤组成:小波分解、软阈值化、小波重构,在这个降噪方法中,构建一个合适的滤波算子设置合适的软阈值是一个具有挑战性的问题。为解决此问题,本发明提出了一种自适应收缩卷积单元。
软投票也称加权平均概率投票,是使用输出类概率分类的投票法,其通过输入权重,得到每个类概率的加权平均值,并选择值较大的那一类;软投票将类别标签返回为预测概率之和的Argmax,其通过输出类概率实现。
传统的静态加权平均概率投票的权重为手工确定,并且一般使用的是多个同种基模型,但本文将不同种类的特征使用不同的模型进行提取,由于不同种类的特征和模型有着不同的训练曲线和拟合能力,需要在训练过程中动态调整投票权重。为此,本发明提出一种动态加权软投票集成方法,投票权重由梯度下降原则自动确定,并为其定义了一种新的损失函数。
步骤S6包含三个分支S6A,步骤S6A包括S6A-1到S6A-2到S6A-3到S6A-4如下步骤:
步骤S6A,通过动态权重软投票进行集成学习;
步骤S6A-1,采用一种自适应收缩卷积单元来进行降噪处理以提高特征学习能力;
步骤S6A-2,引入了软阈值激活函数,借助软阈值化将这些噪声所对应的特征置为零;
为对特征进行去噪,本文在深度残差收缩网络研究的基础上,引入了软阈值激活函数,借助软阈值化将这些噪声所对应的特征置为零,并通过注意力机制动态地根据每个样本的情况单独的为每个样本设置阈值,作为非线性变换层集成到本单元中。设x为输入特征,y为输出特征,τ为阈值。软阈值的公式表示为::
Figure BDA0003892141030000131
其中x为输入特征,y为输出特征,τ为阈值。
步骤S6A-3,通过注意力机制动态地根据每个样本的情况单独的为每个样本设置阈值,作为非线性变换层集成到本单元中;
步骤S6A-4,通过模型得出二元交叉熵损失进行Softmax运算的值;
步骤S6A-5,经过Softmax运算的值之差的绝对值计算平均数;
步骤S6A-6,并乘以权重参数μ得到的值;
步骤S6A-7,计算该值与软投票结果的二元交叉熵之和,得到动态加权软投票的损失;
步骤S6A-8,与自适应收缩卷积单元相混合,得到自适应软投票方法;
步骤S6A-9,预测最终结果;
传统的静态加权平均概率投票的权重为手工确定,并且一般使用的是多个同种基模型,但本文将不同种类的特征使用不同的模型进行提取,由于不同种类的特征和模型有着不同的训练曲线和拟合能力,需要在训练过程中动态调整投票权重。为此,本文提出一种动态加权软投票集成方法,投票权重由梯度下降原则自动确定,并为其定义了一种新的损失函数。
设N为样本数量,pi为第i个样本为正例的概率,yi为第i个样本的标签。
Figure BDA0003892141030000141
计算M个模型得出的正例的概率{p1,p2,…,pj}和权重W经过Softmax运算的Hadamard积得出经过软投票后的正例概率pvote,Softmax函数σ(W)。
Figure BDA0003892141030000142
Figure BDA0003892141030000143
由M个模型得出的二元交叉熵损失{l1,l2,…,lj}进行Softmax运算的值与权重经过Softmax运算的值之差的绝对值计算平均数,并乘以权重参数μ得到的值,最后计算该值与软投票结果的二元交叉熵之和。
Figure BDA0003892141030000144
为了更加有效地进行实验以及对分类效果进行相应地验证,主要是采用F1值(F1-score)和准确率(Accuracy)两个指标。其中,N为总样本数;其中,具体的F1值计算如式(1)所示以及具体准确率如式(2)所示,具体的精确率计算如式(3)所示,具体的召回率计算如式(4)所示。
Figure BDA0003892141030000151
Figure BDA0003892141030000152
Figure BDA0003892141030000153
Figure BDA0003892141030000154
对于上述式子中,TP为真正例,FP为假反例;FN为假正例,TN为真反例。
本专利所有实验参数进行以下设置,学习率设置为0.1,迭代次数为100,权重衰减系数为2e-7,批量大小设置为16,同时,为了保证实验的一致性,所有实验都在相同的实验环境进行的,训练集与测试集之比为6:4。
Method ACC F1-Score
CNN+LeNet 92.54% 95.28%
CNN 93.23% 95.24%
LSTM 95.12% 98.45%
Our Method 96.64% 98.93%
通过与以上几种方法进行对比,综合考虑ACC、F1这两种指标可见,相较于其他方法,本方法在精度和速度上取得更好权衡,且本方法仅使用浅层的卷积网络,满足在用户的安卓终端上运行的需求。
以上所述为本发明最佳实施方式的举例,其中未详细述及的部分均为本领域普通技术人员的公知常识。本发明的保护范围以权利要求的内容为准,任何基于本发明的技术启示而进行的等效变换,也在本发明的保护范围之内。

Claims (8)

1.基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,包括以下步骤:
步骤S1、收集恶意软件数据集;
步骤S2、提取并解析恶意软件数据集中apk文件的classes.dex文件的头部信息,并将头部信息中的关键字段进行编码,得到头部特征;
步骤S3、将恶意软件数据集中apk文件的classes.dex文件作为二进制流计算熵信号,通过最大熵方法提取熵信号的熵谱密度特征;
步骤S4、将恶意软件数据集中的apk文件以二进制格式进行读入,生成一张灰度图像,再将恶意软件数据集中的apk文件通过马尔可夫进行转移概率,生成一张马尔可夫图像,将灰度图像和马尔可夫图像结合,得到一张马尔可夫图像结合灰度图像特征图像;
步骤S5、将恶意软件数据集中的apk文件中的AndroidManifest.xml文件进行解码和解析,提取权限和意图关键词,再通过Bag-of-words模型编码为特征;
步骤S6、将步骤S2、步骤S3、步骤S4和步骤S5得到的头部特征、熵谱密度特征、马尔可夫图像结合灰度图像特征图像和通过Bag-of-words模型编码的特征输入自适应收缩卷积单元来进行降噪和特征提取;
步骤S7、利用上一步提取的特征对分类器进行训练,得到自适应软投票模型;
步骤S8、利用自适应软投票模型进行安卓恶意软件检测。
2.根据权利要求1所述的基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,所述步骤S2包括如下步骤S2A-1至步骤S2A-3:
步骤S2A-1、校验classes.dex文件的魔数字段来判断是否为有效的classes.dex文件,若是则转到下一步,否则跳过该样本;
步骤S2A-2、将classes.dex文件按照DexFile.h中的DexHeader结构体定义进行解析,获取结构体中的所有字段,解析得到文件签名、链接区段、映射项、类型标识符、字符串标识符和原型标识符的大小及偏移量信息;
步骤S2A-3、将解析得到的文件签名、链接区段、映射项、类型标识符、字符串标识符和原型标识符的大小及偏移量信息,通过16进制编码并归一化得到一维灰度矩阵,即为classes.dex文件的头部特征。
3.根据权利要求1所述的基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,所述步骤S3包括如下步骤S3A-1至步骤S3A-2:
步骤S3A-1、将classes.dex文件二进制流作为信号输入到熵分布特征提取模块中;
步骤S3A-2、提取恶意软件与良性软件的香农熵序列和熵谱密度。
4.根据权利要求3所述的基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,所述步骤S3A-2中香农熵的公式表示为:
Figure FDA0003892141020000021
其中,H(x)是变量X的熵,p(xi)是变量X的可能结果xi发生的概率,其中i代表结果数(i在1和n之间变化);
熵谱密度的计算公式表示为:
Figure FDA0003892141020000022
其中,P(f)为熵谱密度,P(m)为值为第m序次的波动周期时滤波器的输出功率,γm,k为m=0,1,...,M(M为最优滤波器序次时相应的滤波器系数),Pm和γm,k通过Burg氏过程解Yule-Walker方程求得。
5.根据权利要求1所述的基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,所述步骤S4包括如下步骤S4A-1至步骤S4A-3:
步骤S4A-1、将apk文件以二进制格式进行读入,以8位无符号的整形为一个字节单位,再固定好行和宽,最后生成一个二维数组;对于该数组中每个元素的取值范围为0-255内,刚好为一张灰度图图像的取值范围,得到一张灰度图像;
步骤S4A-2、将apk文件以字符码序列进行读入,然后统计每个apk文件的字节转移频率,最后再通过计算出每个字节转移概率矩阵,得到一张256*256的马尔可夫图像;
步骤S4A-3、将灰度图像和马尔可夫图像分别以16位二进制进行拼接,分别取出8位二进制值映射到一个像素点,再利用转移概率进行压缩,生成一张256*256的马尔可夫图像结合灰度图像特征图像。
6.根据权利要求1所述的基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,所述步骤S5包括如下S5A-1至S5A-4:
步骤S5A-1、将AndroidManifest.xml文件解密为合法的xml文档,并进行解析,提取了应用程序的权限使用权、组件和意图并进行统计;
步骤S5A-2、使用Bag-of-words模型的思想,将每个权限使用权、组件和意图的关键词的出现看作独立的概率;
步骤S5A-3、将恶意软件数据集中的所有权限和意图进行提取并过滤筛除频率小于2的关键词,构成一个包含N个关键词的词典;
步骤S5A-4、将恶意软件数据集中的每个AndroidManifest.xml文件进行BOW提取,对于不在词典中的关键词采用UNK来代替,构成一个N+1维特征向量。
7.根据权利要求1所述的基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,所述步骤S6中的自适应收缩卷积单元对于每个卷积层,通过动态卷积方法根据注意力以非线性方式叠加卷积核,提升模型表达能力,设传统的静态卷积表示为:
Figure FDA0003892141020000031
其中,W和b是权重矩阵和偏置向量,g是一个激活函数;
通过聚合多个(K)线性函数
Figure FDA0003892141020000041
定义动态卷积如以下公式:
Figure FDA0003892141020000042
Figure FDA0003892141020000043
其中,πk是第k个线性方程
Figure FDA0003892141020000044
的注意力权重,πk(x)∈[0,1],且
Figure FDA0003892141020000045
权重
Figure FDA0003892141020000046
和偏置
Figure FDA0003892141020000047
是输入的函数,并共享相同的注意力,注意力权重πk(x)不是固定的,而是针对每个输入的x而变化,它们代表了一个给定输入的线性模型
Figure FDA0003892141020000048
的最佳聚合,聚合的模型
Figure FDA0003892141020000049
是一个非线性函数;
自适应收缩卷积单元中还引入了软阈值激活函数,借助软阈值化将这些噪声所对应的特征置为零,并通过注意力机制动态地根据每个样本的情况单独的为每个样本设置阈值,作为非线性变换层集成到本单元中,软阈值的公式表示为:
Figure FDA00038921410200000410
其中x为输入特征,y为输出特征,τ为阈值。
8.根据权利要求7所述的基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法,其特征在于,所述步骤S7中训练得到自适应软件投票模型的方法包括如下的步骤如下步骤S7A-1至步骤S7A-4:
步骤S7A-1、计算恶意软件数据集中所有样本的二元交叉熵,二元交叉熵的公式为:
Figure FDA00038921410200000411
其中,N为样本数量,pi为第i个样本为正例的概率,yi为第i个样本的标签;
步骤S7A-2、计算所有样本的所有特征输入分类器所得到的得出的正例的概率{p1,p2,...,pj}和权重W,再经过Softmax运算的Hadamard积得出经过软投票后的正例概率pvote,计算公式如下:
Figure FDA0003892141020000051
Figure FDA0003892141020000052
其中,M为所有样本总特征的数量,M=样本的数量*特征的数量,σ(W)j为第j个特征对应的Softmax函数(j=1、2……M),pj为第j个特征对应的正例的概率(j=1、2……M),W为权重;
步骤S7A-3、计算动态加权软投票的损失Loss,计算公式如下:
Figure FDA0003892141020000053
其中,
Figure FDA0003892141020000054
为M个特征得出的二元交叉熵损失{l1,l2,...,lj}进行Softmax运算的值与权重经过Softmax运算的值之差的绝对值的平均数,μ为权重参数,LBCE(pvote,y)为软投票结果的二元交叉熵之和;
步骤S7A-4、通过最小化损失函数Loss对分类器进行训练,然后得到训练好的自适应软件投票模型。
CN202211263564.5A 2022-10-16 2022-10-16 基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法 Pending CN115600200A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211263564.5A CN115600200A (zh) 2022-10-16 2022-10-16 基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211263564.5A CN115600200A (zh) 2022-10-16 2022-10-16 基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法

Publications (1)

Publication Number Publication Date
CN115600200A true CN115600200A (zh) 2023-01-13

Family

ID=84846230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211263564.5A Pending CN115600200A (zh) 2022-10-16 2022-10-16 基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法

Country Status (1)

Country Link
CN (1) CN115600200A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115841624A (zh) * 2023-02-23 2023-03-24 山东洲蓝环保科技有限公司 基于红外图像的高炉煤气流分布识别方法
CN116663019A (zh) * 2023-07-06 2023-08-29 华中科技大学 一种源代码漏洞检测方法、装置和***
CN117574364A (zh) * 2023-07-27 2024-02-20 广东工业大学 一种基于PSEAM-MobileNet神经网络的安卓恶意软件检测方法及***

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115841624A (zh) * 2023-02-23 2023-03-24 山东洲蓝环保科技有限公司 基于红外图像的高炉煤气流分布识别方法
CN115841624B (zh) * 2023-02-23 2023-05-23 山东洲蓝环保科技有限公司 基于红外图像的高炉煤气流分布识别方法
CN116663019A (zh) * 2023-07-06 2023-08-29 华中科技大学 一种源代码漏洞检测方法、装置和***
CN116663019B (zh) * 2023-07-06 2023-10-24 华中科技大学 一种源代码漏洞检测方法、装置和***
CN117574364A (zh) * 2023-07-27 2024-02-20 广东工业大学 一种基于PSEAM-MobileNet神经网络的安卓恶意软件检测方法及***
CN117574364B (zh) * 2023-07-27 2024-05-10 广东工业大学 一种基于PSEAM-MobileNet神经网络的安卓恶意软件检测方法及***

Similar Documents

Publication Publication Date Title
Sun et al. Deep learning and visualization for identifying malware families
CN115600200A (zh) 基于熵谱密度和自适应收缩卷积的安卓恶意软件检测方法
CN111027069B (zh) 恶意软件家族检测方法、存储介质和计算设备
CN105740707B (zh) 恶意文件的识别方法和装置
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
CN108710797A (zh) 一种基于熵信息分布的恶意文档检测方法
CN114372493B (zh) 一种计算机线缆电磁泄漏特征分析方法
CN112115326B (zh) 一种以太坊智能合约的多标签分类和漏洞检测方法
CN113822207A (zh) 高光谱遥感图像识别方法、装置、电子设备及存储介质
Bhaskara et al. Emulating malware authors for proactive protection using GANs over a distributed image visualization of dynamic file behavior
CN113283901B (zh) 一种面向区块链平台的基于字节码的诈骗合约检测方法
Fernandes et al. Benford's law applied to digital forensic analysis
Almadan et al. Benchmarking neural network compression techniques for ocular-based user authentication on smartphones
Čeponis et al. Evaluation of deep learning methods efficiency for malicious and benign system calls classification on the AWSCTD
CN111797396B (zh) 恶意代码可视化及变种检测方法、装置、设备及存储介质
CN117596057A (zh) 网络信息安全管理***及方法
CN117670109A (zh) 一种企业可信度评估方法、装置、***及存储介质
Bensaoud et al. CNN-LSTM and transfer learning models for malware classification based on opcodes and API calls
CN112016088A (zh) 生成文件检测模型的方法、装置、检测文件的方法及装置
Uhlig et al. Combining AI and AM–Improving approximate matching through transformer networks
CN116484371A (zh) 基于函数调用图的Android插件恶意性检测方法
Rodriguez-Bazan et al. Android Ransomware Analysis Using Convolutional Neural Network and Fuzzy Hashing Features
Wang et al. Malware detection using cnn via word embedding in cloud computing infrastructure
O’Shaughnessy et al. Malware family classification via efficient Huffman features
CN111581640A (zh) 一种恶意软件检测方法、装置及设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination