利索能及
我要发布
收藏
专利号: 2021113684818
申请人: 山东省计算中心(国家超级计算济南中心)
专利类型:发明专利
专利状态:已下证
更新日期:2025-12-22
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种跨平台恶意代码检测方法,其特征在于,包括步骤如下:(1)使用多个平台上良性程序样本,训练一个预训练模型来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;

(2)在预训练模型之上,使用多个平台有限规模的良性程序样本和恶意程序样本构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;

(3)使用构建的跨平台恶意代码检测模型,对不同平台上的未知程序样本进行检测,判断其为恶意或良性。

2.根据权利要求1所述的一种跨平台恶意代码检测方法,其特征在于,步骤(1)的具体实现过程如下:

1.1:收集Windows、Andriod、Linux、国产化平台上大规模良性程序样本,构建多平台良性程序数据集D,D中的样本表示为Ui=[Ci,Wi];其中,Ci={C1,C2,...,Cn}表示第i个样本的程序指令,集合Ci中下标n表示程序指令(token)的总个数;Wi={W1,W2,...,Wm}表示第i个样本的注释,集合Wi中下标m表示注释词的总个数;

1.2:基于多层Transformer编码器构建预训练模型M,使用多平台良性程序数据集D对预训练模型M做预训练;预训练后,预训练模型M能够捕捉程序指令序列在结构和语义上的相关性,以及不同平台的程序指令间的语义相关性。

3.根据权利要求2所述的一种跨平台恶意代码检测方法,其特征在于,步骤1.2的具体实现过程如下:

1.2.1:用多平台良性程序数据集D中每一个样本的程序指令Ci={C1,C2,...,Cn}、注释Wi={W1,W2,...,Wm}构建序列Qi,表示为Qi={[CLS],Ci,[SEP],Wi};其中,[CLS]为向量,经过预训练后,该向量对应的输出值作为整个序列的语义表示用于后续的恶意代码检测任务,[SEP]为分隔符;

1.2.2:定义两个预训练任务P1和P2,其中:任务P1将训练样本即序列Qi中的源码即程序指令和注释进行随机遮盖,任务P1的目标是使预训练模型M能够准确的预测被遮盖的词,目的是使预训练模型M学习程序指令在上下文之间的结构关系;任务P2遮盖训练样本即序列Qi的注释,任务P2的目标是通过训练样本的程序指令预测其对应的正确注释,目的是使预训练模型M学习程序指令间的语义相关性;

把Qi作为预训练模型M的输入,通过最小化P1和P2的总损失函数,调整预训练模型M参数,得到预训练模型M。

4.根据权利要求3所述的一种跨平台恶意代码检测方法,其特征在于,任务P1的目标函数L(θ)MLN如式(Ⅰ)所示:

式(Ⅰ)中,M是指被遮盖的词集合,P是指预测被遮盖词为原始词的概率,V是指词典,mas ed mas ed

C k 是指随机遮盖的源码;W k 是指随机遮盖的注释;

任务P2的目标函数L(θ)CP如式(Ⅱ)所示:式(Ⅱ)中,N是指训练样本集合,P是指预测样本的注释是否为其真实注释的概率,rep aced

W l 是指被随机替换的注释,ni是指被预测的样本,Iscomment是指被预测样本的注释为真实注释,Notcomment是指被预测样本的注释不是真实注释;

P1和P2的总损失函数L(θ)sum如式(Ⅲ)所示:L(θ)sum=L(θ)MLM+L(θ)CP (III)。

5.根据权利要求1所述的一种跨平台恶意代码检测方法,其特征在于,步骤(2)的具体实现过程如下:

2.1:在预训练模型M之上构建恶意代码检测模型M’,恶意代码检测模型M’包括预训练模型M和一个线性分类器K;

2.2:构建数据集D’,并对恶意代码检测模型M’进行训练,数据集D’包括多种平台的恶意代码样本和良性代码样本;

进一步优选的,数据集D’中的每一个样本表示为Ui’=[Ci’,Yi],其中,C′i={C′1,C′2,...,C′n}表示数据集D’中第i个样本的程序指令,集合C′i中下标n表示程序指令的总个数,Yi表示第i个样本的真实标签,1表示恶意代码,0表示良性代码;恶意代码检测模型M’的训练过程的具体步骤如下:

2.2.1:将数据集D’中第i个样本转化为序列Qi’={[CLS],Ci’,[SEP],Yi},将Qi’输入预训练模型M;

2.2.2:预训练模型M输出Qi’中[CLS],经多层Transformer编码后得到对应的向量x,把x作为线性分类器K的输入,预测Qi’是否为恶意代码,使用梯度下降法最小化预测损失来优化线性分类器K的参数和预训练模型M的参数,得到适用于跨平台恶意代码检测的恶意代码检测模型M’。

6.根据权利要求5所述的一种跨平台恶意代码检测方法,其特征在于,步骤2.2.2中,线性分类器K是一个全连接层,将线性分类器K的输出输入softmax层,来计算向量x的概率分布:

将向量x输入线性分类器K和softmax层,得到每个样本的概率分布,该概率分布的每一个值介于0和1之间;

通过最小化向量x的概率分布与样本真实类别的one hot编码的交叉熵,来优化线性分类器K的参数和预训练模型M的参数,当两次迭代之间AUC值没有提升时,停止训练,从而得到适用于跨平台恶意代码检测的恶意代码检测模型M’,损失函数L如式(Ⅳ)所示:式(Ⅳ)中,yi为样本i的真实标签,pi为预测为恶意代码的概率。

7.根据权利要求1所述的一种跨平台恶意代码检测方法,其特征在于,步骤(3)的具体实现过程如下:

对于未知样本b,生成其对应序列O={[CLS],Cb},Cb是指未知样本b的程序指令,将序列O输入模型M’,输出b是否为恶意代码。

8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1‑7任一所述的跨平台恶意代码检测方法的步骤。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑7任一所述的跨平台恶意代码检测方法的步骤。

10.一种跨平台恶意代码检测系统,其特征在于,用于运行权利要求1‑7任一所述的跨平台恶意代码检测方法,包括预训练模型构建及训练单元、跨平台恶意代码检测模型构建及训练单元、恶意代码检测单元;

所述预训练模型构建及训练单元用于:使用多个平台上良性程序样本,训练一个预训练模型来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;所述跨平台恶意代码检测模型构建及训练单元用于:构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;所述恶意代码检测单元用于:使用训练后的跨平台恶意代码检测模型,对不同平台上的未知程序样本进行检测,判断其为恶意或良性。