一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于自适应计算时间策略的恶意软件检测方法及系统

2022-11-30 13:41:01 来源:中国专利 TAG:


1.本发明属于软件测试技术领域,尤其涉及一种基于自适应计算时间策略的恶意软件检测方法及系统。


背景技术:

2.恶意软件是指任何对计算机系统造成损害的软件,它们可以窃取受保护的数据,删除文档或添加未经用户认可的软件等。不同的恶意软件,如广告软件、银行恶意软件、短信恶意软件等,随着加密和变形技术的迅速发展而不断更新,成为对网络空间严重的威胁之一。因此,及时识别下载的软件样本是否合法对用户的保护至关重要。
3.当前主要的恶意软件检测方法主要有基于特征码的恶意软件检测方法、基于机器学习的恶意软件检测方法、基于深度学习的恶意软件检测方法等:
4.1)基于特征码的恶意软件检测方法基本原理是利用每个软件特有的特征信息进行匹配,即在已知恶意软件指定特征码的情况下,通过与目标待检测软件的特征码进行匹配,如果在已有的恶意软件特征码数据库中找到相同的特征码则将目标软件判定为恶意软件,否则为良性软件。对于该类方法而言,已有的恶意软件特征码数据库是关键。因此,该类方法的缺点也是容易被攻击者通过混淆技术改变软件语法结构,从而使得特征码发生改变。并且虽然可以通过与已有特征码的精确匹配而达到恶意检测的目的,但是无法处理未知恶意软件。
5.2)基于机器学习恶意软件检测方法的提出解决了以上问题,基于机器学习的恶意软件检测方法的基本原理是通过程序分析等技术提取不同的特征描述待分析样本的不同行为,然后每一个样本均用一个固定维度向量表示,最后借助于现有的机器学习算法对已知标签的样本进行训练并构建分类器,从而能够对未知样本进行预测判断。但是基于机器学习的恶意软件检测方法存在的问题是目前的工作大部分依赖于大量样本的有监督学习才能训练出较好的模型。
6.3)而深度学习是机器学习中一种基于对数据进行表征学习的方法。深度学习技术能够将特征学习融入到模型的建立过程中,从而减少了人为设计特征所造成的不完备性,避免了机器学习依赖于大量样本的缺陷。尽管现有的恶意软件检测相关研究工作已经取得了不错的进展,但现有方法在性能上仍然存在很大的局限性,最新的技术在提升性能的同时,还提高了对设备计算负荷的要求,这使得现有的模型还处于理论研究阶段,难以在实际中得到推广应用。因此,能够降低设备计算负荷的新模型亟待研究。


技术实现要素:

