CN111737694A - 一种基于行为树的恶意软件同源性分析方法 - Google Patents

一种基于行为树的恶意软件同源性分析方法 Download PDF

Info

Publication number
CN111737694A
CN111737694A CN202010422541.9A CN202010422541A CN111737694A CN 111737694 A CN111737694 A CN 111737694A CN 202010422541 A CN202010422541 A CN 202010422541A CN 111737694 A CN111737694 A CN 111737694A
Authority
CN
China
Prior art keywords
behavior
family
theta
tree
api
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
CN202010422541.9A
Other languages
English (en)
Other versions
CN111737694B (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN202010422541.9A priority Critical patent/CN111737694B/zh
Publication of CN111737694A publication Critical patent/CN111737694A/zh
Application granted granted Critical
Publication of CN111737694B publication Critical patent/CN111737694B/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
    • 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
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2415Classification 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
    • G06F18/24155Bayesian classification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于行为树的恶意软件同源性分析方法,对恶意软件的行为提出了新的定义,不局限于分析API连续的短序列,而是从每种行为及行为之间的关系描述恶意软件的行为特征,行为语义更加丰富。首先,从恶意软件执行期间产生的API调用序列中,采用Inductive Miner算法构建反映恶意软件行为模型的行为树,其次,从每棵行为树中提取出行为特征,生成家族加权行为特征,基于相似度算法,将行为树转换为相似度向量,最后,应用朴素贝叶斯分类算法,训练家族分类模型。该方法可解决以往基于API序列的恶意软件同源性分析中API序列中缺乏控制结构和存在噪声的问题,提升了恶意软件家族分类能力。

Description

一种基于行为树的恶意软件同源性分析方法
技术领域
本发明涉及计算机安全研究技术领域,具体涉及一种基于行为树的恶意软件同源性分析方法。
背景技术
当前大部分新出现的恶意软件是已知家族的恶意软件的变体,因此,发现未知恶意软件与已知家族的恶意软件之间的同源性,将未知恶意软件进行快速归类,有助于加速恶意软件的分析。
属于同一家族的恶意软件在行为表现上具有相似性,API调用序列是最能刻画恶意软件行为的信息来源,故大多数研究将API调用序列作为研究基础,但将API序列作为恶意软件分析的研究对象时,面临着以下问题:
一是恶意软件作者为了提升恶意软件的抗检测能力,在编写恶意软件的过程中,不影响原有行为的情况下,随机插入冗余API,导致恶意软件的API序列中存在噪声API,破坏原本具有区分能力的特征,从而影响恶意软件分析的性能。
二是在常见的基于API序列的恶意软件分析的方法中,如最长公共子序列、N-gram方法、API调用图等,存在着对API序列信息利用不充分,缺乏API之间的控制结构的问题,而在不同控制结构下的API的行为语义是不相同的,如在网络编程中常用的send函数和recv函数,当它们在while中成对出现时可能发生拒绝服务攻击(Denial of Service,DOS),而未在循环结构中出现可能是在进行正常的TCP连接,因此容易造成恶意软件类别判断错误的情况。
发明内容
本发明的目的是为了解决现有技术中常见基于API序列的恶意软件分析方法忽视API之间的控制结构,造成恶意软件分类错误的问题,以及解决恶意软件的API序列存在噪声API,破坏原有具有区分能力的特征,从而影响恶意软件分析性能的问题,提供一种基于行为树的恶意软件同源性分析方法,提高恶意软件的同源性判断的准确率。
本发明的目的可以通过采取如下技术方案达到:
一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的恶意软件同源性分析方法包括以下步骤:
S1、收集恶意软件执行时产生的API调用序列;
S2、将API调用序列转换成API日志,挖掘恶意软件的行为树;
S3、基于行为树,提取恶意软件的行为特征;
S4、构建恶意软件家族的行为特征;
S5、计算恶意软件的相似度向量;
S6、基于朴素贝叶斯分类算法对相似度向量进行训练和测试,构建分类模型W;
S7、利用分类模型W,完成恶意软件的家族分类。
进一步地,所述的步骤S2过程如下:
S2.1、将API调用序列转换成API日志,所述的API调用序列是由恶意软件在每次运行期间的所产生的API组成的集合,定义为S=<a1,a2,...,ar,...an>,其中ar,1≤r≤n代表第r个API调用,是一个二元组ar={time,label},time表示API被调用的时间,label为API调用的名称,n表示API调用序列S中由n个二元组组成,在API调用序列S中,API按照调用时间升序排序;所述的API日志是由一个或多个恶意软件的API调用序列组成的集合,API日志的表达式为Log={S1,...,Sg},其中Sz,1≤z≤g表示API日志Log的第z个API调用序列,g表示同一个恶意软件运行的次数;
S2.2、采用Inductive Miner算法,从API日志Log中提取行为信息,构建描述恶意软件的行为树,还原恶意软件的执行过程;
所述的行为的定义为
Figure BDA0002497453710000031
是行为关系的一个集合,→表示顺序、
Figure BDA0002497453710000032
表示循环、∧表示并行、∨表示互斥,其中B1,…,Bp是行为B的子行为,B1,…Bp通过行为关系
Figure BDA0002497453710000033
组成行为B,设Σ为恶意软件的API调用的集合,且ar∈Σ,ar本身是一种行为;
所述的行为树是将行为模型划分成一系列的单入口单出口的行为模块,并按照行为关系嵌套组织成的树型结构,非叶子结点描述API之间的行为关系,包括顺序、循环、并行、互斥四种关系,分别使用→、
Figure BDA0002497453710000034
∧、∨表示,叶子结点表示API或τ,τ是无声API且
Figure BDA0002497453710000035
表示空的API调用序列所对应的行为语义,用于表示占位符;行为树采用递归的方式定义如下:a∈Σ∪{τ}是一棵只具有一个叶子结点的行为树,a表示API调用;设M1,...,Mn|n>0为n棵行为树,通过行为关系
Figure BDA0002497453710000036
的连接,
Figure BDA0002497453710000037
为一棵新的行为树,Μ1,...,Μn称为M的子行为树;根结点为→或
Figure BDA0002497453710000038
的树称为顺序行为树,根结点为∨或∧的树称为非顺序行为树,顺序行为树的左右子树的位置不可互换,非顺序行为树的左右子树位置互换后行为语义保持不变。
进一步地,所述的步骤S3中的行为特征包括API调用之间的控制结构关系及API调用,恶意软件的行为特征从行为树中提取而得;
所述的行为模式是从具有p个子行为的行为B中提取的子行为之间的关系模式,记作BK,设
Figure BDA0002497453710000039
为p个子行为通过行为关系
Figure BDA00024974537100000310
形成的行为模式,B1,…,Bp为行为B的子行为,行为模式包含两种形式:(1)行为本身BK=B;(2)处于同一行为下的两个子行为形成的关系模式
Figure BDA00024974537100000311
Figure BDA00024974537100000312
其中Bx,By分别是B的第x个和第y个子行为,1≤x≤p,1≤y≤p;
所述的行为特征是从恶意软件行为树中提取的行为模式,写作
Figure BDA0002497453710000041
Figure BDA0002497453710000042
为一棵拥有n棵子树的行为树,其中Mi、Mj分别是M的第i棵和第j个棵子树,行为模式的提取方法如下:
S3.1、M是行为模式,BP=M;
S3.2、设I={M1<v1>,...,Mn<vn>}是M中分别以v1,...,vn为根结点的子树集合,v1,...,vn的父结点为
Figure BDA0002497453710000043
,子树M1<v1>,...,Mn<vn>均是行为模式,BP=Mi|i≥1;
S3.3、若M是一棵顺序行为树,且M的子树之间是顺序关系,则
Figure BDA0002497453710000044
是行为模式,BP=→(Mi<vi>,Mj<vj>)|j>i;
若M是一棵顺序行为树,且M的子树之间是循环关系,则
Figure BDA0002497453710000046
是行为模式,
Figure BDA0002497453710000047
S3.4、若M是一棵非顺序行为树,则
Figure BDA0002497453710000048
是行为模式,
Figure BDA0002497453710000049
Figure BDA00024974537100000426
等于∨或∧;
S3.5、对每棵子树Mi循环上述步骤,直至Mi等于空。
进一步地,所述的步骤S4过程如下:
S4.1、计算家族内每个行为特征的权重值,并使用ρ表示,ρ的计算方法如下:
Figure BDA00024974537100000410
式中,
Figure BDA00024974537100000411
表示行为特征
Figure BDA00024974537100000412
在家族θ中的权重,
Figure BDA00024974537100000414
表示行为特征
Figure BDA00024974537100000415
在家族θ中的出现频率,
Figure BDA00024974537100000417
表示行为特征
Figure BDA00024974537100000418
对于家族θ的逆频率,
Figure BDA00024974537100000420
表示在家族θ中包含行为特征
Figure BDA00024974537100000422
的样本数目,D(θ)是家族θ所拥有的样本数目,
Figure BDA00024974537100000425
表示除了家族θ外,行为特征在其它家族的BF之和,q表示其它家族,v为训练集中的恶意软件家族数目;
S4.2、确定恶意软件家族的行为特征数目k,设家族θ的行为特征数目为k(θ),k(θ)等于家族θ内单个恶意软件的行为特征的数目平均值乘以一定比例Θ,计算公式如下:
Figure BDA0002497453710000053
式中,D(θ)是家族θ所拥有的样本总数目,|d(t,θ)|表示家族θ的第t个样本的行为特征数目,
Figure BDA0002497453710000058
表示家族θ所有恶意软件样本的行为特征数目之和,Θ为家族行为特征比例,Θ∈[0,1];
在每个家族中,保留权重值ρ最高的前k个行为特征构成家族行为特征。
进一步地,所述的步骤S5过程如下:
S5.1、计算恶意软件与家族之间的相似度:设m为恶意软件样本,则m与家族θ的相似度计算方法如下:
Figure BDA00024974537100000511
其中,sin(m,θ)表示恶意软件m和家族θ之间的相似度,H(m)为m的行为特征集合,N(θ)为恶意软件家族θ的带权重的行为特征集合,Σ(H(m)∩N(θ))是H(m)和N(θ)的交集的元素的权重之和,BPδ表示家族θ的第δ个行为特征,k表示家族θ的行为特征数目之和,如若恶意软件m包含家族θ的行为特征越多,并且行为特征在家族中的权重越高,则与该家族之间的相似度越大,sin(m,θ)∈[0,1];
S5.2、将样本m与每一家族的相似度构成相似度向量β,表达为:
β(m)=(sim(m,θ1),...,sin(m,θv))
上述m的相似度向量β(m)是长度为v的数值型向量,sim(m,θμ),1≤μ≤v,表示m与第μ个家族θμ的相似度。
进一步地,所述的步骤S6过程如下:
S6.1、将原始数据划分成训练集和测试集;
S6.2、设定家族行为特征比例Θ的基数及每次Θ递增的△t大小;
S6.3、计算所有样本的相似度向量,使用朴素贝叶斯分类算法在训练集上训练分类模型,并在测试集上对分类模型进行验证,评价指标包含分类准确率及预测时间;
S6.4、令Θ=Θ+△t,若Θ∈[0,1],则重复步骤S6.2-S6.4,记录家族分类准确率及预测时间;若Θ>1,则执行步骤S6.5;
S6.5、观察家族分类准确率及预测时间在Θ取值不同时形成的折线图,找到最佳Θ的取值,训练分类模型W。
进一步地,所述的家族行为特征比例Θ的期望值为0.2。
本发明相对于现有技术具有如下的优点及效果:
1.传统的基于序列的方法,如N-gram,LCS等,无法描述恶意软件执行时产生的API之间的控制结构,而不同控制结构下的API可能会有不同的行为语义,针对上述问题,本发明提出了基于树结构的恶意软件同源性分析方法,对恶意软件的行为提出了新的定义,以行为树的形式描述恶意软件的行为模型,从行为树中提取的行为模式作为恶意软件的行为特征,行为特征不仅包含了API,还包括了API所处的控制结构,有益于了解行为之间的关系。
2.API序列中常常存在重复的子序列,N-gram方法为了快速的获取特征,会对API序列进行去重处理,而API序列中存在的重复子序列往往是因为恶意软件中存在循环的结构而造成,因为重复的API调用也是恶意软件的一种重要行为特征,如若去除重复子序列,则可能失去对恶意软件行为的正确识别,针对此问题,本发明保留了重复结构,作为行为关系中的一种关系。
3.恶意软件作者为了躲避安全检测,往往会在代码中插入噪声API而不影响原有功能,导致原有的可用来检测的特征被破坏掉,针对噪声API问题,本发明的挖掘行为树的方法具有一定的抗噪性,当API调用序列中含有噪声API时,所挖掘的行为树有会有所变化,以噪声API的祖先结点为根结点的子树均会受到影响,但本发明从行为树上所提取的行为模式除了每棵子树外,还包含了子树之间的关系抽取,并通过计算家族内行为特征的权重,提取对家族贡献度大的行为特征构建成带权重的行为特征,提出了基于权重的恶意软件与家族相似度计算的方法,生成具有行为语义的相似度向量,削弱噪声API造成的影响。
附图说明
图1是本发明公开的一种基于行为树的恶意软件同源性分析方法的流程图;
图2是本发明实施例中从恶意软件Backdoor.MSIL.Bladabindi.auuu中挖掘行为树的过程示意图;
图3是本发明实施例从日志中挖掘行为树的过程示意图;
图4是本发明实施例从
Figure BDA0002497453710000071
中所提取行为模式的实例图;
图5是本发明实施例中不同比例下的准确率的折线图;
图6是本发明实施例中不同比例下的预测时间的折线图;
图7是本发明实施例中恶意软件家族分类的混淆矩阵示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例公开了一种基于行为树的恶意软件同源性分析方法,基本流程如图1所示,包括以下步骤:
T1、收集恶意软件执行时产生的API调用序列;
T2、将API调用序列转换成API日志,挖掘恶意软件的行为模型;
T3、基于行为树,提取恶意软件的行为特征;
T4、构建恶意软件家族的行为特征;
T5、计算恶意软件的相似度向量;
T6、对收集的数据进行分割,按照8:2的比例,分成训练集和测试集;
T7、基于朴素贝叶斯分类算法在训练集上构建分类模型W;
T8、利用分类模型W,完成恶意软件的家族分类。
本实施例中采用具有抗噪性的行为树表达画恶意软件的行为模型,同时,提出了一套基于行为模型的同源性分析方法,具体说明如下:
(1)对于家族内的样本,首先从行为树中提取样本的行为特征,行为特征中包含了API之间的控制结构。
(2)通过计算行为特征在家族中的权重,选择家族内具有区分度的行为特征,当行为特征在家族中出现的次数越多,且在别的家族中平均出现的次数越少时,行为特征在家族中的权重就越大,进而构建每个家族带权重的行为特征,家族行为特征数目等于同一个家族内样本的平均行为特征数目乘以一定比例,因为有些恶意行为需要较多不同的API协同完成,恶意软件在执行期间产生的API调用序列较长,而有些家族的恶意软件的目的实现只需要较少的API,因而不同的家族的恶意软件的在API调用数目上可能是不同的,恶意软件的行为特征数目与API调用数目相关,其次,可能存在不同的家族样本数目差别过大的情况,从而导致家族内的行为特征数目也相差过大,最后,每个样本中具有与家族同源的行为特征只会占一定的比例。
(3)基于带权重的行为特征计算恶意软件与家族的相似度,生成恶意软件的相似度向量。
(4)本发明选用朴素贝叶斯完成对恶意软件家族分类模型的构建,进而对未知家族的恶意软件进行分类预测,朴素贝叶斯分类算法假设属性之间是条件独立的,在本文中,相似度向量的每一维为恶意软件与各个家族的相似度,每一维度属性之间没有相关性,因此适用于朴素贝叶斯分类器。
本实施例中首先根据收集的恶意软件的执行时产生的API调用序列,从API调用序列中挖掘行为树,然后从行为树中提取出恶意软件的行为特征,并计算行为特征在家族中的权重值和家族行为特征的数目k,选取出权重最高的前k个行为特征组成恶意软件家族行为特征;再计算恶意软件与家族之间的相似度,建立相似度向量,最后将特征向量输入朴素贝叶斯分类算法模型中进行训练,从而构建分类模型,本方法的行为特征提取中考虑了恶意软件的控制结构,行为语义更加丰富,可以将恶意软件根据其特征归类为不同的恶意软件家族,分类效果较好。
实施例二
下面结合实施例二对本发明的特征和性能作进一步的详细描述。
本发明较佳实施例包括以下步骤:
T1、收集恶意软件执行时产生的API调用序列;
T2、将API调用序列转换成API日志,挖掘恶意软件的行为树;
T2.1、将API调用序列转换成API日志;
其中,API调用序列是由恶意软件在每次运行期间的所产生的API组成的集合,定义为S=<a1,a2,...,an>,其中ar,1≤r≤n代表第r个API调用,是一个二元组ar={time,label},time表示API被调用的时间,label为API调用的名称,n表示API调用序列S中由n个二元组组成,在API调用序列S中,API按照调用时间升序排序;
其中,API日志是由一个或多个恶意软件的API调用序列组成的集合,API日志表达为:Log={S1,...,Sg},其中Sz,1≤z≤g表示API日志Log的第z个API调用序列,g代表同一个恶意软件运行的次数;
API日志是挖掘行为树所必需的输入格式,在挖掘行为树之前,需要将每次执行产生的API调用序列按照定义规则转换成API日志;
T2.2、采用Inductive Miner算法,从API日志Log中提取行为信息,自动地构建描述恶意软件的行为树,还原恶意软件的执行过程;
行为的定义为
Figure BDA0002497453710000101
是行为关系的一个集合,→表示顺序、
Figure BDA0002497453710000102
表示循环、∧表示并行、∨表示互斥,其中B1,…,Bp也是行为,称为B的子行为,B1,…Bp通过行为关系
Figure BDA0002497453710000103
组成行为B,设Σ为恶意软件的API调用的集合,且ar∈Σ,ar本身是一种行为;
行为树是将行为模型划分成一系列的单入口单出口的行为模块,并按照行为关系嵌套组织成的树型结构,非叶子结点描述了API之间的行为关系,包括顺序、循环、并行、互斥四种关系,分别使用→、
Figure BDA0002497453710000104
∧、∨表示,叶子结点表示API或τ,τ是无声API且
Figure BDA0002497453710000105
表示空的API调用序列所对应的行为语义,常用于表示占位符。行为树采用递归的方式定义如下:a∈Σ∪{τ}是一棵只具有一个叶子结点的行为树,a表示API调用;设M1,...,Mn|n>0为n棵行为树,通过行为关系
Figure BDA0002497453710000106
的连接,
Figure BDA0002497453710000107
为一棵新的行为树,Μ1,...,Μn称为M的子行为树;根结点为→或
Figure BDA0002497453710000108
的树称为顺序行为树,根结点为∨或∧的树称为非顺序行为树,顺序行为树的左右子树的位置不可互换,非顺序行为树的左右子树位置互换后行为语义保持不变。
行为树包括叶子结点和内部结点,叶子结点表示API或无声API,内部结点表示运算符,运算符结点至少拥有两个子结点,运算符结点共有四种:顺序(→)、循环
Figure BDA0002497453710000111
互斥(∨)、并行(∧),四种类型的运算符结点定义了子树的执行关系。
如图2所示,是恶意软件Backdoor.MSIL.Bladabindi.auuu的API调用序列的部分序列构建行为树的过程。其中τ结点表示无声API。从行为树中可清晰直观的了解到,RegOpenKeyExW、RegQueryValueExW、RegCloseKey三个API总是一起出现,并且具有严格的前后顺序,此外,三个API结点所处的子树的是一个循环体,结合API的语义,可知该恶意软件在执行期间不断的读取注册表的值。
从API日志Log={<a,b,c>,<a,c,b>,<a,d,e>,<a,d,e,f,d,e>}中挖掘行为树的过程如图3所示,其中a、b、c、d、e代表具体的API调用,<a,b,c>表示某一次执行过程中所产生的API调用序列,则日志Log共有4个运行实例即API调用序列。
T3、基于行为树,提取恶意软件的行为特征;
行为模式是从具有p个子行为的行为B中提取的子行为之间的关系模式,记作BK,设
Figure BDA0002497453710000112
为p个子行为通过行为关系
Figure BDA0002497453710000113
形成的行为模式,B1,…,Bp为行为B的子行为,行为模式包含两种形式:(1)行为本身BK=B;(2)处于同一行为下的两个子行为形成的关系模式
Figure BDA0002497453710000114
其中Bx,By分别是B的第x个和第y个子行为,1≤x≤p,1≤y≤p。
行为特征是从恶意软件行为树中提取的行为模式,写作
Figure BDA0002497453710000115
Figure BDA0002497453710000116
Figure BDA0002497453710000117
为一棵拥有n棵子树的行为树,其中Mi,Mj分别是M的第i棵和第j个棵子树,行为模式的提取方法如下:
T3.1、M是行为模式,BP=M;
T3.2、设I={M1<v1>,...,Mn<vn>}是M中分别以v1,...,vn为根结点的子树集合,v1,...,vn的父结点为
Figure BDA0002497453710000127
,子树M1<v1>,...,Mn<vn>均是行为模式,BP=Mi|i≥1;
T3.3、设M是一棵顺序行为树,且M的子树之间是顺序关系,则
Figure BDA0002497453710000121
是行为模式,BP=→(Mi<vi>,Mj<vj>)|j>i;
设M是一棵顺序行为树,且M的子树之间是循环关系,则
Figure BDA0002497453710000122
是行为模式,
Figure BDA0002497453710000123
T3.4、设M是一棵非顺序行为树,则
Figure BDA0002497453710000124
是行为模式,
Figure BDA0002497453710000125
Figure BDA0002497453710000128
等于∨或∧。
T3.5、对每棵子树Mi循环上述步骤,直至Mi等于空。
提取恶意软件的行为特征的基本思想是:从API及API之间的控制结构定义行为,将行为树作为恶意软件行为模型的基础上,在行为树上提取子树及子树之间的关系,作为行为特征,提取恶意软件的行为特征是一个整体到局部的过程,行为特征结合了控制结构,不仅包含整体行为,还包含子行为以及子行为之间的关系。
如图4所示,从行为树
Figure BDA0002497453710000126
中提取的行为模式。处于不同控制结构下的API具有不同的行为语义,行为模式可发现到API所处的控制结构,有助于理解程序的真实行为,因此将从行为树中提取的行为模式作为恶意软件的行为特征。
当API序列中含有噪声时,所挖掘的行为树有会有所变化,以噪声API的祖先结点为根结点的子树均会受到影响,但本文从行为树上所提取的行为模式除了每棵子树外,还包含了子树之间的关系抽取,因此,对于其它不包含噪声API的子树形成的行为模式,不会受到影响。另外,挖掘行为树所使用的IM算法具有一定的抗噪性,通过噪声阈值的设定,在构造活动邻接图前,将出现频率低于噪声阈值的活动关系过滤掉,从而保证行为树上不存在过低频次的噪声API。
T4、构建恶意软件家族的行为特征;
T4.1、计算家族内每个行为特征的权重值,并使用ρ表示,ρ的计算方法如下:
Figure BDA0002497453710000131
式中,
Figure BDA0002497453710000132
表示行为特征
Figure BDA0002497453710000133
在家族θ中的权重,
Figure BDA0002497453710000135
表示行为特征
Figure BDA0002497453710000136
在家族θ中的出现频率,
Figure BDA0002497453710000138
表示行为特征
Figure BDA0002497453710000139
对于家族θ的逆频率,
Figure BDA00024974537100001311
表示在家族θ中包含行为特征
Figure BDA00024974537100001313
的样本数目,D(θ)是家族θ所拥有的样本数目,
Figure BDA00024974537100001316
表示除了家族θ外,行为特征在其它家族的BF之和,q表示其它家族,v为训练集中的恶意软件家族数目
T4.2、确定恶意软件家族的行为特征数目k,设家族θ的行为特征数目为k(θ),k(θ)等于家族θ内单个恶意软件的行为特征的数目平均值乘以一定比例Θ,计算公式如下:
Figure BDA00024974537100001321
式中,D(θ)是家族θ所拥有的样本总数目,|d(t,θ)|表示家族θ的第t个样本的行为特征数目,
Figure BDA00024974537100001326
表示家族θ所有恶意软件样本的行为特征数目之和,Θ为家族行为特征所占的比例,Θ∈[0,1];
在每个家族中,保留权重值ρ最高的前k个行为特征构成家族行为特征。
T5、计算恶意软件的相似度向量;
T5.1、计算恶意软件与家族之间的相似度:设m为恶意软件样本,则m与家族θ的相似度计算方法如下:
Figure BDA0002497453710000141
其中,sin(m,θ)表示恶意软件m和家族θ之间的相似度,H(m)为m的行为特征集合,N(θ)为恶意软件家族θ的带权重的行为特征集合,Σ(H(m)∩N(θ))是H(m)和N(θ)的交集的元素的权重之和,BPδ表示家族θ的第δ个行为特征,k表示家族θ的行为特征数目之和,如若恶意软件m包含家族θ的行为特征越多,并且行为特征在家族中的权重越高,则与该家族之间的相似度越大,sin(m,θ)∈[0,1];
T5.2、将样本m与每一家族的相似度构成相似度向量β,表达为:
β(m)=(sim(m,θ1),...,sin(m,θv))
上述m的相似度向量β(m)是长度为v的数值型向量,sim(m,θμ),1≤μ≤v,表示m与第μ个家族θμ的相似度。
T6、对收集的数据进行分割,按照8:2的比例,分成训练集和测试集。
本实施例收集了43个家族的10620个恶意软件家族样本,一共包含955个不同的API。样本中每个家族的恶意软件数量不全相同,从每个家族内随机选取80%的样本组成训练集,每个家族剩下的20%样本构成测试集,训练集中共有8496个样本,测试集中有2124个样本。
T7、基于朴素贝叶斯分类算法对相似度向量进行训练,构建分类模型W;
T7.1、设定家族行为特征比例Θ的基数及每次Θ递增的Δt大小。
T7.2、计算所有样本的相似度向量,使用朴素贝叶斯分类算法在训练集上训练分类模型,并在测试集上对分类模型进行验证,评价指标包含分类准确率及预测时间。
T7.3、令Θ=Θ+△t,若Θ∈[0,1],则重复步骤T7.1-T7.3,记录家族分类准确率及预测时间;若Θ>1,则执行步骤T7.4。
T7.4、观察家族分类准确率及预测时间在Θ取值不同时形成的折线图,找到最佳Θ的取值,训练分类模型W。
其中分类准确率表示在所有测试样本中,预测家族正确的样本数所占的比例,计算公式为:
Figure BDA0002497453710000151
式中n为测试数据集的大小,所有的样本可分成v个家族:θ1,θ2,...,θμ,...,θv,TPμ(true positive,真正类)表示预测为第μ个家族θμ,实际也为家族θμ的样本数目;
在恶意软件API调用数据集上进行实验,得到在不同比例Θ下的准确率及预测时间,分别如图5和图6所示,根据实验结果,得出特征比例Θ取值为0.2时最佳。
T8、利用分类模型W,完成对测试集中恶意软件的家族分类。本实施例能将81.97%的样本进行正确归类。图7为恶意软件家族分类的混淆矩阵。
本实施例中,输入数据是恶意软件家族的相似度特征向量,输出结果是家族标签。
综上所述,本实施例提出了一种基于树结构的恶意软件同源性分析方法。一方面,从恶意软件运行时所调用的API序列发现API之间的控制结构,在控制结构层面描述恶意软件的行为,专注于发现行为之间的关系,提出了行为的概念,为恶意软件同源性分析领域提供了新的思路;另一方面,采用行为树刻画恶意软件的行为模型,对于家族内的样本,提取样本的行为特征,在一定程度上解决恶意软件动态分析中噪声API的问题。通过选择家族内具有区分度的行为特征,构建恶意软件家族的行为特征,在恶意软件家族的基础上计算样本与家族的相似度,构造恶意软件的相似度向量,最后采用朴素贝叶斯算法训练恶意软件家族分类模型。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (7)

1.一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的恶意软件同源性分析方法包括以下步骤:
S1、收集恶意软件执行时产生的API调用序列;
S2、将API调用序列转换成API日志,挖掘恶意软件的行为树;
S3、基于行为树,提取恶意软件的行为特征;
S4、构建恶意软件家族的行为特征;
S5、计算恶意软件的相似度向量;
S6、基于朴素贝叶斯分类算法对相似度向量进行训练和测试,构建分类模型W;
S7、利用分类模型W,完成恶意软件的家族分类。
2.根据权利要求1所述的一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的步骤S2过程如下:
S2.1、将API调用序列转换成API日志,所述的API调用序列是由恶意软件在每次运行期间的所产生的API组成的集合,定义为S=<a1,a2,...,ar,...an>,其中ar,1≤r≤n代表第r个API调用,是一个二元组ar={time,label},time表示API被调用的时间,label为API调用的名称,n表示API调用序列S中由n个二元组组成,在API调用序列S中,API按照调用时间升序排序;所述的API日志是由一个或多个恶意软件的API调用序列组成的集合,API日志的表达式为Log={S1,...,Sg},其中Sz,1≤z≤g表示API日志Log的第z个API调用序列,g表示同一个恶意软件运行的次数;
S2.2、采用Inductive Miner算法,从API日志Log中提取行为信息,构建描述恶意软件的行为树,还原恶意软件的执行过程;
所述的行为的定义为
Figure FDA0002497453700000021
是行为关系的一个集合,→表示顺序、
Figure FDA0002497453700000022
表示循环、∧表示并行、∨表示互斥,其中B1,…,Bp是行为B的子行为,B1,…Bp通过行为关系
Figure FDA0002497453700000023
组成行为B,设Σ为恶意软件的API调用的集合,且ar∈Σ,ar本身是一种行为;
所述的行为树是将行为模型划分成一系列的单入口单出口的行为模块,并按照行为关系嵌套组织成的树型结构,非叶子结点描述API之间的行为关系,包括顺序、循环、并行、互斥四种关系,分别使用→、
Figure FDA0002497453700000024
∧、∨表示,叶子结点表示API或τ,τ是无声API且
Figure FDA0002497453700000025
表示空的API调用序列所对应的行为语义,用于表示占位符;行为树采用递归的方式定义如下:a∈Σ∪{τ}是一棵只具有一个叶子结点的行为树,a表示API调用;设M1,...,Mn|n>0为n棵行为树,通过行为关系
Figure FDA0002497453700000026
的连接,
Figure FDA0002497453700000027
为一棵新的行为树,Μ1,...,Μn称为M的子行为树;根结点为→或
Figure FDA0002497453700000028
的树称为顺序行为树,根结点为∨或∧的树称为非顺序行为树,顺序行为树的左右子树的位置不可互换,非顺序行为树的左右子树位置互换后行为语义保持不变。
3.根据权利要求2所述的一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的步骤S3中的行为特征包括API调用之间的控制结构关系及API调用,恶意软件的行为特征从行为树中提取而得;
所述的行为模式是从具有p个子行为的行为B中提取的子行为之间的关系模式,记作BK,设
Figure FDA0002497453700000029
为p个子行为通过行为关系
Figure FDA00024974537000000210
形成的行为模式,B1,…,Bp为行为B的子行为,行为模式包含两种形式:(1)行为本身BK=B;(2)处于同一行为下的两个子行为形成的关系模式
Figure FDA0002497453700000031
Figure FDA0002497453700000032
其中Bx,By分别是B的第x个和第y个子行为,1≤x≤p,1≤y≤p;
所述的行为特征是从恶意软件行为树中提取的行为模式,写作
Figure FDA0002497453700000033
Figure FDA0002497453700000034
Figure FDA0002497453700000035
为一棵拥有n棵子树的行为树,其中Mi、Mj分别是M的第i棵和第j个棵子树,行为模式的提取方法如下:
S3.1、M是行为模式,BP=M;
S3.2、设I={M1<v1>,...,Mn<vn>}是M中分别以v1,...,vn为根结点的子树集合,v1,...,vn的父结点为
Figure FDA0002497453700000036
子树M1<v1>,...,Mn<vn>均是行为模式,BP=Mi|i≥1;
S3.3、若M是一棵顺序行为树,且M的子树之间是顺序关系,则
Figure FDA0002497453700000037
是行为模式,BP=→(Mi<vi>,Mj<vj>)|j>i;
若M是一棵顺序行为树,且M的子树之间是循环关系,则
Figure FDA0002497453700000038
是行为模式,
Figure FDA0002497453700000039
S3.4、若M是一棵非顺序行为树,则
Figure FDA00024974537000000310
是行为模式,
Figure FDA00024974537000000311
Figure FDA00024974537000000312
等于∨或∧;
S3.5、对每棵子树Mi循环上述步骤,直至Mi等于空。
4.根据权利要求1所述的一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的步骤S4过程如下:
S4.1、计算家族内每个行为特征的权重值,并使用ρ表示,ρ的计算方法如下:
Figure FDA0002497453700000041
式中,
Figure FDA0002497453700000042
表示行为特征
Figure FDA0002497453700000043
在家族θ中的权重,
Figure FDA0002497453700000044
表示行为特征
Figure FDA0002497453700000045
在家族θ中的出现频率,
Figure FDA0002497453700000046
表示行为特征
Figure FDA0002497453700000047
对于家族θ的逆频率,
Figure FDA0002497453700000048
表示在家族θ中包含行为特征
Figure FDA0002497453700000049
的样本数目,D(θ)是家族θ所拥有的样本数目,
Figure FDA00024974537000000410
表示除了家族θ外,行为特征在其它家族的BF之和,q表示其它家族,v为训练集中的恶意软件家族数目;
S4.2、确定恶意软件家族的行为特征数目k,设家族θ的行为特征数目为k(θ),k(θ)等于家族θ内单个恶意软件的行为特征的数目平均值乘以一定比例Θ,计算公式如下:
Figure FDA00024974537000000411
式中,D(θ)是家族θ所拥有的样本总数目,|d(t,θ)|表示家族θ的第t个样本的行为特征数目,
Figure FDA00024974537000000412
表示家族θ所有恶意软件样本的行为特征数目之和,Θ为家族行为特征比例,Θ∈[0,1];
在每个家族中,保留权重值ρ最高的前k个行为特征构成家族行为特征。
5.根据权利要求1所述的一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的步骤S5过程如下:
S5.1、计算恶意软件与家族之间的相似度:设m为恶意软件样本,则m与家族θ的相似度计算方法如下:
Figure FDA00024974537000000413
其中,sim(m,θ)表示恶意软件m和家族θ之间的相似度,H(m)为m的行为特征集合,N(θ)为恶意软件家族θ的带权重的行为特征集合,∑(H(m)∩N(θ))是H(m)和N(θ)的交集的元素的权重之和,BPδ表示家族θ的第δ个行为特征,k表示家族θ的行为特征数目之和,如若恶意软件m包含家族θ的行为特征越多,并且行为特征在家族中的权重越高,则与该家族之间的相似度越大,sim(m,θ)∈[0,1];
S5.2、将样本m与每一家族的相似度构成相似度向量β,表达为:
β(m)=(sim(m,θ1),...,sim(m,θv))
上述m的相似度向量β(m)是长度为v的数值型向量,sim(m,θμ),1≤μ≤v,表示m与第μ个家族θμ的相似度。
6.根据权利要求1所述的一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的步骤S6过程如下:
S6.1、将原始数据划分成训练集和测试集;
S6.2、设定家族行为特征比例Θ的基数及每次Θ递增的△t大小;
S6.3、计算所有样本的相似度向量,使用朴素贝叶斯分类算法在训练集上训练分类模型,并在测试集上对分类模型进行验证,评价指标包含分类准确率及预测时间;
S6.4、令Θ=Θ+△t,若Θ∈[0,1],则重复步骤S6.2-S6.4,记录家族分类准确率及预测时间;若Θ>1,则执行步骤S6.5;
S6.5、观察家族分类准确率及预测时间在Θ取值不同时形成的折线图,找到最佳Θ的取值,训练分类模型W。
7.根据权利要求4至6任一所述的一种基于行为树的恶意软件同源性分析方法,其特征在于,所述的家族行为特征比例Θ的期望值为0.2。
CN202010422541.9A 2020-05-19 2020-05-19 一种基于行为树的恶意软件同源性分析方法 Active CN111737694B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010422541.9A CN111737694B (zh) 2020-05-19 2020-05-19 一种基于行为树的恶意软件同源性分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010422541.9A CN111737694B (zh) 2020-05-19 2020-05-19 一种基于行为树的恶意软件同源性分析方法

Publications (2)

Publication Number Publication Date
CN111737694A true CN111737694A (zh) 2020-10-02
CN111737694B CN111737694B (zh) 2023-04-25

Family

ID=72647475

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010422541.9A Active CN111737694B (zh) 2020-05-19 2020-05-19 一种基于行为树的恶意软件同源性分析方法

Country Status (1)

Country Link
CN (1) CN111737694B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116028936A (zh) * 2023-02-24 2023-04-28 山东云天安全技术有限公司 一种基于神经网络的恶意代码检测方法、介质及设备
US11899791B2 (en) 2021-09-29 2024-02-13 International Business Machines Corporation Automated identification of malware families based on shared evidences

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555385B1 (en) * 2011-03-14 2013-10-08 Symantec Corporation Techniques for behavior based malware analysis
CN104866765A (zh) * 2015-06-03 2015-08-26 康绯 基于行为特征相似性的恶意代码同源性分析方法
WO2017094377A1 (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 分類方法、分類装置および分類プログラム
CN107169355A (zh) * 2017-04-28 2017-09-15 北京理工大学 一种蠕虫同源性分析方法和装置
US20170270299A1 (en) * 2016-03-17 2017-09-21 Electronics And Telecommunications Research Institute Apparatus and method for detecting malware code by generating and analyzing behavior pattern
CN107315956A (zh) * 2017-06-12 2017-11-03 东莞理工学院 一种用于快速准确检测零日恶意软件的图论方法
CN109525577A (zh) * 2018-11-09 2019-03-26 四川大学 基于http行为图的恶意软件检测方法
CN110263538A (zh) * 2019-05-13 2019-09-20 重庆大学 一种基于系统行为序列的恶意代码检测方法
US20200074081A1 (en) * 2018-08-28 2020-03-05 AlienVault, Inc. Malware clustering based on analysis of execution-behavior reports

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555385B1 (en) * 2011-03-14 2013-10-08 Symantec Corporation Techniques for behavior based malware analysis
CN104866765A (zh) * 2015-06-03 2015-08-26 康绯 基于行为特征相似性的恶意代码同源性分析方法
WO2017094377A1 (ja) * 2015-11-30 2017-06-08 日本電信電話株式会社 分類方法、分類装置および分類プログラム
US20170270299A1 (en) * 2016-03-17 2017-09-21 Electronics And Telecommunications Research Institute Apparatus and method for detecting malware code by generating and analyzing behavior pattern
CN107169355A (zh) * 2017-04-28 2017-09-15 北京理工大学 一种蠕虫同源性分析方法和装置
CN107315956A (zh) * 2017-06-12 2017-11-03 东莞理工学院 一种用于快速准确检测零日恶意软件的图论方法
US20200074081A1 (en) * 2018-08-28 2020-03-05 AlienVault, Inc. Malware clustering based on analysis of execution-behavior reports
CN109525577A (zh) * 2018-11-09 2019-03-26 四川大学 基于http行为图的恶意软件检测方法
CN110263538A (zh) * 2019-05-13 2019-09-20 重庆大学 一种基于系统行为序列的恶意代码检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LIJUN ZHU; SHU LIU: "An experimental comparative study on three classification algorithms on unknown malicious code identification" *
余盛龙: "基于行为树的恶意软件同源性分析的研究" *
胥小波,张文博,何超,罗怡: "一种基于行为集成学习的恶意代码检测方法" *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11899791B2 (en) 2021-09-29 2024-02-13 International Business Machines Corporation Automated identification of malware families based on shared evidences
CN116028936A (zh) * 2023-02-24 2023-04-28 山东云天安全技术有限公司 一种基于神经网络的恶意代码检测方法、介质及设备
CN116028936B (zh) * 2023-02-24 2023-05-30 山东云天安全技术有限公司 一种基于神经网络的恶意代码检测方法、介质及设备

Also Published As

Publication number Publication date
CN111737694B (zh) 2023-04-25

Similar Documents

Publication Publication Date Title
CN110245496B (zh) 一种源代码漏洞检测方法及检测器和其训练方法及系统
CN106503558B (zh) 一种基于社团结构分析的Android恶意代码检测方法
Faraoun et al. Genetic programming approach for multi-category pattern classification applied to network intrusions detection
US20050246353A1 (en) Automated transformation of unstructured data
US11533373B2 (en) Global iterative clustering algorithm to model entities&#39; behaviors and detect anomalies
CN109543410B (zh) 一种基于语义映射关联的恶意代码检测方法
CN112883378B (zh) 图嵌入与深度神经网络相融合的安卓恶意软件检测方法
CN108491228A (zh) 一种二进制漏洞代码克隆检测方法及系统
Liu et al. RNN-VirSeeker: a deep learning method for identification of short viral sequences from metagenomes
CN115357904B (zh) 一种基于程序切片和图神经网络的多类漏洞检测方法
CN113297580B (zh) 基于代码语义分析的电力信息系统安全防护方法及装置
CN111737694A (zh) 一种基于行为树的恶意软件同源性分析方法
CN113360906A (zh) 可解释的基于图嵌入的Android恶意软件自动检测
CN111400713B (zh) 基于操作码邻接图特征的恶意软件族群分类方法
US20170220665A1 (en) Systems and methods for merging electronic data collections
CN116975881A (zh) 一种基于llvm的漏洞细粒度定位方法
Bai et al. A hierarchical transitive-aligned graph kernel for un-attributed graphs
CN116702157A (zh) 一种基于神经网络的智能合约漏洞检测方法
CN116361788A (zh) 一种基于机器学习的二进制软件漏洞预测方法
CN111079145B (zh) 基于图处理的恶意程序检测方法
CN116628695A (zh) 基于多任务学习的漏洞挖掘方法及装置
Alraddadi Detecting Security Bad Smells of Software by using Data Mining
CN113971282A (zh) 一种基于ai模型的恶意应用程序检测方法及设备
CN116502140B (zh) 一种基于控制流图相似性的加密算法识别方法及装置
Zou et al. Tritor: Detecting Semantic Code Clones by Building Social Network-Based Triads Model

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