基于异构指令图的恶意软件分类方法研究

2024-03-03 11:22钱丽萍吉晓梅
计算机工程与应用 2024年3期
关键词:结点准确度交叉

钱丽萍,吉晓梅

1.北京建筑大学 电气与信息工程学院,北京 100044

2.北京建筑大学 建筑大数据智能处理方法研究北京市重点实验室,北京 100044

恶意软件是当今互联网上最大的威胁之一,它未经授权而访问网络设备,以窃取信息数据。据AVTest 报告显示[1],恶意软件数量一直呈指数级增长,平均每天注册超过45万个新的恶意软件,截至2023年,恶意软件数量已达10.3亿。美国《福布斯》双周刊网站报道,2023年值得警惕的三大网络安全威胁:网络钓鱼、恶意软件、供应链攻击[2],因此恶意软件问题亟需解决。

传统的恶意软件分类严重依赖于手工特征提取,常见的特征包括可打印字符串、PE文件头、操作码序列、n-gram、API 调用等。手工特征提取需要大量的先验知识,耗费大量的时间和精力,面对日以万增的恶意软件,这显然不太现实。随着人工智能的兴起,深度学习在各个领域中都取得了显著的成果,如图像识别、自然语言处理、语音识别等。不少网络安全研究人员也开始应用深度学习模型,实现自动化特征提取。主要分为两个方向:基于图像的方法,首先将恶意软件可视化为灰度图像或彩色图像,再进行分类研究。基于字符串的方法,将恶意软件二进制文件反汇编,对汇编文件研究。

现有研究虽然都取得了不错的成果,但是仍有不足,通过离散图来表示样本,所以样本之间相互独立,不受影响,面对各种各样的样本数据,同家族的恶意软件间汇编代码有很大的相似性,恶意样本也不是一个独立的个体,并且现有研究没有充分挖掘汇编代码的内在特征。本研究旨在从指令语义的角度,生成异构指令图(heterogeneous instruction graph,HIG),使控制流图(control flow graph,CFG)等其他的语义图包含更多的指令语义信息,同时使数据样本不再独立。使CFG 包括控制流信息的同时不局限于局部结构特征,而关注长距离指令交互信息,这样抗混淆性更强,语义信息更加丰富。由此可见,本研究在恶意软件分类检测中有着重要的意义,可以很好地解决目前分类模型语义信息不足和抗混淆性不好的问题。

本文贡献如下:

(1)首次提出异构指令图HIG,提取语义结构信息,使CFG包含更多的指令语义信息,此外捕获样本之间的消息传递,使样本不是一个独立的个体,提高整体性能。

(2)提出了一个新的基于图神经网络的恶意软件分类模型MCHIG,分三个阶段完成恶意软件分类过程。首先通过异构指令图结点分类,生成指令嵌入向量,然后基于CFG实现自动化分类过程。

1 相关工作

1.1 基于传统深度学习

Li 等人[3]基于API 序列使用深度学习模型,充分挖掘API序列的内在特征信息,不再仅停留在API名称和频率特征,表明了API 序列内在特征的有效性。Liu 等人[4]用控制流图CFG 和反汇编代码相结合来表示恶意样本,并将嵌入结果传入CNN 和改进的LSTM 相结合构建的网络模型中,结果表明反汇编代码中也包含了丰富的语义信息。

1.2 基于图深度学习

Yan等人[5]提出了MAGIC恶意软件分类模型,用CFG表示恶意样本,并矢量化为ACFG,取得了与最先进的手工制作特征相当的方法,Xia 等人[6]引入了词频-逆文档频率(term frequency-inverse document frequency,TF-IDF)表示文本频率信息,研究发现基于TF-IDF可以提高分类效果,也证明了CFG 指令中包含更多未发掘的特征信息。