7.本发明的第一个目的是针对现有技术的不足,提出了一个新的深度学习框架——dact-transformer来检测android恶意软件,是一种用于类似transformer模型的自适应计算时间策略。dact-transformer为transformer的常规处理增加了一个自适应的计算机制,它可以控制在推理时需要执行的transformer块的数量。通过这样使本发明在略微降低精
度的情况下,减少了模型的计算负荷,降低在实际生产中对设备造成的压力。
8.本发明包括以下步骤:
9.s1、采集目前android软件的apk数据,标签为恶意软件和良性软件;对apk数据进行数据清洗,并对数据进行划分得到训练集、验证集和测试集;所述apk数据是指代对apk安装包进行解压,并对解压结果进行解析,从而提取出程序的多个特征,所述的多个特征包括系统调用、绑定器以及复合行为的调用频率。
10.s2、对步骤s1处理后的数据通过卷积神经网络conv1d,将二维数据扩展维度成多维稠密向量,将原始特征之间的弱关联信息嵌入到连续向量空间中,生成一个序列簇矩阵。
11.s3、搭建基于自适应计算时间策略的恶意软件检测模型——dact-transformer,并使用训练集数据对模型进行训练;
12.s4、用训练好的dact-transformer模型对测试集数据进行检测。
13.s5、用测试好的dact-transformer模型对验证集数据进行验证。
14.s6、利用验证好的dact-transformer模型以实现android软件的检测。
15.进一步地,步骤s1中数据清洗的方法为:
16.清洗缺失值、异常值,对数据的特征属性量化编码,对数据归一化处理。
17.更进一步地,步骤s1中数据清洗的方法为:
18.1)查找是否存在缺失值,若存在则继续判断缺失值个数是否大于预设阈值a,若是则认为缺失值过多,则选择与样本标签相同的样本集属性的平均数或众数填充缺失值,若否则认为缺失值较少,则可以删除缺失值所在的数据行;
19.2)检查是否存在异常值,若存在则继续判断异常值个数是否大于预设阈值b,若是则认为异常值过多,需分析异常值的原因并修改异常值,若否则认为异常值较少,删除包括异常值在内的数据行;
20.3)特征属性量化编码:在范围0-m内对离散的特征属性进行编码,其中m 1表示软件类型总数。
21.4)采用的归一化方法是对每个特征进行如下约束,公式如下:
[0022][0023]
其中,x
i,norm
表示第i个特征xi的归一化结果,x
i,min
、x
i,max
分别表示第i个特征所在列(即xi所有同类型特征)的最小值、最大值。
[0024]
进一步地,步骤s2使用训练数据对模型进行训练,得到最终的检测模型。
[0025]
进一步地,步骤s3利用检测模型测试的步骤为:将测试数据样本经过清洗后,输入到dact-transformer模型进行检测,并输出检测结果。
[0026]
所述dact-transformer模型包括embedding层、n个transformer编码层以及n个自适应计算层dact;n=12;
[0027]
所述embedding层用于将输入序列经过embedding扩展成尺寸为512维的特征向量;
[0028]
第1个transformer编码层接收所述embedding层的输出,经过transformer编码后的输出被复制成两份,分别输入到第2个transformer编码层和第1个dact层。
[0029]
第n个transformer编码层接收上一层transformer编码层的输出,经过
transformer编码后的输出被复制成两份,分别输入到第n 1个transformer编码层和第n个dact层;其中2≤n≤n-1;
[0030]
第n个transformer编码层接收上一层transformer编码层的输出,经过transformer编码后的输出输入到第n个dact层;
[0031]
第1个dact层接收第1个transformer编码层的输出,将其输入的矩阵经过softmax和sigmoid处理后得到中间预测结果yn和其置信度,再输出到第2个dact层;
[0032]
第n个dact层接上一层transformer编码层和dact层的输出,将其输入的矩阵经过softmax和sigmoid处理后得到中间预测结果yn和其置信度,再输出到下一层dact层;在每一层dact中,当置信度达到一定范围区间后终止训练,将当前预测结果作为中间预测结果输出;2≤n≤n-1;
[0033]
第n个dact层接第n个transformer编码层和第n-1个dact层的输出,将其输入的矩阵经过softmax和sigmoid处理后得到最终预测结果yn。
[0034]
所述transformer编码层包括multihead attention层和全连接层。所述multihead attention层用于对输入的特征向量通过self-attention计算注意力分布,得到一个矩阵。所述全连接层用于所述multihead attention层的输出经过归一化后,对特征进行非线性变换。
[0035]
本发明的第二个目的是提供一种实现所述方法的恶意软件检测系统,其特征在于包括已经训练、验证、测试好的基于自适应计算时间策略的恶意软件检测模型dact-transformer。
[0036]
本发明的第三个目的是提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行所述的方法。
[0037]
本发明的第四个目的是提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现所述的方法与现有技术相比,本发明的有益效果为:
[0038]
本发明的基于transformer的恶意软件检测方法,采用大规模预训练语言模型transformer与深度学习模型dact相结合的方法作为恶意软件检测模型的基础。该模型可以降低大规模预训练语言模型的计算负荷,平衡计算效率和计算精度,在综合性能上取得较好的结果。本发明为当前主流恶意软件检测方法在实际推广中对设备性能要求过于严格导致难以应用的问题提供了一种解决方案。
附图说明
[0039]
图1为本发明实例提供的全部实验的训练过程和测试过程,数据预处理、创建序列矩阵、计算每个转换器块的输出过程等都包含在其中;
[0040]
图2为本发明实例提供的transformer的encoder编码器部分模型图;
[0041]
图3为本发明实例提供的dact的内部结构模型图;
[0042]
图4为本发明实例提供的dact-transformer的模型架构。
具体实施方式
[0043]
下面结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整的描
述。本发明实例提供了一种融合大规模预处理语言模型和深度学习的恶意软件检测方法,检测流程如图1所示。
[0044]
首先对原始数据集进行特征筛选和特征处理,按照7:3划分数据集,使用训练数据对模型进行训练和微调,得到训练完的检测模型并保存,利用检测模型对测试集进行预测,得到预测结果并进行结果的分析。
[0045]
具体步骤如下。
[0046]
步骤1:数据预处理
[0047]
1)删除具有大部分缺失值的特征所在行,因为太多的缺失值不仅没有参考价值,填充后的缺失值还有可能带来负面影响;
[0048]
2)查找异常值并删除,原因同上;
[0049]
3)若缺失值和异常值仅占据一组数据集的小部分,则可以通过中位法对数据集进行填充、修改;
[0050]
4)特征属性量化编码:在范围0-m内对离散的特征属性进行编码,其中m 1表示软件类型总数;
[0051]
5)采用的归一化方法是使用当前特征的最大值最小值对特征值进行约束,公式如下:
[0052][0053]
6)划分数据为训练集、验证集和测试集时对数据进行打乱,加强模型的泛化能力。
[0054]
步骤2:对步骤1处理后的数据通过卷积神经网络conv1d,将二维数据扩展维度成多维稠密向量,将原始特征之间的弱关联信息嵌入到连续向量空间中,生成一个序列簇矩阵。
[0055]
步骤3:将步骤2中经过卷积神经网络生成的序列簇矩阵放入本发明提出的模型中运行。本发明采用基于自适应计算时间策略的恶意软件检测模型——dact-transformer。
[0056]
首先,transformer作为大规模预训练语言模型,是一个避免递归的架构,它完全依靠注意力机制来得出输入和输出之间的全局依赖关系。在transformer被提出之前,大多数最先进的深度学习模型都属于基于注意力的递归神经网络(recurrent neural network,rnn)模型。这种类型的模型的一个缺点是,序列计算结构使得它无法并行处理输入序列,且具有最大长度依赖问题。另一个缺点是注意力机制对源数据中的一个特征只分配一个重要性权重,所以它只能关注其中的一个方面。transformer解决了这两个问题,并只依靠改进的注意力机制实现了新的最先进的性能。
[0057]
本发明选用具有特征提取能力的transformer的encoder部分,如图2,这一部分同时拥有提取长距离依赖关系的能力和并行计算的能力。这些能力主要是得益于transformer-encoder中的self-attention结构,在计算的时候同时利用了它前后特征使其能提取特征之间长距离依赖关系;由于每个特征的计算都是独立不互相依赖,所以可以同时并行计算所有的特征。
[0058]
其次,dact-transformer模型的核心是可微分自适应计算时间(differentiable adaptive computation time,dact)算法。dact作为一个额外的线性层作为门控机制,该线性层能够独立地学习置信函数。然后,该机制可以用来检测何时获得稳定的结果,从而减少
预测所需的总步骤数。
[0059]
所述dact-transformer模型包括embedding层、n个transformer编码层以及n个自适应计算层dact;n=12;
[0060]
所述embedding层用于将输入序列经过embedding扩展成尺寸为512维的特征向量;
[0061]
第1个transformer编码层接收所述embedding层的输出,经过transformer编码后的输出被复制成两份,分别输入到下一层transformer编码层和dact层。
[0062]
第n个transformer编码层接收上一层transformer编码层的输出,经过transformer编码后的输出被复制成两份,分别输入到下一层transformer编码层和dact层;其中2≤n≤n;
[0063]
第1个dact层接收第1个transformer编码层的输出,将其输入的矩阵经过softmax和sigmoid处理后得到中间预测结果yn和其置信度,再输出到下一层dact层;
[0064]
第n个dact层接上一层transformer编码层和dact层的输出,将其输入的矩阵经过softmax和sigmoid处理后得到中间预测结果yn和其置信度,再输出到下一层dact层;在每一层dact中,当置信度达到一定范围区间后终止训练,将当前预测结果作为中间预测结果输出;2≤n≤n-1;
[0065]
第n个dact层接上一层transformer编码层和dact层的输出,将其输入的矩阵经过softmax和sigmoid处理后得到最终预测结果yn。
[0066]
所述transformer编码层包括multihead attention层和全连接层。在一个transformer的编码层中,先对输入的特征向量通过self-attention计算注意力分布,得到一个矩阵,经过归一化后,进入全连接神经网络,该层是为了对特征进行非线性变换,提高模型的表达能力。
[0067]
所述transformer编码层具体是:
[0068]
1)在一个transformer block中,如图2所示,步骤2中经过卷积神经网络生成的序列簇矩阵,被放入multi-head attention中计算序列的注意力分布,其中,注意力机制的计算过程可以大致分为3步:
[0069]

