CN102034042B - 基于函数调用关系图特征的恶意代码检测新方法 - Google Patents

基于函数调用关系图特征的恶意代码检测新方法 Download PDF

Info

Publication number
CN102034042B
CN102034042B CN201010585101A CN201010585101A CN102034042B CN 102034042 B CN102034042 B CN 102034042B CN 201010585101 A CN201010585101 A CN 201010585101A CN 201010585101 A CN201010585101 A CN 201010585101A CN 102034042 B CN102034042 B CN 102034042B
Authority
CN
China
Prior art keywords
node
function
file
algorithm
software
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.)
Expired - Fee Related
Application number
CN201010585101A
Other languages
English (en)
Other versions
CN102034042A (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.)
Sichuan University
Original Assignee
Sichuan 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 Sichuan University filed Critical Sichuan University
Priority to CN201010585101A priority Critical patent/CN102034042B/zh
Publication of CN102034042A publication Critical patent/CN102034042A/zh
Application granted granted Critical
Publication of CN102034042B publication Critical patent/CN102034042B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种基于函数调用关系图特征的恶意代码检测新方法。传统的特征码检测技术是通过局部特征对软件进行判断,其缺点是检测工具必须维护庞大的先验特征码以及这些检测方案缺少必要的稳定性和可靠性。本方法对于Portable Executables(PE)文件利用软件函数调用关系图,根据已有软件网络方面的研究成果,通过提取图特征信息来检测恶意代码。该方法主要过程分三步:1、建立软件函数调用图;2、提取图中特征指标;3、通过有效的数据挖掘算法分类恶意软件和正常软件。本发明不但能够有效的检测出普通zero-day恶意代码,而且对于采用模糊和多态技术的恶意代码同样有较好的检测结果,对于蓄意攻击也保持良好的稳定性。

Description