Wu 等人[7]提出了MCBG 恶意软件分类模型,引入BERT,通过BERT 来提取指令语义信息,通过GIN-JK来捕获CFG结构信息,不同于MCBG,Wu等人[8]基于函数调用图(function call graph,FCG)提出了GEMAL 恶意软件分类模型,将指令视为单词,函数视为句子,使用CBOW自动提取语义特征生成AFCG,之后基于图嵌入网络生成恶意样本的嵌入向量。Gao等人[9]使用MiniLM生成CFG 基本块的初始特征向量,并使用图同构网络GIN压缩向量,便于后续分类。它们都取得了非常不错的结果,但语言模型语义提取阶段训练时间较长,不适用于实时恶意软件分类。

FCG 函数体由CFG 控制流信息组成,Wang 等人[10]和Ling等人[11]提出了基于FCG和CFG的层次图来表示恶意样本,FCG 用于捕获函数间的语义交互,CFG 用于捕获函数内的语义交互,前者利用BERT和图注意力网络来实现恶意软件分类,研究表明该模型的泛化性很好,后者进行对抗性攻击,发现其表现更强的鲁棒性,并且Malgraph[11]性能优于MAGIC、EMBER[12]、MalConv[13]。

Zhang 等人[14]提出了简化指令依赖图RIDG 的概念,基于RIDG、基本块、函数和程序四层模式来判断恶意程序的相似度,研究表明该方法具有很好的抗混淆功能。Tang 等人[15]基于中间表示程序首次提出了数据转换图,可以完整地表示数据流语义信息,并重新设计了图网络的消息传递函数和聚合函数,可以有效地提取数据流语义信息,抵抗常见的混淆技术,但是将二进制程序反汇编为中间表示程序,容易造成信息丢失,难以恢复完整的数据流信息。有关该方面的研究较少,本文致力于探寻更细粒度的语义图表示。

1.3 图神经网络

图神经网络可以有效地处理非欧式数据,在链接预测[16]、文本分类[17]、知识图谱[18]等都取得了很好的结果。Kipf 等人[19]提出了GCN,但是其灵活性较差,难以扩展到大规模网络,并且收敛速度较慢。随着DGCNN[20]的提出,网络层数可以达到6层,效果相比GCN显著提升,但是增加深度会因为过度平滑的问题降低模型效果,随后Hamilton 等人[21]提出了GraphSAGE,相比较GCN,GraphSAGE可以分批训练,可以很好地处理大型图。

在恶意软件分类研究中,图神经网络也取得了不错的成果。张雪涛等人[22]提出了基于GCN的安卓恶意软件检测模型,基于精简函数调用图取得了不错的结果。MAGIC提出使用DGCNN提取CFG的结构信息,MCBG提出使用带跳跃知识的图同构网络来获取CFG的语义信息和结构信息,它们的性能优于最先进的手工提取特征方法,证明了在基本块上建立语义模型的有效性。可见图神经网络在恶意软件研究中十分有效。

2 MCHIG模型概述

对现有的基于语义图的恶意软件分类方法进行了研究,发现主要包括四个方面,基于手工特征选取[5-6]、基于自然语言处理模型[7-9]、基于细粒度语义图表示[14-15]以及语义图的组合使用[10-11]。常见的语义图由控制流图CFG、函数调用图FCG 和依赖图(dependency graph,DG)等。常见语义图语义信息有限、将数据样本表示为独立的个体,实际上同类别的样本数据来自同一变体,并不独立,因此提出了异构指令图,使样本数据不再独立,从而包含更多的语义信息。

本文提出了MCHIG恶意软件分类模型,首先将PE文件反汇编生成汇编文件,紧接着在数据预处理阶段规范化指令信息,然后从汇编文件直接生成异构指令图MyHIG 作为数据集,最后将生成的MyHIG 传入图网络GraphSAGE,自动学习指令语义信息,最后执行下游任务测试模型的性能。整体框架见图1。

图1 MCHIG系统概述Fig.1 System overview of MCHIG

