基于机器学习的安全态势预测方法

2024-03-12 05:34黄少忠
广东通信技术 2024年2期
关键词:项集态势时空

[黄少忠]

1 引言

网络安全态势感知是指在大规模网络环境中,通过采集网络安全数据的指标并进行特征提取后,借助特征对当前和未来可能发生的网络安全事件进行预警,从而实现网络安全系统的主动防御[1]。随着网络的发展,攻击手段日益变化且层出不穷,提前感知网络安全态势与威胁,可帮助管理人员提前部署防御措施,增强网络的自卫能力。然而,由于网络安全数据呈现大规模、多特征、多源异构的特点,给现有的网络安全态势预测增加了巨大的挑战[2]。早期的网络安全态势采取数理统计的方法[3~6]进行评估与预测,该方法综合考虑影响网络安全的因素,通过构建评估函数实现网络安全态势的评估。由于网络攻击手段具有复杂性、多特征、动态变化的特点,传统的数理统计方法很难应对动态多变的网络攻击手段,进而无法保障网络安全态势评估的精度。因此,学者们开始采用知识推理的手段实现网络安全态势的评估,该方法基于先验知识构建评估模型[7~10],然后结合后验知识不断修正网络安全态势评估模型,从而实现网络安全态势的动态评估。但是,知识推理的手段过于依赖先验知识,从而导致模型的训练和更新效率过于缓慢,不利于提高算法效率。如今,以卷积神经网络[11,12]、自动编码器[13~15]为代表的机器学习算法的兴起,为网络安全态势评估的精度和效率提供了一些新的思路。然而,典型的机器学习算法并没有充分考虑攻击序列数据中存在的时序性,导致模型未能充分学习数据序列之间的表征关系,因此无法有效应对欺骗攻击等网络攻击行为。基于此,本文提出基于机器学习的安全态势预测方法,该方法结合数据时序性对数据进行关联规则学习并形成数据间的时序性关联,结合注意力机制挖掘攻击序列数据的时空特征,实现网络安全态势预测。

2 相关知识

2.1 机器学习

机器学习是现代计算领域的一个重要领域,为了使机器智能化,机器学习开始引入“人工智能”去学习和解决问题[16]。机器学习的算法大约分为以下几种:

(1)梯度下降算法

梯度下降算法采用迭代的方式通过计算函数的偏导(或称为函数的斜率、梯度)实现函数目标最小化。在每次迭代过程中,梯度下降算法通过学习率(步长)来减少系数在迭代过程中的变动值,以便经过多次迭代后达到函数的最小值。典型的梯度下降算法包括:随机梯度下降法(SGD,Stochastic Gradient Descent)、批量梯度下降法(BGD,Batch Gradient Descent)和小批量梯度下降(MBGD,Mini-Batch Gradient Descent)。

(2)线性回归算法

线性回归算法作为监督机器学习算法的一种,利用变量之间的线性关系进行建模并实现预测。然而,由于采集手段的缺乏,线性回归模型往往很难拟合现实世界中各种变量的关系,更何况在现实世界中的关联关系往往都是非线性的,因此线性回归算法无法很好处理复杂的变量关系。

(3)多元回归分析算法

为了解决线性回归算法的局限性,提出了多元回归分析算法认为现实世界中存在多个独立变量和一个输出变量之间存在多对一的关系,因此在输入多个独立变量之后,能够更好描述输入变量和输出变量之间的线性关系。

(4)逻辑回归算法

逻辑回归作为非线性回归的代表,其通常用来处理分类问题。逻辑回归不仅可以用于处理二分类问题,还可以用于处理多分类问题,通常来说,逻辑回归不受数据中小噪音和多重共线性的应先给,因此通常用来预测疾病的风险。然而,逻辑回归算法不擅长解决非线性拟合问题,容易出现过拟合现象。

(5)决策树

为了解决非线性拟合的问题,一种有监督的机器学习方法被提出,这就是决策树。决策树基于一定参数连续分割数据来解决分类和回归问题并具有高效性。然而,决策树也有自身的局限,那就是容易出现过拟合和模型参数不稳定的现象。

(6)支持向量机