基于函数调用关系图特征的恶意代码检测新方法
技术领域
本发明涉及计算机信息安全中的恶意软件检测,特别是一种新颖而实用的基于软件函数调用关系图特征的恶意代码检测方法。
背景技术
随着计算机科学在社会各个领域的广泛应用,计算机软件的安全问题受到人们越来越多的关注。建立可信的软件系统成为维护计算机信息安全的一种有效手段,对于恶意代码的检测成为软件可信性分析的核心研究方向。
传统的基于特征码的检测方式需要通过专用数据库来更新和维护事先提取相关特征码,通过扫描引擎查找软件的局部信息,并使用字符串匹配方法来对比这些信息和特征码的相似度,根据对比结果来得出检测结论。这种检测方法被广泛应用于现有的杀毒软件和系统防护软件中,属于比较成熟的技术,现在开发重点主要集中在提高代码的扫描速度和特征码提取的准确度。
近年来提出的非特征码恶意代码检测方法中,有些是采用启发式分析或是基于软件行为来判断正常软件和恶意软件,这些方法在没有软件先验信息的情况下,对zero-day恶意软件有一定的检测效果。还有一些研究是通过在软件特殊结构属性信息来分类软件,比如通过提取PE(Portable Executables)文件的头部信息进行对比分类,在正常运行环境也取得了不错的检测结果。这些方法都是通过对软件的局部信息挖掘,期望得到能够将软件正确分类的指标集,然后用指标集检测软件。
上述的恶意代码检测方法分别存在以下问题:
第一,基于特征码的检测方法需要获得恶意代码的特征码,并将不断增加的特征码到用户端的数据库,对日益庞大的数据库维护成为使用者付出的代价。该检测方法最大的缺点是难以检测未知的恶意代码,用户不能够及时处理新的安全威胁。
第二,采用启发式分析或是基于软件行为检测方法是通过获得代码的特殊局部信息对软件进行分类,但是对于使用模糊和多态的恶意代码,这种局部特征往往不固定,因此该检测方法在判断这些恶意代码时准确率不够。
第三,使用标准格式信息来区分软件的检测方法,利用的是软件的外部描述信息,这些信息大多不直接涉及软件的行为,对于熟悉该方法的恶意代码设计者,能够通过对格式信息的特殊处理来大幅度降低该方法的检测效果。
发明内容
本发明的目的在于提出并设计一种检出率高、稳定性好的基于软件函数调用关系图的恶意代码检测新方法。
本发明的目的的是这样实现的:一种基于函数调用关系图特征的恶意代码检测方法,分为以下3个阶段:
1、建立软件函数调用关系图;2、提取图中特征指标;3、通过数据挖掘算法分类恶意软件和正常软件;具体步骤如下:
1)建立软件函数调用关系图:
装入PE格式样本文件,然后采用递归下降算法来处理文件,将文件进行反汇编操作,将文件转换成汇编代码,根据代码中的调用指令建立函数调用关系,然后将函数和这些调用关系保存在图这种数据结构中;
上述递归下降算法是通过控制流来逐条定位和分析指令及数据,根据顺序流指令,条件分支指令,无条件分支指令,函数调用指令和返回指令来定位后续指令的位置;
2)提取图中特征指标:
2.1)产生函数调用关系图特征集:
通过对输入的函数调用关系图描述文件处理,将文件中保存的函数调用关系图信息使用邻接链表的数据结构保存,然后在该结构中计算和统计定义特征集合FeatureList的值;文件处理步骤为:
a)从输入文件中读入结点和边信息;
b)向邻接链表中添加结点和边信息;统计结点类型及数量;直至读文件结束;然后,遍历所有连通有向子图,并统计结点和出、入度信息;遍历所有连通无向子图,并统计结点和出、入度信息;遍历定义的扩展连通图,并统计其信息,最后得到的计算和统计结果为产生的函数调用关系图特征集;
2.2)筛选指标以精确的反应函数调用关系图的特征:
二者择一地采用以下两种属性过滤算法以去除冗余属性区和分度较低的属性,合并相关较高的属性,进行指标的筛选;其一是,采用数据挖掘软件Weka中提供的CfsSubsetEval函数提供的属性过滤功能,衡量每一个属性的预测能力以及它们之间的冗余度,筛选出对预测目标关联度较高且相互之间低耦合的属性集合;其二是,选用与分类算法相关的属性筛选算法WrapperSubsetEval,通过交叉验证的方法对属性进行衡量,最后得到该分类算法最有效的属性集合;
3)通过数据挖掘算法分类恶意软件和正常软件:
3.1)通过分类算法产生训练集结果:
该过程是生成训练集结果和决策树的过程;首先对大量的正常软件和恶意代码样本进行处理,将前面生成的函数调用关系图特征集的指标作为输入,通过机器学习过程,在选用的数据挖掘算法中得到训练集结果;上述数据挖掘算法采用基于决策树的C4.5算法,基于多层神经网络的BP算法,Lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBayes算法之一种;并按以下两种方式产生训练集结果和决策树:一种是按百分比划分样本和测试的数量,另一种是m fold交叉验证;训练集结果作为之后检测PE文件的依据;
3.2)产生测试结果:
对于被测试的PE文件,经过产生函数调用关系图和提取图特征指标后,将这些指标格式化成符合检测要求的训练记录,用arff文件存储这些数据;这些训练记录文件作为输入,选用上述训练集结果就得到测试结果。
上述数据挖掘算法优选为基于决策树的C4.5算法。
上述m fold交叉验证优选为10fold交叉验证。
上述筛选的指标为28个:
地址函数结点个数;
外部函数结点个数;
内部函数结点个数;
导入名称结点个数;
入口结点个数;
有向连通图个数;
无向连通图个数;
入口结点序号;
有向连通图结点数绝对平均方差;
有向连通图平均度数;
入口结点后扩展图结点总数;
入口结点前扩展图结点总数;
入口结点有向连通图结点个数;
最大有向连通图结点数;
最大无向连通图结点数;
入口结点无向连通图结点数;
入口结点连通图是不是最大无向连通图;
结点最大度数;
结点平均度数;
度数的绝对平均方差;
孤立地址函数结点个数;
孤立外部函数结点个数;
孤立内部函数结点个数;
孤立导入名称结点个数;
终端地址子函数结点个数;
终端外部函数结点个数;
终端内部函数结点个数;
终端导入名称结点个数。
本发明针对传统恶意代码检测方法中偏重于软件的局部或外部特征,对使用模糊和多态技术恶意代码检测效率不稳定的缺点,提出利用软件中更加稳定的函数调用关系来发掘软件的行为特征,使用图的形式来描述这些调用关系,进而利用软件网络和图论的相关知识对软件行为进行量化,通过指标分析和数据挖掘来实现恶意代码检测。
本发明解决的关键问题在于:创新性的利用软件的函数调用关系图特征来判断软件行为,利用机器学习算法对量化的图特征指标进行筛选,通过数据挖掘的分类算法对样本处理得到软件分类的决策树,从而进行恶意代码检测。
附图说明
图1是基于软件函数调用关系图特征的恶意代码检测方法的模型框图。
具体实施方式
检测模型及基本思想:
基于软件函数调用关系图的恶意代码检测方法处理的对象主要是PE格式的正常软件和恶意软件。软件工程中软件网络的理论认为,软件具有网络的拓扑结构,一般可以用图表示。在本方法中,将需要检测PE文件在函数级别用图结构来描述,图中的每个结点代表在文件中出现的函数,边代表函数之间的调用关系。与其他数据结构相比,图能够表达更加丰富的语义,且图论作为数学领域的一个重要分支,具有较长的研究历史及成熟完备的理论支持,基于图的数据挖掘技术主要用于发现图特征和软件分类之间的规律。本方法通过提取图中软件的特征信息来理解软件的行为,进而识别恶意代码。
基于软件函数调用关系图的恶意代码检测方法使用的模型如图1所示,该模型分为3个阶段,①建立软件函数调用图,②提取图中特征指标,③通过有效的数据挖掘中分类算法对恶意软件和正常软件分类。
建立软件函数调用图阶段需要对文件进行反汇编操作,将文件转换成汇编代码,根据代码中的调用指令建立函数调用关系,然后将函数和这些调用关系保存图这种数据结构中。这个阶段包含文件的装入、反汇编文件、检测函数之间的调用关系和生成函数调用图。
我们处理的对象是PE格式的文件,由于一些恶意软件修改了PE文件的头部信息,在装入文件的时候必须考虑如何处理异常的装入信息。我们分析的主要数据是反汇编后得到的代码,因此反汇编的质量关系到数据的准确性,在本模型中采用递归下降算法来处理文件,这种算法的好处是能够有效的区分指令和数据,提高可信赖的结果。由于不同编译器生成的函数调用指令存在差异,在选取函数调用关系的时候,我们采用汇编指令中的call指令作为统一的调用标准,并生成调用图。为了在特征提取过程中更加方便,在本模型中函数调用图使用文件来保存。
在提取函数调用图特定指标阶段,首先要制定能够反映图特征的指标,本模型中制定47个指标来量化图特征,这些指标是通过统计的方法、软件网络理论和图论中的一些算法计算得到,基本是能满足要求。为了防止在软件检测阶段使用数据挖掘分类时出现过度拟合的现象,我们使用了一些公开的特征过滤算法对47个指标进行了筛选,剔除了一些冗余指标和区分度不够的指标,合并了部分相联系的指标。指标的精简不但加快了模型整体的处理速度,而且在一定程度上提高了检测的准确率。
在使用分类算法对文件进行分类操作阶段,首先需要建立机器学习结果,对收集的文件样本提取指标,选用一定的分类算法对样本进行处理生产训练结果,训练结果中包含了在机器学习中找到的最佳决策树。检测软件时,需要将文件按上述步骤提取图特征指标,依据决策树对软件作出判断结论。
方法描述:
相关概念及定义:
在介绍具体的方法之前,首先给出相关概念及定义:
定义一:函数的分类:对于反汇编后代码中的函数,依据在反汇编过程中的信息分为4类。第1类是由调用关系按内存地址命名的函数称为地址函数,第2类导入表中定义的函数,第3类是程序内部被识别的库函数,第4类是用户定义的函数;
定义二:m扩展子图:将内存地址相邻的m个连通子图合并成一个子图称为m扩展子图。这样定义是根据程序局部性的原则,为了弥补静态反汇编中丢弃某些函数间接调用关系;
定义三:m fold交叉验证:在对文件进行分类时,将所有文件按随机方式平均分为m份,将其中m-1份作为机器学习的材料,而另外1份作为测试目标,这样进行m次,使每一份都能得到测试。
1)反汇编PE文件:
本方法以静态分析文件为基础,需要将PE文件进行反汇编生成汇编格式的代码序列。采用反汇编引擎是利用递归下降算法来处理文件,该算法是通过控制流来逐条定位和分析指令及数据,它能够根据顺序流指令,条件分支指令,无条件分支指令,函数调用指令和返回指令来定位后续指令的位置。递归下降算法能够访问所有路径,将所有代码进行反汇编。作为一种基于控制流的算法,递归下降算法能够正确区分代码和数据,但是作为静态分析的缺点之一,对某些间接跳转指令的控制流处理不彻底,会忽略一些函数间的调用关系,对此我们在统一调用标准的前提的同时,在设计函数调用图指标时根据程序局部性的原理,做一些适当的处理;
2)提取函数调用图中特征:
函数调用图反映了软件的功能,这些功能就是检测恶意代码的依据,提取函数调用图中的特征信息实际上是将这些功能通过图的指标来反映出来,也就是如何来度量软件功能的问题。
现代度量理论属于数学的一个分支,度量是按照明确定义的规则,将数字或者符号赋予真实世界中实体的属性的过程,并通过这种方式来描述实体的属性,从而揭示其内在的意义。
形式化地,度量是一个三元组<Q,M,N>,其中:
●经验关系系统Q=<E,R>,E为被度量实体(属性)的集合,R={R1,R2,…,Rn}为E上的关系集合;
●数值关系系统N=<S,P>,S为数值或者符号集合,P={P1,P2,…,Rn}为S上的关系集合;
●映射M:Q→N,M(x)表示实体x在被度量属性方面的度量值。
上述定义中的经验关系系统是对被度量事物属性的描述与刻画,关系Ri必须能够真实、准确地反映被度量事物属性的性质。从数学的角度讲,关系Ri还可以被定义为被度量事物Ei上的运算,如果我们用一个映射M来给每一个Ei赋予一个实数的话,三者就构成了一个完整的度量。但是,这个映射必须满足一定的条件,即从Q到N的映射是同态的。
函数调用图实际上是软件功能在语法上的一种抽象表示,即通过结构来发掘对应的功能,软件的功能是由多个子功能构成,表现为函数调用图的多个子图,提取函数调用图中特征就是通过指标来描述这些子图和子图之间的关系(即经验关系系统的Q=<E,R>)。由于子功能和子图之间m:n的关系,所以在本阶段首先需要找到尽可能多的指标以及指标之间的关系(即数值关系系统N=<S,P>)。函数调用关系图中定义的部分基本指标如图2表示。产生这些指标的过程描述如图3所示。
函数调用图中的部分基本指标如下:
int sumSub;//地址函数结点个数;
int exterSub;//外部函数结点个数;
int innerSub;//内部函数结点个数;
int remoteSub;//导入名称结点个数;
int stSub=0;//入口结点个数;
int sumGraphs;//有向连通图个数;
int sumNondirectGraphs;//无向连通图个数;
int startNodeId=-1;//入口结点序号;
double cGraphsVar;//有向连通图结点数绝对平均方差;
double averageNodes;//有向连通图平均度数;
int extendGraphsNodes;//入口结点后扩展图结点总数;
int foreGraphsNodes;//入口结点前扩展图结点总数;
int startnodes=0;//入口结点有向连通图结点个数;
int maxGraphNodes;//最大有向连通图结点数;
int maxNondirectedGraph;//最大无向连通图结点数;
int startNondirectNodes;//入口结点无向连通图结点数;
boolean isStartMax;//入口结点连通图是不是最大无向连通图;
int maxDegree;//结点最大度数;
double averageDegree;//结点平均度数;
double degreeVar;//度数的绝对平均方差;
int abSub;//孤立地址函数结点个数;
int abExterSub;//孤立外部函数结点个数;
int abInnerSub;//孤立内部函数结点个数;
int abRemoteSub;//孤立导入名称结点个数;
int finalAdressSub;//终端地址子函数结点个数;
int finalExterSub;//终端外部函数结点个数;
int finalInnerSub;//终端内部函数结点个数;
int finalRemoteSub;//终端导入名称结点个数。
筛选指标来精确的反应函数调用图的特征:
我们采用了若干种属性过滤算法,去除冗余属性区和分度较低的属性,合并相关较高的属性。例如本方法中采用数据挖掘软件Weka中提供的CfsSubsetEval函数提供的属性过滤功能,衡量每一个属性的预测能力以及它们之间的冗余度,筛选出对预测目标关联度较高且相互之间低耦合的属性集合。另外还选用了与分类算法相关的属性筛选算法WrapperSubsetEval,它以指定的分类算法为参数,通过交叉验证的方法对属性进行衡量,最后得到该分类算法最有效的属性集合。与分类算法相关的属性筛选算法虽然需要耗费时间,但这种操作只是在创建训练集使用,对软件的检测时间影响不大。经过筛选后的指标,不但减轻了无效指标的干扰,通过降低数据的维度提高了分类算法在检测代码是的速度。
产生函数调用关系图特征集的过程描述:
方法:CreateFeatureList//软件函数调用关系图特征创建方法。
输入:
■函数调用图描述文件F
输出:
■特征集合FeatureList
方法:
通过对输入文件F处理,将文件中保存的函数调用图信息使用邻接链表的数据结构保存,然后在该结构中计算和统计定义特征集合FeatureList的值;
调用OperateGdl(File inputFile);
procedure PatternsMining(inputFile);
(1)
Figure GDA00001772364000091
//FeatureList为特征集合
(2)
Figure GDA00001772364000092
//AllNodeListt为邻接链表
(3)repeat
(4)从inputFile中读入结点和边信息
(5)向AllNodeList中添加结点和边信息
(6)统计结点类型及数量
(7)until读文件结束
(8)遍历所有连通有向子图,并统计结点和出、入度信息
(9)遍历所有连通无向子图,并统计结点和出、入度信息
(10)遍历定义的扩展连通图,并统计其信息
(11)将计算和统计结果给FeatureList赋值
(12)return FeatureList;
通过分类算法产生训练集结果
该过程是生成训练集结果和决策树的过程。首先对大量的正常软件和恶意代码样本进行处理,按检测模型的前两步生成相应的指标,将这些指标作为输入,通过机器学习过程,在选用的数据挖掘算法中得到训练集结果。由训练样本生成训练集结果的过程中,本方法提供了基于决策树的C4.5算法,基于多层神经网络的BP算法(使用Weka提供的MultilayerPerceptron函数接口),Lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBayes算法。这些算法基本都能够达到较高的准确率。本方法提供了两种产生测试集结果的方式,一种是按百分比划分样本和测试的数量,另一种是m fold交叉验证,通过这两种方式都可以得到训练集结果和决策树,从中可以获知训练集的分类准确率,训练集结果可以作为之后检测PE文件的依据,在本模型中用Weka中使用的arff类型文件保存。图4表示了部分决策树结构。
1)产生测试结果
对于被测试的PE文件,经过产生函数调用图和提取图特征指标后,将这些指标格式化成符合检测要求的训练记录,用arff文件存储这些数据。这些训练记录文件作为输入,选用前面提到的训练集结果就可以得到测试结果。
决策树的部分结构:
Figure GDA00001772364000101
最后,由表1给出本发明方法与传统的基于特征码模式、最新的局部信息挖掘模式方法之间的简要对比与总结。
表1本发明方法与传统方法间的对比总结
Figure GDA00001772364000102
具体实施例:
在表2中描述了本发明方法中采用的实验数据集的简要信息。该实验数据集正常文件是实验室中收集的Windows XP sp3中的系统文件和应用程序;恶意代码是从Malfease datasets网站下载的部分病毒文件。样本文件处理的过程包括反汇编,生成函数调用图,从其中提取图特征指标,将这些数据保存在arff类型文件中。在本发明方法验证过程采用10fold交叉验证,在测试过程中使用了不同的分类算法。
实验:
●具体操作:分别采用CfsSubsetEval和WrapperSubsetEval筛选特征,然后使用4种分类算法C4.5算法、BP算法、IBK算法和NaiveBayes算法对数据进行10fold交叉测试,测试结果如表3所示。
表2实验数据描述
结果分析:由于WrapperSubsetEval筛选特征时,是根据筛选剩余特征都是根据相对算法组合而成,因此检测的准确率要远高于CfsSubsetEval方式。在所有的分类算法中,C4.5算法得到的结果最好,因此在检测恶意代码时推荐使用该算法。
表3实验结果描述
Figure GDA00001772364000113
注:TP Rate指恶意代码被正确识别的准确率;FP Rate指正常文件被当做恶意代码的误判率;Weighted Avg指加权后的平均值。

