CN111079145A - 基于图处理的恶意程序检测方法 - Google Patents

基于图处理的恶意程序检测方法 Download PDF

Info

Publication number
CN111079145A
CN111079145A CN201911227923.XA CN201911227923A CN111079145A CN 111079145 A CN111079145 A CN 111079145A CN 201911227923 A CN201911227923 A CN 201911227923A CN 111079145 A CN111079145 A CN 111079145A
Authority
CN
China
Prior art keywords
subgraph
graph
subgraphs
node
sub
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
Application number
CN201911227923.XA
Other languages
English (en)
Other versions
CN111079145B (zh
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.)
Central South University
Original Assignee
Central South University
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 Central South University filed Critical Central South University
Priority to CN201911227923.XA priority Critical patent/CN111079145B/zh
Publication of CN111079145A publication Critical patent/CN111079145A/zh
Application granted granted Critical
Publication of CN111079145B publication Critical patent/CN111079145B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于图处理的恶意程序检测方法,包括分析恶意程序运行时的行为轨迹并构建数据流图;从数据流图中提取子图并构建子图语料库;将子图语料库中的子图映射成对应的字符串并对子图进行筛选;对筛选后的子图进行向量化;构建深度图内核来图之间核矩阵;采用SVM分类器构建分类模型;采用构建的模型对待检测程序进行检测从而完成恶意程序的检测。本发明考虑子图间的相关性,子图间的相关性作为子图结构信息,在分类检测作为属性考虑对精度的提升是明显的;同时本发明采用“逆拓扑标识”算法将特征子图映射成字符串,采用字符串匹配代替图的匹配,易于实现;因此本发明方法的可靠性高、适用性好且检测结果准确。

Description

