CN117009968A - 恶意代码的同源分析方法、装置、终端设备及存储介质 - Google Patents

恶意代码的同源分析方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN117009968A
CN117009968A CN202310949575.7A CN202310949575A CN117009968A CN 117009968 A CN117009968 A CN 117009968A CN 202310949575 A CN202310949575 A CN 202310949575A CN 117009968 A CN117009968 A CN 117009968A
Authority
CN
China
Prior art keywords
malicious code
malicious
homology
low
graph
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
Application number
CN202310949575.7A
Other languages
English (en)
Inventor
孙锦涛
徐晓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Topsec Network Security Technology Co Ltd
Original Assignee
Beijing Topsec Network Security Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Topsec Network Security Technology Co Ltd filed Critical Beijing Topsec Network Security Technology Co Ltd
Priority to CN202310949575.7A priority Critical patent/CN117009968A/zh
Publication of CN117009968A publication Critical patent/CN117009968A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/25Fusion techniques
    • G06F18/253Fusion techniques of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供一种恶意代码的同源分析方法、装置、终端设备及存储介质,该方法包括:获取多个恶意代码文件;对多个恶意代码文件分别进行动态分析和静态分析,确定与恶意代码文件对应的多维特征信息;根据多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;根据恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与恶意代码文件对应的低维特征向量;根据多个低维特征向量,对多个恶意代码文件进行同源分析,解决恶意代码特征表征局限单一、多维特征信息难融合的问题,通过融合多维特征信息来全面表征恶意代码,实现高准确率和高鲁棒性的恶意代码同源性的分析。

Description

