CN114065199A - 一种跨平台恶意代码检测方法及系统 - Google Patents
一种跨平台恶意代码检测方法及系统 Download PDFInfo
- Publication number
- CN114065199A CN114065199A CN202111368481.8A CN202111368481A CN114065199A CN 114065199 A CN114065199 A CN 114065199A CN 202111368481 A CN202111368481 A CN 202111368481A CN 114065199 A CN114065199 A CN 114065199A
- Authority
- CN
- China
- Prior art keywords
- malicious code
- platform
- training
- code detection
- model
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Probability & Statistics with Applications (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Virology (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种跨平台恶意代码检测方法及系统,包括:(1)使用多个平台上良性程序样本,训练一个预训练模型来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;(2)在预训练模型之上,使用多个平台有限规模的良性程序样本和恶意程序样本构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;(3)使用构建的跨平台恶意代码检测模型,对不同平台上的未知程序样本进行检测,判断其为恶意或良性。本发明使用多个平台的程序样本进行模型训练,充分利用不同平台程序在结构、语义上下文上的共性,缓解了单一平台恶意代码训练样本不足的问题。
Description
技术领域
本发明涉及一种跨平台恶意代码检测方法及系统,属于软件安全技术防护技术领域。
背景技术
恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码。最常见的恶意代码有计算机病毒(简称病毒)、特洛伊木马(简称木马)、计算机蠕虫(简称蠕虫)、后门、逻辑炸弹等。恶意代码给网络用户、企业、工业设施、网络和信息设备等带来了严重的安全威胁。因此,恶意代码检测技术一直是信息和网络安全领域关注的焦点。
恶意代码检测技术发展至今,主要可分为基于签名的、基于启发式的和基于机器学习的检测技术。其中,基于签名的检测技术为已知的恶意代码生成一个唯一的特征签名来构建恶意代码库,通过模式匹配的方法来检测恶意代码,其优点是速度快,对于已知恶意代码检测准确率高、误报率低,缺点是无法检测未知的恶意代码;基于启发式的方法根据恶意代码的特异性,预定义一系列启发式的规则来检测恶意代码,启发式规则可以是针对静态代码的规则,也可以是针对恶意代码运行时动态行为的规则,其优点是能够检测一部分未知的恶意代码,缺点是检测时存在一定的不准确性和误报率。随着恶意代码反检测技术的发展,恶意代码能够利用复杂的加壳、变形、多态、自毁等技术隐蔽自身或进行变种,削弱了上述两类方法有效性。近年来,基于机器学习的恶意代码检测技术逐渐成为主流。早期基于机器学习的检测技术通过人工特征工程方法提取样本的特征表示,再训练支持向量机(SVM)、随机森林(RandomForest)等分类模型来检测恶意代码。然而,一方面人工特征工程需耗费大量人力,成本较高;另一方面,随着恶意代码功能的不断复杂化、隐蔽化,人工特征的有效性也逐渐降低。
近期,随着深度学习技术的突破性进展,基于卷积神经网络、循环神经网络等深度学习的恶意代码检测成为一个新的技术趋势。深度学习模型基于深层神经网络可自动学习样本的可区分性特征表示,因而可无需进行人工特征工程,实现端到端(即从原始输入至最终结果无需人工参与)的恶意代码检测。
目前,基于深度学习的恶意代码检测技术的一个局限是训练样本缺乏。深度学习模型一般需要大量的训练样本参与参数优化,以获得泛化性能较好的模型。现有技术通常使用某一种平台(多为Windows或Android)的恶意代码数据作为训练集来训练机器学习模型,然后对同平台新的代码样本进行检测。然而,目前可收集到恶意代码样本的数量较少,尽管已有一些公开的恶意代码数据集发布,如微软发布的Windows恶意代码数据集,样本数量仅为10868;Android平台恶意代码数据集Drebin包含5560个样本,另一个公开数据集AMD包含24553个样本。这些数据集规模远小于许多比较成熟的深度学习应用场景中使用的数据集,如图像分类、自然语言处理等。训练样本不足可使深度学习模型过拟合,导致模型对于训练集外的恶意代码检测泛化性较差。有些平台,如Linux、国产化平台几乎没有可用的恶意代码数据集。尚未发现相关技术利用不同一种平台的恶意代码样本构建检测模型来检测其他平台的恶意代码,或同时利用多平台的恶意代码样本构建跨平台的恶意代码检测模型。
发明内容
针对现有技术的不足,本发明提供了一种跨平台恶意代码检测方法;
本发明提供的跨平台恶意代码检测模型同时利用多个平台的程序样本进行训练,首先使用大规模良性程序代码训练预训练模型,有效的捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性,然后在预训练模型之上构建恶意代码检测模型。这种方式的有益性在于:(1)使用多个平台的程序样本进行模型训练,充分利用不同平台程序在结构、语义上下文上的共性,缓解了单一平台恶意代码训练样本不足的问题;(2)通过使用大规模良性程序代码构建预训练模型,充分捕捉了程序指令的结构、语义上下文相关性,在预训练模型之上构建恶意代码检测模型,缓解了使用有限规模恶意代码样本导致的训练不足问题;(3)本发明提供的方法能够对无已知恶意代码样本的平台(即训练数据中不存在该平台的恶意代码样本)进行恶意代码检测。
本发明还提供了一种跨平台恶意代码检测系统。
本发明的技术方案为:
一种跨平台恶意代码检测方法,包括步骤如下:
(1)使用多个平台上良性程序样本,训练一个预训练模型来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;
(2)在预训练模型之上,使用多个平台有限规模的良性程序样本和恶意程序样本构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;
(3)使用构建的跨平台恶意代码检测模型,对不同平台上的未知程序样本进行检测,判断其为恶意或良性。
根据本发明优选的,步骤(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能够捕捉程序指令序列在结构和语义上的相关性,以及不同平台的程序指令间的语义相关性。
根据本发明优选的,步骤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。
根据本发明优选的,任务P1的目标函数L(θ)MLN如式(Ⅰ)所示:
式(Ⅰ)中,M是指被遮盖的词集合,P是指预测被遮盖词为原始词的概率,V是指词典,Cmasked是指随机遮盖的源码;Wmasked是指随机遮盖的注释。
任务P2的目标函数L(θ)CP如式(Ⅱ)所示:
式(Ⅱ)中,N是指训练样本集合,P是指预测样本的注释是否为其真实注释的概率,Wreplaced是指被随机替换的注释,ni是指被预测的样本,Iscomment是指被预测样本的注释为真实注释,Notcomment是指被预测样本的注释不是真实注释。
P1和P2的总损失函数L(θ)sum如式(Ⅲ)所示:
L(θ)sum=L(θ)MLM+L(θ)CP (Ⅲ)。
根据本发明优选的,步骤(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表示程序指令(token)的总个数,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’。
根据本发明优选的,步骤2.2.2中,线性分类器K是一个全连接层,将线性分类器K的输出输入softmax层,来计算向量x的概率分布:
将向量x输入线性分类器K和softmax层,得到每个样本的概率分布,该概率分布的每一个值介于0和1之间;
通过最小化向量x的概率分布与样本真实类别的one hot编码的交叉熵,来优化线性分类器K的参数和预训练模型M的参数,当两次迭代之间AUC值没有提升时,停止训练,从而得到适用于跨平台恶意代码检测的恶意代码检测模型M’,损失函数L如式(Ⅳ)所示:
式(Ⅳ)中,yi为样本i的真实标签,pi为预测为恶意代码的概率。
根据本发明优选的,步骤(3)的具体实现过程如下:
对于未知样本b,生成其对应序列O={[CLS],Cb},Cb是指未知样本b的程序指令,将序列O输入模型M’,输出b是否为恶意代码。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现跨平台恶意代码检测方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现跨平台恶意代码检测方法的步骤。
一种跨平台恶意代码检测系统,用于运行跨平台恶意代码检测方法,包括预训练模型构建及训练单元、跨平台恶意代码检测模型构建及训练单元、恶意代码检测单元;
所述预训练模型构建及训练单元用于:使用多个平台上良性程序样本,训练一个预训练模型来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;所述跨平台恶意代码检测模型构建及训练单元用于:构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;所述恶意代码检测单元用于:使用训练后的跨平台恶意代码检测模型,对不同平台上的未知程序样本进行检测,判断其为恶意或良性。
本发明的有益效果为:
1、本发明使用多个平台的程序样本进行模型训练,充分利用不同平台程序在结构、语义上下文上的共性,缓解了单一平台恶意代码训练样本不足的问题;
2、本发明通过使用大规模良性程序代码构建预训练模型,充分捕捉了程序指令的结构、语义上下文相关性,在预训练模型之上构建恶意代码检测模型,缓解了使用有限规模恶意代码样本导致的训练不足问题;
3、本发明提供的方法能够对无已知恶意代码样本的平台(即训练数据中不存在该平台的恶意代码样本)进行恶意代码检测。
附图说明
图1为本发明提供的跨平台恶意代码检测方法与目前主流单平台恶意代码检测方法的流程对比示意图;
图2为基于预训练模型的跨平台恶意代码检测方法的流程示意图;
图3为预训练模型预训练的流程示意图;
图4为预训练模型微调的流程示意图;
图5为本发明多层Transformer编码器的网络架构示意图;
图6为本发明恶意代码检测模型M’的网络架构示意图;
图7为跨平台恶意代码检测系统的结构示意图。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
一种跨平台恶意代码检测方法,包括步骤如下:
(1)使用多个平台上较大规模的良性程序样本,训练一个预训练模型(Pre-trainModel)来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;
(2)在预训练模型之上,使用多个平台有限规模的良性程序样本和恶意程序样本构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;
(3)使用构建的跨平台恶意代码检测模型,对不同平台上(包括预训练和检测模型训练时未涉及的平台)的未知程序样本进行检测,判断其为恶意或良性。
图1为本发明提供的跨平台恶意代码检测方法与目前主流单平台恶意代码检测方法的流程对比示意图;图1中(a)为目前主流单平台恶意代码检测模型原理图,用单平台的小规模样本训练单平台恶意代码检测模型,由于数据量较少,容易造成模型过拟合的情况,且对其他平台恶意代码的识别效果差。针对该不足,本发明如图1中(b)先用多平台大规模的良性程序样本训练一个层次较深、参数规模较大的预训练模型,相比较单平台较小的恶意程序样本,通过在海量大规模良性程序数据上做预训练,可以充分捕捉程序代码单元在结构、语义上的相关性。微调时,再通过多平台恶意样本和多平台良性样本相对平衡的数据集,进一步让模型学习多平台恶意代码的结构和语义特征,从而达到跨平台恶意代码检测的目的。
实施例2
根据实施例1所述的一种跨平台恶意代码检测方法,如图2所示,其区别在于:
步骤(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:如图3所示,基于多层Transformer编码器构建预训练模型M,使用多平台良性程序数据集D对预训练模型M做预训练;预训练后,预训练模型M能够捕捉程序指令序列在结构和语义上的相关性,以及不同平台的程序指令间的语义相关性。
如图5所示,(a)为预训练模型M的架构,(b)为每一层Transformer编码器的架构;预训练模型M为Transformer编码器,由6层完全相同的模块构造而成,每一个模块由一个多头注意力层(Multi-Head Attention)和一个前馈神经网络层(Feed ForwardNetwork)构成,多头注意力层能使模型可以关注不同位置的token,提高注意力(Attention)机制关注token之间联系的能力,前馈神经网络层连接在多头注意力层后,用来对多头注意力层输出的向量表示进行标准化处理。
步骤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学习程序指令间的语义相关性;例如,在一个具体实现中,P1随机选择C和W中15%的token,其中80%用[mask]代替,10%不变,10%用随机token;P2随机选择训练样本中50%的数据,随机化样本的注释,即样本的程序指令与其真实注释不对应。
把Qi作为预训练模型M的输入,通过最小化P1和P2的总损失函数,调整预训练模型M参数,得到预训练模型M。
任务P1的目标函数L(θ)MLN如式(Ⅰ)所示:
式(Ⅰ)中,M是指被遮盖的词集合,P是指预测被遮盖词为原始词的概率,V是指词典,Cmasked是指随机遮盖的源码;Wmasked是指随机遮盖的注释。
任务P2的目标函数L(θ)CP如式(Ⅱ)所示:
式(Ⅱ)中,N是指训练样本集合,P是指预测样本的注释是否为其真实注释的概率,Wreplaced是指被随机替换的注释,ni是指被预测的样本,Iscomment是指被预测样本的注释为真实注释,Notcomment是指被预测样本的注释不是真实注释。
P1和P2的总损失函数L(θ)sum如式(Ⅲ)所示:
L(θ)sum=L(θ)MLM+L(θ)CP (Ⅲ)。
实施例3
根据实施例2所述的一种跨平台恶意代码检测方法,其区别在于:
如图4所示,步骤(2)的具体实现过程如下:
2.1:在预训练模型M之上构建恶意代码检测模型M’,恶意代码检测模型M’包括预训练模型M和一个线性分类器K;
恶意代码检测模型M’的架构是在预训练模型M上连接一个线性分类器K,恶意代码检测模型M’的架构如图6所示。
2.2:为了能更好的学习不同平台恶意代码的结构和语义特征,构建数据集D’,并对恶意代码检测模型M’进行训练,数据集D’包括多种平台的恶意代码样本和良性代码样本。为避免恶意代码检测模型M’偏向样本较多的类别,D’恶意代码和良性代码样本的数量应大致均衡。
数据集D’中的每一个样本表示为Ui’=[Ci’,Yi],其中,C'i={C'1,C'2,...,C'n}表示数据集D’中第i个样本的程序指令,集合C'i中下标n表示程序指令(token)的总个数,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’。
步骤2.2.2中,线性分类器K是一个全连接层,将线性分类器K的输出输入softmax层,来计算向量x的概率分布:
将向量x输入线性分类器K和softmax层,得到每个样本的概率分布,该概率分布的每一个值介于0和1之间;
通过最小化向量x的概率分布与样本真实类别的one hot编码的交叉熵,来优化线性分类器K的参数和预训练模型M的参数,当两次迭代之间AUC值没有提升时,停止训练,从而得到适用于跨平台恶意代码检测的恶意代码检测模型M’,损失函数L如式(Ⅳ)所示:
式(Ⅳ)中,yi为样本i的真实标签,pi为预测为恶意代码的概率。
步骤(3)的具体实现过程如下:
对于未知样本b,按照步骤2.2.2生成其对应序列O={[CLS],Cb},Cb是指未知样本b的程序指令,将序列O输入模型M’,输出b是否为恶意代码。
实施例4
一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现实施例1-3任一所述的跨平台恶意代码检测方法的步骤。
实施例5
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1-3任一所述的跨平台恶意代码检测方法的步骤。
实施例6
一种跨平台恶意代码检测系统,如图7所示,用于运行实施例1-3任一所述的跨平台恶意代码检测方法,包括预训练模型构建及训练单元、跨平台恶意代码检测模型构建及训练单元、恶意代码检测单元;
预训练模型构建及训练单元用于:使用多个平台上良性程序样本,训练一个预训练模型来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;跨平台恶意代码检测模型构建及训练单元用于:构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;恶意代码检测单元用于:使用训练后的跨平台恶意代码检测模型,对不同平台上的未知程序样本进行检测,判断其为恶意或良性。
Claims (10)
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是指词典,Cmasked是指随机遮盖的源码;Wmasked是指随机遮盖的注释;
任务P2的目标函数L(θ)CP如式(Ⅱ)所示:
式(Ⅱ)中,N是指训练样本集合,P是指预测样本的注释是否为其真实注释的概率,Wreplaced是指被随机替换的注释,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’。
7.根据权利要求1所述的一种跨平台恶意代码检测方法,其特征在于,步骤(3)的具体实现过程如下:
对于未知样本b,生成其对应序列O={[CLS],Cb},Cb是指未知样本b的程序指令,将序列O输入模型M’,输出b是否为恶意代码。
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任一所述的跨平台恶意代码检测方法的步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一所述的跨平台恶意代码检测方法的步骤。
10.一种跨平台恶意代码检测系统,其特征在于,用于运行权利要求1-7任一所述的跨平台恶意代码检测方法,包括预训练模型构建及训练单元、跨平台恶意代码检测模型构建及训练单元、恶意代码检测单元;
所述预训练模型构建及训练单元用于:使用多个平台上良性程序样本,训练一个预训练模型来捕捉程序指令上下文中的结构、语义相关性以及不同平台程序指令间的结构、语义共性;所述跨平台恶意代码检测模型构建及训练单元用于:构建跨平台恶意代码检测模型,对跨平台恶意代码检测模型进行参数微调,将预训练模型中的知识迁移到跨平台恶意代码检测模型中;所述恶意代码检测单元用于:使用训练后的跨平台恶意代码检测模型,对不同平台上的未知程序样本进行检测,判断其为恶意或良性。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111368481.8A CN114065199B (zh) | 2021-11-18 | 2021-11-18 | 一种跨平台恶意代码检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111368481.8A CN114065199B (zh) | 2021-11-18 | 2021-11-18 | 一种跨平台恶意代码检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114065199A true CN114065199A (zh) | 2022-02-18 |
CN114065199B CN114065199B (zh) | 2022-06-21 |
Family
ID=80279084
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111368481.8A Active CN114065199B (zh) | 2021-11-18 | 2021-11-18 | 一种跨平台恶意代码检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114065199B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253866A (zh) * | 2022-03-01 | 2022-03-29 | 紫光恒越技术有限公司 | 恶意代码检测的方法、装置、计算机设备及可读存储介质 |
CN115879109A (zh) * | 2023-02-06 | 2023-03-31 | 山东省计算中心(国家超级计算济南中心) | 基于视觉Transformer的恶意软件识别方法 |
CN117332419A (zh) * | 2023-11-29 | 2024-01-02 | 武汉大学 | 一种基于预训练的恶意代码分类方法及装置 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034043A (zh) * | 2010-12-13 | 2011-04-27 | 四川大学 | 基于文件静态结构属性的恶意软件检测新方法 |
CN102360408A (zh) * | 2011-09-28 | 2012-02-22 | 国家计算机网络与信息安全管理中心 | 恶意代码的检测方法及其系统 |
CN104834857A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学深圳研究生院 | 批量安卓恶意软件检测方法及装置 |
CN107358300A (zh) * | 2017-06-19 | 2017-11-17 | 北京至信普林科技有限公司 | 一种基于多平台自主预测的智能运维告警过滤方法及系统 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
CN109033836A (zh) * | 2018-07-24 | 2018-12-18 | 南开大学 | 基于统计学习的恶意代码多模型交叉检测方法 |
CN109190372A (zh) * | 2018-07-09 | 2019-01-11 | 四川大学 | 一种基于字节码的JavaScript恶意代码检测模型 |
US20190171846A1 (en) * | 2017-12-04 | 2019-06-06 | ShiftLeft Inc | System and method for code-based protection of sensitive data |
US20190205533A1 (en) * | 2017-12-28 | 2019-07-04 | Crowdstrike, Inc. | Kernel- and User-Level Cooperative Security Processing |
CN110581856A (zh) * | 2019-09-17 | 2019-12-17 | 武汉思普崚技术有限公司 | 一种恶意代码的检测方法及系统 |
US20200104498A1 (en) * | 2018-09-28 | 2020-04-02 | Ut-Battelle, Llc | Independent malware detection architecture |
US20200265153A1 (en) * | 2019-02-15 | 2020-08-20 | Microsoft Technology Licensing, Llc | Image classification modeling while maintaining data privacy compliance |
CN111783086A (zh) * | 2020-07-06 | 2020-10-16 | 山东省计算中心(国家超级计算济南中心) | 基于反生产行为特征的内部威胁检测方法和系统 |
CN111881447A (zh) * | 2020-06-28 | 2020-11-03 | 中国人民解放军战略支援部队信息工程大学 | 恶意代码片段智能取证方法及系统 |
US20200348662A1 (en) * | 2016-05-09 | 2020-11-05 | Strong Force Iot Portfolio 2016, Llc | Platform for facilitating development of intelligence in an industrial internet of things system |
CN112597495A (zh) * | 2020-12-22 | 2021-04-02 | 山东省计算中心(国家超级计算济南中心) | 一种恶意代码检测方法、系统、设备及存储介质 |
CN113051561A (zh) * | 2019-12-27 | 2021-06-29 | 中国电信股份有限公司 | 应用程序的特征提取方法和装置以及分类方法和装置 |
CN113127863A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 恶意代码的检测方法、装置、计算机设备和存储介质 |
CN113515742A (zh) * | 2020-04-12 | 2021-10-19 | 南京理工大学 | 基于行为语义融合萃取的物联网恶意代码检测方法 |
-
2021
- 2021-11-18 CN CN202111368481.8A patent/CN114065199B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102034043A (zh) * | 2010-12-13 | 2011-04-27 | 四川大学 | 基于文件静态结构属性的恶意软件检测新方法 |
CN102360408A (zh) * | 2011-09-28 | 2012-02-22 | 国家计算机网络与信息安全管理中心 | 恶意代码的检测方法及其系统 |
CN104834857A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学深圳研究生院 | 批量安卓恶意软件检测方法及装置 |
US20200348662A1 (en) * | 2016-05-09 | 2020-11-05 | Strong Force Iot Portfolio 2016, Llc | Platform for facilitating development of intelligence in an industrial internet of things system |
CN107358300A (zh) * | 2017-06-19 | 2017-11-17 | 北京至信普林科技有限公司 | 一种基于多平台自主预测的智能运维告警过滤方法及系统 |
CN107392019A (zh) * | 2017-07-05 | 2017-11-24 | 北京金睛云华科技有限公司 | 一种恶意代码家族的训练和检测方法及装置 |
US20190171846A1 (en) * | 2017-12-04 | 2019-06-06 | ShiftLeft Inc | System and method for code-based protection of sensitive data |
US20190205533A1 (en) * | 2017-12-28 | 2019-07-04 | Crowdstrike, Inc. | Kernel- and User-Level Cooperative Security Processing |
CN109190372A (zh) * | 2018-07-09 | 2019-01-11 | 四川大学 | 一种基于字节码的JavaScript恶意代码检测模型 |
CN109033836A (zh) * | 2018-07-24 | 2018-12-18 | 南开大学 | 基于统计学习的恶意代码多模型交叉检测方法 |
US20200104498A1 (en) * | 2018-09-28 | 2020-04-02 | Ut-Battelle, Llc | Independent malware detection architecture |
US20200265153A1 (en) * | 2019-02-15 | 2020-08-20 | Microsoft Technology Licensing, Llc | Image classification modeling while maintaining data privacy compliance |
CN110581856A (zh) * | 2019-09-17 | 2019-12-17 | 武汉思普崚技术有限公司 | 一种恶意代码的检测方法及系统 |
CN113051561A (zh) * | 2019-12-27 | 2021-06-29 | 中国电信股份有限公司 | 应用程序的特征提取方法和装置以及分类方法和装置 |
CN113127863A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 恶意代码的检测方法、装置、计算机设备和存储介质 |
CN113515742A (zh) * | 2020-04-12 | 2021-10-19 | 南京理工大学 | 基于行为语义融合萃取的物联网恶意代码检测方法 |
CN111881447A (zh) * | 2020-06-28 | 2020-11-03 | 中国人民解放军战略支援部队信息工程大学 | 恶意代码片段智能取证方法及系统 |
CN111783086A (zh) * | 2020-07-06 | 2020-10-16 | 山东省计算中心(国家超级计算济南中心) | 基于反生产行为特征的内部威胁检测方法和系统 |
CN112597495A (zh) * | 2020-12-22 | 2021-04-02 | 山东省计算中心(国家超级计算济南中心) | 一种恶意代码检测方法、系统、设备及存储介质 |
Non-Patent Citations (6)
Title |
---|
JUNYANG QIU .ETC: "A survey of android malware detection with deep neural models", 《ACM COMPUTING SURVEYS》 * |
XIAOJUN XU .ETC: "Neural Network-based Graph Enbedding for Cross-Platform Binary Code Similarity Detection", 《PROCEEDINGS OF THE 2017 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY》 * |
吴晓明: "计算机病毒及其防治技术研究", 《信息网络安全》 * |
张晨斌等: "基于灰度图纹理指纹的恶意软件分类", 《计算机科学》 * |
赵毅: "恶意代码分析系统的研究与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 * |
黄海新: "基于数据挖掘的恶意代码检测综述", 《计算机科学》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114253866A (zh) * | 2022-03-01 | 2022-03-29 | 紫光恒越技术有限公司 | 恶意代码检测的方法、装置、计算机设备及可读存储介质 |
CN115879109A (zh) * | 2023-02-06 | 2023-03-31 | 山东省计算中心(国家超级计算济南中心) | 基于视觉Transformer的恶意软件识别方法 |
CN117332419A (zh) * | 2023-11-29 | 2024-01-02 | 武汉大学 | 一种基于预训练的恶意代码分类方法及装置 |
CN117332419B (zh) * | 2023-11-29 | 2024-02-20 | 武汉大学 | 一种基于预训练的恶意代码分类方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114065199B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yuan et al. | Adversarial examples: Attacks and defenses for deep learning | |
CN114065199B (zh) | 一种跨平台恶意代码检测方法及系统 | |
Bagdasaryan et al. | Blind backdoors in deep learning models | |
Wu et al. | Vulnerability detection with deep learning | |
Wang et al. | Bridging pre-trained models and downstream tasks for source code understanding | |
Fang et al. | WOVSQLI: Detection of SQL injection behaviors using word vector and LSTM | |
Batur Şahin et al. | A novel deep learning-based feature selection model for improving the static analysis of vulnerability detection | |
CN113961922A (zh) | 一种基于深度学习的恶意软件行为检测与分类系统 | |
Xiao et al. | Joint entity and relation extraction with a hybrid transformer and reinforcement learning based model | |
CN113010209A (zh) | 一种抗编译差异的二进制代码相似性比较技术 | |
Fan et al. | Expose your mask: smart Ponzi schemes detection on blockchain | |
CN116432184A (zh) | 基于语义分析和双向编码表征的恶意软件检测方法 | |
Ferrag et al. | Securefalcon: The next cyber reasoning system for cyber security | |
Yuan et al. | A data balancing approach based on generative adversarial network | |
Mei et al. | Detecting vulnerabilities in IoT software: New hybrid model and comprehensive data analysis | |
CN111400713A (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
Roy et al. | Malhystack: A hybrid stacked ensemble learning framework with feature engineering schemes for obfuscated malware analysis | |
Fonseca et al. | Model-agnostic approaches to handling noisy labels when training sound event classifiers | |
Sharma et al. | Windows and IoT malware visualization and classification with deep CNN and Xception CNN using Markov images | |
CN115858002B (zh) | 基于图对比学习的二进制代码相似性检测方法及系统与存储介质 | |
Sharif et al. | Function identification in android binaries with deep learning | |
CN115277065B (zh) | 一种物联网异常流量检测中的对抗攻击方法及装置 | |
CN116595537A (zh) | 一种基于多模态特征的生成式智能合约的漏洞检测方法 | |
CN116595530A (zh) | 一种结合对抗迁移学习和多任务学习的智能合约漏洞检测方法 | |
CN114021136A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221214 Address after: 250014 No. 19, ASTRI Road, Lixia District, Shandong, Ji'nan Patentee after: SHANDONG COMPUTER SCIENCE CENTER(NATIONAL SUPERCOMPUTER CENTER IN JINAN) Patentee after: Qilu University of Technology Address before: 250014 No. 19, ASTRI Road, Ji'nan, Shandong Patentee before: SHANDONG COMPUTER SCIENCE CENTER(NATIONAL SUPERCOMPUTER CENTER IN JINAN) |
|
TR01 | Transfer of patent right |