首页> 中国专利> 一种基于多维度行为特征的恶意代码分类方法

一种基于多维度行为特征的恶意代码分类方法

摘要

一种基于多维度行为特征的恶意代码分类方法,其步骤为:S1:获得恶意代码的行为数据;S2:按照函数调用的顺序,计算相邻两个系统函数调用的时间差,构建系统函数调用的时间差信息表;S3:系统函数调用频度信息提取;从行为数据中提取系统函数调用的名称,统计每个系统函数调用的频度,建立系统函数调用的频度信息表;S4:行为分类频度信息提取;S5:将时间差信息表、系统函数调用的频度信息表、行为类别的频度信息表分别进行加权计算和归一化处理,处理时间差信息表特征,处理后合并成一新的特征空间;S6:对所有家族样本的行为特征,采用机器学习的典型分类方法,进行交叉验证。本发明具有原理简单、易实现、效果好等优点。

著录项

  • 公开/公告号CN106709349A

    专利类型发明专利

  • 公开/公告日2017-05-24

    原文格式PDF

  • 申请/专利权人 中国人民解放军国防科学技术大学;

    申请/专利号CN201611164764.X

  • 申请日2016-12-15

  • 分类号G06F21/56(20130101);

  • 代理机构湖南兆弘专利事务所(普通合伙);

  • 代理人周长清

  • 地址 410073 湖南省长沙市砚瓦池正街47号中国人民解放军国防科学技术大学计算机学院网络所

  • 入库时间 2023-06-19 02:16:22

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-29

    授权

    授权

  • 2017-06-16

    实质审查的生效 IPC(主分类):G06F21/56 申请日:20161215

    实质审查的生效

  • 2017-05-24

    公开

    公开

说明书

技术领域

本发明主要涉及到网络安全技术领域,特指一种基于多维度行为特征的恶意代码分类方法。

背景技术

随着计算机和网络技术迅速发展,恶意代码的数量呈现爆发式地增长,恶意代码的形态也愈发模块化和多样化,而恶意代码威胁的对象,已经从影响个人的电脑,发展到破坏国家的重要基础设施和社会的重要资产。恶意代码的防范,已经成为应对网络空间安全威胁的重点。

恶意代码分析是检测和防范恶意代码的重要基础。基于特征码和签名的恶意代码分析技术,在传统基于终端(主机)的恶意代码检测机制中发挥了重要的重要。然而,基于特征码和签名的恶意代码分析技术,既需要面对恶意代码数量增长带来的挑战,也需要面对需要大量人工参与分析的问题。因此,为了满足恶意代码自动分析的需求,以及应对恶意代码数量增长的挑战,恶意代码的分析检测正朝着基于云端的智能分析检测方向发展,机器学习和大数据分析技术的发展,促使恶意代码的分析检测朝着自动化分析检测和深度分析检测方面发展。

基于云端的智能分析检测技术包括基于静态的分析检测和基于动态行为的分析检测。静态分析通过程序的指令和结构来确定恶意代码的功能,其在不执行恶意代码的情况下,提取能够表达恶意代码样本的特征向量。然而,静态分析技术难以应对恶意代码采用的变种手段,如变形、多态、加壳等技术手段,从而使得静态分析技术在面对海量真实恶意代码样本时,往往变得失效。

动态分析技术通过收集恶意代码运行时的动态行为信息,如系统调用、网络访问、文件和内存修改等,基于动态行为信息进行恶意代码的分析检测。动态分析技术通过捕获恶意代码的真实行为信息进行行为分析判断来识别、检测恶意代码。基于机器学习方法对恶意代码的动态行为信息进行分类学习,是当前的研究热点。

恶意代码的动态分析提供了多维度的行为特征信息,提取多维度的行为特征,构建恶意代码的行为特征向量,设计行为深度分析的自动分析处理框架,是基于机器学习进行恶意代码动态行为分析研究的主要思路。然而,基于单一特征进行分类往往具有片面性,容易造成分类准确率的下降,而且恶意代码的特征向量存在特征维度多、单个特征维度高的特点,复杂的特征向量必然造成分类效率的下降。