Claims (3)

1.一种基于函数调用关系图特征的恶意代码检测方法,其特征是:分为以下3个阶段:
1、建立软件函数调用关系图;2、提取图中特征指标;3、通过数据挖掘算法分类恶意软件和正常软件;具体步骤如下:
1)建立软件函数调用关系图:
装入PE格式样本文件即Portable Executables格式样本文件,然后采用递归下降算法来处理文件,将文件进行反汇编操作,将文件转换成汇编代码,根据代码中的调用指令建立函数调用关系,然后将函数和这些调用关系保存在图这种数据结构中;
上述递归下降算法是通过控制流来逐条定位和分析指令及数据,根据顺序流指令,条件分支指令,无条件分支指令,函数调用指令和返回指令来定位后续指令的位置;
2)提取图中特征指标:
2.1)产生函数调用关系图特征集:
通过对输入的函数调用关系图描述文件处理,将文件中保存的函数调用关系图信息使用邻接链表的数据结构保存,然后在该结构中计算和统计定义特征集合FeatureList的值;文件处理步骤为:
a)从输入文件中读入结点和边信息;
b)向邻接链表中添加结点和边信息;统计结点类型及数量;直至读文件结束; 然后,遍历所有连通有向子图,并统计结点和出、入度信息;遍历所有连通无向子图,并统计结点和出、入度信息;遍历定义的扩展连通图,并统计其信息,最后得到的计算和统计结果为产生的函数调用关系图特征集;
2.2)筛选指标以精确的反应函数调用关系图的特征:
二者择一地采用以下两种属性过滤算法以去除冗余属性和区分度较低的属性,合并相关较高的属性,进行指标的筛选;其一是,采用数据挖掘软件Weka中提供的CfsSubsetEval函数提供的属性过滤功能,衡量每一个属性的预测能力以及它们之间的冗余度,筛选出对预测目标关联度较高且相互之间低耦合的属性集合;其二是,选用与分类算法相关的属性筛选算法WrapperSubsetEval,通过交叉验证的方法对属性进行衡量,最后得到该分类算法最有效的属性集合;
3)通过数据挖掘算法分类恶意软件和正常软件:
3.1)通过分类算法产生训练集结果:
该过程是生成训练集结果和决策树的过程;首先对大量的正常软件和恶意代码样本进行处理,将前面生成的函数调用关系图特征集的指标作为输入,通过机器学习过程,在选用的数据挖掘算法中得到训练集结果;上述数据挖掘算法采用基于决策树的C4.5算法,基于多层神经网络的BP算法,Lazy分类算法中的IBK和贝叶斯分类算法中的NaiveBayes算法之一种;并按以下两种方式产生训练集结果和决策树:一种是按百分比划分样本和测试的数量,另一种是m fold 交叉验证;训练集结果作为之后检测PE文件的依据;
m fold 交叉验证:在对文件进行分类时,将所有文件按随机方式平均分为m份,将其中m-1份作为机器学习的材料,而另外1份作为测试目标,这样进行m次,使每一份都能得到测试;
3.2)产生测试结果:
对于被测试的PE文件,经过产生函数调用关系图和提取图特征指标后,将这些指标格式化成符合检测要求的训练记录,用arff文件存储这些数据;这些训练记录文件作为输入,选用上述训练集结果就得到测试结果。
2.根据权利要求1所述的基于函数调用关系图特征的恶意代码检测方法,其特征是:所述m fold交叉验证优选为10fold交叉验证。
3.根据权利要求1所述的基于函数调用关系图特征的恶意代码检测方法,其特征是:所述筛选的指标为28个:
地址函数结点个数;
外部函数结点个数;
内部函数结点个数;
导入名称结点个数;
入口结点个数;
有向连通图个数;
无向连通图个数;
入口结点序号;
有向连通图结点数绝对平均方差;
有向连通图平均度数;
入口结点后扩展图结点总数;
入口结点前扩展图结点总数;
入口结点有向连通图结点个数;
最大有向连通图结点数;
最大无向连通图结点数;
入口结点无向连通图结点数;
入口结点连通图是不是最大无向连通图;
结点最大度数;
结点平均度数;
度数的绝对平均方差;
孤立地址函数结点个数;
孤立外部函数结点个数;
孤立内部函数结点个数;
孤立导入名称结点个数;
终端地址子函数结点个数;
终端外部函数结点个数;
终端内部函数结点个数;
终端导入名称结点个数。
CN201010585101A 2010-12-13 2010-12-13 基于函数调用关系图特征的恶意代码检测新方法 Expired - Fee Related CN102034042B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010585101A CN102034042B (zh) 2010-12-13 2010-12-13 基于函数调用关系图特征的恶意代码检测新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010585101A CN102034042B (zh) 2010-12-13 2010-12-13 基于函数调用关系图特征的恶意代码检测新方法