恶意代码的同源分析方法、装置、终端设备及存储介质
技术领域
本申请涉及信息安全技术领域,具体而言,涉及一种恶意代码的同源分析方法、装置、终端设备及存储介质。
背景技术
恶意代码同源分析是指通过恶意代码内外部特性以及生成和传播的规律,分析恶意代码之间衍生的关联性。通过同源分析可以快速鉴别恶意代码之间的关联性,确定恶意代码的变体来源,进而为部署防御机制、溯源攻击组织提供可靠依据,对抵御黑客攻击、完善网络安全保障体系有着重要意义和价值。
然而,随着网络技术的飞速发展,日益复杂的恶意代码对抗与伪造手段给恶意代码同源分析带来了新的难题。伪造技术不断发展,低维同源信息难以可信表征,目前部分恶意代码作者和团队已经具备对抗意识并开始采用对抗和伪造手段,这给恶意软件同源分析工作带来极大挑战,特殊字符串、语言、时间戳等低维特征极易被伪造,这导致难以提取出可信的同源性鉴别特征,并且使得基于低维特征的分析方法无效。
新型恶意攻击日益增多,单维度信息难以全面表征恶意代码,当前的恶意代码同源分析大多局限于单维度的恶意代码自身功能特性分析,并未实现多维度恶意代码特征的全面表示和有机融合。这些单维度特征都能在一定程度上反映恶意代码某一方面的特征,却不能在各类恶意代码上均获得有效的结果,若接收到大量的恶意文件,通过单维度特征也无法体现恶意文件之间的关系,如何能够对恶意代码文件进行全面分析,是目前继续解决的问题。
发明内容
本申请的一些实施例的目的在于提供一种恶意代码的同源分析方法、装置、终端设备及存储介质,通过本申请的实施例的技术方案,通过获取多个恶意代码文件;对所述多个恶意代码文件分别进行动态分析和静态分析,确定与所述恶意代码文件对应的多维特征信息;根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;根据所述恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与所述恶意代码文件对应的低维特征向量,其中,所述预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;根据多个所述低维特征向量,对所述多个恶意代码文件进行同源分析,本申请实施例通过训练恶意代码关联模型,用于确定低维特征向量,然后获取多个恶意代码文件的多维特征信息,根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图,将该恶意代码属性同源图输入到恶意代码关联模型,得到多个与所述恶意代码文件对应的低维特征向量,对该低维特征向量进行分类,判断多个恶意代码文件是否来自同一数据源,解决恶意代码特征表征局限单一、多维特征信息难融合的问题,通过融合多维特征信息来全面表征恶意代码,实现高准确率和高鲁棒性的恶意代码同源性的分析。
第一方面,本申请的一些实施例提供了一种恶意代码的同源分析方法,包括:
获取多个恶意代码文件;
对所述多个恶意代码文件分别进行动态分析和静态分析,确定与所述恶意代码文件对应的多维特征信息;
根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;
根据所述恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与所述恶意代码文件对应的低维特征向量,其中,所述预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;
根据多个所述低维特征向量,对所述多个恶意代码文件进行同源分析。
本申请的一些实施例通过训练恶意代码关联模型,用于确定低维特征向量,然后获取多个恶意代码文件的多维特征信息,根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图,将该恶意代码属性同源图输入到恶意代码关联模型,得到多个与所述恶意代码文件对应的低维特征向量,对该低维特征向量进行分类,判断多个恶意代码文件是否来自同一数据源,实现高准确率和高鲁棒性的恶意代码同源性的分析。
可选地,所述对所述多个恶意代码文件分别进行动态分析和静态分析,确定与所述恶意代码文件对应的多维特征信息,包括:
对所述恶意代码文件进行静态分析,得到与所述恶意代码文件对应的静态特征向量,其中,所述静态特征向量至少包括:二进制图像、操作码序列和控制流图;
对所述恶意代码文件进行动态分析,得到与所述恶意代码文件对应的动态特征向量,其中,所述动态特征向量至少包括API调用序列;
将所述静态特征向量和所述动态特征向量确定为是多维特征信息。
本申请的一些实施例通过采用静态分析和动态分析提取恶意代码的多维特征,可以融合异构的多维特征信息,具体为以二进制图像、汇编代码序列、控制流图三维静态特征和API调用序列一维动态特征作为多维特征信息,可以通过设计更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
可选地,所述恶意代码关联模型通过如下方式获得:
获取恶意样本训练数据;
根据所述恶意样本训练数据,确定与所述恶意样本训练数据对应的样本多维特征信息;
根据所述样本多维特征信息,构建与所述恶意样本训练数据对应的第一属性同源图;
根据所述样本多维特征信息,确定与所述样本训练数据对应的低维特征向量;
根据样本多维特征信息的向量相似度,对所述第一属性同源图进行更新,得到第二属性同源图;
根据所述与所述恶意样本训练数据对应的低维特征向量和所述第二属性同源图对图神经网络模型进行训练,得到所述恶意代码关联模型。
本申请的一些实施例通过动态调整恶意代码关联关系,在每一轮训练中,都根据编码器得到的特征编码重新计算特征相似度,并基于此相似度重新构建恶意代码关联关系,并基于新的关联关系进行图神经网络聚合,在迭代中使得恶意代码间的关联关系逐渐趋向正确,由于恶意代码属性同源图中恶意代码节点的邻接关系是由恶意代码低维特征向量的相似性建立的,在经过图神经网络学习后,进一步增强了邻接恶意代码间的相似性,提升了模型的同源分析效果,增强恶意代码同源分析的准确率。
可选地,所述根据所述样本多维特征信息,确定与所述样本训练数据对应的低维特征向量,包括:
采用编码器分别对所述恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量;
采用注意力机制,对多个所述编码后的特征向量进行维度融合,得到同一维度下的多个特征向量;
计算多个特征向量的注意力系数;
根据所述多个特征向量和与所述特征向量对应的注意力系数,确定与所述恶意样本训练数据对应的低维特征向量;
本申请的一些实施例通过将编码恶意代码文件得到的低维特征向量有机融合到一起,为每个低维向量设置一个可学习的注意力系数,经过低维特征向量的加权平均后得到一个能够全面表示恶意代码的低维特征向量,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,所述根据样本多维特征信息的向量相似度,对所述第一属性同源图进行更新,得到第二属性同源图,包括:
计算同一维度下的多个特征向量的向量相似度;
若所述向量相似度大于且等于预设值,则保留所述第一属性同源图中的与所述向量相似度对应的边;
若所述向量相似度小于预设值,将所述第一属性同源图中的与所述向量相似度对应的边删除;
将所述保留的所述第一属性同源图中的与所述向量相似度对应的边,确定为所述第二属性同源图。
本申请的一些实施例通过构建恶意代码属性同源图,融合恶意代码间的关联关系,同时为了解决恶意代码关联关系间存在偏差的问题,动态构建恶意代码间地关联关系,在同源分析模型训练中不断优化恶意代码关联关系,最终实现高准确率的恶意代码同源分析。
可选地,所述采用编码器分别对所述恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量,包括:
将所述恶意代码文件的二进制图像输入到卷积神经网络模型,对所述卷积神经网络模型进行训练,获得二进制图像的低维特征向量;
将操作码序列输入到文本卷积神经网络模型,对所述文本卷积神经网络模型进行训练,获得操作码序列的低维特征向量;
将控制流图输入到深度图卷积神经网络模型,对所述深度图卷积神经网络模型进行训练,获得控制流图的低维特征向量;
将API调用序列输入到长短时记忆神经网络模型,对所述长短时记忆神经网络模型进行训练,获得API调用序列的低维特征向量。
本申请的一些实施例通过多种编码器对恶意代码文件的多维特征向量进行编码,得到低维特征向量,可以通过更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
可选地,所述采用注意力机制,对多个所述编码后的特征向量进行维度融合,得到同一维度下的多个特征向量,包括;
将所述二进制图像的低维特征向量、所述操作码序列的低维特征向量、所述控制流图的低维特征向量和所述API调用序列的低维特征向量分别进行特征映射,映射到相同的特征空间,并归一化到相同范围,得到同一维度下的多个特征向量。
本申请的一些实施例通过对恶意代码的多维特征信息采用注意力机制进行特征融合,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,所述根据多个所述低维特征向量,对所述多个恶意代码文件进行同源分析,包括:
基于多层感知机对所述多个恶意代码文件的低维特征向量进行分类,得到与所述恶意代码文件对应的分类标识;
若两个或多个与所述恶意代码文件对应的分类标识相同,则确定得到恶意代码文件来自同一数据源。
本申请的一些实施例通过基于多层感知机对恶意代码低维特征向量进行分类,实现恶意代码同源分析。
第二方面,本申请的一些实施例提供了一种恶意代码的同源分析装置,包括:
获取模块,用于获取多个恶意代码文件;
分析模块,用于对所述多个恶意代码文件分别进行动态分析和静态分析,确定与所述恶意代码文件对应的多维特征信息;
建立模块,用于根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;
确定模块,用于根据所述恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与所述恶意代码文件对应的低维特征向量,其中,所述预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;
判断模块,用于根据多个所述低维特征向量,对所述多个恶意代码文件进行同源分析。
本申请的一些实施例通过训练恶意代码关联模型,用于确定低维特征向量,然后获取多个恶意代码文件的多维特征信息,根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图,将该恶意代码属性同源图输入到恶意代码关联模型,得到多个与所述恶意代码文件对应的低维特征向量,对该低维特征向量进行分类,判断多个恶意代码文件是否来自同一数据源,实现高准确率和高鲁棒性的恶意代码同源性的分析。可选地,所述分析模块用于:
对所述恶意代码文件进行静态分析,得到与所述恶意代码文件对应的静态特征向量,其中,所述静态特征向量至少包括:二进制图像、操作码序列和控制流图;
对所述恶意代码文件进行动态分析,得到与所述恶意代码文件对应的动态特征向量,其中,所述动态特征向量至少包括API调用序列;
将所述静态特征向量和所述动态特征向量确定为是多维特征信息。
本申请的一些实施例通过采用静态分析和动态分析提取恶意代码的多维特征,可以融合异构的多维特征信息,具体为以二进制图像、汇编代码序列、控制流图三维静态特征和API调用序列一维动态特征作为多维特征信息,可以通过设计更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
可选地,所述装置还包括模型训练模块,所述模型训练模块用于:
获取恶意样本训练数据;
根据所述恶意样本训练数据,确定与所述恶意样本训练数据对应的样本多维特征信息;
根据所述样本多维特征信息,构建与所述恶意样本训练数据对应的第一属性同源图;
根据所述样本多维特征信息,确定与所述样本训练数据对应的低维特征向量;
根据样本多维特征信息的向量相似度,对所述第一属性同源图进行更新,得到第二属性同源图;
根据所述与所述恶意样本训练数据对应的低维特征向量和所述第二属性同源图对图神经网络模型进行训练,得到所述恶意代码关联模型。
本申请的一些实施例通过动态调整恶意代码关联关系,在每一轮训练中,都根据编码器得到的特征编码重新计算特征相似度,并基于此相似度重新构建恶意代码关联关系,并基于新的关联关系进行图神经网络聚合,在迭代中使得恶意代码间的关联关系逐渐趋向正确,由于恶意代码属性同源图中恶意代码节点的邻接关系是由恶意代码低维特征向量的相似性建立的,在经过图神经网络学习后,进一步增强了邻接恶意代码间的相似性,提升了模型的同源分析效果,增强恶意代码同源分析的准确率。
可选地,所述模型训练模块用于:
采用编码器分别对所述恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量;
采用注意力机制,对多个所述编码后的特征向量进行维度融合,得到同一维度下的多个特征向量;
计算多个特征向量的注意力系数;
根据所述多个特征向量和与所述特征向量对应的注意力系数,确定与所述恶意样本训练数据对应的低维特征向量;
本申请的一些实施例通过,将编码恶意代码文件得到的低维特征向量有机融合到一起,为每个低维向量设置一个可学习的注意力系数,经过低维特征向量的加权平均后得到一个能够全面表示恶意代码的低维特征向量,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,所述模型训练模块用于:
计算同一维度下的多个特征向量的向量相似度;
若所述向量相似度大于且等于预设值,则保留所述第一属性同源图中的与所述向量相似度对应的边;
若所述向量相似度小于预设值,将所述第一属性同源图中的与所述向量相似度对应的边删除;
将所述保留的所述第一属性同源图中的与所述向量相似度对应的边,确定为所述第二属性同源图。
本申请的一些实施例通过构建恶意代码属性同源图,融合恶意代码间的关联关系,同时为了解决恶意代码关联关系间存在偏差的问题,动态构建恶意代码间地关联关系,在同源分析模型训练中不断优化恶意代码关联关系,最终实现高准确率的恶意代码同源分析。
可选地,所述模型训练模块用于:
将所述恶意代码文件的二进制图像输入到卷积神经网络模型,对所述卷积神经网络模型进行训练,获得二进制图像的低维特征向量;
将操作码序列输入到文本卷积神经网络模型,对所述文本卷积神经网络模型进行训练,获得操作码序列的低维特征向量;
将控制流图输入到深度图卷积神经网络模型,对所述深度图卷积神经网络模型进行训练,获得控制流图的低维特征向量;
将API调用序列输入到长短时记忆神经网络模型,对所述长短时记忆神经网络模型进行训练,获得API调用序列的低维特征向量。
本申请的一些实施例通过多种编码器对恶意代码文件的多维特征向量进行编码,得到低维特征向量,可以通过更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
可选地,所述模型训练模块用于:
将所述二进制图像的低维特征向量、所述操作码序列的低维特征向量、所述控制流图的低维特征向量和所述API调用序列的低维特征向量分别进行特征映射,映射到相同的特征空间,并归一化到相同范围,得到同一维度下的多个特征向量。
本申请的一些实施例通过对恶意代码的多维特征信息采用注意力机制进行特征融合,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,所述判断模块用于:
基于多层感知机对所述多个恶意代码文件的低维特征向量进行分类,得到与所述恶意代码文件对应的分类标识;
若两个或多个与所述恶意代码文件对应的分类标识相同,则确定得到恶意代码文件来自同一数据源。
本申请的一些实施例通过基于多层感知机对恶意代码低维特征向量进行分类,实现恶意代码同源分析。
第三方面,本申请的一些实施例提供一种终端设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的恶意代码的同源分析方法。
第四方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的恶意代码的同源分析方法。
第五方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的恶意代码的同源分析方法。
附图说明
为了更清楚地说明本申请的一些实施例的技术方案,下面将对本申请的一些实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种恶意代码的同源分析方法的流程示意图;
图2为本申请实施例提供的又一种恶意代码的同源分析方法的流程示意图;
图3为本申请实施例提供的图神经网络模型流程示意图;
图4为本申请实施例提供的特征聚合流程示意图;
图5为本申请实施例提供的原始恶意代码示意图;
图6为本申请实施例提供的恶意代码二进制图像示意图;
图7为本申请实施例提供的PE文件的asm反汇编文件的示意图;
图8为本申请实施例提供的asm文件中的.text代码段的示意图;
图9为本申请实施例提供的asm文件中的.text代码段基本块示意图;
图10为本申请实施例提供的沙箱报告中的API调用序列的示意图;
图11为本申请实施例提供的恶意代码属性同源图的示意图;
图12为本申请实施例提供的恶意代码同源分析框架示意图;
图13为本申请实施例提供的一种恶意代码的同源分析装置的结构示意图;
图14为本申请实施例提供的一种终端设备示意图。
具体实施方式
下面将结合本申请的一些实施例中的附图,对本申请的一些实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
恶意代码同源分析是指通过恶意代码内外部特性以及生成和传播的规律,分析恶意代码之间衍生的关联性。通过同源分析可以快速鉴别恶意代码之间的关联性,确定恶意代码的变体来源,进而为部署防御机制、溯源攻击组织提供可靠依据,对抵御黑客攻击、完善网络安全保障体系有着重要意义和价值。
然而,随着网络技术的飞速发展,日益复杂的恶意代码对抗与伪造手段给恶意代码同源分析带来了新的难题。伪造技术不断发展,低维同源信息难以可信表征,目前部分恶意代码作者和团队已经具备对抗意识并开始采用对抗和伪造手段,这给恶意软件同源分析工作带来极大挑战,特殊字符串、语言、时间戳等低维特征极易被伪造,这导致难以提取出可信的同源性鉴别特征,并且使得基于低维特征的分析方法无效。
新型恶意攻击日益增多,单维度信息难以全面表征恶意代码,当前的恶意代码同源分析大多局限于单维度的恶意代码自身功能特性分析,并未实现多维度恶意代码特征的全面表示和有机融合。这些单维度特征都能在一定程度上反映恶意代码某一方面的特征,却不能在各类恶意代码上均获得有效的结果,若接收到大量的恶意文件,通过单维度特征也无法体现恶意文件之间的关系。
鉴于此,本申请的一些实施例提供了一种恶意代码的同源分析方法,该方法包括:获取多个恶意代码文件;对多个恶意代码文件分别进行动态分析和静态分析,确定与恶意代码文件对应的多维特征信息;根据多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;根据恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与恶意代码文件对应的低维特征向量,其中,预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;根据多个低维特征向量,对多个恶意代码文件进行同源分析,本申请实施例通过训练恶意代码关联模型,用于确定低维特征向量,然后获取多个恶意代码文件的多维特征信息,根据多维特征信息,确定与多维特征信息对应的恶意代码属性同源图,将该恶意代码属性同源图输入到恶意代码关联模型,得到多个与恶意代码文件对应的低维特征向量,对该低维特征向量进行分类,判断多个恶意代码文件是否来自同一数据源,解决恶意代码特征表征局限单一、多维特征信息难融合的问题,通过融合多维特征信息来全面表征恶意代码,实现高准确率和高鲁棒性的恶意代码同源性的分析。
如图1所示,本申请的实施例提供了一种恶意代码的同源分析方法,该方法包括:
S101、获取多个恶意代码文件;
终端设备获取多个恶意代码文件,其中,多个为两个或两个以上。
S102、对多个恶意代码文件分别进行动态分析和静态分析,确定与恶意代码文件对应的多维特征信息;
其中,多维特征信息至少包括静态特征向量和动态特征向量;
具体地,终端设备对每一个恶意代码文件分别进行动态分析,得到与恶意代码文件对应的动态特征向量;对恶意代码文件进行静态分析,得到与恶意代码文件对应的静态特征向量。
S103、根据多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;
具体地,终端设备将每一个恶意代码文件作为一个节点,将每一个恶意代码文件的多维特征信息作为该节点的属性信息,构建恶意代码文件的恶意代码属性同源图,即建立多个恶意代码文件之间的关联关系。
S104、根据恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与恶意代码文件对应的低维特征向量,其中,预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;
具体地,终端设备上根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练,得到恶意代码关联模型,用于将恶意代码文件转换成低维特征向量。
终端设备将恶意代码属性同源图中的各个特征向量输入到该恶意代码关联模型,得到多个与恶意代码文件对应的低维特征向量。
S105、根据多个低维特征向量,对多个恶意代码文件进行同源分析。
具体地,终端设备采用多层感知机对多个低维特征向量进行分类处理,根据分类结果判断恶意代码文件属于哪个分类,从而实现对多个恶意代码文件的同源分析。
本申请的一些实施例通过训练恶意代码关联模型,用于确定低维特征向量,然后获取多个恶意代码文件的多维特征信息,根据多维特征信息,确定与多维特征信息对应的恶意代码属性同源图,将该恶意代码属性同源图输入到恶意代码关联模型,得到多个与恶意代码文件对应的低维特征向量,对该低维特征向量进行分类,判断多个恶意代码文件是否来自同一数据源,实现高准确率和高鲁棒性的恶意代码同源性的分析。
本申请又一实施例对上述实施例提供的恶意代码的同源分析方法做进一步补充说明。
图2为本申请实施例提供的又一种恶意代码的同源分析方法的流程示意图,如图2所示,该恶意代码的同源分析方法包括:
步骤1、获取恶意代码文件的多维特征信息;
具体地,采用静态分析和动态分析提取恶意代码的多维特征信息,可以融合异构的多维特征信息,多维特征信息至少包括二进制图像、汇编代码序列、控制流图等三维静态特征向量和API调用序列一维的动态特征向量。
步骤2、基于恶意代码文件的特征相似性,构建恶意代码文件的属性同源图,即建立恶意代码文件间的关联关系,构建恶意代码文件的属性同源图即第一属性同源图;
步骤3、基于图神经网络模型聚合多维特征信息,学习恶意代码文件之间的关联关系;
即构建并训练图神经网络模型,以恶意代码的关联关系为基础,实现恶意代码多维特征信息的融合,最终得到融合多维特征信息和关联关系的恶意代码文件的低维特征向量。
步骤4、基于多层感知器,对低维特征向量进行分类,实现恶意代码文件的同源分析。
本申请实施例采用静态分析和动态分析提取多维恶意代码特征,并基于多维特征构建恶意代码属性同源图,之后采用图神经网络算法学习恶意代码的低维表示,同时,在训练过程中不断优化恶意代码属性同源图中恶意代码节点间的关联关系,最后,采用多层感知机对学习到的恶意代码低维表示进行同源分析。通过提取和融合多维度静态特征和动态特征有效解决了现有技术低维特征易伪造、特征维度单一的问题,通过构建恶意代码属性同源图解决了现有技术未能考虑恶意代码间关联关系的问题,通过在训练过程中不断优化恶意代码间关联关系解决了现有技术中恶意代码关联关系间存在偏差的问题。
在上述步骤1中,可选地,对多个恶意代码文件分别进行动态分析和静态分析,确定与恶意代码文件对应的多维特征信息,包括:
对恶意代码文件进行静态分析,得到与恶意代码文件对应的静态特征向量,其中,静态特征向量至少包括:二进制图像、操作码序列和控制流图;
对恶意代码文件进行动态分析,得到与恶意代码文件对应的动态特征向量,其中,动态特征向量至少包括API调用序列;
将静态特征向量和动态特征向量确定为是多维特征信息。
具体地,本申请实施例适用于任何恶意代码高维原始特征,如图像、序列、图结构等,以二进制图像、操作码序列、控制流图和API调用序列作为多维特征信息。
本申请实施例中实现使用PEID工具对恶意代码进行查壳,对于能够查到的壳,采用对应的解壳工具进行解壳。
针对于二进制图像,将一个恶意代码视作一串二进制流,二进制流的每八位可以视为一个字节,因此,将恶意代码的二进制流按照字节进行分割,得到字节流,其中每个字节的取值范围为0~255,恰好可以表示一个像素点。之后,将字节流转化为二维的像素矩阵,即恶意代码的二进制图像。图像的长度和宽度按照公式1设置为固定值,对于小于该长度和宽度的图像,采用0像素进行填充,直至满足长度和宽度,对于大于该长度和宽度的图像,对图像进行裁剪。由于恶意代码中存在着大量的连续重复字节,这些连续重复字节语义信息匮乏,因此,对连续重复字节部分进行裁剪,将长度大于100的连续重复字节序列减少至满足公式1所示的长度和宽度,最低为原长度的10%,这样最大程度地减少了连续重复字节序列在图像所占用的像素,保留了相比而言更重要的特征。若裁剪后仍未满足长度和宽度,则直接在末尾进行裁剪直至满足长度和宽度。
其中,n为恶意代码数量,ByteLength表示字节流的长度。
针对于操作码序列,本申请实施例首先将恶意代码放入沙箱执行,并转储出内存中的代码,这样做可以最大程度地减少混淆带来的影响。之后,将转储出的代码通过IDAPro反汇编为Asm文件,之后提取Asm文件中的汇编操作码,并按照相对虚拟地址顺序转化为操作码序列。最后统计出所有出现过的操作码,并对每个操作码采用One-Hot编码,将操作码序列转换为One-Hot编码序列。
针对于控制流图,首先将恶意代码通过IDA Pro反汇编为汇编代码,之后按照汇编代码中的call、jmp等跳转指令构建控制流图,控制流图中的每个节点为一个基本块,基本块由一串汇编代码组成,统计汇编代码中操作码的总数量、mov指令的数量、cmp指令的数量、常数的数量等,共10维特征作为一个基本块的属性。
针对于API调用序列,将恶意代码放入Cuckoo沙箱执行,得到沙箱报告,之后提取沙箱报告中的API调用序列,最后,统计所有恶意代码中出现过的API,并将API进行重命名,如将FindFirstFileExW和FindFirstFileExA重命名为FindFirstFile,表示两个函数具有相同的功能,之后统计所有样本中出现过的API,对在多个恶意代码样本中出现过的API采用One-Hot编码,将API调用序列转换为One-Hot编码序列。
本申请的一些实施例通过采用静态分析和动态分析提取恶意代码的多维特征,可以融合异构的多维特征信息,具体为以二进制图像、汇编代码序列、控制流图三维静态特征和API调用序列一维动态特征作为多维特征信息,可以通过设计更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
如图3所示,恶意代码关联模型通过如下方式获得:
获取恶意样本训练数据;
根据恶意样本训练数据,确定与恶意样本训练数据对应的样本多维特征信息;
具体地,终端设备获取大量的恶意样本训练数据,并对每一个恶意样本训练数据进行动态分析和静态分析的,得到动态特征向量和静态特征向量。
根据样本多维特征信息,构建与恶意样本训练数据对应的第一属性同源图;
具体的,终端设备根据每一个恶意样本训练数据对应的样本多维特征信息,建立恶意样本训练数据之间的关联关系,构建恶意代码属性同源图即第一属性同源图。
一个图结构G可以表示为G=(V,E,A),其中V表示图中的节点集合,E表示图中节点间的边集合,A表示图中节点所含的属性。对于恶意代码属性同源图,将所有恶意代码文件即恶意样本训练数据作为节点,将以上提取到的二进制图像、操作码序列、控制流图和API调用序列作为节点的属性,为属性相似的节点间构建边,表示恶意代码存在关联关系,初始的恶意代码属性同源图将所有节点相连接作为初始边。
根据样本多维特征信息,确定与样本训练数据对应的低维特征向量;
根据样本多维特征信息的向量相似度,对第一属性同源图进行更新,得到第二属性同源图;
根据与恶意样本训练数据对应的低维特征向量和第二属性同源图对图神经网络模型进行训练,得到恶意代码关联模型。
其中,图神经网络模型至少包括图卷积神经网络GCN或者图注意力神经网络GAT。
具体地,终端设备基于图神经网络,例如图卷积神经网络GCN或者图注意力神经网络GAT,对关联关系调整后的恶意代码属性同源图即第一属性同源图进行学习。
图神经网络能够根据图的拓扑结构,聚合节点自身特征和邻居节点特征,进而生成新的节点表示,使得每个节点的邻居节点表示变得统一和规整。由于恶意代码属性同源图中恶意代码节点的邻接关系是由恶意代码低维特征向量的相似性建立的,在经过图神经网络学习后,进一步增强了邻接恶意代码间的相似性,提升了模型的同源分析效果。
本申请实施例中通过构建并训练图神经网络模型,以恶意代码的关联关系为基础,实现恶意代码多维特征的融合,最终得到融合多维特征和关联关系的恶意代码低维表示,以上构建的恶意代码属性同源图包含了恶意代码的多维特征信息和恶意代码间的关联关系,但如何衡量恶意代码多维特征信息的相似性是关键问题,同时,初始的恶意代码间的关联关系是不准确的,因此,本申请实施例将恶意代码的多维特征信息进行融合和相似性度量,并优化准确的恶意代码关联关系,实现准确的同源分析效果。
本申请实施例中将上述步骤作为一轮训练学习的过程,在经过多轮次训练学习后,便可最终得到每个恶意代码的低维特征向量。
现有方法静态构建恶意代码关联关系,即通过衡量原始特征(图片、0-1向量)的相似度来构建恶意代码关联关系,并在假设此关系正确的基础上融合恶意代码关联关系,但高维特征往往隐藏着复杂多样的信息,这使得基于原始特征衡量相似度是高误差的,这会直接导致构建错误的恶意代码的关联关系,从而影响之后图神经网络的学习。因此,本申请实施例不再基于原始特征衡量相似度,而是将多维度高维特征进行编码和聚合后再计算相似度,这种方式既大大减少了计算开销,又使得相似度度量的误差降低。与此同时,本申请实施例动态调整恶意代码关联关系,在每一轮训练中,都根据编码器得到的特征编码重新计算特征相似度,并基于此相似度重新构建恶意代码关联关系,并基于新的关联关系进行图神经网络聚合,在迭代中使得恶意代码间的关联关系逐渐趋向正确。
本申请的一些实施例通过动态调整恶意代码关联关系,在每一轮训练中,都根据编码器得到的特征编码重新计算特征相似度,并基于此相似度重新构建恶意代码关联关系,并基于新的关联关系进行图神经网络聚合,在迭代中使得恶意代码间的关联关系逐渐趋向正确,由于恶意代码属性同源图中恶意代码节点的邻接关系是由恶意代码低维特征向量的相似性建立的,在经过图神经网络学习后,进一步增强了邻接恶意代码间的相似性,提升了模型的同源分析效果,增强恶意代码同源分析的准确率。
如图3所示,根据样本多维特征信息,确定与样本训练数据对应的低维特征向量,包括:
采用编码器分别对恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量;
具体地,终端设备采用多种编码器对恶意样本训练数据即恶意代码的多维特征进行编码。
示例性地,使用一个卷积神经网络对恶意代码的二进制图像进行编码,得到8维的低维表示;
使用一个文本分类中常用的一维卷积神经网络TextCNN对恶意代码的操作码序列进行编码,得到8维的低维表示;
可选地,采用编码器分别对恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量,包括:
将恶意代码文件的二进制图像输入到卷积神经网络模型,对卷积神经网络模型进行训练,获得二进制图像的低维特征向量;
将操作码序列输入到文本卷积神经网络模型,对文本卷积神经网络模型进行训练,获得操作码序列的低维特征向量;
将控制流图输入到深度图卷积神经网络模型,对深度图卷积神经网络模型进行训练,获得控制流图的低维特征向量;
将API调用序列输入到长短时记忆神经网络模型,对长短时记忆神经网络模型进行训练,获得API调用序列的低维特征向量。
具体来说,设置TextCNN的窗口大小为3,4,5,表示提取操作码序列中n-gram为3,4,5子序列特征,因此,TextCNN能够学习到操作码序列中的关键子序列,表征了恶意代码局部关键信息;
使用深度图卷积神经网络DGCNN对恶意代码的控制流图进行编码,得到8维的低维表示;
DGCNN能够学习到控制流图中的全局结构信息,与TextCNN学到的局部信息相互补充,能够更全面表征恶意代码;
使用长短时记忆神经网络对恶意代码的API调用序列进行编码,得到8维的低维表示。
由此四个编码器后,恶意代码的多维特征被编码为四个8维的低维特征向量。
本申请的一些实施例通过多种编码器对恶意代码文件的多维特征向量进行编码,得到低维特征向量,可以通过更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
采用注意力机制,对多个编码后的特征向量进行维度融合,得到同一维度下的多个特征向量;
具体地,终端设备对恶意代码的多维特征信息采用注意力机制进行特征融合,得到同一维度下的多个低维特征向量。
计算多个特征向量的注意力系数;
根据多个特征向量和与特征向量对应的注意力系数,确定与恶意样本训练数据对应的低维特征向量;
本申请实施例为了将编码恶意代码得到的四个8维的低维特征向量有机融合到一起,为每个低维向量设置一个可学习的注意力系数,经过四个低维特征向量的加权平均后得到一个能够全面表示恶意代码的低维特征向量。
具体流程如图4所示,首先,将四个低维特征向量分别进行特征映射,将其映射到相同的特征空间,并归一化到相同范围。之后,计算四个特征向量的注意力系数,并赋值给特征向量,获得每个特征向量的加权值。最后,对四个加权特征向量做均值聚合,得到一个恶意代码的全局的特征表示。聚合方法如公式2所示。与现有技术中直接拼接的方法相比,本方法能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
其中,i表示第i个样本,MalwareEmbeddingi表示第i个样本的低维特征向量。j表示第j维特征,M表示多维特征信息的数量,此处为4。αij表示第i个样本的第j维特征的注意力权重,其计算公式如下3所示。Embeddingij表示第i个样本的第j维特征的8维低维特征向量。
αij=Sigmod(W·Embeddingij+b) (3)
其中W,b为模型中的可学习参数。
本申请的一些实施例通过将编码恶意代码文件得到的低维特征向量有机融合到一起,为每个低维向量设置一个可学习的注意力系数,经过低维特征向量的加权平均后得到一个能够全面表示恶意代码的低维特征向量,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,根据样本多维特征信息的向量相似度,对第一属性同源图进行更新,得到第二属性同源图,包括:
计算同一维度下的多个特征向量的向量相似度;
若向量相似度大于且等于预设值,则保留第一属性同源图中的与向量相似度对应的边;
若向量相似度小于预设值,将第一属性同源图中的与向量相似度对应的边删除;
将保留的第一属性同源图中的与向量相似度对应的边,确定为第二属性同源图。
具体地,终端设备根据恶意代码间低维特征向量的相似性调整恶意代码属性同源图中恶意代码节点间的连接关系,也就是说,采用余弦相似度的向量相似度计算方法计算恶意代码低维特征向量间的相似性,将相似性大于阈值(默认为0.5)的恶意代码保留连接关系,低于阈值的删除连接关系。比起现有技术中直接对比原始图像的相似性的方法,本申请实施例可以实现对任何模态特征的相似性对比,包括图像、序列、拓扑图等。其次,本方法大大提升了相似性对比的效率,仅需要极少的时间开销便可实现特征相似性对比。
本申请的一些实施例通过构建恶意代码属性同源图,融合恶意代码间的关联关系,同时为了解决恶意代码关联关系间存在偏差的问题,动态构建恶意代码间地关联关系,在同源分析模型训练中不断优化恶意代码关联关系,最终实现高准确率的恶意代码同源分析。
可选地,采用注意力机制,对多个编码后的特征向量进行维度融合,得到同一维度下的多个特征向量,包括;
将二进制图像的低维特征向量、操作码序列的低维特征向量、控制流图的低维特征向量和API调用序列的低维特征向量分别进行特征映射,映射到相同的特征空间,并归一化到相同范围,得到同一维度下的多个特征向量。
本申请的一些实施例通过对恶意代码的多维特征信息采用注意力机制进行特征融合,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,根据多个低维特征向量,对多个恶意代码文件进行同源分析,包括:
基于多层感知机对多个恶意代码文件的低维特征向量进行分类,得到与恶意代码文件对应的分类标识;
若两个或多个与恶意代码文件对应的分类标识相同,则确定得到恶意代码文件来自同一数据源。
本申请的一些实施例通过基于多层感知机对恶意代码低维特征向量进行分类,实现恶意代码同源分析。
示例性地,本申请实施例提供一具体的实施例来说明该技术方案:
(1)获取多维特征信息:
1、采用静态分析和动态分析提取恶意代码的多维特征信息,包括静态特征向量和动态特征向量。
本申请实施例采用的数据源是PE恶意代码,提取的静态特征包含二进制图像、操作码序列、控制流图,动态特征包含API调用序列。
针对二进制图像,原始恶意代码如图5所示,根据将每八位转化为一字节,表示为0-255之间的十进制数,在图3-2中,第一行的即可表示为48,48,52,48,49,48,48,48,32,54,52,32,70,65,32,69。之后每个字节可以表示为一个像素点,转换为二进制图像,结果如图6所示。
针对操作码序列,将PE文件经过IDA Pro反汇编后形成的asm文件如图7所示。该文件表示了PE文件的汇编特征。
在PE中,.text段表示了PE的代码段,其中包含PE的主要功能逻辑。在asm中,.text段被反汇编为如图8所示的汇编代码。每一行的格式形如[段类型(.text代码段,.rdata数据段等),相对虚拟地址,段内容(在.text代码段中,段内容通常为操作码和操作数)]。本申请实施例提取段内容中的操作码,并按照相对虚拟地址的顺序排列成序列。图6所排列成的序列即为[push,mov,sub,cmp,jz,cmp,mov,jnz,or,mov,mov,push,push,push,push,call,jmp]。最后采用One-Hot编码即得到操作码序列。
针对控制流图,控制流图依然处理的是如图8所示的反汇编得到的.text段中的内容,控制流图由多个基本块和基本块之间的控制流关系构成,具体来说,一段在地址上连续的操作码序列能够表示为基本块,基本块中的代码序列除了在出口处没有任何控制流转换。而基本块之间通过jump或者call等指令连接表示控制流的流向。具体来说,在图8中地址00401000-0040101F组成的操作码序列表示一个基本块,地址0040100A表示00401000-00401006组成的基本块通过jz指令跳转到loc_401037,即00401037地址起始的基本块,如图9所示。地址00401013表示基本块通过jnz指令跳转到loc_401022,即00401022地址起始的基本块,即图8中00401022地址所示。由此,便可以构建所有基本块之间的控制流转换关系,即形成了控制流图。最后,统计每个基本块中操作码的总数量、mov指令的数量、cmp指令的数量、push的数量、算数指令的数量、跳转指令的数量、基本块的出度、基本块的入度、终止指令的数量、数据声明的数量等,共10维特征作为一个基本块的属性。在图8中的00401000-0040101F组成基本块中,其属性是[11,4,2,1,2,2,2,0,0,0]。
针对API调用序列,将恶意样本放入Cuckoo沙箱,得到沙箱报告,其中API调用序列如下图10所示。将API按照顺序拼接得到API调用序列,图10得到的API调用序列为[RegOpenKeyExW,FindResourceExW,FindResourceExW,…]。最后采用One-Hot编码即得到API调用序列。
(2)建立恶意代码间的关联关系,构建恶意代码属性同源图。
一个图结构G可以表示为G=(V,E,A),其中V表示图中的节点集合,E表示图中节点间的边集合,A表示图中节点所含的属性。对于恶意代码属性同源图,本申请实施例将所有恶意代码作为节点,将所有节点相连接作为初始边,将以上提取到的二进制图像、操作码序列、控制流图、API调用序列作为节点的属性。如图11所示,每个恶意代码样本间建立初始的关联关系,同时,每个恶意代码的二进制图像、汇编代码序列、控制流图、API调用序列作为每个恶意代码的属性。
(3)构建并训练图神经网络模型,以恶意代码的关联关系为基础,实现恶意代码多维特征的融合,最终得到融合多维特征和关联关系的恶意代码低维嵌入。
在本申请实施例中,前述步骤已经提取了恶意代码的多维特征信息,包含二进制图像、汇编代码序列、控制流图、API调用序列,并建立了恶意代码间的初始关联关系。接下来将多维特征信息输入到编码器进行编码,得到低维特征表示。
具体来说,将恶意代码的二进制图像输入到卷积神经网络CNN进行训练,获得二进制图像的低维特征表示;
将汇编代码序列输入到文本卷积神经网络TextCNN进行训练,获得汇编代码序列的低维特征表示;
将控制流图输入到深度图卷积神经网络DGCNN进行训练,获得控制流图的低维特征表示;
将API调用序列输入到长短时记忆神经网络LSTM进行训练,获得API调用序列的低维特征表示。
由此得到了每个恶意代码四个维度的低维特征表示,从不同维度表示出恶意代码的特征。之后,为了能够有机融合不同维度的特征,本申请实施例采用Attention机制将四个维度的特征融合到同一维度中,得到能够全面表征恶意代码的低维表示向量。然后,根据恶意代码此低维表示向量间的相似性,重构恶意代码属性同源图,保留向量相似度大于等于阈值(默认0.5)的边,删除向量相似度小于阈值的边。最后,将重构后的恶意代码属性同源图利用图卷积神经网络GCN或者图注意力神经网络GAT聚合恶意代码邻接节点的特征,融合恶意代码间的关联关系,最终获得恶意代码的低维表示。
(4)基于多层感知机对恶意代码低维表示进行分类,实现恶意代码同源分析。
将上文训练得到的恶意代码低维表示输入到多层感知机进行分类任务,实现恶意代码同源分析。
本申请实施例采用静态分析和动态分析提取多维特征信息,全面表征恶意代码。采用注意力机制聚合多维特征信息的编码,实现多维特征信息有机融合;恶意代码的多维特征信息进行编码,编码间的相似性大于阈值的两个恶意代码建立关联关系,构建恶意代码属性同源图,实现恶意代码关联关系的融合;在每轮模型训练迭代中,计算新的恶意代码编码间的相似性,优化恶意代码间的关联关系,纠正错误的关联关系,提升同源分析准确率。
本申请实施例能够实现更高的恶意代码同源分析准确率,同时,对伪造技术有一定的鲁棒性。具体来说,首先,本申请实施例同时提取了恶意代码的二进制图像、汇编代码序列、控制流图、API调用序列等高维特征作为恶意代码的多维特征信息,避免了低纬度特征易伪造的问题,同时基于注意力机制融合多维特征信息,实现了恶意代码的全面表征。其次,本申请实施例建立了恶意代码间的关联关系,通过衡量恶意代码间特征的相似性构建恶意代码属性同源图,并利用图神经网络聚合邻接恶意代码特征,使得特征相似的恶意代码学习到相似的低维表示,进一步增强恶意代码同源分析的准确率。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本申请另一实施例提供一种恶意代码的同源分析装置,用于执行上述实施例提供的恶意代码的同源分析方法。
如图13所示,为本申请实施例提供的恶意代码的同源分析装置的结构示意图。该恶意代码的同源分析装置包括获取模块1301、分析模块1302、建立模块1303、确定模块1304和判断模块1305,其中:
获取模块1301用于获取多个恶意代码文件;
分析模块1302用于对多个恶意代码文件分别进行动态分析和静态分析,确定与恶意代码文件对应的多维特征信息;
建立模块1303用于根据多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;
确定模块1304用于根据恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与恶意代码文件对应的低维特征向量,其中,预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;
判断模块1305用于根据多个低维特征向量,对多个恶意代码文件进行同源分析。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请的一些实施例通过训练恶意代码关联模型,用于确定低维特征向量,然后获取多个恶意代码文件的多维特征信息,根据多维特征信息,确定与多维特征信息对应的恶意代码属性同源图,将该恶意代码属性同源图输入到恶意代码关联模型,得到多个与恶意代码文件对应的低维特征向量,对该低维特征向量进行分类,判断多个恶意代码文件是否来自同一数据源,实现高准确率和高鲁棒性的恶意代码同源性的分析。本申请又一实施例对上述实施例提供的恶意代码的同源分析装置做进一步补充说明。
可选地,分析模块用于:
对恶意代码文件进行静态分析,得到与恶意代码文件对应的静态特征向量,其中,静态特征向量至少包括:二进制图像、操作码序列和控制流图;
对恶意代码文件进行动态分析,得到与恶意代码文件对应的动态特征向量,其中,动态特征向量至少包括API调用序列;
将静态特征向量和动态特征向量确定为是多维特征信息。
本申请的一些实施例通过采用静态分析和动态分析提取恶意代码的多维特征,可以融合异构的多维特征信息,具体为以二进制图像、汇编代码序列、控制流图三维静态特征和API调用序列一维动态特征作为多维特征信息,可以通过设计更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
可选地,装置还包括模型训练模块,模型训练模块用于:
获取恶意样本训练数据;
根据恶意样本训练数据,确定与恶意样本训练数据对应的样本多维特征信息;
根据样本多维特征信息,构建与恶意样本训练数据对应的第一属性同源图;
根据样本多维特征信息,确定与样本训练数据对应的低维特征向量;
根据样本多维特征信息的向量相似度,对第一属性同源图进行更新,得到第二属性同源图;
根据与恶意样本训练数据对应的低维特征向量和第二属性同源图对图神经网络模型进行训练,得到恶意代码关联模型。
本申请的一些实施例通过动态调整恶意代码关联关系,在每一轮训练中,都根据编码器得到的特征编码重新计算特征相似度,并基于此相似度重新构建恶意代码关联关系,并基于新的关联关系进行图神经网络聚合,在迭代中使得恶意代码间的关联关系逐渐趋向正确,由于恶意代码属性同源图中恶意代码节点的邻接关系是由恶意代码低维特征向量的相似性建立的,在经过图神经网络学习后,进一步增强了邻接恶意代码间的相似性,提升了模型的同源分析效果,增强恶意代码同源分析的准确率。
可选地,模型训练模块用于:
采用编码器分别对恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量;
采用注意力机制,对多个编码后的特征向量进行维度融合,得到同一维度下的多个特征向量;
计算多个特征向量的注意力系数;
根据多个特征向量和与特征向量对应的注意力系数,确定与恶意样本训练数据对应的低维特征向量;
本申请的一些实施例通过,将编码恶意代码文件得到的低维特征向量有机融合到一起,为每个低维向量设置一个可学习的注意力系数,经过低维特征向量的加权平均后得到一个能够全面表示恶意代码的低维特征向量,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,模型训练模块用于:
计算同一维度下的多个特征向量的向量相似度;
若向量相似度大于且等于预设值,则保留第一属性同源图中的与向量相似度对应的边;
若向量相似度小于预设值,将第一属性同源图中的与向量相似度对应的边删除;
将保留的第一属性同源图中的与向量相似度对应的边,确定为第二属性同源图。
本申请的一些实施例通过构建恶意代码属性同源图,融合恶意代码间的关联关系,同时为了解决恶意代码关联关系间存在偏差的问题,动态构建恶意代码间地关联关系,在同源分析模型训练中不断优化恶意代码关联关系,最终实现高准确率的恶意代码同源分析。
可选地,模型训练模块用于:
将恶意代码文件的二进制图像输入到卷积神经网络模型,对卷积神经网络模型进行训练,获得二进制图像的低维特征向量;
将操作码序列输入到文本卷积神经网络模型,对文本卷积神经网络模型进行训练,获得操作码序列的低维特征向量;
将控制流图输入到深度图卷积神经网络模型,对深度图卷积神经网络模型进行训练,获得控制流图的低维特征向量;
将API调用序列输入到长短时记忆神经网络模型,对长短时记忆神经网络模型进行训练,获得API调用序列的低维特征向量。
本申请的一些实施例通过多种编码器对恶意代码文件的多维特征向量进行编码,得到低维特征向量,可以通过更复杂和鲁棒的特征应对复杂的对抗环境,获得更好的同源分析结果。
可选地,模型训练模块用于:
将二进制图像的低维特征向量、操作码序列的低维特征向量、控制流图的低维特征向量和API调用序列的低维特征向量分别进行特征映射,映射到相同的特征空间,并归一化到相同范围,得到同一维度下的多个特征向量。
本申请的一些实施例通过对恶意代码的多维特征信息采用注意力机制进行特征融合,能够使模型在训练过程中更关注有作用的特征,提升模型的分类效果。
可选地,判断模块用于:
基于多层感知机对多个恶意代码文件的低维特征向量进行分类,得到与恶意代码文件对应的分类标识;
若两个或多个与恶意代码文件对应的分类标识相同,则确定得到恶意代码文件来自同一数据源。
本申请的一些实施例通过基于多层感知机对恶意代码低维特征向量进行分类,实现恶意代码同源分析。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时可实现如上述实施例提供的恶意代码的同源分析方法中的任意实施例所对应方法的操作。
本申请实施例还提供了一种计算机程序产品,的计算机程序产品包括计算机程序,其中,的计算机程序被处理器执行时可实现如上述实施例提供的恶意代码的同源分析方法中的任意实施例所对应方法的操作。
如图14所示,本申请的一些实施例提供一种终端设备1400,该终端设备1400包括:存储器1410、处理器1420以及存储在存储器1410上并可在处理器1420上运行的计算机程序,其中,处理器1420通过总线1430从存储器1410读取程序并执行程序时可实现如上述恶意代码的同源分析方法包括的任意实施例的方法。
处理器1420可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器1420可以是微处理器。
存储器1410可以用于存储由处理器1420执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器1420可以用于执行存储器1410中的指令以实现上述所示的方法。存储器1410包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (11)