因此,如何设计基于多维度行为特征的恶意代码分类技术,提高恶意代码行为分析的准确率是目前的主要研究热点。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种原理简单、易实现、效果好的基于多维度行为特征的恶意代码分类方法。

为解决上述技术问题,本发明采用以下技术方案:

一种基于多维度行为特征的恶意代码分类方法,其步骤为:

S1:获得恶意代码的行为数据;

S2:系统函数调用时间差信息提取;按照行为数据中函数调用的顺序,计算相邻两个系统函数调用的时间差,构建系统函数调用的时间差信息表;

S3:系统函数调用频度信息提取;从行为数据中提取系统函数调用的名称,统计每个系统函数调用的频度,建立系统函数调用的频度信息表;

S4:行为分类频度信息提取;

S5:将时间差信息表、系统函数调用的频度信息表、行为类别的频度信息表分别进行加权计算和归一化处理,并进一步处理时间差信息表特征,处理后合并成一个新的特征空间;

S6:对所有家族样本的行为特征,采用机器学习的典型分类方法,进行交叉验证。

作为本发明的进一步改进:所述步骤S1中的行为数据包括:函数调用名称、函数调用时间、输入参数、输出参数、函数执行结果、以及函数执行需要的上下文信息。

作为本发明的进一步改进:在上述步骤S5之后,输出为单个恶意代码的特征向量,同时这些向量自动归类,再以此作为构成样本家族的特征向量,用于训练以后的分类器。

作为本发明的进一步改进:所述训练的过程为:首先将样本集合随机分为测试集和训练集,并分别进行多维特征提取与处理;然后对训练集中特征进行标记,得到特征库并训练分类器;之后利用训练好的分类器对测试集进行分类,得到最后的分类结果。

作为本发明的进一步改进:所述步骤S4的具体流程为:

S4.1:定义恶意代码的行为类别;

S4.2:根据行为分类模型,对系统函数调用频度按照分类进行频率计算,建立恶意代码的行为类别频度信息表。

作为本发明的进一步改进:所述行为类别包括:文件行为类、注册表行为类、网络行为类、进程行为类、服务行为类、时间行为类、驱动行为类、GUI行为类、系统行为类;所述行为类别构成了恶意代码的行为分类模型。

作为本发明的进一步改进:所述步骤S5的具体流程为:

S5.1:采用基于TF-IDF方法对恶意代码的行为特征进行加权计算,计算方法如下:

设定t=(x1,x2,…xm)是恶意代码样本d中的维度为m的特征,N是训练集中所有样本的总数,n表示训练集中所有出现特征t的样本数,e表示恶意代码家族数目;TF-IDF方法计算特征t权重的具体实施过程如下:

S5.1.1:计算特征t对于每个特征家族ci的后验概率P(ci|t);P(ci|t)是家族ci中出现特征t的次数与整个待训练集中出现特征t的次数之比,t在每一个家族中的后验概率构成了在整个类别之间的分布;

S5.1.2:定义特征t的区分能力;为了表示特征t的家族区分能力,基于特征t对于每个家族的后验概率P(ci|t)定义特征t的区分能力为:

每个特征t基于TD-IDF加权后的权值为:

S5.1.3:利用权重w(t,d)对特征t进行加权;则加权公式如下所示:

tw=t×w(t,d)

即:

S5.2:对每个维度的特征值进行归一化处理;设定的最大值,则归一化公式如下所示:

即:

S5.3:进一步处理时间差信息表特征,得到具有分类能力的特征;

S5.3.1:计算时间差信息表中维度为m的特征的特征值之和fm

S5.3.2:计算时间差信息表中恶意代码家族ci对应m维度特征的特征值之和

S5.3.3:计算各个家族维度m的特征所占比例