2.1 异构指令图

控制流程图是一个过程或程序的抽象表示,标示计算机程序执行过程中所经过的所有路径。结点代表基本块,内含程序语句,边代表控制流,即如何执行。现有研究[5-7]基于控制流图都取得了不错的成果,但是基于单个样本生成控制流图,缺少了样本间的消息传递,基于此本文提出了异构指令图。

从汇编文件中直接提取的HIG指令信息过于冗余,借鉴GEMAL[8]中所提出的规范化代码的方法,对指令信息进行规范化处理。主要包含三部分:将所有数值常量替换为“N”;将所有不规则字符串替换为“M”;用“_”连接操作码和操作数,规范化过程见图2(a)。

图2 汇编指令规范化和HIG例子Fig.2 Assembly instruction normalization and HIG example

异构指令图HIG为G=(V,E),V代表顶点的集合,V=(Vp,Vi),顶点V有两种类型分别为Vp和Vi,Vp代表文件结点,,Vi代表指令结点,其中n=10 807,m=248 948,dk代表第k层结点的维度,其中d0=128 。E=(epaper_contain_insn,einsn_belong_paper,einsn_cooccurence_insn,einsn_jmp_insn),E代表边的集合,可见边类型有四种。

关于HIG 的详细信息见表1,图2(b)展示了一个简单的HIG 例子,paper1 包含基本块1,paper2 包含基本块2,其中e1、e8边类型为epaper_contain_insn,e5、e10边类型为einsn_belong_paper,e2、e3、e4、e7、e9边类型为einsn_cooccurence_insn,e6、e11边类型为einsn_jmp_insn。

表1 异构指令图符号Table 1 Heterogeneous instruction graph symbols

可见恶意软件汇编文件中包含了丰富的指令信息,异构指令图不仅可以获取样本内的指令信息传递,还可以获取样本之间的消息传递,使样本不是一个独立的个体,对于其他语义图同样适用。

2.2 图神经网络

本文采用GraphSAGE 获取HIG 的指令嵌入向量。其主要包括三个部分,首先对邻居结点进行随机采样,其次生成目标结点的嵌入,对于结点v,在第k层的嵌入结果如下:

其中,Nk(v) 表示结点v在第k层的邻居结点。aggregate 代表消息聚合,concat 代表消息拼接。代码实现如下:

直观理解为将邻居对应的特征聚合后,进行一个维度变换,再加上结点自身经过维度变换的特征,就是结点最终生成的嵌入。相比GCN,结点v和邻居u使用了不同的W,投射到了不同的特征空间,这大大加强了模型的表达能力。

GraphSAGE 对部分邻居采样,进行消息聚合,大大提升了效率,并且保留了样本原始特征,解决了过度平滑的问题。基于本文所提出的HIG,将不同类型的边分别传入GraphSAGE网络模型,再进行信息聚合,此外引入了Dropout层,网络模型结构如下:

其中,ei代表HIG 的边类型,i={0,1,2,3},aggr 代表聚合,常见的聚合方式有sum、max等。

GraphSAGE 时间复杂度主要取决于邻居采样和聚合,与图的规模没有直接关系。假设对于每个结点v,邻居数目为k,每个结点在每一层采样的邻居数目为s,每层聚合时使用的神经网络的计算复杂度为O(f),那么这段代码的时间复杂度可以表示为O(Lksf),其中L是迭代次数。

最后使用交叉熵损失函数对模型进行训练,公式如下:

其中,M代表类别数,pic为符号函数(0 或1),如果样本i的真实类别等于c,则pic=1,否则为0,yic代表样本i属于类别c的概率。

3 实验

在一个较大的公开的网络安全数据集上评估了MCHIG模型,下面展示了实验设置和实验结果,并与其他模型进行对比。本研究对Android和Windows平台都适用。所有实验在i9-11900、RTX3090上完成。

3.1 数据集

