一种基于SA‑iForest的网络入侵异常检测方法与流程

文档序号:13075589阅读:499来源:国知局

本发明涉及网络安全领域,尤其是一种基于sa-iforest的网络入侵异常检测方法。



背景技术:

随着网络技术的飞速发展和网络规模的不断扩大,网络安全问题日趋严重。入侵检测作为维护网络安全的一项重要技术,俨然已成为信息安全领域一个重要的研究内容,获得了众多专家学者的广泛关注。入侵检测技术主要是通过分析相关的网络数据来判断系统中是否存在违背系统安全或安全策略的行为。

isolationforest算法的设计利用了异常数据的两个特征:极少且与众不同。即异常数据对象个数占数据集总体规模的比重较小,其次异常数据的属性值与正常的属性值相比存在明显差异。当在仅包含数值类型的训练集中,对数据对象进行递归地划分,直至每个数据对象都由一棵称为itree的二叉树与其他对象区别开来。显然异常对象距离树的根节点较近,即路径长度较短,反映了仅需少量条件就可将异常对象与其他对象区别。

与其他异常检测算法相比,isolationforest没有利用距离或密度来检测异常,这消除了基于距离和密度方法的计算量。利用异常数据少且与众不同的特点,使得它们与正常数据快速分离,具有较低的线性时间复杂度。虽然isolationforest算法在异常检测方面取得较好的效果,但仍存在一些不足之处:

(1)isolationforest算法对数据集进行异常检测的精确度与itree的数目相关,而构建大规模itree需要耗费大量内存,同时导致更大的计算。

(2)由于itree数量过多,itree之间的差异将越来越不明显,其异常检测的精确度参差不齐,存在一些性能较差的itree,造成了空间浪费。

(3)isolationforest算法基于单个计算节点设计,其处理的数据规模受内存最大容量限制,处理海量数据较为困难。



技术实现要素:

本发明要解决的技术问题是:提出一种基于sa-iforest的网络入侵异常检测方法,克服了传统的网络入侵检测方法检测精度低、泛化能力差等缺点。利用模拟退火的思想选择精度高和有差异性的itree来优化iforest,使得该算法泛化能力提高,进一步提高了预测性能,同时去掉冗余itree以减少iforest的存储空间、降低预测计算量、加快预测速度。

本发明的目的是这样实现的:

一种基于sa-iforest的网络入侵异常检测方法,其特征在于,包括如下步骤:

步骤一构建第一颗itree。网络入侵数据训练集dtrain={d1,d2,…,di,…,dn},其中di网表示为第i条网络入侵数据。络入侵数据属性集a={a1,a2,…,ai,…,am},其中ai表示为第i个属性。从属性集a中随机地选择k(k≤m)个属性构成子属性集a={a1,a2,…,ak},在a中随机选择一个属性aj,然后对每个网络入侵数据,按照属性aj的分裂值p进行划分。如果数据di的aj属性的属性值di(aj)<p,则放在左子树,反之则放在右子树。按此方式迭代地构造左、右子树,直至满足下列条件之一:

(1)dtrain中只剩下一条数据或多条相同的数据;

(2)树达到最大高度。

步骤二重复步骤一再构建l-1棵树组成初始森林t={t1,t2,…,tl},其中t表示l个itree的集合,ti表示第i棵itree。

步骤三用训练集dtrain对初始森林t进行训练,根据q-统计量法计算itree之间的差异值,用交叉验证法计算每棵itree的精度值acc。

acc={x1,x2,…,xl}

其中,q表示l个itree的差异矩阵;qij表示为初始森林中树ti与树tj之间的差异值;xj表示树tj的精确值。

如果任意两个itree独立,那么这两个itree的q统计量的值为0。q统计量的值在[-1,1]之间变化。q统计量的值越大,表示两个itree的差异度越小。极端情况,如果两个itree的q统计量的值为1,那么两个itree差异度为0。

步骤四初始化。取初始温度t0足够大,令温度t=t0,任取初始解t1。

步骤五对当前温度t,重复步骤43-步骤46。

步骤六对当前解t1随机扰动产生一个新解t2。

步骤七计算t2的增量df=f(t2)-f(t1),其中f(t1)为树t1的适应度值。

步骤八若df<0,则接受t2作为新的当前解,即t1=t2;否则按metropolis规则,计算t2的接受概率p,即随机产生(0,1)区间上均匀分布的随机数rand,若p>rand,也接受t2作为新的当前解,即t1=t2,否则保留当前解t1。

其中,κ为玻耳兹曼常数,exp表示自然指数。

步骤九如果满足设定的终止条件,则输出当前解t1为最优解,终止条件通常取为在连续若干个metropolis链中新解t2都没有被接受时终止或者是设定结束温度;否则按衰减函数衰减温度t后返回步骤42。所述衰减函数为:

其中,ts为第θ步时的温度值,t0为初始温度。

步骤十重复步骤43-步骤46,从初始森林t中选出l(l≤l)个具有较优适应值的itree组合成iforest。每棵itree的适应度函数关系如下式:

其中,f(tj)表示为树tj的适应度值。w1,w2分别表示精确度和差异性对应的权重。

步骤十一对待检测数据进行预测,计算待测数据d在每一棵itree的路径长度h(d)。

由于itree与二叉查找树的结构等价,所以包含数据d的叶节点的路径长度等于二叉查找树中失败查询的路径长度。二叉查找树中失败查询的路径长度:

c(n)=2h(n-1)-(2(n-1)/n)