S5.3.4:选出维度m相同时的最大值,设为ratiom

S5.3.5:设定阈值th1,当ratiom>th1时,保留维度为m的特征;

S5.3.6:设定阈值th2,当fm>th2时,保留维度为m的特征。

与现有技术相比,本发明的优点在于:本发明的基于多维度行为特征的恶意代码分类方,原理简单、易实现,其通过研究恶意代码的动态行为特征,将不同的角度的多维度行为特征进行分析处理,并利用机器学习进行准确分类,克服了在实际中存在的特征维度多,需要进行特征融合从而造成分类结果较差的情况,解决了传统恶意代码自动分析技术的不足,具备很好的应用前景,可以应用于恶意代码分析检测体系的后端分析检测系统中。

附图说明

图1是本发明方法的流程示意图。

图2是本发明在具体应用实例中恶意代码行为特征向量的提取流程示意图。

图3是本发明在具体应用实例中基于行为特征的分类流程示意图。

具体实施方式

以下将结合说明书附图和具体实施例对本发明做进一步详细说明。

如图1所示,本发明的基于多维度行为特征的恶意代码分类方法,其步骤为:

S1:行为数据提取,即获得恶意代码的行为数据。

S2:系统函数调用时间差信息提取。按照行为数据中函数调用的顺序,计算相邻两个系统函数调用的时间差,构建系统函数调用的时间差信息表。

S3:系统函数调用频度信息提取。从行为数据中提取系统函数调用的名称,统计每个系统函数调用的频度,建立系统函数调用的频度信息表。

S4:行为分类频度信息提取。

S5:将时间差信息表、系统函数调用的频度信息表、行为类别的频度信息表分别进行加权计算和归一化处理,并进一步处理时间差信息表特征,处理后合并成一个新的特征空间。

S6:对所有家族样本的行为特征,采用机器学习的典型分类方法,进行交叉验证。

在具体应用实例中,步骤S1中可以通过沙箱等方式,获得恶意代码的行为数据。行为数据的基本内容包括:函数调用名称、函数调用时间、输入参数、输出参数、函数执行结果、以及函数执行需要的上下文信息。

作为较佳的应用实例,本实例中步骤S4的具体流程为:

S4.1:定义恶意代码的行为类别,行为类别包括:文件行为类、注册表行为类、网络行为类、进程行为类、服务行为类、时间行为类、驱动行为类、GUI行为类、系统行为类、其他行为类等。行为类别构成了恶意代码的行为分类模型。

S4.2:根据行为分类模型,对系统函数调用频度按照分类进行频率计算,建立恶意代码的行为类别频度信息表。

作为较佳的应用实例,本实例中步骤S5的具体流程为:

S5.1:采用基于TF-IDF方法对恶意代码的行为特征进行加权计算,计算方法如下:

设定t=(x1,x2,…xm)是恶意代码样本d中的维度为m的特征,N是训练集中所有样本的总数,n表示训练集中所有出现特征t的样本数,e表示恶意代码家族数目。TF-IDF方法计算特征t权重的具体实施过程如下:

S5.1.1:计算特征t对于每个特征家族ci的后验概率P(ci|t)。P(ci|t)是家族ci中出现特征t的次数与整个待训练集中出现特征t的次数之比,t在每一个家族中的后验概率构成了在整个类别之间的分布。

S5.1.2:定义特征t的区分能力。为了表示特征t的家族区分能力,基于特征t对于每个家族的后验概率P(ci|t)定义特征t的区分能力为:

每个特征t基于TD-IDF加权后的权值为:

S5.1.3:利用权重w(t,d)对特征t进行加权。则加权公式如下所示:

tw=t×w(t,d)

即:

S5.2:对每个维度的特征值进行归一化处理。设定的最大值,则归一化公式如下所示:

即:

S5.3:进一步处理时间差信息表特征,得到具有较好分类能力的特征。

S5.3.1:计算时间差信息表中维度为m的特征的特征值之和fm