基于图处理的恶意程序检测方法
技术领域
本发明属于网络安全领域,具体涉及一种基于图处理的恶意程序检测方法。
背景技术
恶意程序仍是信息安全的最大威胁之一,每年政府和企业因恶意攻击都遭受了巨大的损失。甚至可以说恶意程序已成为一种可以盈利的商业模式,高额的利润聚集着大量的非法人员,使得恶意程序愈发复杂。
目前恶意程序分析方法可以分为静态特征分析方法和动态行为分析。静态特征分析方法主要是利用恶意程序二进制文件进行分析和检测,通过反编译恶意程序提取操作码或系统调用等信息,并以此为特征建立恶意程序分析模型。然而恶意程序可以通过外壳加密,混淆和数据加密来避免反编译操作或者增加样本脱壳难度,这会影响到静态分析特征属性提取,从而造成静态分析方法检测精度的下降。动态行为分析方法弥补了静态特征分析方法的不足,同时也被认为为最具有前景的方法之一。动态行为分析方法通过捕获恶意程序运行时的行为特征,主流方式是使用系统调用或资源依赖来表示行为特征并以此构建行为分析图,之后再使用图挖掘算法提取出恶意样本中的恶意特征或子图,这些恶意特征能够有效地区分出恶意和正常程序。
然而基于图的动态行为分析方法存在两个问题,1)这些方法大都依赖于图匹配,图匹配是一个NP完全问题,不可避免的计算缓慢。2)方法中在挖掘特征子图过程中大多以频率来确定子图的效用,这意味着特征子图的效用取决于该子图出现在恶意程序样本中的次数。然而这些方法过多地强调了特征子图出现的频率,而忽视了子图本身的属性。
发明内容
本发明的目的在于提供一种可靠性高、适用性好且检测结果准确的基于图处理的恶意程序检测方法。
本发明提供的这种基于图处理的恶意程序检测方法,包括如下步骤:
S1.分析恶意程序运行时的行为轨迹,从而构建数据流图;
S2.从步骤S1构建的数据流图中提取子图,从而构建子图语料库;
S3.将步骤S2构建的子图语料库中的子图映射成对应的字符串,并对子图语料库中的子图进行筛选;
S4.对步骤S3得到的筛选后的子图进行向量化;
S5.计算恶意程序的图向量;
S6.构建深度图内核用来计算图与图之间的相似度;
S7.计算图之间相似度的核矩阵,并使用SVM分类器构建分类模型;
S8.采用步骤S7构建的分类模型,对待检测程序进行检测,从而完成恶意程序的检测。
步骤S1所述的分析恶意程序运行时的行为轨迹,从而构建数据流图,具体为在虚拟机中运行恶意程序,并通过Cuckoo来捕获运行时行为轨迹;数据流图的实体包括进程PROCESS,注册表REGISTRY,文件File和网络地址URL。
步骤S2所述的从步骤S1构建的数据流图中提取子图,从而构建子图语料库,具体为采用TreeWalk(G,v,d)算法提取子图并构建子图语料库。
所述的采用TreeWalk(G,v,d)算法提取子图,具体为采用如下步骤提取子图:
A.初始化子图
Figure BDA0002302748190000031
内仅包含数据流图G的根节点v,并初始化提取深度d为正数;
B.将数据流图G中节点v的后继节点Nv中未处理的节点作为树根节点的孩子节点,同时d的值减1;
C.若d>0,则将树中叶子节点在数据流图G中的未处理的邻接节点作为该叶子节点的孩子节点,同时d的值减1;
D.重复步骤C,直至d=0;此时得到的子图
Figure BDA0002302748190000032
为最终的子图。
步骤S3所述的将步骤S2构建的子图语料库中的子图映射成对应的字符串,具体为采用如下过程进行映射:初始时子图中节点标示为节点类型{PROCESS,FILE,REGISTRY,URL},然后将每个节点的后继节点标识排序后拼接在该节点标识后,再删除子图中出度为零的节点,并重复上述过程直至子图中只有一个节点为止。
步骤S3所述的对子图语料库中的子图进行筛选,具体为采用如下算式计算子图sgi被放弃的概率P(sgi):
Figure BDA0002302748190000033
式中f(sgi)为子图sgi的频率;t为选择门槛。
步骤S4所述的对步骤S3得到的筛选后的子图进行向量化,具体为采用如下步骤进行向量化:
a.构建子图
Figure BDA0002302748190000034
的上下文
Figure BDA0002302748190000035
信息:使用TreeWalk(G,v,d)算法提取子图
Figure BDA0002302748190000036
根节点v的所有后继节点v'∈Nv深度为{d,d-1,d+1}的子图构成子图
Figure BDA0002302748190000037
的上下文,Nv为节点v的后继节点集合;
b.利用子图上下文信息
Figure BDA0002302748190000038
来更新子图的向量表示;基于对数似然最大化
Figure BDA0002302748190000041
推导出
Figure BDA0002302748190000042
的更新迭代公式;其中
Figure BDA0002302748190000043
表示所有子图向量,
Figure BDA0002302748190000044
为子图
Figure BDA0002302748190000045
的向量表示,α表示学习率,J表示对数似然。
步骤S6所述的构建深度图内核,具体为计算深度图内核S(G,G')=Φ(G)·M·Φ(G'),Φ(G)表示为步骤S5计算的图向量,矩阵M表示子图相似性矩阵,Mij表示子图sgi与sgj的相似性;矩阵M的计算方式采用如下两种计算方式之一:
1)使用子图向量的欧式空间距离来计算子图的相似度Mij
Figure BDA0002302748190000046
其中符号s表示子图的相似度,d(v(sgi),v(sgj))表示子图的欧式空间距离;v(sgj)表示子图在步骤S4得到的向量;
2)使用深度图内核来计算子图的相似度,子图同属于图一样可用深度图内核来计算相似度
Mij=s(sgi,sgj)=v(sgi)·m·v(sgj)
其中矩阵m是一个对角矩阵且mii=<v(sgi),v(sgi)>,mij=0,i≠j。
本发明提供的这种基于图处理的恶意程序检测方法,考虑了子图间的相关性,子图间的相关性作为子图结构信息,在分类检测作为属性考虑对精度的提升是明显的;同时本发明采用“逆拓扑标识”算法将特征子图映射成字符串,采用字符串匹配代替图的匹配,易于实现;因此本发明方法的可靠性高、适用性好且检测结果准确。
附图说明
图1为本发明方法的方法流程示意图。
图2为本发明方法的TreeWalk算法的流程示意图。
图3为本发明方法的子图的数据流图示意图。
图4为本发明方法的SkipGram模型示意图。
图5为本发明方法与现有的基于图匹配的方法的比较示意图。
具体实施方式
如图1所示为本发明方法的方法流程示意图:本发明提供的这种基于图处理的恶意程序检测方法,包括如下步骤:
S1.分析恶意程序运行时的行为轨迹,从而构建数据流图;具体为在虚拟机中运行恶意程序,并通过Cuckoo来捕获运行时行为轨迹;数据流图的实体包括进程PROCESS,注册表REGISTRY,文件File和网络地址URL;
在具体实施时,恶意程序运行在虚拟机中通过Cuckoo来捕获运行时行为轨迹。数据流图的系统实体包括进程PROCESS,注册表REGISTRY,文件File和网络地址URL;系统事件包括进程ReadProcessMemory和WriteProcessMemory,文件ReadFile和WriteFile,注册表RegQueryValue和RegSetValue,网络Send和Recv;使用e(src,dest,s,t)表示这一事件,其中src表示文件F,dest表示进程P,s表示事件数据流大小即信息的字节数,t表示事件发生的时间;
使用update(G,e)来表示数据流图的生成过程,每次捕获系统实体间的事件就对数据流图进行更新;若该事件已存在,则合并流图G中该事件附加的信息,若不存在则保存该事件信息到流图中,其表示如下:
Figure BDA0002302748190000061
S2.从步骤S1构建的数据流图中提取子图,从而构建子图语料库;具体为采用TreeWalk(G,v,d)算法提取子图并构建子图语料库,采用如下步骤提取子图:
A.初始化子图
Figure BDA0002302748190000062
内仅包好数据流图G的根节点v,并初始化提取深度d为正数;
B.将数据流图G中节点v的后继节点Nv中未处理的节点作为树根节点的孩子节点,同时d的值减1;
C.若d>0,则将树中叶子节点在数据流图G中的未处理的邻接节点作为该叶子节点的孩子节点,同时d的值减1;
D.重复步骤C,直至d=0;此时得到的子图
Figure BDA0002302748190000063
为最终的子图;
在具体实施时,图2是TreeWalk算法示意图,图(a)是某个恶意程序的数据流图G,图(b)是以A为根节点深度为2提取的子图;其具体过程如下,初始时子图只有根节点A且d为2,然后将图G中节点A的后继节点B和C作为子图根节点的孩子节点且d的大小减一,之后将树中叶子节点B和C在图G的后继节点作为该叶子节点的孩子节点如节点B的孩子节点是A和D,C的孩子节点是D,此时d为零则返回该特征子图。若初始d为3,则需对图(b)中叶子节点D进行后继节点处理,而叶子节点A不处理,这是因为节点A的后继节点信息已存在子图中,这样可以减小子图的结构复杂性;
使用TreeWalk算法可以从图中以任意节点提取深度为d的特征子图,这些特征子图包含了图的恶意行为。然而恶意程序间的差异性使得恶意行为也不同,仅通过深度为d的特征子图是不足以涵盖所有的恶意行为,因而本方法通过给定阈值D即最大提取深度来尽可能提取出恶意程序的恶意行为即从图中以任意节点提取深度d∈{0,1,…,D}的特征子图来尽可能的挖掘可能的恶意行为;对于图G其所有的子图表示为sg(G)=∪TreeWalk(vi,G,d),
Figure BDA0002302748190000071
d∈{0,1,…,D},对于恶意程序数据流图集{G1,G2,…,Gn}中提取每个图的子图集sg(Gi)构造恶意程序的子图语料库sgcorpus=∪sg(Gi),i=1,2,…n,子图语料库包含了训练样本中恶意程序所有可能的恶意行为特征;
S3.将步骤S2构建的子图语料库中的子图映射成对应的字符串,并对子图语料库中的子图进行筛选;具体为采用如下过程进行映射:初始时子图中节点标示为节点类型{PROCESS,FILE,REGISTRY,URL},然后将每个节点的后继节点标识排序后拼接在该节点标识后,再删除子图中出度为零的节点,并重复上述过程直至子图中只有一个节点为止;同时采用如下算式计算子图sgi被放弃的概率P(sgi):
Figure BDA0002302748190000072
式中f(sgi)为子图sgi的频率;t为选择门槛;
具体实施时,在子图语料库构建过程中,面临着相同子图的合并即子图同构问题;本方法将子图中节点的类型作为标识,采取“逆拓扑”的方式将子图映射成一个字符串,这样可以快速进行字符串比较;其具体过程如下,初始时子图中节点标识为节点类型{PROCESS,FILE,REGISTRY,URL}简写成{P,F,R,U},之后将每个节点的后继节点标识排序后拼接在该节点标识后,再删除子图中出度为零的节点,重复上述过程直至子图中只有一个节点;整个过程类似于拓扑的逆过程,称之为逆拓扑标识;如图3所示,其中圆形表示进程,正方形表示文件,菱形表示注册表,六边形表示网络地址;初始时节点A至E的标识分别为P,R,F,P,U,而节点A的后继节点是节点B和C,将节点B和C的标识排序后拼接在节点A的标识之后,对剩余节点同样处理,之后删除出度为零的节点B和E,然后重复这个过程直至只有一个节点;其具体过程如表1所示,这里使用“#”进行分隔主要是为了便于查看,同时每次拼接时“#”的个数为迭代的次数;
表1逆拓扑标识算法
节点 节点标识 出度
初始时状态
A P 2
B R 0
C F 1
D P 1
E U 0
第一次迭代
A P#F,R 1
C F#P 1
D P#U 0
第二次迭代
A P#F,R##F#P 1
C F#P##P#U 0
第三次迭代
A P#F,R##F#P###F#P##P#U 0
逆拓扑标识可以将一个子图映射成一个字符串,字符串间的比较相比图的匹配更简单,更迅速;同时字符串中蕴含了子图的结构信息,子图结构不同其字符串表示也不同,并且本文中子图间的相似性学习并不是依据子图本身的结构而是子图的“上下文”信息;不过必须注意的是1)子图中存在环时方法将失效。子图语料库中的子图都是基于TreeWalk算法,而TreeWalk算法可以确保提取的子图中不存在环;2)子图字符串长度与子图的深度有关,当子图深度比较大时,字符串的长度会变得非常冗长;子图表示恶意程序公共的恶意行为特征,愈发复杂的子图出现在其他恶意程序中的概率愈低,因而恶意程序的特征子图应在一个合理的范围内,才可能出现在其他恶意程序中;
子图sgi被放弃的概率P(sgi)计算公式能够对频率大于t的子图进行子采样,即频率愈大其被剔除的概率也愈大,同时对子图语料库sgcorpus中低频的子图可以直接使用剔除的方法即将子图语料库频率小于某一定值的子图剔除;子图语料库中对高频子图进行子采样,对低频子图进行剔除,剩余的子图就是普遍存在于训练样本恶意程序中;
S4.对步骤S3得到的筛选后的子图进行向量化;具体为采用如下步骤进行向量化:
a.构建子图
Figure BDA0002302748190000091
的上下文
Figure BDA0002302748190000092
信息:使用TreeWalk(G,v,d)算法提取子图
Figure BDA0002302748190000093
根节点v的所有后继节点v'∈Nv深度为{d,d-1,d+1}的子图构成子图
Figure BDA0002302748190000094
的上下文,Nv为节点v的后继节点集合;
b.利用子图上下文信息
Figure BDA0002302748190000095
来更新子图的向量表示;基于对数似然最大化
Figure BDA0002302748190000096
推导出
Figure BDA0002302748190000097
的更新迭代公式;其中
Figure BDA0002302748190000098
表示所有子图向量,
Figure BDA0002302748190000099
为子图
Figure BDA00023027481900000910
的向量表示,α表示学习率,J表示对数似然;
具体实施时,使用SubSkipGram模型来学习子图的嵌入即子图向量化,SubSkipGram模型是计算在目标子图条件下上下文子图概率的最大化。给定目标子图sgi以及目标子图上下文context(sgi),SubSkipGram模型是对数似然最大化
Figure BDA0002302748190000101
其中概率P(context(sgi)|sgi)是通过以下公式计算:
Figure BDA0002302748190000102
此处概率P(sgj|sgi)定义为:
Figure BDA0002302748190000103
其中
Figure BDA0002302748190000104
Figure BDA0002302748190000105
是子图sgk的输入和输出向量,C表示子图库中子图的数量;
同时,SubSkipGram模型是神经语言SkipGram模型(图4)的延申;神经语言模型可以解决词相似性问题即可以从文本中找出语境相似的词如“苏维埃”与“俄罗斯”,“语文”与“数学”等;其核心思想是将每个词表示成高维向量,并且每次更新使得一个词与其上下文的词(相邻的词)相似而与其他词不相似,通过对文本不断地学习会使得上下文相似的词相似,具体表现词向量的空间距离相近;本方法将图视作一种特殊的语言,类似于不同的词组成句子一样,不同的子图构成图,提出了SubSkipGram模型去学习子图间的相似性;
然而图不能完全等同于文本,子图间不具有文本中词之间的线性关系;SkipGram模型中将出现在目标词固定窗口内的词作为其上下文,这里目标词与上下文中的词就具有线性关系;然而子图间并没有线性的上下文关系;所有的子图是从图中以某一节点作为根节点提取的;考虑到以根节点v的子图sgi与以根节点Nv的子图sgj存在一些相同特征,其中Nv表示节点v的后继节点,因此子图sgi相比其他子图与sgj是更有关系的。基于这一点,本文将以后继节点Nv为根节点的子图作为子图sgi的上下文context(sgi)。子图的根节点是唯一,将根节点邻接节点子图作为其上下文,就好比文本中将邻近词作为目标词的上下文;
同时,本发明的这种SubSkipGram模型算法,只是对目标子图上下文的一次更新;而神经网络需要对所有的子图进行反复学习,即需要对子图库中的子图每出现一次在训练集的数据流图时,就利用该子图的上下文进行一次更新,通过不断地学习会使得语境相似(上下文)的子图其向量表示距离也相近;实际过程中,从数据流图提取子图的同时也保存了该子图的上下文信息,因而后续的过程只需要读取相关信息即可,这可以减少大量的时间开销;
S5.计算恶意程序的图向量;
在具体实施时,计算图向量Φ(G)即数据流图G的图向量;图向量的维度与特征子图库的大小相同,图向量中使用1和0来表示该图是否包含这个维度对应的特征子图
Φ(G)=(a1,…,ai,…,an)ai∈{0,1},i∈[1,n]
假设特征子图库{a,b,c,d,e}五个子图,若图G只包含子图b和d,那么其图向量Φ(G)为(0,1,0,1,0);这里有一个难点就是判断图G中包含的特征子图,图与子图匹配过程是非常复杂并且耗时的;本文采用的方式是从数据流图中提取特征子图时采取逆拓扑标识的手段表示成字符串并保存到文件中,一个图对应一份文件,那么每份文件就存储了一个数据流图所有的子图信息,之后只需要使用子图库中的子图字符串与文件进行字符串匹配就可以判断该图所包含的特征子图;
S6.构建深度图内核用来计算图与图之间的相似度;
计算深度图内核S(G,G')=Φ(G)·M·Φ(G'),Φ(G)表示为步骤S5计算的图向量,矩阵M表示子图相似性矩阵,Mij表示子图sgi与sgj的相似性;
矩阵M的计算方式可以采用如下两种:
1)使用子图向量的欧式空间距离来计算子图的相似度Mij
Figure BDA0002302748190000121
其中符号s表示子图的相似度,d(v(sgi),v(sgj))表示子图的欧式空间距离;v(sgj)表示子图在步骤S4得到的向量;
2)使用深度图内核来计算子图的相似度,子图同属于图一样可用深度图内核来计算相似度
Mij=s(sgi,sgj)=v(sgi)·m·v(sgj)
其中矩阵m是一个对角矩阵且mii=<v(sgi),v(sgi)>,mij=0,i≠j;
S7.计算图之间相似度的核矩阵,并使用SVM分类器构建分类模型;
计算图之间的相似度核矩阵K,Kij表示图Gi与Gj的相似度;给定恶意程序和正常程序的图集{G1,G2,…,Gn}以及类标签集合Y={y1,y2,…yn},其中标签使用0和1分别表示正常和恶意程序;图分类的任务是找到模型能够将图Gi映射到标签yi
Figure BDA0002302748190000122
S8.采用步骤S7构建的分类模型,对待检测程序的图向量v=(S(G,G1),S(G,G2),…,S(G,Gn))进行检测,从而完成恶意程序的检测。
以下结合一个实施例,对本发明方法与现有方法进行对比:
实验中使用Cuckoo Sandbox捕获样本原始的系统行为记录。恶意程序集来自开放的恶意程序数据库VXHeaven,以蠕虫,后门,病毒和特洛伊木马等四类作为实验对象。从成功运行的恶意程序中随机选取了400份作为实验恶意程序数据集。本次实验是基于平衡数据集进行的,因而正常程序的数目也是400份。
在恶意和正常这个二分类问题,True Positive(TP)表示恶意程序样本正确分类为恶意,False Negative(FN)表示恶意样本错误分类为正常,同时True Negative(TN)表示正常样本正确分类为正常,False Positive(FP)表示正常样本错误分类为恶意;其中精度(Accuracy)表示分类正确的样本数占样本总数的比例,而查准率(Precision),查全率(Recall)和F1分别定义为:
Figure BDA0002302748190000131
Figure BDA0002302748190000132
Figure BDA0002302748190000133
在同一数据集下,实验与基于图匹配的方法(MDC)进行比较。数据集中随机选取90%的数据用于训练,剩余10%的数据用于测试,实验重复了10次且取平均值作为最终结果;
表2分类结果比较
Accuracy Precision Recall F1
MDC 0.932 0.931 0.927 0.941
SVM(1) 0.952 0.946 0.954 0.956
SVM(2) 0.955 0.956 0.949 0.958
表2表示两个方法的分类结果比较,图5表示二者的ROC图。从中可以看出本专利使用SVM分类方法性能要优于MDC方法,因为本专利考虑了子图间的相关性,子图间的相关性作为子图结构信息,在分类检测作为属性考虑对精度的提升是明显的。同时本专利采用“逆拓扑标识”算法将特征子图映射成字符串,采用字符串匹配代替图的匹配,这易于实现。