其中,h(i)=ln(i)+γ,γ为欧拉常数。n为叶子节点数。c(n)为给定n时h(d)的平均值,使用它来标准化h(d)。待检测数据d的异常分数s(d,n)如公式所示:

其中,e(h(d))为itree集合中h(d)的平均值。

当e(h(d))→c(n)时,s(d,n)→0.5,即当所有数据均返回的s(d,n)≈0.5时,那么全部样本中没有明显的异常值;当e(h(d))→0时,s(d,n)→1,即当数据返回的s(d,n)非常接近于1时,那么它们是异常值;当e(h(d))→n-1时,s(d,n)→0,即当对象返回的s(d,n)远远小于0.5时,那么它们有很大的可能被评价为正常值。此时完成对网络入侵异常检测。

本发明首先通过对训练集随机选择属性训练出多棵itree,通过交叉验证计算出它们的异常检测精度,同时采用q-统计量计算出itree之间的差异性,然后把精确度和差异性作为itree挑选标准,选出比较优秀的itree来构建集成iforest,然后对测试集进行测试统计出其异常分值。该方法不仅减小了itree的集成规模而且利用模拟退火优化算法的快速收敛性来提高网络入侵异常检测效率,同时还提高了算法的泛化能力和预测性能。

附图说明

图1为本发明的一种sa-iforest算法流程图。

具体实施方式

本发明旨在提出一种基于sa-iforest的网络入侵异常检测方法,克服了传统的网络入侵检测方法检测精度低、泛化能力差等缺点。

如图1所示,本发明中的一种基于sa-iforest的网络入侵异常检测方法包括如下步骤:

步骤1:构建第一课itree。网络入侵数据训练集dtrain={d1,d2,…,di,…,dn},其中di表示为第i条网络入侵数据。网络入侵数据属性集a={a1,a2,…,ai,…,am},其中ai表示为第i个属性。从属性集a中随机地选择k(k≤m)个属性构成子属性集a={a1,a2,…,ak},在a中随机选择一个属性aj,然后对每个网络入侵数据,按照属性aj的分裂值p进行划分。如果数据di的aj属性的属性值di(aj)<p,则放在左子树,反之则放在右子树。按此方式迭代地构造左、右子树,直至满足下列条件之一:

(1)dtrain中只剩下一条数据或多条相同的数据;

(2)树达到最大高度。

步骤2:重复步骤1再构建l-1棵树组成初始森林t={t1,t2,…,tl},其中t表示l个itree的集合,ti表示第i棵itree。

步骤3:用训练集dtrain对初始森林t进行训练,根据q-统计量法计算itree之间的差异值,用交叉验证法计算每棵itree的精度值acc。

acc={x1,x2,…,xl}

其中,q表示l个itree的差异矩阵;qij表示为初始森林中树ti与树tj之间的差异值;xj表示树tj的精确值。

如果任意两个itree独立,那么这两个itree的q统计量的值为0。q统计量的值在[-1,1]之间变化。q统计量的值越大,表示两个itree的差异度越小。极端情况,如果两个itree的q统计量的值为1,那么两个itree差异度为0。

步骤4:根据itree的差异性和精确度利用模拟退火算法从初始森林t中选出l棵适应度值较优的itree组合成iforest。每棵itree的适应度函数关系如下式:

其中,f(tj)表示为树tj的适应度值。w1,w2分别表示精确度和差异性对应的权重。

步骤4包括以下步骤:

步骤41:初始化。取初始温度t0足够大,令温度t=t0,任取初始解t1。

步骤42:对当前温度t,重复步骤43-步骤46。

步骤43:对当前解t1随机扰动产生一个新解t2。

步骤44:计算t2的增量df=f(t2)-f(t1),其中f(t1)为树t1的适应度值。

步骤45:若df<0,则接受t2作为新的当前解,即t1=t2;否则按metropolis规则,计算t2的接受概率p,即随机产生(0,1)区间上均匀分布的随机数rand,若p>rand,也接受t2作为新的当前解,即t1=t2,否则保留当前解t1。

其中,κ为玻耳兹曼常数,exp表示自然指数。

步骤46:如果满足设定的终止条件,则输出当前解t1为最优解,终止条件通常取为在连续若干个metropolis链中新解t2都没有被接受时终止或者是设定结束温度;否则按衰减函数衰减温度t后返回步骤42。所述衰减函数为:

其中,ts为第θ步时的温度值,t0为初始温度。

步骤47:重复步骤43-步骤46,从初始森林t中选出l(l≤l)个具有较优适应值的itree组合成iforest。

步骤5:对待检测数据进行预测,计算待测数据d在每一棵itree的路径长度h(d)。

由于itree与二叉查找树的结构等价,所以包含数据d的叶节点的路径长度等于二叉查找树中失败查询的路径长度。二叉查找树中失败查询的路径长度:

c(n)=2h(n-1)-(2(n-1)/n)

其中,h(i)=ln(i)+γ,γ为欧拉常数。n为叶子节点数。c(n)为给定n时h(d)的平均值,使用它来标准化h(d)。待检测数据d的异常分数s(d,n)如公式所示:

其中,e(h(d))为itree集合中h(d)的平均值。

当e(h(d))→c(n)时,s(d,n)→0.5,即当所有数据均返回的s(d,n)≈0.5时,那么全部样本中没有明显的异常值;当e(h(d))→0时,s(d,n)→1,即当数据返回的s(d,n)非常接近于1时,那么它们是异常值;当e(h(d))→n-1时,s(d,n)→0,即当对象返回的s(d,n)远远小于0.5时,那么它们有很大的可能被评价为正常值。此时完成对网络入侵异常检测。

最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1