3.1.1 BIG2015数据集

本实验选取微软在Kaggle 平台上发起的恶意代码分类比赛所提供的数据集BIG2015[23]。BIG2015数据集包含9 个家族,分别为Ramnit、Lollipop、Kelihos_ver3、Vundo、Simda、Tracur、Kelihos_ver1、Obfuscator.ACY、Gatak,样本总数为10 868,每个样本包含一个.bytes 文件和一个.asm文件,其中.asm文件由IDA pro反汇编获得。提取HIG时发现BIG2015中有61个样本没有代码块,最终有效样本数为10 807,表2展示了BIG2015类别名称、类别编号以及最终各类别的有效样本数。

表2 BIG2015数据集Table 2 BIG2015 dataset

基于BIG2015,提取异构指令图HIG,并通过PyTorch Geometric(PyG)生成本研究的数据集,见图3,其中paper 指文件名,insn 代表规范化后的指令名,对paper 和insn 都进行了特征向量初始化,维度为128 维,(insn,belong,paper)、(paper,contain,insn)、(insn,cooccurence,insn)和(insn,jmp,insn)代表四种类型的边,以此作为后续研究的数据集,命名为MyHIG。MyHIG,将所有样本数据用一张图表示,而图本身是多对多的关系,是相互影响的,因此所有样本不再独立。

图3 数据集MyHIG Fig.3 MyHIG dataset

3.1.2 BODMAS_mini数据集

BODMAS[24]数据集收集了2019年8月至2020年9月的57 293个恶意样本和77 142个良性样本,共有581个家族。为了进一步验证模型的有效性,本文从BODMAS数据集中选择了9 个家族的少样本数据与BIG2015 的结果做对比分析,并命名为BODMAS_mini。BODMAS_mini 数据集的家族类别包括:ausiv、ditertag、vigorf、mocrt、dorv、fuerboos、zbot、fakeav、smokeloader,样本总数为2 617,每个样本数据都对应一个.exe 文件,通过IDA pro 将.exe 文件反汇编为.asm 文件用于后续研究,反汇编后样本数总数为2 404。表3 展示了数据集BODMAS_mini的详细信息。

表3 BODMAS_mini数据集Table 3 BODMAS_mini dataset

3.2 基线

(1)MAGIC[5]:手动将CFG 矢量化为ACFG,传入DGCNN 学习ACFG 中的固有结构信息,取得了与先进的手工制作的恶意软件特征相当的效果。

(2)GEMAL[8]:基于FCG 和图嵌入,将指令视为单词,将函数视为句子,使用CBOW 提取语义特征,使用图嵌入网络将结构特征和语义特征相结合,生成嵌入向量,用于恶意软件分类。

(3)MCBG[7]:基于CFG,使用BERT 学习结点语义信息、GIN-JK学习CFG结构信息,其性能优于MAGIC。

3.3 性能指标

选择了分类研究中较常见的性能指标,即准确度(acc)、精确度(precision)、召回率(recall)和F1 值(F1-score)。

F1 值是对精确度与召回率的调和平均,优点在于能赋予精确度和召回率相同的权重以平衡二者。

3.4 基于BIG2015的恶意软件分类研究

3.4.1 指令嵌入模型训练

在HIG 指令嵌入阶段,使用python 和PyG 框架训练模型,针对MyHIG 数据集,随机打乱样本数据,选取前70%为训练集,其余为测试集。表4列出了实验调整的超参数,当消息传递模型为GraphSAGE,卷积层(num_layers)为2 时,64 层隐藏层和128 层隐藏层取得了相当的结果,但是64 层消耗671 s,128 层消耗881 s,是64 层的1.3 倍,因此令隐藏层为64。图4 展示了不同num_layers 的分类准确度曲线图,可见60 次迭代后,准确度趋于稳定,但是num_layers 值越大,整体分类准确度越高。表5 展示了不同卷积层下的最佳分类准确度和消耗时间,发现在num_layers=6时准确度达到最高为97.81%,共消耗2 420 s,平均每个样本0.224 s。