支持向量机采用超平面作为决策边界来处理非线性拟合的问题。由于支持向量机采用了核函数泛化的方法来处理数据分类的问题,因此其很少存在过拟合的现象。然而,支持向量机在大规模数据分类模型构建时容易出现效率较低的现象,并很难找到合适的核函数。

(7)贝叶斯学习

贝叶斯学习基于先验概率分布去训练一个初始模型后,借助观测值更新得到后验分布,再结合后验分布去更新初始模型以避免模型出现过拟合的现象。然而,贝叶斯模型在学习过程中假设先验概率分布具有独立性,但是在现实世界中,所有的输入特征彼此独立的假设是很难成立的。

(8)K近邻算法

作为一种分类算法,K近邻不需要假设分类数量,因此它通常称为一种非参数分类模型。由于K近邻的分类一般依赖样本之间的距离,因此当样本存在多个特征维度时,其计算复杂度往往较高。然而,K近邻算法在分类过程中容易受到噪音和不相关因素的影响,所以其分类精度容易受到样本数据质量的影响。

(9)k-means算法

作为无监督分类算法,k-means算法在处理大规模数据时展现了它的效率优势。然而,该算法需要事前定义分类数量和初始类簇中心点,在大规模数据聚类过程中,每一次聚类的结果会存在不同程度的差异,因此无法确定最终的聚类结果。

(10)反向传播算法

反向传播算法通常用于深度学习,其采用反向传播与随机梯度下降结合使用的方式来逼近神经元的权重。该算法具有易于适应场景和有效处理噪音数据的影响的特点,但由于神经元数量较多,导致该算法需要拟合的参数也是海量的,因此该算法训练时间通常较长。除此之外,反向传播算法对每一个局部信息定义的权重是一样的,因此无法针对关键的局部信息赋予更高的权重以便于提高分类过程中的效率。为了解决该问题,学者提出了注意力机制[17~18]。

2.2 注意力机制

注意力机制是2017年由A.Vaswani提出的,通过主动捕捉输入样本的输入和输出之间的关联关系,从而对不同的内容分配不同的注意力权重矩阵。具体如图1所示:

图1 注意力机制

如图1所示,输入数据ai经过注意力机制模型学习后输出的结果为bi,bi是通过在多个时间序列学习中筛选出与其关联性较大的信息进行整合,具体的计算流程如下。

首先,初始化权重矩阵,并基于初始化的权重定义以下向量:

其中,Wq、Wk、Wv分别表示3个向量对应的初始化权重矩阵。

然后结合每一对ai与bi对权重矩阵进行调整,最后实现对不同的内容分配不同的注意力权重矩阵。

3 基于机器学习的安全态势预测

3.1 基于告警序列数据的时序性关联分析

由于告警数据来源于多个设备,因此它们在告警时间、告警间隔和告警类型上会有一定的偏差,并且存在很多字段缺失以及重复告警的问题。在对告警序列数据的时序性进行关联分析之前,本文先删除缺失记录和剔除重复报警数据后,再采用聚类分析进一步剔除发生频率较低和时间集中度较低的告警序列,因为此类型的告警数据大多数是由于随机因素干扰所引起的虚假告警;最后,采用关联规则算法(如FP-tree)生成频繁项集,实现告警序列的时序性关联分析。具体的处理过程如图2所示。

图2 基于告警序列数据的时序性关联分析流程图

3.2 结合注意力机制挖掘攻击序列的时空特征

由于存在虚假攻击等因素的影响,对攻击序列频繁项集进行时空特征挖掘往往忽略时空特征不一致的问题,因此本文通过融合CNN和LSTM模型,结合注意力模型对攻击序列频繁项集的时空特征进行融合,从而使得特征不仅具有空间表达能力和时间表达能力,还能保持同种攻击类型所对应的攻击序列频繁项集具有时空特征一致性,如图3所示。

图3 结合注意力机制挖掘攻击序列的时空特征示意图

首先,基于卷积神经网络(CNN,Convolutional Neural Networks)实现空间特征C的挖掘,空间特征表示为1×n维:

其次,结合长短期记忆网络(LSTM,Long Short-Term Memory)实现时间特征H挖掘,时间特征表示为n×m维:

再次,结合注意力机制,保持时空特征的一致性问题,注意力机制能够在很大程度上解释差别较大的攻击序列频繁项集有可能在时空特征的表达上是一样的,因为注意力机制能够通过对局部特征进行有区别的赋值,所以针对虚假攻击的攻击序列,该方法往往忽略该序列的时间特征贡献。因此,在注意力机制下,会出现差别较大的攻击序列频繁项集的时空表达具有一致性的现象。

通过计算获取该序列在LSTM隐含层中的局部特征的权重赋值,并基于上述的权重获得该序列的时间特征,时间特征表示为1×n维。

将公式(4)、公式(7)的空间特征和时间特征进行拼接,得到时空特征为:

至此,引入注意力机制对时空特征表达进行有机融合,得到融合后的时空特征f。

4 实验分析

本实验采用仿真的方式构建安全态势仿真数据,攻击类型包括拒绝服务攻击、中间人攻击、SQL注入攻击(分别用1、2、3表示)3种,为了增加安全态势预测的难度,本实验在各类攻击过程中都会随机加入虚假攻击的步骤,以便干扰网络安全人员的判断。经过一系列的攻击模拟,获取攻击数据有531条,正常数据有149 854条。为了检验安全态势预测的准确率,本文将上述数据中的70%作为训练数据、30%作为测试数据,测试数据中所得到的攻击序列频繁项集时空特征经过支持向量机实现故障类型预测,安全人员基于当前故障类型预测结果判断当前网络的安全态势预测。

为了验证本文算法的性能,采用3种方法进行特征提取,将提取后的特征分别放入支持向量机中进行网络安全态势预测,这3种方法分别为:本文的融合注意力机制的时空特征一致性提取方法、CNN特征提取方法以及LSTM特征提取方法。准确性对比结果如图4至图6所示。

图4 故障1的准确预测情况对比

如图4所示,仿真实验测试数据集里故障1的数量为57,3种方法基于告警序列频繁项集的特征所预测到故障1的数量分别为44、16、37,准确率分别为77.2%、28.1%和64.9%。

如图5所示,仿真实验测试数据集里故障2的数量为47,3种方法基于告警序列频繁项集的特征所预测到故障2的数量分别为33、15、22,准确率分别为70.2%、31.9%和46.8%。

图5 故障2的准确预测情况对比

如图6所示,仿真实验测试数据集里故障3的数量为54,三种方法基于告警序列频繁项集的特征所预测到故障3的数量分别为40、20、21,准确率分别为74.1%、37%和38.9%。

图6 故障3的准确预测情况对比

由此可知,本文方法相比其他两种方法的故障预测准确率高,这源于本文算法通过注意力机制对不同频繁项集的对时空特征表达进行有机融合,在融合过程中,能够对虚假攻击的攻击序列的时间特征进行有效过滤,因此形成了较高的预测准确率。而在3种故障预测中,中间人攻击预测准确率较低,这可能源于中间人攻击不像拒绝服务攻击以及SQL注入攻击那样具有非常明确的攻击步骤,这两种攻击往往有目的性地对目标主机进行一系列“渗透”动作后才能完成攻击目的。

5 结束语

本文提出一种基于机器学习的安全态势预测方法,该方法针对现有算法对告警数据时空特征提取的不一致问题,在对数据进行关联规则学习并形成数据间时序性关联的基础上,采用注意力机制对告警序列频繁项集的局部特征进行有区别赋值,从而实现时空特征的有机融合。仿真结果表明,本文方法相较于传统的算法更能有效对抗虚假攻击,可以提升网络安全态势评估的准确率,为网络安全态势评估提供参考。

猜你喜欢
项集态势时空
跨越时空的相遇
镜中的时空穿梭
2019年12月与11月相比汽车产销延续了增长态势
汇市延续小幅震荡态势
我国天然气供需呈现紧平衡态势
玩一次时空大“穿越”
时空之门
县乡一体化探索呈加速态势
关联规则中经典的Apriori算法研究
一种频繁核心项集的快速挖掘算法