S5.3.2:计算时间差信息表中恶意代码家族ci对应m维度特征的特征值之和

S5.3.3:计算各个家族维度m的特征所占比例

S5.3.4:选出维度m相同时的最大值,设为ratiom

S5.3.5:设定阈值th1,当ratiom>th1时,保留维度为m的特征。

S5.3.6:设定阈值th2,当fm>th2时,保留维度为m的特征。

以下将结合一个具体应用实例,来对本发明的实际应用进行说明。本实例中的数据集来自4个家族共计599个恶意代码样本。

参见图2所示,为恶意代码多维特征向量的提取流程图。在提取恶意代码样本库文件的行为数据后,从时间、频度和行为分析方面对恶意代码样本的行为特征。对提取出的特征分别分析处理:(1)计算相邻两个系统函数调用的时间差,建立时间差信息表;(2)统计每个系统函数调用的频度,建立系统函数调用的频度信息表;(3)建立恶意代码的行为分类模型,而后对划分后的行为分类进行频率计算,建立行为类别的频度信息表。将时间差信息表、系统函数调用的频度信息表、行为类别的频度信息表分别进行加权计算和归一化处理,处理后合并成一个新的特征空间。该提取过程输出为单个恶意代码的特征向量,同时这些向量自动归类,再以此作为构成样本家族的特征向量,用于训练以后的分类器。

参见图3所示,为基于行为特征的恶意代码分类流程。首先将样本集合随机分为测试集和训练集,并分别进行多维特征提取与处理,然后对训练集中特征进行标记,得到特征库并训练分类器,之后利用训练好的分类器对测试集进行分类,得到最后的分类结果。本发明数据集带有标签,采用有监督学习的方法训练分类器,用KNN分类算法对恶意代码样本特征进行分类。

具体实施过程如下:

第一步:行为数据提取。

本实例中采用Pin插桩的方式获得每个恶意代码动态执行的行为记录,行为记录的基本内容包括:函数调用名称、函数调用时间、输入参数、输出参数、函数执行结果、以及函数执行需要的上下文信息。单个行为数据的表示如下:

第二步:系统函数调用时间差信息提取。

按照行为数据中函数调用的顺序,计算相邻两个系统函数调用的时间差,构建系统函数调用的时间差信息表。

选用0800毫秒作为单位来计算相邻函数调用动作发生时间差。根据时间差的数值,构造一个时间差频次字典。表1是单个样本时间差信息表所形成的部分展示,利用词典的索引号将不同的时间差形成向量,其中对应次数表示该时间差在样本中的出现次数。

表1 时间差信息表

时间差频次212421312101280668166726641130659-81611342-3821-751240

第三步:函数调用频度信息提取。

从行为数据中提取系统函数调用的名称,统计每个系统函数调用的频度,建立系统函数调用的频度信息表,得到单个样本的特征。

单个样本函数调用频度信息表部分展示如表2所示:

表2 函数调用频度信息表

第四步:行为分类频度信息提取。

步骤4.1:定义恶意代码的行为类别模型M={m1,m2,…,mS},形成恶意代码的行为类型集,其中S表示行为类型的数量;模型M包括的类别如下:文件行为类、注册表行为类、网络行为类、进程行为类、服务行为类、时间行为类、驱动行为类、GUI行为类、系统行为类、其他行为类等。

步骤4.2:根据行为分类模型M,对系统函数调用频度按照分类进行频率计算,建立恶意代码的行为类别频度信息表。

在分类模型M={m1,m2,…,mS}中,对于每种类型mi,其中1≤i≤S,均有相应的行为模式。如涉及到文件行为的函数有CreateFile、DeleteFileA/W、DeleteFileW、ReadFile、CloseFile等,可抽象出“删除自身”、“复制自身”、“释放文件”、“篡改文件”、“修改文件属性”、“搜索文件”等行为模式。

