CN115062301A - 指令与系统调用序列关联重构的可进化恶意软件识别方法 - Google Patents
指令与系统调用序列关联重构的可进化恶意软件识别方法 Download PDFInfo
- Publication number
- CN115062301A CN115062301A CN202210536061.4A CN202210536061A CN115062301A CN 115062301 A CN115062301 A CN 115062301A CN 202210536061 A CN202210536061 A CN 202210536061A CN 115062301 A CN115062301 A CN 115062301A
- Authority
- CN
- China
- Prior art keywords
- sequence
- instruction
- system call
- cluster
- application program
- 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
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
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Virology (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种指令与系统调用序列关联重构的可进化恶意软件识别方法,属于计算机与信息科学技术领域。本发明在虚拟机环境中同时获取目标程序运行时产生的系统调用和指令序列,根据时间戳关联两种序列,并按照执行时间顺序重构为混合序列;通过嵌入模型将重构序列转换为表征矩阵;利用卷积神经网络处理表征矩阵生成特征向量;计算该特征向量与已构建应用程序聚类簇质心之间的相似度,判定特征向量对应目标程序的类别;最后,将该特征向量加入所属聚类簇,更新该聚类簇质心。本发明能够同时关注指令和系统调用行为,提取和利用它们之间的交叉关联特征,避免忽视指令级操作,同时无需高成本模型重训练过程即可实现对未知类型恶意软件的识别。
Description
技术领域
本发明涉及一种指令与系统调用序列关联重构的可进化恶意软件识别方法,属于计算机与信息科学技术领域。
背景技术
计算机恶意软件给网络空间带来严重的安全威胁,早期识别恶意软件的方法包括静态分析和动态分析等。静态分析一般通过对目标程序的二进制文件进行反编译、反汇编后,分析目标程序的恶意功能,达到识别恶意软件的目的。而动态分析则将目标程序置于可控的执行环境中运行,直接观察和识别目标程序的恶意操作和行为等。两种识别方法通常需要丰富的先验知识和专家经验,人工成本较高。而当前信息社会中,恶意软件的数量激增,并不断产生变体,使得人工分析识别的方法面临重大挑战。
机器学习和深度学习技术已经被广泛应用于恶意软件的自动化识别,该类方法通过训练模型用以完成识别任务。其中,利用恶意软件运行过程中产生的系统调用跟踪序列的识别方法受到学术界和产业界的普遍关注,该种方法挖掘系统调用序列中的短序列特征、频率特征、行为语义特征等训练模型对已知类别的恶意软件进行识别。然而,恶意软件在运行过程中除了使用系统调用以外,还会直接使用指令完成某些操作,而这部分操作可能与潜在的恶意行为具有关联关系,因此,仅使用系统调用序列的识别方法忽略了目标应用程序的指令执行信息而导致识别性能下降。另一方面,当面对未知类型的目标程序时,需要进行重训练以更新模型以保持识别的有效性,然而,通常情况下,模型重训练是一个资源耗费巨大的过程。
因此,本发明提出一种指令与系统调用序列关联重构的可进化恶意软件识别方法,该方法同时获取目标程序运行过程中的指令和系统调用执行信息,通过关联时间戳信息,将两种序列重构为混合序列后进行特征提取,避免忽略指令操作行为,另外,构建应用程序聚类簇,通过计算和比较目标程序的特征向量与簇质心的相似度对其所属类别进行匹配,并即时更新应用程序聚类簇,以实现对恶意程序的识别,并且该方法无需经过资源耗费高的模型重训练过程即可识别未知类型恶意程序。
发明内容
本发明的目的一方面是解决部分仅使用系统调用序列的机器学习恶意软件识别方法忽略了目标应用程序运行过程中的指令执行信息而导致识别性能下降的问题,另一方面是解决当面对未知类型的目标程序时需要重训练以更新识别模型而导致资源耗费较大的问题。
本发明的设计原理为:首先在虚拟机环境中运行目标应用程序,并分别监控和记录其系统调用和指令的执行序列,接下来按照时间戳信息将系统调用和指令的执行序列进行关联重构,得到同时包含指令和系统调用的混合序列。下一步通过自然语言处理领域的词嵌入模型将该关联重构序列中的指令和系统调用嵌入到向量空间中表示,随后将嵌入向量按照原有顺序连接在一起生成表征矩阵。然后将关联重构序列的表征矩阵输入到卷积神经网络,利用卷积核、池化层自动化地提取局部特征和显著特征,并将所得特征拼接为关联重构序列的高维抽象特征向量。之后计算该特征向量与各个应用程序聚类簇质心之间的相似度,从而判定该特征向量所对应目标应用程序的所属类别。最后,将该特征向量加入恶意软件聚类簇中,并更新对应聚类簇的质心。
本发明的技术方案通过如下步骤实现:
步骤1,同时获取目标应用程序运行过程中指令和系统调用的执行信息;
步骤1.1,在虚拟机中启动系统调用监视功能;
步骤1.2,在虚拟机监视器中启动指令拦截功能;
步骤1.3,在虚拟机中运行待识别的目标应用程序;
步骤1.4,监视和记录目标应用程序运行过程中的系统调用执行信息,包括调用的内核函数名称及其执行时间戳;
步骤1.5,截获和记录目标应用程序运行过程中执行的关键指令执行信息,包括指令名称及其执行时间戳;
步骤1.6,按照时间戳的顺序,分别将系统调用执行记录和指令执行记录中的内容整理为系统调用序列和指令序列;
步骤1.7,将系统调用序列和指令序列关联重构为混合序列;
步骤2,将关联重构序列转换为数值表征矩阵;
步骤2.1,使用自然语言处理领域的词嵌入模型将关联重构序列中的指令和系统调用分别嵌入到向量空间中表示;
步骤2.2,将指令和系统调用的嵌入向量按照关联重构序列中的顺序进行连接后组成数值表征矩阵;
步骤3,提取表征矩阵的特征生成特征向量;
步骤3.1,将关联重构序列的表征矩阵输入到卷积神经网络;
步骤3.2,在卷积层利用不同尺寸的卷积核提取局部特征,生成特征图;
步骤3.3,利用最大池化,提取特征图中的显著特征后生成池化特征;
步骤3.4,将不同卷积核对应的池化特征进行拼接,生成关联重构序列对应的高维抽象特征向量;
步骤4,计算该特征向量与已构建应用程序聚类簇质心之间的相似度,从而判定该特征向量所对应目标应用程序的所属类别;
步骤5,将特征向量加入应用程序聚类簇中,更新对应聚类簇的质心。
有益效果
与其他仅利用系统调用序列的恶意软件识别方法相比,本发明能够同时关注目标应用程序运行过程中指令和系统调用的执行信息,提取和利用指令与系统调用之间的交叉关联特征,避免无法识别使用指令执行的操作行为,另外,在面对未知类型的目标程序时无需经过资源耗费高的模型重训练过程即可实现对恶意软件的识别。
附图说明
图1为本发明指令与系统调用序列关联重构的可进化恶意软件识别方法的原理框架图。
具体实施方式
为了更好地说明本发明的目的和优点,下面结合实例对本发明方法的实施方式做进一步详细说明。
具体流程为:
步骤1,同时获取待识别目标应用程序运行过程中指令和系统调用的执行信息;
步骤1.1,在提供执行环境的虚拟机中安装并运行Process Monitor;
步骤1.2,在虚拟机监视器中,设置虚拟机控制结构体(Virtual Machine ControlStucture,VMCS)中的Pin-based VM-execution control字段、Primary Processor-basedVM-execution control字段和Secondary Processor-based VM-execution control字段中对应控制位,对LGDT、SGDT、LIDT、SIDT、 LLDT、SLDT、LTR、STR、RDTSC、RDTSCP等关键指令进行拦截设置;
步骤1.3,在虚拟机中运行待识别目标应用程序,并查询其进程ID;
步骤1.4,通过待识别目标应用程序的进程ID,使用Process Monitor监视和记录其运行过程中的系统调用执行信息,包括调用的内核函数名称及其执行时间戳;
步骤1.5,在虚拟机监视器的VM-exit处理程序中,通过待识别目标应用程序的进程ID,记录其运行过程中被截获的指令执行信息,包括指令名称及其执行时间戳;
步骤1.7,通过对比时间戳信息对系统调用序列和指令序列进行关联,然后按照执行时间的先后顺序,将系统调用序列和指令序列合并重构为混合序列(使用[I1,S2,…,Sm,…]表示),序列中只包含指令名和内核函数名,另外,根据经验设定固定统一长度K作为序列的标准长度,当混合序列的长度大于 K时,对序列进行截断,当其长度小于K时,进行补齐,将经过处理后最终长度为K的序列称为关联重构序列。
步骤2,将关联重构序列转换为数值表征矩阵;
步骤2.1,在虚拟机环境中逐个运行收集的已知类别恶意程序和良性应用程序,并使用所有应用程序执行过程中指令与系统调用的混合序列构建语料库,语料库中的分词即为指令名和内核函数名,使用该语料库以skip-gram 方式训练Wrod2Vec嵌入模型,最终得到每个指令名和内核函数名及其对应分布式向量表示的词表,然后查询该词表,获取待识别目标应用程序执行过程对应的关联重构序列[I1,S2,…,Sm,…,IK]中的指令和系统调用的嵌入向量 [v1,v2,…,vm,…,vK],m∈[1,K],其中width表示嵌入向量维度;
步骤3,提取表征矩阵的特征生成特征向量;
步骤3.1,将关联重构序列的表征矩阵V输入到TextCNN中,需要注意的是,该TextCNN是已经通过收集的已知类别恶意程序和良性应用程序的表征矩阵及其对应标签进行训练后,所获得的性能满足要求的已训练模型。
步骤3.2,在卷积层中,每个卷积核的尺寸被设置为h×width,其中,h 表示卷积核的高度,width表示卷积核的宽度;卷积核的高度决定卷积计算过程中,卷积核窗口能够覆盖嵌入向量的数量;而卷积核的宽度与嵌入向量维度相等,使得卷积操作只能沿序列从头至尾的方向执行;每个卷积核的一次卷积运算得到一个特征值,计算公式如下所示:
ct=f(W·Vt:t+h-1+b)
上式中,ct表示一次卷积计算所得的特征值,使用ReLU(Rectified Linear Unit)作为激活函数f(·),表示卷积运算中的权重参数矩阵,Vt:t+h-1表示表征矩阵中位置t到t+h-1的部分,b表示卷积层中的偏置。每个卷积核对输入的表征矩阵执行完卷积操作后,输出对应的特征图c,计算公式如下:
c=(c1,c2,c3,…,cK-h+1)
上式中,K为关联重构序列的固定统一长度,h表示卷积核的高度。在 TextCNN中设置多个具有不同高度的卷积核进行特征提取,卷积层输出多组特征图。
步骤3.3,在池化层,使用池化操作对特征图做进一步抽象,利用最大池化捕获关键和突出的局部特征,该层输出池化特征。
步骤4,计算关联重构序列的特征向量与已构建应用程序聚类簇质心之间的相似度,从而判定该特征向量所对应目标应用程序的所属类别;其中,已构建应用程序聚类簇是通过步骤1-3中的方法获取收集的已知类别恶意程序和良性应用程序的特征向量后,采用K-means算法对这些特征向量进行聚类得到的,使用C={C1,C2,…,Cn},n∈N*表示得到的所有聚类簇,使用μ={μ1,μ2,…,μn},n∈N*表示对应聚类簇的质心,使用λ={λ1,λ2,…,λn},n∈N*表示对应聚类簇的类别标签;
步骤4.2,当SIMkp≤θ,p∈[1,n]时,则认为待识别目标应用程序属于已知类别,然后进一步比较所有余弦相似度的大小,如果当p=z,z∈[1,n]时对应的余弦相似度SIMkz最小,则将该特征向量归纳至聚类簇Cz中,并且将该聚类簇的类别标签λz作为待识别目标应用程序的类别标签;
步骤4.3,当SIMkp>θ,p∈[1,n]时,则直接将待识别目标应用程序判定为恶意软件,并设置其对应的新类别为λn+1,即λ=λ∪{λn+1};
步骤5,将特征向量加入应用程序聚类簇中,更新对应聚类簇的质心;
步骤5.1,当SIMkp≤θ,p∈[1,n],并确定最小余弦相似度SIMkz和目标应用程序的类别标签λz后,将特征向量xk添加到聚类簇Cz中,即Cz=Cz∪{xk},之后重新计算聚类簇的质心μz′,计算公式如下:
步骤5.2,当SIMkp>θ,p∈[1,n],则将xk单独作为一个新的聚类簇Cn+1,则进一步有C=C∪{Cn+1},并将xk作为该聚类簇的质心μn+1,即μ=μ∪{μn+1}。
测试结果:实验中使用真实恶意软件样本进行测试,本发明能够实时同步拦截并获取恶意软件样本执行的指令序列和系统调用序列,并且具备低成本进化能力,对实验中使用的未知类型恶意软件样本仍具有有效识别能力。
以上所述的具体描述,对发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.指令与系统调用序列关联重构的可进化恶意软件识别方法,其特征在于所述方法包括如下步骤:
步骤1,同时获取目标应用程序运行过程中指令和系统调用的执行信息;
步骤1.1,在虚拟机中启动系统调用监视功能;
步骤1.2,在虚拟机监视器中启动指令拦截功能;
步骤1.3,在虚拟机中运行待识别的目标应用程序;
步骤1.4,监视和记录目标应用程序运行过程中的系统调用执行信息,包括调用的内核函数名称及其执行时间戳;
步骤1.5,截获和记录目标应用程序运行过程中执行的关键指令执行信息,包括指令名称及其执行时间戳;
步骤1.6,按照时间戳的顺序,分别将系统调用执行记录和指令执行记录中的内容整理为系统调用序列和指令序列;
步骤1.7,将系统调用序列和指令序列关联重构为混合序列;
步骤2,将关联重构序列转换为数值表征矩阵;
步骤2.1,使用自然语言处理领域的分词嵌入模型将关联重构序列中的指令和系统调用分别嵌入到向量空间中表示;
步骤2.2,将指令和系统调用的嵌入向量按照关联重构序列中的顺序进行连接后组成数值表征矩阵;
步骤3,提取表征矩阵的特征生成特征向量;
步骤3.1,将关联重构序列的表征矩阵输入到卷积神经网络;
步骤3.2,在卷积层利用不同尺寸的卷积核提取局部特征,生成特征图;
步骤3.3,利用最大池化,提取特征图中的显著特征后生成池化特征;
步骤3.4,将不同卷积核对应的池化特征进行拼接,生成关联重构序列对应的高维抽象特征向量;
步骤4,计算该特征向量与已构建应用程序聚类簇质心之间的相似度,从而判定该特征向量所对应目标应用程序的所属类别;
步骤5,将特征向量加入应用程序聚类簇中,更新对应聚类簇的质心。
2.根据权利要求1所述的指令与系统调用序列关联重构的可进化恶意软件识别方法,其特征在于步骤1的步骤1.7中,通过对比时间戳信息对系统调用序列和指令序列进行关联,然后按照执行时间的先后顺序,将系统调用序列和指令序列合并重构为混合序列。
3.根据权利要求1所述的指令与系统调用序列关联重构的可进化恶意软件识别方法,其特征在于步骤3的步骤3.1中,卷积神经网络已经通过收集的已知类别恶意程序和良性应用程序的表征矩阵及其对应标签进行训练,并且在测试达到符合要求的分类性能后保存该卷积神经网络的模型文件,本发明在对待识别目标应用程序进行类别判定的过程中,仅利用该已训练网络提取和生成关联重构序列表征矩阵的特征向量,而不用于分类任务。
4.根据权利要求1所述的指令与系统调用序列关联重构的可进化恶意软件识别方法,其特征在于步骤4中,应用程序聚类簇是通过步骤1-3中的方法获取收集的已知类别恶意程序和良性应用程序的特征向量后,采用无监督聚类算法对这些特征向量进行聚类得到的;然后,对于待识别目标应用程序,同样使用步骤1-3中的方法获取其关联重构序列对应的特征向量,并使用相似度计算该特征向量与各个应用程序聚类簇质心之间的相似度;当该特征向量与所有的质心的相似度θ均小于等于设定阈值(例如所有样本点与其所在簇质心距离的最大值)时,则进一步比较该特征向量与所有质心的相似度大小,并将该特征向量归纳至最小相似度对应的质心所在聚类簇中,同时将该聚类簇中应用程序对应的类别判定为待识别目标应用程序的类别;而当该特征向量与所有的质心的相似度均大于设定阈值θ时,则直接将待识别目标应用程序判定为恶意软件,并设置其对应的新类别。
5.根据权利要求1所述的指令与系统调用序列关联重构的可进化恶意软件识别方法,其特征在于步骤5中,对于与所有聚类簇质心的相似度均小于等于设定阈值θ的特征向量,将其添加到最小相似度对应的质心所在聚类簇中,然后更新该聚类簇的质心;而对于与所有聚类簇质心的相似度均大于设定阈值θ的特征向量,则将其单独作为一个新聚类簇,并将其作为该簇的初始质心。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210536061.4A CN115062301A (zh) | 2022-05-17 | 2022-05-17 | 指令与系统调用序列关联重构的可进化恶意软件识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210536061.4A CN115062301A (zh) | 2022-05-17 | 2022-05-17 | 指令与系统调用序列关联重构的可进化恶意软件识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115062301A true CN115062301A (zh) | 2022-09-16 |
Family
ID=83197622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210536061.4A Pending CN115062301A (zh) | 2022-05-17 | 2022-05-17 | 指令与系统调用序列关联重构的可进化恶意软件识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115062301A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089955A (zh) * | 2022-12-01 | 2023-05-09 | 之江实验室 | 一种基于windows操作系统的系统调用去噪方法及装置 |
-
2022
- 2022-05-17 CN CN202210536061.4A patent/CN115062301A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116089955A (zh) * | 2022-12-01 | 2023-05-09 | 之江实验室 | 一种基于windows操作系统的系统调用去噪方法及装置 |
CN116089955B (zh) * | 2022-12-01 | 2023-09-26 | 之江实验室 | 一种基于windows操作系统的系统调用去噪方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kalash et al. | Malware classification with deep convolutional neural networks | |
Annachhatre et al. | Hidden Markov models for malware classification | |
CN109388675B (zh) | 数据分析方法、装置、计算机设备及存储介质 | |
US20200265119A1 (en) | Site-specific anomaly detection | |
US11954202B2 (en) | Deep learning based detection of malicious shell scripts | |
CN111639337A (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
CN112035620A (zh) | 医疗查询系统的问答管理方法、装置、设备及存储介质 | |
Ognev et al. | Clustering of malicious executable files based on the sequence analysis of system calls | |
CN116956026A (zh) | 一种网络资产识别模型的训练方法及系统 | |
CN115062301A (zh) | 指令与系统调用序列关联重构的可进化恶意软件识别方法 | |
CN113569910A (zh) | 账户类型识别方法、装置、计算机设备及存储介质 | |
CN116361797A (zh) | 一种基于多源协同和行为分析的恶意代码检测方法及系统 | |
Colonna et al. | How to correctly evaluate an automatic bioacoustics classification method | |
Lajevardi et al. | Markhor: malware detection using fuzzy similarity of system call dependency sequences | |
CN111240942A (zh) | 日志异常检测方法及装置 | |
CN110414234A (zh) | 恶意代码家族识别方法及装置 | |
US11868473B2 (en) | Method for constructing behavioural software signatures | |
Ravi et al. | Behavior-based malware analysis using profile hidden markov models | |
CN113705468A (zh) | 基于人工智能的数字图像识别方法及相关设备 | |
Pektaş et al. | Runtime-behavior based malware classification using online machine learning | |
Han et al. | IMShell-Dec: Pay more attention to external links in powershell | |
CN110414233A (zh) | 恶意代码检测方法及装置 | |
CN113988226B (zh) | 数据脱敏有效性验证方法、装置、计算机设备及存储介质 | |
Zhang | Clement: Machine learning methods for malware recognition based on semantic behaviours | |
CN110795705B (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 |