本发明属于计算机防病毒技术领域。
背景技术:
网络中恶意代码数量在爆发式增长,2015年AV-Test的统计数据显示,平均每天新发现的恶意样本数量已经超过30万个。面对海量的恶意样本,机器学习已经成为恶意行为检测领域的主流技术。但是,攻击者为了躲避检测,在不断地升级恶意行为。目前机器学习模型存在退化问题,固定的阈值在初始阶段检测率高,随着攻击行为躲避技术的改进和变化,检测率不断的退化。所以需要一种不需要设定固定阈值的检测方法,能够根据用户可接受的错误概率,给出分析结果,应对恶意行为的不断变异。
技术实现要素:
本发明目的是解决现有技术中存在的检测模型识别率随时间快速退化的问题,提供一种基于可信度的网络恶意行为检测方法。该方法在不需要设定固定阈值的情况下,根据用户可接受的错误概率,通过统计分析网络行为的可信度,实现对网络恶意行为的检测。
本发明的技术方案
基于可信度的网络恶意行为检测方法,包括如下步骤:
第1步、本发明涉及的一些基本概念:
(1)网络恶意行为:本发明中的网络恶意行为是指,以数据包为载体的,在未明确提示用户或未经用户许可的情况下,通过网络对用户计算机或其他终端进行的、侵犯用户合法权益的恶意行为;大量的网络恶意行为的集合为网络恶意行为集合。
(2)不一致性度量函数:描述一个测试样本与一组样本的不一致性,输入是一组样本和一个测试样本,输出是一个数值,也叫做不一致性得分。不同测试样本与同一组样本的不一致性得分之间可以进行比较。得分越高,说明样本与该组样本越不一致,得分越低,说明样本与该组样本越一致。
(3)统计量p-value:描述一个样本的不一致性得分在一组样本中的百分位,取值范围在0到1之间,从统计的角度刻画一个样本与一组样本的相似性。
第2步、网络行为特征的提取
第2.1、确定网络行为的表示粒度,其中包括:数据包级粒度,每个数据包表示一个网络行为;NetFlow级粒度,一个网络连接过程的所有网络数据表示一个网络行为;应用级粒度,一个应用过程的所有数据包表示一个网络行为。
第2.2、选择网络行为的特征点f;根据不同的数据集,可以选择不同的网络行为特征点f,例如,与时间相关的特征点包括:时间戳、持续时间、间隔时间、周期和频率等;与体积相关的特征点包括:发送数据包数、接收数据包数、发送字节数、接收字节数和数据熵等;与协议相关的特征点包括:TCP、UDP、HTTP、DNS和SSH等;与拓扑结构相关的特征点包括:源IP地址、目的IP地址、源端口号、目的端口号、端口号的分布和端口号集合的熵等。
第2.3、提取特征点,将网络行为抽象成特征向量V;在可选网络行为特征点中,选择n个特征点组成特征向量V(f1,f2,...fn),使用所选的n个特征点作为网络行为的抽象表示,将二进制的网络数据映射成特征点组成的特征向量V(f1,f2,...fn);
第2.4、网络恶意行为集合的特征矩阵表示;网络恶意行为集合中包含了N个网络恶意行为,每个网络恶意行为都使用第2.3步中相同结构的特征向量表示,结构相同的特征向量组合成网络恶意行为特征矩阵C;特征矩阵的每一列表示一个特征点、每一行表示一个网络恶意行为的特征向量;
第3步、网络行为与网络恶意行为一致性度量
第3.1、确定不一致性度量函数A(V,C);不一致性度量函数的输入是网络行为特征向量V和网络恶意行为特征矩阵C,返回值是V与C的不一致得分s。不一致性度量函数A可以是任何可以表示不一致性的函数,例如常见的距离函数,计算特征向量V与网络恶意行为特征矩阵C的距离作为不一致得分;
第3.2、计算网络行为特征向量V和网络恶意行为特征矩阵C中向量的不一致性得分;将被检测的网络行为特征向量V放入网络恶意行为特征矩阵C中作为最后一个向量,组成新的特征矩阵C';依次从C'中取出特征向量Vi,使用不一致性度量函数计算特征向量Vi与取出Vi后的特征矩阵的不一致性得分si(i=1,2,……,n+1);最后,所有的N+1个向量都计算出不一致性得分;
第3.3、计算网络行为特征向量V相对于网络恶意行为特征矩阵C的统计量p-value。在第3.2步的计算中,网络行为特征向量V与网络恶意行为特征矩阵C的不一致性得分为sn+1。统计所有不一致性得分大于等于sn+1的特征向量的个数,并除以总向量个数N+1,得到网络行为特征向量V相对于网络恶意行为特征矩阵C的统计量p-value;
第4步、基于可信度的网络恶意行为检测
第4.1、用户给出可接受的可信度Conf;用户只接受准确率在Conf之上的检测结果;
第4.2、计算可接受的最大错误率1-Conf;
第4.3、如果网络行为特征向量V的p-value大于等于1-Conf,则预测该网络行为是网络恶意行为,这一预测的可信度为Conf;否则,报告该网络行为不是恶意行为。
本发明的优点和积极效果:
本发明不需要设定固定的检测阈值,用户只需输入可接受的检测准确率或者最高检测错误率。该方法可以根据恶意行为特征向量矩阵和被检测网络行为特征向量的统计规律,给出满足用户可信度的预测结果,可以有效缓解检测模型的退化,更好的应对网络恶意行为的变异、演变。
【附图说明】
图1基于可信度的网络恶意行为检测方法流程图。
图2是Rbot僵尸网络的NetFlow级行为数据。
图3是“持续时间平均值”特征。
图4是“时间间隔平均值”特征。
图5是“发送字节数平均值”特征。
图6是“接收字节数平均值”特征。
图7是“fft值”特征。
【具体实施方式】
本发明以检测僵尸网络为例进行具体说明。
1、网络恶意行为
1.1公开数据集CTU-13
(http://mcfp.weebly.com/the-ctu-13-dataset-a-labeled-dataset-with-botnet-normal-and-backgro und-traffic.html)共包含13个真实环境下所采集的数据,每一个监控环境中执行不同的恶意软件。RBot家族的恶意软件是目前最活跃的Bot程序软件,可以造成IRC攻击、DDos等多种恶意行为。本实验采用执行Rbot僵尸网络家族的恶意软件、被感染主机数目为10的环境下所采集的20个网络恶意行为的数据。
2、网络行为特征的提取方法
2.1、从1.1中的网络恶意行为中随机选取一个作为网络行为样本S。S的具体数据如图2所示。网络行为的表示粒度为NetFlow级。
2.2、根据数据集,选择五个不同的网络行为特征点f,分别为持续时间平均值、时间间隔平均值、发送字节数平均值、接收字节数平均值和fft值。
2.3、提取选择特征点,使用所选的5个选择的网络行为特征点作为网络行为的抽象表示,将二进制的网络数据映射成特征点组成的特征向量V。经计算,V(f1,f2,...f5)=(580.5,409.293106,58070449.67,0,105.6363636)。
2.4、其余19个网络恶意行为构成网络恶意行为集合,个数N=19。每个网络恶意行为都使用第2.3步中相同结构的特征向量表示,结构相同的特征向量组合成特征矩阵C。经计算,得到C=
网络恶意行为在五个特征上的分布情况如图3~图7所示。
3、网络行为与网络恶意行为一致性度量
3.1、选择BotFinder(http://www.cs.ucsb.edu/~vigna//publications/2012_CoNEXT_BotFinder.pdf)的度量函数作为不一致性度量函数A(V,C),将2.3中的网络行为特征向量V和2.4中的网络恶意行为特征矩阵C作为输入。由于BotFinder计算的是向量与矩阵之间的相似程度,所以返回的不一致性得分s实际为相似性得分,得分越高,说明越一致,得分越低,说明越不一致。
3.2、计算网络行为特征向量V和网络恶意行为特征矩阵C中向量的不一致性得分;将被检测的网络行为特征向量V放入网络恶意行为特征矩阵C中作为最后一个向量,组成新的特征矩阵C',经计算,C'=
依次从C'中取出特征向量Vi,使用不一致性函数计算向量Vi与取出Vi后的特征矩阵的不一致性得分si(i=1,2,……,20)。经计算,(s1,s2,……s20)=(1.3151,2.1346,1.3221,2.1347,1.8376,2.1346,1.3462,2.1345,1.3589,2.1346,1.3585,2.1346,1.3342,2.1346,1.3307,2.1346,1.8228,2.1346,1.1014,2.0066)。
3.3、计算网络行为特征向量V相对于网络恶意行为特征矩阵C的统计量p-value。在第3.2步的计算中,特征向量V与特征矩阵C的不一致性得分为s20=2.0066。由于BotFinder返回的是相似性得分,所以统计的是小于等于s20的特征向量的个数,个数为10。除以总向量个数20,得到特征向量V相对于特征矩阵C的统计量p-value为0.5。
4、基于可信度的网络恶意行为检测
4.1、假设用户给出可接受的可信度Conf为80%。
4.2、计算可接受的最大错误率是=1-Conf=0.2.
4.3、因为网络行为特征向量V的p-value大于等于4.2中1-Conf的值,所以预测该网络行为是恶意网络行为,这一预测的可信度为80%。