针对每种行为类型mi,采用统计学方法,统计每个恶意代码样本中mi的行为模式以及相关函数的出现频率,形成恶意代码的行为类别频度信息表。

第五步:将时间差信息表、系统函数调用的频度信息表、行为类别的频度信息表分别进行加权计算和归一化处理,并进一步处理时间差信息表特征,处理后合并成一个新的特征空间。

步骤5.1:采用基于TF-IDF方法对恶意代码的行为特征进行加权计算,计算方法如下:

设定t=(x1,x2,…xm)是恶意代码样本d中的维度为m的特征,N是训练集中所有样本的总数,n表示训练集中所有出现特征t的样本数。为了使加权计算的实施过程更加具有可操作性,现举例如表4所示。假设有三类恶意代码家族A、B、C,其中a、b、c分别为不同家族的恶意代码样本,恶意代码样本特征t1=(2,4),t2=(1,3),则N=3。则a特征包含(t1,t2),b特征包含(t2),c特征包含(t2),则

表4 恶意代码样本及其特征

采用TF-IDF方法计算特征t权重的具体实施过程如下:

步骤5.1.1:计算特征t对于每个特征家族ci的后验概率P(ci|t)。P(ci|t)是家族ci中出现特征t的次数与整个待训练集中出现特征t的次数之比,t在每一个家族中的后验概率构成了在整个类别之间的分布。

则P(A|t1)=1,

步骤5.1.2:定义特征t的区分能力。为了表示特征t的家族区分能力,基于特征t对于每个家族的后验概率P(ci|t)定义特征t的区分能力为:

则对于特征t1

对于特征t2

明显t1比t2拥有更好的类别区分能力。

每个特征t基于TD-IDF加权后的权值为:

其中tf(t1,b)=0,tf(t1,c)=0,tf(t2,b)=1,tf(t2,c)=1。

则可以计算得到:

同理可得w(t1,b)=0,w(t1,c)=0,w(t2,a)≈0.016,w(t2,b)=1,w(t2,c)=1。

步骤5.1.3:利用权重w(t,d)对特征t进行加权。

根据公式tw=t×w(t,d)有:

对于恶意代码样本a,

对于恶意代码样本b,

对于恶意代码样本c,

步骤5.2:对每个维度的特征值进行归一化处理。

根据公式进行归一化处理,有:

对于恶意代码样本a,

对于恶意代码样本b,

对于恶意代码样本c,

步骤5.3:进一步处理时间差信息表特征,得到具有较好分类能力的特征。

假设恶意代码样本a1,a2属于家族A,b1属于家族B,且其时间差信息表特征如下表所示:

表5 恶意代码时间差信息表特征

恶意代码样本维度1维度2维度3a1010.5a20.210.5b100.011

步骤5.3.1:计算时间差信息表中维度为m的特征的特征值之和fm

则有f1=0.2,f2=2.01,f3=2

步骤5.3.2:计算时间差信息表中恶意代码家族ci对应m维度特征的特征值之和

则有fA1=0.2,fA2=2,fA3=1,fB1=0,fB2=0.01,fB3=1

步骤5.3.3:计算各个家族维度m的特征所占比例

则有ratioA1=1,ratioA2=0.99,ratioA3=0.5,ratioB1=0,ratioB2=0.01,ratioB3=0.5

步骤5.3.4:选出维度m相同时的最大值,设为ratiom

此时,ratio1=1,ratio2=0.99,ratio3=0.5

步骤5.3.5:设定阈值th1,当ratiom>th1时,保留维度为m的特征。

设定阈值th1=0.7,则此时只保留维度1、2的特征。

步骤5.3.6:设定阈值th2,当fm>th2时,保留维度为m的特征。

设定阈值th2=0.3,则此时只保留维度2的特征。

第六步:对所有家族样本的行为特征,采用机器学习的典型分类方法,进行交叉验证。

本实例利中,基于Python提供的公知的keras模块进行分类的交叉验证,得到分类结果。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号