CN114139153A - 基于图表示学习的恶意软件可解释性分类方法 - Google Patents
基于图表示学习的恶意软件可解释性分类方法 Download PDFInfo
- Publication number
- CN114139153A CN114139153A CN202111290123.XA CN202111290123A CN114139153A CN 114139153 A CN114139153 A CN 114139153A CN 202111290123 A CN202111290123 A CN 202111290123A CN 114139153 A CN114139153 A CN 114139153A
- Authority
- CN
- China
- Prior art keywords
- graph
- node
- nodes
- vector
- malware
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 238000013528 artificial neural network Methods 0.000 claims abstract description 17
- 238000007781 pre-processing Methods 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 40
- 230000006870 function Effects 0.000 claims description 28
- 238000011176 pooling Methods 0.000 claims description 25
- 239000011159 matrix material Substances 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 6
- 241000544061 Cuculus canorus Species 0.000 claims description 5
- 244000035744 Hura crepitans Species 0.000 claims description 5
- 101100481876 Danio rerio pbk gene Proteins 0.000 claims description 4
- 101100481878 Mus musculus Pbk gene Proteins 0.000 claims description 4
- 238000010606 normalization Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000004220 aggregation Methods 0.000 claims description 3
- 238000006116 polymerization reaction Methods 0.000 claims description 3
- 238000005295 random walk Methods 0.000 claims description 3
- 238000001514 detection method Methods 0.000 description 13
- 238000002474 experimental method Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000002679 ablation Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 241000700605 Viruses Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013145 classification model Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Probability & Statistics with Applications (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及恶意软件技术领域,具体地说,涉及一种基于图表示学习的恶意软件可解释性分类方法,其包括以下步骤:1)、数据预处理;2)、构建恶意软件的图表示;3)、构建基于图神经网络的分类器。本发明在分类准确率上相比于之前的方法有着非常大的提升。
Description
技术领域
本发明涉及恶意软件技术领域,具体地说,涉及一种基于图表示学习的恶意软件可解释性分类方法。
背景技术
互联网技术的高速发展在为人们带来无限便利的同时,也同时成为某些别有用心的人对特定用户群进行攻击的途径。在所有的操作系统中,Windows系统由于其用户界面精美,操作简单,且各类游戏和软件的普及性较高,得到了众多用户的青睐。不幸的是,针对Windows系统的恶意攻击层出不穷,对系统造成极大威胁。尤其是类似于勒索病毒,挖矿程序,DDOS木马,蠕虫病毒等恶意软件。虽然业界涌现了大量的应对方法,但由于这些软件衍生出越来越多的变种、且具有更深的行为特征隐藏性,为恶意软件检测任务带来了前所未有的巨大挑战。
根据现有文献,恶意软件检测方法大致分为两种,首先是基于人工提取特征的方式,其中典型的有基于统计特征的方式。由于该方式往往依赖于过往人工积累的特征码经验,因而易于导致在识别经过加壳处理或经过混淆的恶意软件方面存在困难;其二是基于机器学习的检测方法,该方法又分为基于传统机器学习技术和基于深度学习技术。传统机器学习的特征设计往往需要人工干预,如果特征提取工作出现误差,则可能会导致准确性降低,误报率更高。同时在处理序列数据方面有很大不足,导致该类模型往往泛化能力较低。典型的主要运用了SVM,决策树等传统机器学习算法。与之相对应的深度学习方法,由于该方法可以学习更高维度的特征及表达更抽象的语义,因而在近年来成为检测方法的主流[8]。常用的深度学习方法依赖于对API语义的抽取,然而由于这些方法对于的过长序列数据常用截断处理,导致恶意软件可轻易绕过序列检测窗口。幸运的是,随着深度学习的发展,以图的方式来对API调用序列进行建模的方式逐渐受到研究者的青睐。其主要优点是可以在图结构内部建立拓扑关联,并且具有强大的推理能力,可以充分吸收周围节点的特征。不过现有的基于图的预测方法大多依赖于复杂的图匹配算法,由于其庞大的参数群,导致可解释性不高,同时对于多分类任务的准确性不高。由此,一种能够同时分类准确率高并且可以对分类结果进行解释的模型成为恶意软件领域亟待解决的任务。
发明内容
本发明的内容是提供一种基于图表示学习的恶意软件可解释性分类方法,其能够克服现有技术的某种或某些缺陷。
根据本发明的基于图表示学习的恶意软件可解释性分类方法,其包括以下步骤:
1)、数据预处理;
2)、构建恶意软件的图表示;包括:
2.1)特征选择:
根据API函数的调用序列,将各API函数嵌入为图的节点;然后使用节点嵌入法将每个节点嵌入为独特的向量表示;
选择了两层特征来表示恶意软件;首先在每个图中随机选取一个节点,对该节点进行随机游走并对已走过的节点进行标记。当走到最后一个节点没有路径的时候退回前一个节点寻找其他路径,每个图截取其中的前n个节点组成该文件的路径,在对所有的图进行随机游走之后拼接在一起,得到整个语料库的路径,最后对这个路径进行fastText处理得到每个节点的嵌入表示作为其第一层特征;
第二层特征为其恶意等级特征,将数据集中所有软件的恶意软件所调用的API进行等级分类;根据API在恶意软件中的tf-idf值以及其恶意程度共分为三个等级;对这三个等级进行独热编码,得到每个API的独特的恶意等级特征;
2.2)子图表示;
首先对每个恶意软件的函数调用序列进行提取,根据调用的时间信息进行排序,得到其不同的函数调用子图;
3)、构建基于图神经网络的分类器,包括以下步骤:
3.1)对每个子图单独进行两层图卷积,公式如下所示:
公式中的D∈RN*N为节点的度矩阵,,为整个图的邻接矩阵,Hl∈RN*d为节点在l时刻的特征向量,其d为特征向量维度,Wl∈Rd1*d2为l时刻需要学习的权重参数矩阵,d1为输入的特征维度,d2为输出的特征维度;
3.2)在经过卷积后,各个节点均吸收了其邻居节点的特征,此时对图进行池化;
3.3)使用平均池化的方法,对每一层池化后的节点的向量进行读出,公式如下所示:
其中为第i个节点的特征,N为节点数量,s为平均后的节点特征;
3.4)对得到的信息进行一次性的聚合,具体方式为将各子图池化后的值拼接起来,公式如下:
其中x(j)为各子图池化后的特征,x为各子图聚合后的值;
3.5)得到样本经过图神经网络的学习后的向量表示,然后将向量输送至前馈神经网络中降维至类别数量,再对其进行Softmax处理得到每个类别的概率。
作为优选,数据预处理包括以下步骤:
1.1)、在virusshare网站中下载相关恶意软件,将得到的恶意软件上传至virustotal网站进行分类,得到其标签;
1.2)、将恶意软件送入cuckoo沙箱中进行分析,得到的动态运行报告;
1.3)、提取特征,转换格式后,得到恶意软件的初始特征数据。
作为优选,在进行图表示时,另外对模型的边进行了处理,如果某一条边的两端顶点为以上三类节点时,将该边提取为一个节点,命名为TpyetoType;然后将该边节点放回得到的序列中并进行Word2Vec处理,其中API节点向量不进行训练,单独训练边向量;而边节点的等级特征也加入至原独热编码的三元组中,组成新的四元组,其中第一个值表示其是否为边节点。
作为优选,在图卷积的过程中,进行两步处理,添加自环和特征表示的归一化处理。
作为优选,步骤3.2)中,池化方法为:
对该图分类不重要的节点则丢弃,而保留对分类结果重要的节点,其中池化率K是一个超参数,K∈(0,1);在进行图卷积的之后,设立一个权重值Z∈RN*1以表示其节点的重要程度并对其进行降序排序;公式如下所示:
公式中X∈RN*d为节点的特征向量,Θatt∈Rd*1为待学习的attention参数;σ为Sigmoid函数;在对原图进行图卷积后输出维度为N*1的向量,为权重Z的分数;然后对分数进行排序,并根据权重的分数进行池化,对图中的节点下采样至K*N个节点,公式如下所示:
mask=TopK(Z,K);
A′=Amask;
X′=Xmask;
Mask操作是屏蔽掉那些被池化的节点的邻接矩阵A和特征向量X;每个子图在进行两次卷积和池化后,得到K1*K2*N个节点,K1,K2∈(0,1),且K1,K2均为超参数。
本发明使用动态检测方式,将CUCKOO沙箱中得到的恶意软件的报告转化为图结构数据,并根据其API的多线程调用信息,得到该恶意软件的诸多子图。同时,本发明还创新性对恶意软件调用的序列信息进行提取,根据其两边节点组成相应边节点。最终本发明将得到的恶意软件图表示输入至图神经网络中进行学习,在经过TopK池化后读出至全连接层进行分类。本发明使用的方法在分类准确率上相比于之前的方法有着非常大的提升,二分类测试集准确率达到了99.2%,超过恶意软件的其他方法。同时消融实验与预测过程的可视化也显示了算法的有效性及良好的可解释性。
附图说明
图1为实施例1中基于图表示学习的恶意软件可解释性分类方法的流程图;
图2为实施例1中生成子图的示意图;
图3为实施例1中软件类型分布示意图;
图4为实施例1中模型可解释性分析流程图。
具体实施方式
为进一步了解本发明的内容,结合附图和实施例对本发明作详细描述。应当理解的是,实施例仅仅是对本发明进行解释而并非限定。
实施例1
如图1所示,本实施例提供了一种基于图表示学习的恶意软件可解释性分类方法,其包括以下步骤:
1)、数据预处理;
数据预处理包括以下步骤:
1.1)、在virusshare网站中下载相关恶意软件,将得到的恶意软件上传至virustotal网站进行分类,得到其标签;
1.2)、将恶意软件送入cuckoo沙箱中进行分析,得到的动态运行报告;
1.3)、对动态运行报告中的“category”,“api”,“time”,“tid”进行提取,转化为csv格式后,得到恶意软件的初始特征数据。
2)、在得到上述样本的各种标签以及特征后,便开始着手构建恶意软件的图表示。构建恶意软件的图表示;包括:
2.1)特征选择:
根据API函数的调用序列,将各API函数嵌入为图的节点;然后使用节点嵌入法将每个节点嵌入为独特的向量表示;这里基于Deepwalk方法,并结合了NLP的一种新的基于恶意软件API的图嵌入方法。
本实施例选择了两层特征来表示恶意软件;首先在每个图中随机选取一个节点,对该节点进行随机游走并对已走过的节点进行标记。当走到最后一个节点没有路径的时候退回前一个节点寻找其他路径,每个图截取其中的前n(超参数)个节点组成该文件的路径,在对所有的图进行随机游走之后拼接在一起,得到整个语料库的路径,最后对这个路径进行fastText处理得到每个节点的嵌入表示作为其第一层特征;fastText整体方法与Word2Vec类似,但会使用滑动窗口来选择子词作为其基础词,例如对于词语where,该方法会将该词语分成“<wh”,“whe”,“her”,“ere”,“re>”以及特殊子词“<where>”进行处理,并在最终对所有子词的向量进行加和作为"where"的词向量。本实施例使用的fastText方法H(驼峰)-fastText主要是基于API大多是类似“GetAsyncKeyState”的复合词,且大多使用驼峰命名法。因此本实施例将子词变为“Get”“Async”“Key”“State”和“GetAsyncKeyState”,来进行训练,最大程度提取其语义信息。每个API节点的词向量的计算方式如下所示:
其中Aw为所有子词的词库,zg为该词语所涉及的子词的向量表示,最终加和得到该节点的向量表示。
第二层特征为其恶意等级特征,如表1所示,每一行包括其API名,恶意等级和分类理由的描述,将数据集中所有软件的恶意软件所调用的API进行等级分类;根据API在恶意软件中的tf-idf值以及其恶意程度共分为三个等级;对这三个等级进行独热编码,得到每个API的独特的恶意等级特征;
在进行图表示时,另外对模型的边进行了处理,在恶意软件运行的时候,极易调用以下三类的API,ProcessAPI,FileAPI和RegistryAPI,而且特别当这些类型的API连续调用时,基本就是在进行对电脑较为重要的任务。因此如果某一条边的两端顶点为以上三类节点时,将该边提取为一个节点,命名为TpyetoType,例如“FiletoFile”。然后将该边节点放回至原DeepWalk得到的序列中并进行Word2Vec处理,其中API节点向量不进行训练,单独训练边向量。而边节点的等级特征也加入至原独热编码的三元组中,组成新的四元组,其中第一个值表示其是否为边节点,如(1,0,0,0)表示为边节点。
表1 API功能与恶意等级
2.2)子图表示;
随着恶意软件检测方法的发展,恶意软件作者的水平也在提高,他们可能会使用多线程方法来实现其最终目标。目前,恶意软件的图表示主要基于整个恶意软件调用序列,而不同的线程的调用序列可能具有不同的含义。恶意软件在运行时可能会进行大量的正常行为,但会分支出某个线程对系统进行破坏。因此本文提出采用子图,识别出具有恶意行为的线程。本文的方法首先对每个恶意软件的函数调用序列进行提取,根据调用的时间信息进行排序,得到其不同的函数调用子图,如图2所示。图中将两个不同的API调用序列表示为两个子图,作为接下来的图神经网络的输入。但是在对数据进行处理的时候,出现了一个问题。首先由于每个图输入的子图数量不同,导致在输入至全连接层时的维度并不固定。这样导致整体参数维度不固定而无法训练。因此我们选择了类似Transformer中的Padding方法。对于子图数量少于应有的输入数量的情况,直接输入一个没有任何边的子图进行训练,即邻接矩阵与度矩阵均为0的输入。
首先对每个恶意软件的函数调用序列进行提取,根据调用的时间信息进行排序,得到其不同的函数调用子图;
3)、构建基于图神经网络的分类器,包括以下步骤:
3.1)对每个子图单独进行两层图卷积,公式如下所示:
公式中的D∈RN*N为节点的度矩阵,为整个图的邻接矩阵,Hl∈RN*d为节点在l时刻的特征向量,其d为特征向量维度,Wl∈Rd1*d2为l时刻需要学习的权重参数矩阵,d1为输入的特征维度,d2为输出的特征维度;在图卷积的过程中,进行两步处理,添加自环和特征表示的归一化处理。添加自环是为了在加和其邻居节点的特征时,将节点本身的特征也包括在内,而特征归一化则是通过计算一个批量中的均值与方差来进行特征归一化,以防某些数值较大的特征在卷积时得到的数值过大,导致梯度爆炸。众多实践证明,这两种方法利于优化且使得深度网络易于收敛。
3.2)在经过卷积后,各个节点均吸收了其邻居节点的特征,此时对图进行池化;
池化方法为:
对该图分类不重要的节点则丢弃,而保留对分类结果重要的节点,其中池化率K是一个超参数,K∈(0,1);在进行图卷积的之后,设立一个权重值Z∈RN*1以表示其节点的重要程度并对其进行降序排序;公式如下所示:
公式中X∈RN*d为节点的特征向量,Θatt∈Rd*1为待学习的attention参数;σ为Sigmoid函数;在对原图进行图卷积后输出维度为N*1的向量,为权重Z的分数;然后对分数进行排序,并根据权重的分数进行池化,对图中的节点下采样至K*N个节点,公式如下所示:
mask=TopK(Z,K);
A′=Amask;
X′=Xmask;
Mask操作是屏蔽掉那些被池化的节点的邻接矩阵A和特征向量X;每个子图在进行两次卷积和池化后,得到K1*K2*N个节点,K1,K2∈(0,1),且K1,K2均为超参数。
3.3)使用平均池化的方法,对每一层池化后的节点的向量进行读出,公式如下所示:
其中为第i个节点的特征,N为节点数量,s为平均后的节点特征;
3.4)对得到的信息进行一次性的聚合,具体方式为将各子图池化后的值拼接起来,公式如下:
其中x(j)为各子图池化后的特征,x为各子图聚合后的值;
3.5)得到样本经过图神经网络的学习后的向量表示,然后将向量输送至前馈神经网络中降维至类别数量,再对其进行Softmax处理得到每个类别的概率。
实验
实验数据
恶意软件的识别和分类有着很久的历史,有着很多关于恶意软件的比赛和数据集,但这些数据集大多数为恶意软件的统计特征,并不能构成图结构。
本实施例选择了阿里云安全恶意程序检测比赛中的公开数据集作为本实施例的主要数据集,该数据集是经过动态分析,提取其运行后的API指令序列,全为windows二进制可执行程序。该数据集总数据量有13996个。但是我们发现其中的数据集中Worm和Backdoor的数据过于稀少,前者只有100多个,对于分类的准确率会有较高影响,因此,我们将通过cuckoo沙箱跑出来这两类的恶意软件加到到总的数据集中,最终得到的数据量如图3所示。
模型超参数设定
表2超参数表
表2为模型超参数设定,其中,Walk_length是指本实施例所使用的DeepWalk方法中的限定步长。Train_rate是本实施例训练集样本分配比例。Embedding_dim是指经过图节点嵌入后我们的节点向量的维度,GCN_layers是指进行图卷积的次数,Hidden_dim是指图卷积中的隐藏层的维度,Weight_decay是为了防止过拟合而设置的。Linnear_layers是指全连接层的层数,这里我们设置为两层。Learning_rate是我们测试过多次后,选择的最适合本实施例数据集和模型的学习率。
实验结果
本实施例一共使用以下指标对我们的实验进行评估,准确率(ACC),召回率(R),精度(P)以及F1_score(F1)。在这之前,需要知道我们的评价方式,如表3所示,要了解各个评价指标,首先需要知道混淆矩阵,混淆矩阵中的P表示Positive,即正例或者阳性,N表示Negative,即负例或者阴性。
表3混淆矩阵
各评价指标的计算公式为:
本实施例做了两类实验,首先是对是否为恶意软件的二分类,其次是具体属于哪个种类的8分类。本实施例还对自身的实验进行了消融实验,同时也对其他模型进行了横向对比。
表4二分类对比实验
表5二分类消融实验
我们的模型为WMALG(Windows Malware Graph),SAGp为本实施例所使用的的初始模型SAGp(Self-Attention Graphpool)。在二分类方面,从表4,表5的实验结果可以看出本实施例所提出的两种方法均可以有效的提高检测效果。首先相对于经典的机器学习而言,本实施例所使用的数据集并不是很适合,我们仅提取了两类特征,一是线程数量,另一个为恶意等级为3的API的数量的特征,因此所提供的参考意义不大。但与CNN、LSTM等神经网络模型的实验结果进行对比,分类的各项指标均有着很大提升,而相比于MAG同样使用图神经网络进行分类的模型也有着2.5%左右的提高。在表5的消融实验中,也进一步验证了本实施例所使用的两种恶意软件图嵌入方法确实有效。
模型可解释性分析
一直以来,神经网络的权重系数都是难以理解的,现在也有很多的研究尝试去解释神经网络。针对当前恶意软件检测方法存在的弱可解释性的缺陷,本实施例提出将卷积可视化技术应用到基于图表示学习的恶意软件检测模型上,从而提升本文的方法的可解释性。
本实施例设计了基于图表示分类模型的练的图表示分类模型,得到分类结果,再借助目标类别反向传播求取其对图节点嵌入表示的权重,从而计算出每个节点对于样本分类的权重值,并对该节点所对应的API进行分析,以此输出对分类结果的解释。
我们选择在实验部分使用本文的分类器与其他分类器分类结果不同的样本进行可解释性的实验。如图4所示,首先将样本输入至我们训练好的模型中分类为恶意,在另一种最终分类为非恶意。对模型进行反向传播提取其梯度信息,算法如下所示:
算法.本文模型可解释性算法
节点向量维度d
输出:各节点对类别影响权重矩阵A∈RV*1.
①for each g(v,e)inGdo
②for each kinv do
③A.append(Sigmoid(wk))
④end for
⑤end for
⑥Sort(A)
在表6中展示了该样本分类为恶意样本的影响权重最高的5个节点,涉及了图中的3个函数节点以及2个边节点。
表6影响分类的关键节点
由表6可知,该节点存在多次调用CopyFile函数,并且调用了函数MapViewOfFile,该函数映射将文件映射到内存,可直接从内存地址中访问该文件。通过使用这个函数,恶意软件可以避免使用WriteFile函数来修改文件内容,从而躲避分类器的追踪。在我们的恶意等级分类中,该函数分类登记为3,是启动器、装载器和注入器等恶意软件经常使用的函数。光有这些函数其实还不足以证明该样本的恶意性,但该样本存在频繁调用File类型API至System类型API的现象以及File类型API至Register类型API的现象。这种一般为恶意软件在修改内存属性以及注册表时常用行为,因此该样本确实应该为恶意的,与我们的标签吻合。借此也证明了我们的模型在添加了边属性后对其调用行为的特征有了更深层次的提取。
恶意软件已经成为了最具威胁性的网络安全问题之一,给个人、企业以及国家的信息安全造成严重威胁。针对此问题,本实施例提出了一种基于图表示学习的恶意软件检测方法,使用基于多线程的多子图表示方法以及添加边节点的方式将恶意软件表示为图结构,并输入至图神经网络中进行分类,其检测效率对比其他模型有着不小的提升。同时,为了提升检测方法的可解释性,本实施例对图神经网络进行了解释,为本实施例的图表示学习恶意软件检测方法提供了可解释性方法,使得本文的分类结果更加可信。
以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。
Claims (5)
1.基于图表示学习的恶意软件可解释性分类方法,其特征在于:包括以下步骤:
1)、数据预处理;
2)、构建恶意软件的图表示;包括:
2.1)特征选择:
根据API函数的调用序列,将各API函数嵌入为图的节点;然后使用节点嵌入法将每个节点嵌入为独特的向量表示;
选择了两层特征来表示恶意软件;首先在每个图中随机选取一个节点,对该节点进行随机游走并对已走过的节点进行标记;当走到最后一个节点没有路径的时候退回前一个节点寻找其他路径,每个图截取其中的前n个节点组成该文件的路径,在对所有的图进行随机游走之后拼接在一起,得到整个语料库的路径,最后对这个路径进行fastText处理得到每个节点的嵌入表示作为其第一层特征;
第二层特征为其恶意等级特征,将数据集中所有软件的恶意软件所调用的API进行等级分类;根据API在恶意软件中的tf-idf值以及其恶意程度共分为三个等级;对这三个等级进行独热编码,得到每个API的独特的恶意等级特征;
2.2)子图表示;
首先对每个恶意软件的函数调用序列进行提取,根据调用的时间信息进行排序,得到其不同的函数调用子图;
3)、构建基于图神经网络的分类器,包括以下步骤:
3.1)对每个子图单独进行两层图卷积,公式如下所示:
公式中的D∈RN*N为节点的度矩阵,为整个图的邻接矩阵,Hl∈RN*d为节点在l时刻的特征向量,其d为特征向量维度,Wl∈Rd1*d2为l时刻需要学习的权重参数矩阵,d1为输入的特征维度,d2为输出的特征维度;
3.2)在经过卷积后,各个节点均吸收了其邻居节点的特征,此时对图进行池化;
3.3)使用平均池化的方法,对每一层池化后的节点的向量进行读出,公式如下所示:
其中为x′i第i个节点的特征,N为节点数量,s为平均后的节点特征;
3.4)对得到的信息进行一次性的聚合,具体方式为将各子图池化后的值拼接起来,公式如下:
其中x(j)为各子图池化后的特征,x为各子图聚合后的值;
3.5)得到样本经过图神经网络的学习后的向量表示,然后将向量输送至前馈神经网络中降维至类别数量,再对其进行Softmax处理得到每个类别的概率。
2.根据权利要求1所述的基于图表示学习的恶意软件可解释性分类方法,其特征在于:数据预处理包括以下步骤:
1.1)、在virusshare网站中下载相关恶意软件,将得到的恶意软件上传至virustotal网站进行分类,得到其标签;
1.2)、将恶意软件送入cuckoo沙箱中进行分析,得到的动态运行报告;
1.3)、提取特征,转换格式后,得到恶意软件的初始特征数据。
3.根据权利要求2所述的基于图表示学习的恶意软件可解释性分类方法,其特征在于:在进行图表示时,另外对模型的边进行了处理,如果某一条边的两端顶点为以上三类节点时,将该边提取为一个节点,命名为TpyetoType;然后将该边节点放回得到的序列中并进行Word2Vec处理,其中API节点向量不进行训练,单独训练边向量;而边节点的等级特征也加入至原独热编码的三元组中,组成新的四元组,其中第一个值表示其是否为边节点。
4.根据权利要求3所述的基于图表示学习的恶意软件可解释性分类方法,其特征在于:在图卷积的过程中,进行两步处理,添加自环和特征表示的归一化处理。
5.根据权利要求4所述的基于图表示学习的恶意软件可解释性分类方法,其特征在于:步骤3.2)中,池化方法为:
对该图分类不重要的节点则丢弃,而保留对分类结果重要的节点,其中池化率K是一个超参数,K∈(0,1);在进行图卷积的之后,设立一个权重值Z∈RN*1以表示其节点的重要程度并对其进行降序排序;公式如下所示:
公式中X∈RN*d为节点的特征向量,Θatt∈Rd*1为待学习的attention参数,σ为Sigmoid函数;在对原图进行图卷积后输出维度为N*1的向量,为权重Z的分数;然后对分数进行排序,并根据权重的分数进行池化,对图中的节点下采样至K*N个节点,公式如下所示:
mask=TopK(Z,K);
A′=Amask;
X′=Xmask;
Mask操作是屏蔽掉那些被池化的节点的邻接矩阵A和特征向量X;每个子图在进行两次卷积和池化后,得到K1*K2*N个节点,K1,K2∈(0,1),且K1,K2均为超参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111290123.XA CN114139153A (zh) | 2021-11-02 | 2021-11-02 | 基于图表示学习的恶意软件可解释性分类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111290123.XA CN114139153A (zh) | 2021-11-02 | 2021-11-02 | 基于图表示学习的恶意软件可解释性分类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114139153A true CN114139153A (zh) | 2022-03-04 |
Family
ID=80392109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111290123.XA Pending CN114139153A (zh) | 2021-11-02 | 2021-11-02 | 基于图表示学习的恶意软件可解释性分类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114139153A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114627A (zh) * | 2022-08-30 | 2022-09-27 | 北京微步在线科技有限公司 | 一种恶意软件检测方法及装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647745A (zh) * | 2019-07-24 | 2020-01-03 | 浙江工业大学 | 基于深度学习的恶意软件汇编格式的检测方法 |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN111027069A (zh) * | 2019-11-29 | 2020-04-17 | 暨南大学 | 恶意软件家族检测方法、存储介质和计算设备 |
US20200137083A1 (en) * | 2018-10-24 | 2020-04-30 | Nec Laboratories America, Inc. | Unknown malicious program behavior detection using a graph neural network |
CN111656350A (zh) * | 2018-01-25 | 2020-09-11 | 微软技术许可有限责任公司 | 恶意软件序列检测 |
CN112507330A (zh) * | 2020-11-04 | 2021-03-16 | 北京航空航天大学 | 一种基于分布式沙箱的恶意软件检测系统 |
CN113158189A (zh) * | 2021-04-28 | 2021-07-23 | 绿盟科技集团股份有限公司 | 一种恶意软件分析报告生成方法、装置、设备和介质 |
CN113204417A (zh) * | 2021-04-30 | 2021-08-03 | 武汉大学 | 一种基于改进遗传与萤火虫组合算法的多卫星多点目标观测任务规划方法 |
CN113360911A (zh) * | 2021-07-22 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 恶意代码同源分析方法、装置、计算机设备和存储介质 |
CN113360912A (zh) * | 2021-08-09 | 2021-09-07 | 四川大学 | 恶意软件检测方法、装置、设备及存储介质 |
CN113360906A (zh) * | 2021-06-04 | 2021-09-07 | 中南大学 | 可解释的基于图嵌入的Android恶意软件自动检测 |
CN113535229A (zh) * | 2021-06-30 | 2021-10-22 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的抗混淆二进制代码克隆检测方法 |
-
2021
- 2021-11-02 CN CN202111290123.XA patent/CN114139153A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111656350A (zh) * | 2018-01-25 | 2020-09-11 | 微软技术许可有限责任公司 | 恶意软件序列检测 |
US20200137083A1 (en) * | 2018-10-24 | 2020-04-30 | Nec Laboratories America, Inc. | Unknown malicious program behavior detection using a graph neural network |
CN110647745A (zh) * | 2019-07-24 | 2020-01-03 | 浙江工业大学 | 基于深度学习的恶意软件汇编格式的检测方法 |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN111027069A (zh) * | 2019-11-29 | 2020-04-17 | 暨南大学 | 恶意软件家族检测方法、存储介质和计算设备 |
CN112507330A (zh) * | 2020-11-04 | 2021-03-16 | 北京航空航天大学 | 一种基于分布式沙箱的恶意软件检测系统 |
CN113158189A (zh) * | 2021-04-28 | 2021-07-23 | 绿盟科技集团股份有限公司 | 一种恶意软件分析报告生成方法、装置、设备和介质 |
CN113204417A (zh) * | 2021-04-30 | 2021-08-03 | 武汉大学 | 一种基于改进遗传与萤火虫组合算法的多卫星多点目标观测任务规划方法 |
CN113360906A (zh) * | 2021-06-04 | 2021-09-07 | 中南大学 | 可解释的基于图嵌入的Android恶意软件自动检测 |
CN113535229A (zh) * | 2021-06-30 | 2021-10-22 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的抗混淆二进制代码克隆检测方法 |
CN113360911A (zh) * | 2021-07-22 | 2021-09-07 | 北京天融信网络安全技术有限公司 | 恶意代码同源分析方法、装置、计算机设备和存储介质 |
CN113360912A (zh) * | 2021-08-09 | 2021-09-07 | 四川大学 | 恶意软件检测方法、装置、设备及存储介质 |
Non-Patent Citations (5)
Title |
---|
化盈盈;张岱墀;葛仕明;: "深度学习模型可解释性的研究进展", 信息安全学报, no. 03, pages 1 - 12 * |
张亚: "Android恶意应用检测海量数据分析和结果评判方法研究与设计", 中国优秀硕士学位论文全文数据库 信息科技辑, no. 4, pages 138 - 1904 * |
张英韬等: "基于图表示学习的恶意软件分类方法", 新型工业化, vol. 11, no. 10, pages 91 - 96 * |
范铭;刘烃;刘均;罗夏朴;于乐;管晓宏;: "安卓恶意软件检测方法综述", 中国科学:信息科学, vol. 50, no. 08, pages 1148 - 1177 * |
韩锦荣;张元?;朱子元;孟丹;: "基于底层数据流分析的恶意软件检测方法", 信息安全学报, no. 04, pages 123 - 137 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115114627A (zh) * | 2022-08-30 | 2022-09-27 | 北京微步在线科技有限公司 | 一种恶意软件检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | HAST-IDS: Learning hierarchical spatial-temporal features using deep neural networks to improve intrusion detection | |
CN112329016B (zh) | 一种基于深度神经网络的可视化恶意软件检测装置及方法 | |
CN110135157B (zh) | 恶意软件同源性分析方法、系统、电子设备及存储介质 | |
Li et al. | A hybrid malicious code detection method based on deep learning | |
Sun et al. | Rumor detection on social media with graph adversarial contrastive learning | |
CN111382438B (zh) | 基于多尺度卷积神经网络的恶意软件检测方法 | |
CN113221112B (zh) | 基于弱相关集成策略的恶意行为识别方法、系统和介质 | |
CN110008699B (zh) | 一种基于神经网络的软件漏洞检测方法及装置 | |
CN112464233B (zh) | 一种云平台上基于rnn的恶意软件检测方法 | |
Ma et al. | Improving rumor detection by promoting information campaigns with transformer-based generative adversarial learning | |
CN111400713B (zh) | 基于操作码邻接图特征的恶意软件族群分类方法 | |
CN113360912A (zh) | 恶意软件检测方法、装置、设备及存储介质 | |
CN113297572A (zh) | 基于神经元激活模式的深度学习样本级对抗攻击防御方法及其装置 | |
Bakhshinejad et al. | Parallel‐CNN network for malware detection | |
Gao et al. | Malware detection using attributed cfg generated by pre-trained language model with graph isomorphism network | |
CN112613032B (zh) | 基于系统调用序列的主机入侵检测方法及装置 | |
CN114139153A (zh) | 基于图表示学习的恶意软件可解释性分类方法 | |
CN110334508A (zh) | 一种主机序列入侵检测方法 | |
Alam et al. | Deepmalware: a deep learning based malware images classification | |
Zhan et al. | Mitigating the inconsistency between word saliency and model confidence with pathological contrastive training | |
CN114095268A (zh) | 用于网络入侵检测的方法、终端及存储介质 | |
Li et al. | A Malware Detection Method Based on Machine Learning and Ensemble of Regression Trees | |
Uhlig et al. | Combining AI and AM–Improving approximate matching through transformer networks | |
CN116737934B (zh) | 一种基于半监督图神经网络的水军虚假评论检测算法 | |
Mulyanto et al. | Effectiveness of focal loss for minority classification in network intrusion detection systems. Symmetry. 2021; 13: 4 |
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 |