Claims (8)

1.一种基于图处理的恶意程序检测方法,包括如下步骤:
S1.分析恶意程序运行时的行为轨迹,从而构建数据流图;
S2.从步骤S1构建的数据流图中提取子图,从而构建子图语料库;
S3.将步骤S2构建的子图语料库中的子图映射成对应的字符串,并对子图语料库中的子图进行筛选;
S4.对步骤S3得到的筛选后的子图进行向量化;
S5.计算恶意程序的图向量;
S6.构建深度图内核用来计算图与图之间的相似度;
S7.计算图之间相似度的核矩阵,并使用SVM分类器构建分类模型;
S8.采用步骤S7构建的分类模型,对待检测程序进行检测,从而完成恶意程序的检测。
2.根据权利要求1所述的基于图处理的恶意程序检测方法,其特征在于步骤S1所述的分析恶意程序运行时的行为轨迹,从而构建数据流图,具体为在虚拟机中运行恶意程序,并通过Cuckoo来捕获运行时行为轨迹;数据流图的实体包括进程PROCESS,注册表REGISTRY,文件File和网络地址URL。
3.根据权利要求1所述的基于图处理的恶意程序检测方法,其特征在于步骤S2所述的从步骤S1构建的数据流图中提取子图,从而构建子图语料库,具体为采用TreeWalk(G,v,d)算法提取子图并构建子图语料库。
4.根据权利要求3所述的基于图处理的恶意程序检测方法,其特征在于所述的采用TreeWalk(G,v,d)算法提取子图,具体为采用如下步骤提取子图:
A.初始化子图
Figure FDA0002302748180000011
内仅包含数据流图G的根节点v,并初始化提取深度d为正数;
B.将数据流图G中节点v的后继节点Nv中未处理的节点作为树根节点的孩子节点,同时d的值减1;
C.若d>0,则将树中叶子节点在数据流图G中的未处理的邻接节点作为该叶子节点的孩子节点,同时d的值减1;
D.重复步骤C,直至d=0;此时得到的子图
Figure FDA0002302748180000021
为最终的子图。
5.根据权利要求1~4之一所述的基于图处理的恶意程序检测方法,其特征在于步骤S3所述的将步骤S2构建的子图语料库中的子图映射成对应的字符串,具体为采用如下过程进行映射:初始时子图中节点标示为节点类型{PROCESS,FILE,REGISTRY,URL},然后将每个节点的后继节点标识排序后拼接在该节点标识后,再删除子图中出度为零的节点,并重复上述过程直至子图中只有一个节点为止。
6.根据权利要求5所述的基于图处理的恶意程序检测方法,其特征在于步骤S3所述的对子图语料库中的子图进行筛选,具体为采用如下算式计算子图sgi被放弃的概率P(sgi):
Figure FDA0002302748180000022
式中f(sgi)为子图sgi的频率;t为选择门槛。
7.根据权利要求6所述的基于图处理的恶意程序检测方法,其特征在于步骤S4所述的对步骤S3得到的筛选后的子图进行向量化,具体为采用如下步骤进行向量化:
a.构建子图
Figure FDA0002302748180000023
的上下文
Figure FDA0002302748180000024
信息:使用TreeWalk(G,v,d)算法提取子图
Figure FDA0002302748180000025
根节点v的所有后继节点v'∈Nv深度为{d,d-1,d+1}的子图构成子图
Figure FDA0002302748180000026
的上下文,Nv为节点v的后继节点集合;
b.利用子图上下文信息
Figure FDA0002302748180000031
来更新子图的向量表示;基于对数似然最大化
Figure FDA0002302748180000032
推导出
Figure FDA0002302748180000033
的更新迭代公式;其中
Figure FDA0002302748180000034
表示所有子图向量,
Figure FDA0002302748180000035
为子图
Figure FDA0002302748180000036
的向量表示,α表示学习率,J表示对数似然。
8.根据权利要求7所述的基于图处理的恶意程序检测方法,其特征在于步骤S6所述的构建深度图内核,具体为计算深度图内核S(G,G')=Φ(G)·M·Φ(G'),Φ(G)表示为步骤S5计算的图向量,矩阵M表示子图相似性矩阵,Mij表示子图sgi与sgj的相似性;矩阵M的计算方式采用如下两种计算方式之一:
1)使用子图向量的欧式空间距离来计算子图的相似度Mij
Figure FDA0002302748180000037
其中符号s表示子图的相似度,d(v(sgi),v(sgj))表示子图的欧式空间距离;v(sgj)表示子图在步骤S4得到的向量;
2)使用深度图内核来计算子图的相似度,子图同属于图一样可用深度图内核来计算相似度
Mij=s(sgi,sgj)=v(sgi)·m·v(sgj)
其中矩阵m是一个对角矩阵且mii=<v(sgi),v(sgi)>,mij=0,i≠j。
CN201911227923.XA 2019-12-04 2019-12-04 基于图处理的恶意程序检测方法 Active CN111079145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911227923.XA CN111079145B (zh) 2019-12-04 2019-12-04 基于图处理的恶意程序检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911227923.XA CN111079145B (zh) 2019-12-04 2019-12-04 基于图处理的恶意程序检测方法