表4 超参数调整Table 4 Hyperparameter adjustment

表5 不同卷积层层数下的最佳准确度和消耗时间Table 5 Best accuracy and time consuming under different convolutional layers

图4 不同卷积层下的准确度曲线Fig.4 Accuracy curves under different convolutional layers

在实验中,分别使用了SAGEConv、GATConv、TransformerConv 三种算法进行了对比分析,具体结果见表6,研究发现,GATConv的准确率最低只有87.91%,SAGEConv 准确率最高为97.81%,TransformerConv 准确率比SAGEConv低0.19个百分点,可见SAGEConv准确率最高,为保证结点嵌入的有效性,选择SAGEConv做嵌入分类。

表6 不同算法比较分析Table 6 Comparative analysis of different algorithms

最终使用SAGEConv模型信息传递,设置学习率为0.003,优化器为adam,损失函数为交叉熵损失函数,迭代次数为150 次,隐藏层为64,卷积层为6,在测试集上取得了最佳性能。图5展示了训练集和测试集的acc曲线和loss 曲线,根据loss 曲线,可以发现,epoch 超过67之后,测试集上的loss值开始上升,出现过拟合现象,所以选取epoch 为67 时,模型训练生成的指令嵌入向量,供后续恶意软件分类研究。混淆矩阵见图6,可见在3 242个样本中,有71个样本被错误分类。

图5 BIG2015的acc曲线和loss曲线Fig.5 Acc curve and loss curve of BIG2015

图6 BIG2015的混淆矩阵Fig.6 Confusion matrix of BIG2015

3.4.2 恶意软件分类

在指令嵌入阶段,MCHIG 生成了每个指令的初始向量,便于后续分类任务,在恶意软件分类阶段,基于CFG,并使用GCN 做分类任务。依旧使用pytorch 框架训练模型,模型中包括两个GCN卷积层和一个线性层,利用图pooling,提取每张图的全局特征,用于后续分类任务。设置学习率为0.001,优化器为adam,损失函数为交叉熵损失函数,迭代次数为1 000次,准确度最高为98.82%。为了与其他研究做对比,使用五折和十折交叉验证进行训练,在训练过程中设置epoch为70。

五折交叉验证分类结果(精确度、召回率、F1值)见图7,具体数据见表7,可见9 个家族都取得了不错的验证分数,精确度都高于0.97,召回率都高于0.96,F1值都高于0.98,其中Lollipop、Vundo、Simda、Gatak 四个家族的性能指标全为1。五折交叉验证分类混淆矩阵见图8,可见在2 162个样本中,有10个样本被错误分类。

表7 MCHIG在BIG2015数据集上的五折交叉验证结果Table 7 Five-fold cross-validation results of MCHIG on BIG2015 dataset

图7 BIG2015的五折交叉验证结果Fig.7 Five-fold cross-validation results of BIG2015

图8 BIG2015的五折交叉验证混淆矩阵Fig.8 Five-fold cross-validation confusion matrix of BIG2015

准确度是模型性能的直观反映,F1 值是对精确度与召回率的调和平均,所以准确度和F1 值的结合能很好地反映模型的整体性能,因此模型对比分析中主要关注准确度和F1 值两个性能指标。表8 列出了较先进模型的五折交叉验证的实验结果,从整体性能指标来看,MCHIG 的准确度和F1 值都优于基于手工特征提取的MAGIC,准确度提升0.002 9,F1 值提升0.003 2,并且整个过程实现自动化提取和分类,不需要专业知识,更具有通用性,MCHIG 的准确度和F1 值都优于基于BERT提取语义信息的MCBG,准确度提升0.000 1,F1值提升0.001 9,所以从整体性能看MCHIG 优于MCBG,此外MCHIG 的准确度与GEMAL 相同,但是GEMAL 的F1值比MCHIG 高0.000 2,考虑可能是特征类型的不同导致的,在GEMAL 中基于FCG 进行分类,并通过CBOW语言模型进行语义信息提取,而FCG 的每个结点本身就是由CFG构成的,也就是说GEMAL同时提取了FCG和CFG 的语义信息,而MCHIG 只通过提取CFG 的语义信息就达到了与GEMAL 相当的效果,由此可见MCHIG 可以更好地挖掘语义指令信息。综上MCHIG优于MAGIC和MCBG,与GEMAL效果相当,证明了使用异构图神经网络生成指令嵌入向量的有效性。