信息输入:接收输入的特征向量q、k、v,其中q、k、v分别为矩阵x经过嵌入层不同线性变换之后的结果,矩阵x=[x1,x2,...,xm]为步骤s2的序列簇矩阵或上一层transformer编码层的输出结果;m=512。
[0070]

计算注意力分布α:通过q和k进行点积计算相关度,并通过softmax计算分数。令q=k=v,通过softmax计算注意力权重,公式如(1.2)所示。
[0071]
αi=softmax(s(ki,q))=softmax(s(xi,q))#(1.11)
[0072]
其中αi为注意力概率分布,s(ki,q)为注意力打分机制。
[0073]

信息加权平均:注意力概率分布αi来解释在上下文查询qi时,第i个信息受关注程度,公式如(1.3)所示。
[0074][0075]
其中m表示矩阵x的维度。
[0076]
4)经由multi-head attention计算得出的序列矩阵,到达add&norm层。经过残差处理以及normalization标准化,用于消除层数加深所带来的信息损失问题。
[0077]
5)经过标准化处理的序列矩阵,进入feedforward层,feedforward层是一个两层的全连接层,由于在multi-head attention层中,主要进行的是矩阵乘法,是线性变换,而线性变化的学习能力不如非线性变换,因此在feedforward层中,先将数据映射到高维空间再映射到低维空间,可以学习更抽象的特征。
[0078]
4)从feedforward层学习结束后再一次经过一层残差处理和标准化过程得到的结果矩阵,将被复制成两份,分别被投入下一层transformer block序列矩阵的计算,以及用于dact中计算当前模型的精度。
[0079]
所述dact层具体是:
[0080]
1)在一个dact块内部,从当前transformer block中获取到的中间值经过softmax和sigmoid处理后的到中间预测结果yn和表示当前模块对其输出结果yn的置信度hn。hn是提供自适应计算的主要信息,如公式(1.4)(1.5)所示。
[0081][0082][0083]
其中zi表示从transformer编码层获取到的所有分类结果中的第i个分类结果,c表示从transformer编码层获取到所有分类结果的总数;
[0084]
2)这样就可以建立一个协助确定停止条件的值pn,如(1.6)所示,pn代表考虑前n个模型的全部集合的不确定性,pn的值一定是相对于索引n单调递减并趋向于0的,当pn达到一定区间范围后,就可以停止训练后续模型块。如图3所示。
[0085][0086]
pr(ans
*
,n)(1-pn)d≥pr(ans
ru
,n) pnd#(1.16)
[0087]an
=ynp
n-1
a
n-1
(1-p
n-1
)#(1.17)
[0088]
区间范围计算如(1.7)所示,当pn达到范围内时停止计算。此外,an为辅助累加器变量,如(1.8)所示,用于组合到第n个block为止所有的中间输出y,以形成最终结果y。ans
*
表示最好的中间输出y,d表示距离n剩余的步骤数量,ans
ru
表示次好的中间输出y,pr(ans
*
,n)表示在第n层时得到ans
*
的概率。
[0089]
步骤4:将测试数据放入经过步骤3训练的模型中进行检测,本步骤输出的结果是最终预测结果。
[0090]
本发明性能评估采用开源的android恶意软件数据集cicmaldroid 2020,它有超过17341个android样本。该数据集的样本包括五个不同的类别:广告软件、银行恶意软件、短信恶意软件、风险软件和良性软件。
[0091]
本发明采用的性能评价指标是accuracy,precision,recall,f1-score和模型训练时长(time/epoch)5个指标。
[0092]
accuracy指对于给定的数据,分类正确的样本数占总样本数的比例。
[0093][0094]
precision:在预测为正类的样本中实际上真正为正类的样本所占的比例。
[0095][0096]
recall:在实际上真正为正类的样本中预测正确的比例。即真实为正类的样本中,预测为正类的样本占多少。
[0097][0098]
precision越高,则模型对负样本区分能力越强,而recall越高,则说明模型对正样本的区分能力越强。f1-score指precision和recall的调和平均。
[0099][0100]
因为precision和recall是一对相互矛盾的量,当p高时,r往往相对较低,当r高时,p往往相对较低,所以为了更好的评价分类器的性能,本发明中使用f1-score作为评价标准来衡量分类器的综合性能。
[0101]
除此之外,本文还对模型训练时平均每个epoch的训练时长进行比较,用于直观的衡量dact-transformer模型是否减少计算量。
[0102]
本发明模型与其他模型在上述数据集上预测效果对比如表1所示:
[0103]
表1模型预测效果对比
[0104][0105]
从表1中可以得出,在判断是否是恶意软件的训练任务中,transformer模型的准确率最高,平均达到了97.59%,而本发明模型dact-transformer在缩短模型平均训练时长约43%的情况下,仅仅比transformer模型的accuracy低1.95%;而与lstm相比,本发明模型dact-transformer的模型accuracy高约1.325%的情况下,模型平均训练时长接近。其他precision,recall,f1-score均表明本发明模型dact-transformer模型的综合性能是最好的。
[0106]
以上是本发明的较佳实施过程,凡依本发明技术所做的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献