Publications (2)

Publication Number Publication Date
CN111079145A true CN111079145A (zh) 2020-04-28
CN111079145B CN111079145B (zh) 2023-04-07

Family

ID=70312818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911227923.XA Active CN111079145B (zh) 2019-12-04 2019-12-04 基于图处理的恶意程序检测方法

Country Status (1)

Country Link
CN (1) CN111079145B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117216217A (zh) * 2023-09-19 2023-12-12 山东汇商脉网络科技有限公司 一种档案智能分类与检索方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653956A (zh) * 2016-03-02 2016-06-08 中国科学院信息工程研究所 基于动态行为依赖图的Android恶意软件分类方法
CN108170467A (zh) * 2017-12-02 2018-06-15 西安财经学院 约束限定聚类和信息度量软件胎记特征选择方法、计算机
US20190190945A1 (en) * 2017-12-20 2019-06-20 International Business Machines Corporation Corroborating threat assertions by consolidating security and threat intelligence with kinetics data
CN110351244A (zh) * 2019-06-11 2019-10-18 山东大学 一种基于多卷积神经网络融合的网络入侵检测方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653956A (zh) * 2016-03-02 2016-06-08 中国科学院信息工程研究所 基于动态行为依赖图的Android恶意软件分类方法
CN108170467A (zh) * 2017-12-02 2018-06-15 西安财经学院 约束限定聚类和信息度量软件胎记特征选择方法、计算机
US20190190945A1 (en) * 2017-12-20 2019-06-20 International Business Machines Corporation Corroborating threat assertions by consolidating security and threat intelligence with kinetics data
CN110351244A (zh) * 2019-06-11 2019-10-18 山东大学 一种基于多卷积神经网络融合的网络入侵检测方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YANG XIA ETAL: "《Malware Variant Detection Using Similarity Search over Sets of Control Flow Graphs》" *
陈鹏;赵荣彩;单征;韩金;孟曦;: "基于动静结合的Android恶意代码行为相似性检测" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117216217A (zh) * 2023-09-19 2023-12-12 山东汇商脉网络科技有限公司 一种档案智能分类与检索方法
CN117216217B (zh) * 2023-09-19 2024-03-22 山东汇商脉网络科技有限公司 一种档案智能分类与检索方法