1.一种恶意代码的同源分析方法,其特征在于,所述方法包括:
获取多个恶意代码文件;
对所述多个恶意代码文件分别进行动态分析和静态分析,确定与所述恶意代码文件对应的多维特征信息;
根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;
根据所述恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与所述恶意代码文件对应的低维特征向量,其中,所述预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;
根据多个所述低维特征向量,对所述多个恶意代码文件进行同源分析。
2.根据权利要求1所述的恶意代码的同源分析方法,其特征在于,所述对所述多个恶意代码文件分别进行动态分析和静态分析,确定与所述恶意代码文件对应的多维特征信息,包括:
对所述恶意代码文件进行静态分析,得到与所述恶意代码文件对应的静态特征向量,其中,所述静态特征向量至少包括:二进制图像、操作码序列和控制流图;
对所述恶意代码文件进行动态分析,得到与所述恶意代码文件对应的动态特征向量,其中,所述动态特征向量至少包括API调用序列;
将所述静态特征向量和所述动态特征向量确定为所述多维特征信息。
3.根据权利要求2所述的恶意代码的同源分析方法,其特征在于,所述恶意代码关联模型通过如下方式获得:
获取恶意样本训练数据;
根据所述恶意样本训练数据,确定与所述恶意样本训练数据对应的样本多维特征信息;
根据所述样本多维特征信息,构建与所述恶意样本训练数据对应的第一属性同源图;
根据所述样本多维特征信息,确定与所述样本训练数据对应的低维特征向量;
根据样本多维特征信息的向量相似度,对所述第一属性同源图进行更新,得到第二属性同源图;
根据所述与所述恶意样本训练数据对应的低维特征向量和所述第二属性同源图对图神经网络模型进行训练,得到所述恶意代码关联模型。
4.根据权利要求3所述的恶意代码的同源分析方法,其特征在于,所述根据所述样本多维特征信息,确定与所述样本训练数据对应的低维特征向量,包括:
采用编码器分别对所述恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量;
采用注意力机制,对多个所述编码后的特征向量进行维度融合,得到同一维度下的多个特征向量;
计算多个特征向量的注意力系数;
根据所述多个特征向量和与所述特征向量对应的注意力系数,确定与所述恶意样本训练数据对应的低维特征向量。
5.根据权利要求3所述的恶意代码的同源分析方法,其特征在于,所述根据样本多维特征信息的向量相似度,对所述第一属性同源图进行更新,得到第二属性同源图,包括:
计算同一维度下的多个特征向量的向量相似度;
若所述向量相似度大于且等于预设值,则保留所述第一属性同源图中的与所述向量相似度对应的边;
若所述向量相似度小于预设值,将所述第一属性同源图中的与所述向量相似度对应的边删除;
将保留的所述第一属性同源图中的与所述向量相似度对应的边,确定为所述第二属性同源图。
6.根据权利要求4所述的恶意代码的同源分析方法,其特征在于,所述采用编码器分别对所述恶意样本训练数据的多维特征信息进行编码,得到多个编码后的特征向量,包括:
将所述恶意代码文件的二进制图像输入到卷积神经网络模型,对所述卷积神经网络模型进行训练,获得二进制图像的低维特征向量;
将操作码序列输入到文本卷积神经网络模型,对所述文本卷积神经网络模型进行训练,获得操作码序列的低维特征向量;
将控制流图输入到深度图卷积神经网络模型,对所述深度图卷积神经网络模型进行训练,获得控制流图的低维特征向量;
将API调用序列输入到长短时记忆神经网络模型,对所述长短时记忆神经网络模型进行训练,获得API调用序列的低维特征向量
7.根据权利要求6所述的恶意代码的同源分析方法,其特征在于,所述采用注意力机制,对多个所述编码后的特征向量进行维度融合,得到同一维度下的多个特征向量,包括;
将所述二进制图像的低维特征向量、所述操作码序列的低维特征向量、所述控制流图的低维特征向量和所述API调用序列的低维特征向量分别进行特征映射,映射到相同的特征空间,并归一化到相同范围,得到同一维度下的多个特征向量。
8.根据权利要求1所述的恶意代码的同源分析方法,其特征在于,所述根据多个所述低维特征向量,对所述多个恶意代码文件进行同源分析,包括:
基于多层感知机对所述多个恶意代码文件的低维特征向量进行分类,得到与所述恶意代码文件对应的分类标识;
若两个或多个与所述恶意代码文件对应的分类标识相同,则确定得到恶意代码文件来自同一数据源。
9.一种恶意代码的同源分析装置,其特征在于,所述装置包括:
获取模块,用于获取多个恶意代码文件;
分析模块,用于对所述多个恶意代码文件分别进行动态分析和静态分析,确定与所述恶意代码文件对应的多维特征信息;
建立模块,用于根据所述多维特征信息,确定与多维特征信息对应的恶意代码属性同源图;
确定模块,用于根据所述恶意代码属性同源图和预先训练的恶意代码关联模型,确定多个与所述恶意代码文件对应的低维特征向量,其中,所述预先训练的恶意代码关联模型是根据恶意样本训练数据中的多维特征信息和恶意样本训练数据之间的关联关系,对图神经网络模型进行训练得到的;
判断模块,用于根据多个所述低维特征向量,对所述多个恶意代码文件进行同源分析。
10.一种终端设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-8中任意一项权利要求所述的恶意代码的同源分析方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求1-8中任意一项权利要求所述的恶意代码的同源分析方法。
CN202310949575.7A 2023-07-28 2023-07-28 恶意代码的同源分析方法、装置、终端设备及存储介质 Pending CN117009968A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310949575.7A CN117009968A (zh) 2023-07-28 2023-07-28 恶意代码的同源分析方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310949575.7A CN117009968A (zh) 2023-07-28 2023-07-28 恶意代码的同源分析方法、装置、终端设备及存储介质