表8 在BIG2015数据集上不同模型的五折交叉验证对比Table 8 Five-fold cross-validation comparison of different models on BIG2015 dataset

十折交叉验证分类结果(精确度、召回率、F1值)见图9,其结果优于五折交叉验证,确切数值见表9,可见大多数类别的精确度、召回率和F1 值都达到了1,只有Obfuscator.ACY的精确度、F1值和Ramnit的召回率、F1值除外,但也都高于0.99。十折交叉验证分类混淆矩阵见图10,可见在1 081 个样本中,只有1 个被错误分类,取得了非常好的分类结果。

表9 MCHIG在BIG2015数据集上的十折交叉验证结果Table 9 Ten-fold cross-validation results of MCHIG on BIG2015 dataset

图9 BIG2015的十折交叉验证结果Fig.9 Ten-fold cross-validation results of BIG2015

图10 BIG2015的十折交叉验证混淆矩阵Fig.10 Ten-fold cross-validation confusion matrix of BIG2015

为了进一步验证模型的有效性,不同于五折交叉验证与较先进的基于图深度学习模型进行对比分析,在十折交叉验证中选择了基于传统深度学习和集成学习模型进行对比分析。

表10 列出了MCHIG 与基于传统深度学习和集成学习的对比分析。MalConv 在整个可执行文件的原始字节上使用神经网络,避免过分关注局部信息,准确度达到0.964 1,F1值为0.889 4,而本文所提出的MCHIG,准确度提升0.035,F1 值提升0.109 8,效果显著。Gibert等人[25]根据从图像可视化中提取的一组判别模式有效地将恶意软件分类,准确度达到0.975 0,F1 值为0.94,而MCHIG 基于汇编文件,将准确度提升0.024 1,F1 值提升0.059 2,可见MCHIG 可以很好地挖掘语义信息。Mays 等人[26]创建了一个分类器的联盟,每个分类器使用不同的特征,其中包括一个将字节数据作为图像处理的卷积神经网络和一个利用操作码n-gram特征的深度前馈神经网络,准确度达到0.972 4,F1 值为0.961 8,而MCHIG 不依赖于多分类器,通过异构图神经网络嵌入和图卷积神经网络分类,准确度提升0.026 7,F1值提升0.037 4。Gibert 等人[27]提出了HYDRA,利用多模态学习将来自各种信息源的恶意软件特征结合起来,其中包括APIs、字节序列和操作码序列,准确度达到0.997 5,F1 值为0.995 1,而MCHIG 不依赖多特征融合,通过充分挖掘CFG语义和结构信息,准确度提升0.001 6,F1值提升0.004 1。由表10可见基于传统的深度学习和集成学习的方法,取得了不错的成果,但是本文所提出的MCHIG 准确度达到0.999 1,F1 值为0.999 2,相较其他模型不管是准确度还是F1值都有显著提升。

表10 在BIG2015数据集上不同模型的十折交叉验证对比Table 10 Ten-fold cross-validation comparison of different models on BIG2015 dataset