Publications (2)

Publication Number Publication Date
CN102034042A CN102034042A (zh) 2011-04-27
CN102034042B true CN102034042B (zh) 2012-10-03

Family

ID=43886922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010585101A Expired - Fee Related CN102034042B (zh) 2010-12-13 2010-12-13 基于函数调用关系图特征的恶意代码检测新方法

Country Status (1)

Country Link
CN (1) CN102034042B (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930206B (zh) * 2011-08-09 2015-02-25 腾讯科技(深圳)有限公司 病毒文件的聚类划分处理方法和装置
CN102663296B (zh) * 2012-03-31 2015-01-07 杭州安恒信息技术有限公司 面向网页JavaScript恶意代码的智能检测方法
CN103377341A (zh) * 2012-04-28 2013-10-30 北京网秦天下科技有限公司 一种安全检测的方法和系统
CN103632091B (zh) * 2012-08-21 2017-08-25 腾讯科技(深圳)有限公司 恶意特征提取方法、装置及存储介质
CN102902538B (zh) * 2012-09-21 2015-11-25 哈尔滨工业大学深圳研究生院 移动互联网智能终端应用中间件安全开发方法
CN103810424B (zh) * 2012-11-05 2017-02-08 腾讯科技(深圳)有限公司 一种异常应用程序的识别方法及装置
CN103177215B (zh) * 2013-03-05 2016-01-20 四川电力科学研究院 基于软件控制流特征的计算机恶意软件检测新方法
CN104077524B (zh) * 2013-03-25 2018-01-09 腾讯科技(深圳)有限公司 用于病毒鉴定的训练方法和病毒鉴定方法及装置
CN104252594B (zh) * 2013-06-27 2019-04-02 贝壳网际(北京)安全技术有限公司 病毒检测方法和装置
CN103440458B (zh) * 2013-09-25 2016-05-11 西安交通大学 一种启发式静态识别Android系统恶意代码的方法
CN103473507B (zh) * 2013-09-25 2016-03-30 西安交通大学 一种Android恶意代码检测方法
CN103577728B (zh) * 2013-11-16 2016-03-30 哈尔滨工业大学 一种使用收缩执行依赖图识别库函数的方法
CN103631971B (zh) * 2013-12-20 2017-12-08 北京奇虎科技有限公司 一种可移植的执行体文件的重组方法和装置
CN105874463A (zh) * 2013-12-30 2016-08-17 诺基亚技术有限公司 用于恶意软件检测的方法和装置
CN104978521B (zh) * 2014-04-10 2018-05-08 北京启明星辰信息安全技术有限公司 一种实现恶意代码标注的方法及系统
CN104978522B (zh) * 2014-04-10 2018-05-08 北京启明星辰信息安全技术有限公司 一种检测恶意代码的方法和装置
CN104317773B (zh) * 2014-10-28 2017-05-24 南京大学 一种递归最大执行频度与深度的静态估计方法
CN104331664B (zh) * 2014-11-27 2017-08-08 南京大学 一种在取证场景下自动分析未知恶意程序特征的方法
CN104504337A (zh) * 2014-12-31 2015-04-08 中国人民解放军理工大学 一种安卓数据泄露的恶意应用检测方法
CN104715190B (zh) * 2015-02-03 2018-02-06 中国科学院计算技术研究所 一种基于深度学习的程序执行路径的监控方法及系统
CN104933357A (zh) * 2015-06-01 2015-09-23 国家电网公司 一种基于数据挖掘的洪泛攻击检测系统
CN105046152B (zh) * 2015-07-24 2018-01-26 四川大学 基于函数调用图指纹的恶意软件检测方法
CN106709336A (zh) 2015-11-18 2017-05-24 腾讯科技(深圳)有限公司 识别恶意软件的方法和装置
CN106897616B (zh) * 2015-12-17 2021-07-16 腾讯科技(深圳)有限公司 一种程序文件的处理方法及装置
CN105975852A (zh) * 2015-12-31 2016-09-28 武汉安天信息技术有限责任公司 一种基于标签传播的样本关联性检测方法及系统
CN106503552A (zh) * 2016-09-19 2017-03-15 南京邮电大学 基于签名与数据流模式挖掘的Android恶意软件检测系统及方法
CN106407810B (zh) * 2016-09-27 2019-05-10 中国电子科技集团公司第五十八研究所 一种基于递归下降算法的rtl级硬件木马检测方法
CN106845224A (zh) * 2016-12-16 2017-06-13 华东师范大学 一种恶意程序识别系统
CN106897621A (zh) * 2017-03-03 2017-06-27 努比亚技术有限公司 一种恶意文件的检测方法及系统
US10333961B2 (en) * 2017-06-27 2019-06-25 Intel Corporation Malware detection system attack prevention
CN108388425B (zh) * 2018-03-20 2021-02-19 北京大学 一种基于lstm自动补全代码的方法
RU2724800C1 (ru) * 2018-12-28 2020-06-25 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения источника вредоносной активности на компьютерной системе
CN112182568B (zh) * 2019-07-02 2022-09-27 四川大学 基于图卷积网络和主题模型的恶意代码分类
CN112000952B (zh) * 2020-07-29 2022-05-24 暨南大学 Windows平台恶意软件的作者组织特征工程方法
CN113449151B (zh) * 2021-06-11 2022-09-20 西安电子科技大学 一种通讯软件的安全性的自动化验证方法
CN116611062B (zh) * 2023-04-21 2023-12-01 中国人民解放军战略支援部队信息工程大学 基于图卷积网络的内存恶意进程取证方法与系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101140611A (zh) * 2007-09-18 2008-03-12 北京大学 一种恶意代码自动识别方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365286B2 (en) * 2006-06-30 2013-01-29 Sophos Plc Method and system for classification of software using characteristics and combinations of such characteristics

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101140611A (zh) * 2007-09-18 2008-03-12 北京大学 一种恶意代码自动识别方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
曾鸣等.基于特征提取的二进制代码比较技术.《计算机工程与应用》.2006,(第22期), *
白莉莉等.基于关键应用编程接口图的恶意代码检测.《计算机工程》.2010,第36卷(第9期), *

Also Published As

Publication number Publication date
CN102034042A (zh) 2011-04-27

Similar Documents

Publication Publication Date Title
CN102034042B (zh) 基于函数调用关系图特征的恶意代码检测新方法
CN113961922B (zh) 一种基于深度学习的恶意软件行为检测与分类系统
CN107229563B (zh) 一种跨架构的二进制程序漏洞函数关联方法
Lo et al. SMArTIC: Towards building an accurate, robust and scalable specification miner
CN103177215B (zh) 基于软件控制流特征的计算机恶意软件检测新方法
Herzig et al. Predicting defects using change genealogies
CN117473571B (zh) 一种数据信息安全处理方法及系统
CN105868108A (zh) 基于神经网络的指令集无关的二进制代码相似性检测方法
CN103679030A (zh) 一种基于动态语义特征的恶意代码分析检测方法
CN116361810A (zh) 一种基于符号执行的智能合约漏洞检测方法
CN114491529A (zh) 基于多模态神经网络的安卓恶意应用程序识别方法
CN111726351B (zh) 基于Bagging改进的GRU并行网络流量异常检测方法
Rathee et al. Clustering for software remodularization by using structural, conceptual and evolutionary features
CN117596057A (zh) 网络信息安全管理系统及方法
CN112416800A (zh) 智能合约的测试方法、装置、设备及存储介质
CN110598417B (zh) 一种基于图挖掘的软件漏洞检测方法
CN117521065B (zh) 一种区块链去中心化金融的安全检测方法和装置
Tang et al. An attention-based automatic vulnerability detection approach with GGNN
CN113886832A (zh) 智能合约漏洞检测方法、系统、计算机设备和存储介质
CN117725592A (zh) 一种基于有向图注意力网络的智能合约漏洞检测方法
Huang et al. Software defect prediction model based on attention mechanism
CN114153721B (zh) 一种基于决策树算法的api误用检测方法
CN114710344B (zh) 一种基于溯源图的入侵检测方法
Zhang et al. Approach to Predict Software Vulnerability Based on Multiple-Level N-gram Feature Extraction and Heterogeneous Ensemble Learning
Qiu et al. Vulnerability detection via multiple-graph-based code representation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Junfeng

Inventor after: Zhao Zongqu

Inventor after: Ma Yong

Inventor after: Zhang Xiaosong

Inventor after: Bai Jinrong

Inventor after: Liu Dafu

Inventor after: Fang Zhiyang

Inventor after: Yang Guoqiang

Inventor before: Wang Junfeng

Inventor before: Zhao Zongqu

Inventor before: Bai Jinrong

Inventor before: Liu Dafu

Inventor before: Fang Zhiyang

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121003