Publications (1)

Publication Number Publication Date
CN117009968A true CN117009968A (zh) 2023-11-07

Family

ID=88572181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310949575.7A Pending CN117009968A (zh) 2023-07-28 2023-07-28 恶意代码的同源分析方法、装置、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN117009968A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117354067A (zh) * 2023-12-06 2024-01-05 南京先维信息技术有限公司 一种恶意代码检测方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117354067A (zh) * 2023-12-06 2024-01-05 南京先维信息技术有限公司 一种恶意代码检测方法及系统
CN117354067B (zh) * 2023-12-06 2024-02-23 南京先维信息技术有限公司 一种恶意代码检测方法及系统

Similar Documents

Publication Publication Date Title
CN115796173B (zh) 针对监管报送需求的数据处理方法和系统
CN111552969A (zh) 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置
CN113596007B (zh) 一种基于深度学习的漏洞攻击检测方法和设备
CN111382298B (zh) 基于图片内容的图像检索方法、装置与电子设备
CN110968869B (zh) 一种基于深度学习的大规模恶意软件分类系统和方法
CN111090860A (zh) 一种基于深度学习的代码漏洞检测方法及装置
CN117009968A (zh) 恶意代码的同源分析方法、装置、终端设备及存储介质
CN110851546A (zh) 一种验证、模型的训练、模型的共享方法、系统及介质
CN113723070A (zh) 文本相似度模型训练方法、文本相似度检测方法及装置
CN115344863A (zh) 一种基于图神经网络的恶意软件快速检测方法
CN116089648A (zh) 基于人工智能的档案管理系统及方法
CN116579618A (zh) 基于风险管理的数据处理方法、装置、设备及存储介质
CN117593752B (zh) 一种pdf文档录入方法、系统、存储介质及电子设备
CN115168865A (zh) 基于领域自适应的跨项目漏洞检测模型
Wang et al. Gvd-net: Graph embedding-based machine learning model for smart contract vulnerability detection
CN111898544B (zh) 文字图像匹配方法、装置和设备及计算机存储介质
WO2023078264A1 (zh) 一种名片信息抽取系统训练方法及装置、计算机可读存储介质
CN116311276A (zh) 文档图像矫正方法、装置、电子设备及可读介质
CN116628695A (zh) 基于多任务学习的漏洞挖掘方法及装置
CN114090781A (zh) 基于文本数据的容斥事件检测方法和装置
CN115904918A (zh) 代码特征提取方法、代码检测方法、模型训练方法和装置
CN111562943A (zh) 一种基于事件嵌入树及gat网络的代码克隆检测方法和装置
CN115718696B (zh) 源码密码学误用检测方法、装置、电子设备和存储介质
CN116775889B (zh) 基于自然语言处理的威胁情报自动提取方法、系统、设备和存储介质
CN115640577B (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
TA01 Transfer of patent application right

Effective date of registration: 20240308

Address after: Room 101, 1st Floor, Building 11, West District, No.10 Northwest Wangdong Road, Haidian District, Beijing, 100193

Applicant after: Beijing Topsec Network Security Technology Co.,Ltd.

Country or region after: China

Address before: No. 101, Liujia Village, Lingzi Town, Zichuan District, Zibo City, Shandong Province, 255100

Applicant before: Sun Jintao

Country or region before: China

Applicant before: Beijing Topsec Network Security Technology Co.,Ltd.

TA01 Transfer of patent application right