Also Published As

Publication number Publication date
CN111079145B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
Bayar et al. Towards open set camera model identification using a deep learning framework
CN109784056B (zh) 一种基于深度学习的恶意软件检测方法
CN112949780A (zh) 特征模型训练方法、装置、设备及存储介质
CN111259388A (zh) 一种基于图卷积的恶意软件api调用序列检测方法
CN109981625B (zh) 一种基于在线层次聚类的日志模板抽取方法
WO2020164278A1 (zh) 一种图像处理方法、装置、电子设备和可读存储介质
CN109670318B (zh) 一种基于核控制流图循环验证的漏洞检测方法
CN107315956A (zh) 一种用于快速准确检测零日恶意软件的图论方法
CN112333195B (zh) 基于多源日志关联分析的apt攻击场景还原检测方法及系统
CN111368289B (zh) 一种恶意软件检测方法和装置
CN113935033A (zh) 特征融合的恶意代码家族分类方法、装置和存储介质
CN110110325B (zh) 一种重复案件查找方法和装置、计算机可读存储介质
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN109783805B (zh) 一种网络社区用户识别方法、装置和可读存储介质
WO2020071558A1 (ja) 帳票レイアウト解析装置、その解析プログラムおよびその解析方法
CN115270954A (zh) 基于异常节点识别的无监督的apt攻击检测方法和系统
CN112632535A (zh) 攻击检测方法、装置、电子设备及存储介质
CN113641906A (zh) 基于资金交易关系数据实现相似目标人员识别处理的系统、方法、装置、处理器及其介质
CN108959922B (zh) 一种基于贝叶斯网的恶意文档检测方法及装置
CN111079145B (zh) 基于图处理的恶意程序检测方法
Naeem et al. Digital forensics for malware classification: An approach for binary code to pixel vector transition
CN111277433B (zh) 基于属性网络表征学习的网络服务异常检测方法及装置
CN116938587A (zh) 基于溯源图行为语义提取的威胁检测方法及系统
CN112001424A (zh) 基于对抗训练的恶意软件开放集家族分类方法和装置
Millet et al. Using relative spatial relationships to improve individual region recognition

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