本研究基于异构指令图数据集MyHIG,将恶意样本紧密联系起来,不再是独立的个体,为后续研究提供了新思路,研究发现MCHIG 相比基于传统深度学习和集成学习的恶意软件分类模型,准确度最高提升0.035,F1值最高提升0.109 8,整体性能显著提升,相比目前较先进的基于图深度学习的恶意软件分类模型,准确度最高提升0.002 9,F1 值最高提升0.003 2,这表明了MCHIG 的有效性,能够从图中挖掘更丰富的指令语义信息,此外MCHIG 在嵌入分类阶段平均每个样本仅需0.224 s,可用于实时恶意软件分类。

3.5 基于BODMAS_mini的少样本恶意软件分类研究

采用同3.4 节同样的研究方法和调优方法,在指令嵌入阶段,使用SAGEConv 模型信息传递,设置学习率为0.003,优化器为adam,损失函数为交叉熵损失函数,迭代次数为150 次,隐藏层为64,卷积层为7,在测试集上取得了最佳性能,最佳准确率达到96.53%,共消耗634 s,平均每个样本0.263 s。

图11 展示了训练集和测试集的acc 曲线和loss 曲线,根据loss曲线,可以发现,epoch超过67之后,测试集上的loss值开始上升,出现过拟合现象,所以选取epoch为67时,模型训练生成的指令嵌入向量,供后续恶意软件分类研究。混淆矩阵见图12,可见在2 404个样本中,有25个样本被错误分类。

图11 BODMAS_mini的acc曲线和loss曲线Fig.11 Acc curve and loss curve of BODMAS_mini

图12 BODMAS_mini的混淆矩阵Fig.12 Confusion matrix of BODMAS_mini

在恶意软件分类阶段,在BODMAS_mini数据集上分别进行了五折和十折交叉验证,在训练过程中设置epoch为70。发现十折交叉验证结果优于五折交叉验证,五折最佳准确率达到97.29%,十折最佳准确率为98.76%。

十折交叉验证分类结果(精确度、召回率、F1值)具体数据见表11。可见本次交叉验证测试集中vigorf 家族样本数为0,smokeloader、ausiv、mocrt、dorv 和fakeav五个家族的精确度、召回率、F1均等于1,由图13十折交叉的混淆矩阵可知,在241个样本中,有3个样本被错误分类,可见MCHIG 在少样本数据集中也取得了很好的结果,可用于少样本恶意软件分类研究。

表11 MCHIG在BODMAS_mini数据集上的十折交叉验证结果Table 11 Ten-fold cross-validation results of MCHIG on BODMAS_mini dataset

图13 BODMAS_mini的十折交叉验证混淆矩阵Fig.13 Ten-fold cross-validation confusion matrix of BODMAS_mini

4 结论

在本文提出了MCHIG,一个恶意软件分类模型。MCHIG主要包括三个阶段,异构指令图生成阶段、指令嵌入阶段和恶意软件分类阶段。在指令嵌入阶段,基于异构指令图HIG,采用异构图神经网络GraphSAGE进行消息传递,学习指令语义信息,最后为每个指令结点生成向量表示;在恶意软件分类阶段,将嵌入阶段生成的向量作为指令初始向量,用CFG表示恶意样本,用GCN模型做恶意软件分类,MCHIG使样本不再是独立的个体,能够获取样本之间的消息传递。在微软发布的BIG2015数据集上进行了实验,最佳准确度达到99.91%,在BODMAS_mini 少样本数据集上的最佳准确率达到98.76%,可见MCHIG优于目前较先进的其他恶意软件分类模型。

猜你喜欢
结点准确度交叉
“六法”巧解分式方程
幕墙用挂件安装准确度控制技术
Ladyzhenskaya流体力学方程组的确定模与确定结点个数估计
连一连
动态汽车衡准确度等级的现实意义
基于Fast-ICA的Wigner-Ville分布交叉项消除方法
双线性时频分布交叉项提取及损伤识别应用
高炉重量布料准确度的提高
对电子天平的误差及保证其称量准确度的探讨
基于Raspberry PI为结点的天气云测量网络实现