System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及恶意软件检测,具体涉及一种基于增强语义api序列特征的动态恶意软件检测方法。
技术介绍
1、随着计算机和网络的普及,恶意软件的数量和种类不断增加,研究人员提出了各种静态和动态分析方法来检测恶意软件。静态分析方法无需执行恶意软件样本,通过研究源代码或二进制文件以提取字符串、函数调用、api调用等静态特征进行分析。这种方法能够避免运行恶意软件带来的感染风险,并且占用较少的资源。然而,恶意软件开发者采用代码加密、程序指令重新排序和死代码插入等混淆技术来规避静态分析,导致静态分析方法需要消耗更多时间以解析可执行文件结构,进而影响了分析的效率和准确性。此外,静态分析依赖于已知的特征或签名,因此在应对未知或新型恶意软件时存在局限性。动态分析方法通过将可执行程序加载到主内存中,监测其实际运行行为进行分析。动态分析监测可执行程序运行时的注册表键更改、url访问以及api调用等行为,通过行为模式的分析,有效应对零日恶意软件的威胁。同时,同一家族的恶意软件常表现出相同或高度相似的行为,这些行为模式可以通过运行时的api调用序列加以描述。然而,大部分已有方法更多依赖于api调用过程中的参数信息来构建检测和分类系统,导致了特征处理过度依赖先验知识、模型参数量大以及计算复杂度高,忽略了上下文中的动态api调用序列,从而无法充分挖掘复杂语义。
技术实现思路
1、专利技术目的:本专利技术的目的是提供一种基于增强语义api序列特征的动态恶意软件检测方法,解决现有技术中序列语义挖掘不足和预训练模型微调
2、技术方案:本专利技术所述的一种基于增强语义api序列特征的动态恶意软件检测方法,包括以下步骤:
3、(1)将可执行文件上传到沙盒中获取包含api序列及其参数的动态行为报告;随机选取不重复的恶意软件和善意软件的动态行为报告作为实验数据,并将其训练集和测试集;并进行预处理;
4、(2)采用鲁棒优化的bert预训练模型roberta获取上下文语义信息;
5、(3)通过变分自编码器对api调用频率进行采样和编码,以获取全局api调用特征的通用表示,从而捕捉系统中api调用的行为模式;
6、(4)基于门控机制的多模态权重控制模块调节各模态特征权重,使语义特征和全局特征间进行交互,生成语义增强的api序列特征;
7、(5)采用多头注意力机制构建基于增强语义api序列特征的检测模型。
8、进一步的,步骤(1)预处理具体如下:采用布谷鸟沙盒抓取的公开api、微软公开的windows系统api以及训练集中包含的api构建字典,从而将api序列转换为向量表示;对收集到的动态行为报告通过数据预处理的算法进行预处理,去除其所包含的冗余信息。
9、进一步的,步骤(2)具体如下:将api序列的长度规范为roberta的最大输入长度512,得到序列
10、;
11、并采用注意力掩码标记进行符号填充;对api序列进行训练获取api调用间语义特征映射图,公式如下:
12、;
13、其中,为roberta模型提取的api调用序列s对应api的语义特征;
14、通过密集层将api语义特征图c映射到信息空间:
15、;
16、其中,为sigmoid激活函数,和分别是神经网络的权重矩阵和偏置向量;为api序列语义特征的映射矩阵。
17、进一步的,步骤(3)包括以下步骤:
18、(31)抽取训练集中api调用全局频率特征即统计单个api在恶意或良性程序上的出现次数并除以总次数进行归一化;将每个软件的api调用序列对应的频率矩阵输入至变分自动编码器vae中进行编码,将可执行程序的api频率特征映射到潜在空间的向量表示中,对api调用全局特征的提取和挖掘;
19、(32)将训练集中所有可执行程序的api调用序列生成的统计向量,记为;其中, 为不同程序api序列的统计向量,总数为n;vae的编码器对于输入的统计向量 产生潜在变量 的概率分布 ,其中, 是包含了所有在编码过程中需要学习的权重和偏置的编码器参数集;利用重参数化方法采样得到潜在变量值;
20、(33)将采样得到的潜在变量值 通过解码器映射回输入空间进行反向传播,得到重建的概率分布 ;损失函数公式如下:
21、;
22、其中,期望项用来衡量生成数据的能力, 是给定输入 时潜在变量的后验分布; kl项衡量了后验分布 与先验分布 之间的差异,用以确保学到的潜在api表示接近于先验分布;通过最小化两个损失项使得潜在的api全局表示 更接近于先验分布 ,使编码器生成能够表示api全局特征信息的潜在向量;
23、(34)利用重参数化方法拟合api序列的全局特征分布,公式如下:
24、;
25、其中,为api全局特征的多元高斯先验分布, 表示分布均值, 表示标准差, 表示协方差矩阵。
26、进一步的,步骤(4)具体如下:将通过vae编码器得到的可执行程序全局信息的潜在向量表示投影到与语义特征同等维度大小的信息空间中,获得全局特征的向量表示 ;利用门控机制的adagate函数融合语义信息 和全局信息 构建多模态特征权重控制模块,以动态调整模态间特征权重;利用全局特征获得增强语义的api序列特征,公式如下:
27、;
28、其中 表示激活函数, 代表逐元素乘积; 是语义信息 经过线性层得到的概率表示;
29、通过采用门控机制中的valve函数动态调整全局特征信息,去除全局信息 中对分类置信度较低的api调用,公式如下:
30、对于每个api的特征 ,
31、;
32、其中,valve函数为全局特征信息动态调整函数, 为置信度阈值,用于调节全局信息与api特征的融合程度;具体而言,若 = 0 ,所有全局信息将会被丢弃;而如果 = 0.5 ,则接受所有全局信息。
33、进一步的,步骤(5)包括以下步骤:
34、(51)通过多模态融合特征 生成初始查询、键和值;其中,q是查询矩阵,k是键矩阵,v是值矩阵;
35、(52)利用线性层变换生成不同的特征头 ,公式如下:
36、;
37、其中,h表示第h个特征头,分别是第h个头的查询权重矩阵、键权重矩阵和值权重矩阵;
38、(53)将矩阵q、k和v与每个不同特征头相乘,得到api序列特征的不同注意力权重,公式如下:
39、;
40、其中,、和分别表示不同特征头的查询、键和值表示;
41、(54)分别计算每个头的注意力结果,公式如下:
42、;
43、其中,本文档来自技高网...
【技术保护点】
1.一种基于增强语义API序列特征的动态恶意软件检测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于增强语义API序列特征的动态恶意软件检测方法,其特征在于,步骤(1)预处理具体如下:采用布谷鸟沙盒抓取的公开API、微软公开的Windows系统API以及训练集中包含的API构建字典,从而将API序列转换为向量表示;对收集到的动态行为报告通过数据预处理的算法进行预处理,去除其所包含的冗余信息。
3.根据权利要求1所述的一种基于增强语义API序列特征的动态恶意软件检测方法,其特征在于,步骤(2)具体如下:将API序列的长度规范为RoBERTa的最大输入长度512,得到序列
4.根据权利要求1所述的一种基于增强语义API序列特征的动态恶意软件检测方法,其特征在于,步骤(3)包括以下步骤:
5.根据权利要求1所述的一种基于增强语义API序列特征的动态恶意软件检测方法,其特征在于,步骤(4)具体如下:将通过VAE编码器得到的可执行程序全局信息的潜在向量表示投影到与语义特征同等维度大小的信息空间中,获得全局特征的向量表示 ;利
6.根据权利要求1所述的一种基于增强语义API序列特征的动态恶意软件检测方法,其特征在于,步骤(5)包括以下步骤:
...【技术特征摘要】
1.一种基于增强语义api序列特征的动态恶意软件检测方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于增强语义api序列特征的动态恶意软件检测方法,其特征在于,步骤(1)预处理具体如下:采用布谷鸟沙盒抓取的公开api、微软公开的windows系统api以及训练集中包含的api构建字典,从而将api序列转换为向量表示;对收集到的动态行为报告通过数据预处理的算法进行预处理,去除其所包含的冗余信息。
3.根据权利要求1所述的一种基于增强语义api序列特征的动态恶意软件检测方法,其特征在于,步骤(2)具体如下:将api序列的长度规范为roberta的最大输入长度512,得到序列
4.根据权利要...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。