基于lstm和攻击者信息的攻击阶段预测方法

文档序号:191933 发布日期:2021-11-02 浏览:21次 >En<

阅读说明:本技术 基于lstm和攻击者信息的攻击阶段预测方法 (Attack phase prediction method based on LSTM and attacker information ) 是由 李童 李战士 杨震 于 2021-07-04 设计创作,主要内容包括:基于LSTM和攻击者信息的攻击阶段预测方法属于攻击预测领域。本发明通过LSTM系统收集较长一段时间内的网络攻击的警告信息;并对大量警告信息中攻击者的历史信息进行收集;对这些历史数据进行预处理来构造LSTM模型训练所需的训练集、验证集、测试集;然后利用训练集训练LSTM模型,利用验证集的损失来决定是否提前停止LSTM在训练集上的学习;最终所得的模型可以对预处理后的,输入数据进行预测,预测得到未来的下一次攻击在多阶段网络攻击中所处的步骤。(An attack phase prediction method based on LSTM and attacker information belongs to the field of attack prediction. The invention collects the warning information of network attack in a long period of time through the LSTM system; collecting historical information of attackers in a large amount of warning information; preprocessing the historical data to construct a training set, a verification set and a test set required by LSTM model training; then, training an LSTM model by using a training set, and determining whether to stop learning of the LSTM on the training set in advance by using the loss of a verification set; the finally obtained model can predict the preprocessed input data, and predict the steps of the next attack in the multi-stage network attack in the future.)

基于LSTM和攻击者信息的攻击阶段预测方法

技术领域

本发明涉及一种基于LSTM模型和攻击者历史信息的攻击预测方法,属于攻击预测领域。

背景技术

为了预测后续的攻击,通常需要记录攻击者的行为,并建立攻击的描述以供以后使用。Bou-Harb等人将网络攻击解剖为以下步骤:

1.网络扫描

2.枚举

3.入侵企图

4.提升权限

5.执行恶意任务

6.部署恶意软件/后门

7.执行恶意任务

8.删除证据并退出

许多类型的网络攻击遵循这个简单的事件序列,这可以在网络流量或目标系统上观察到。对正在进行的攻击的预测本质上非常简单。如果我们看到一系列符合攻击模型的事件,我们可以假设攻击将根据模型继续进行。因此,我们可以预测对手的下一步行动。然而,对攻击的模糊描述不能用于算法预测,因此,需要对攻击进行更正式的描述,例如,以攻击图的形式。此外,存在许多不同类型的攻击,因此需要为所有将要被预测的攻击创建一个模型。历史上,最初的方法依赖于攻击库,必须手动填充,这需要大量的努力和持续更新。因此,现代方法更多地依赖数据挖掘来自动生成攻击模式,用于攻击预测。攻击预测的方法和模型非常多,从离散模型(如攻击图)到连续模型(如时间序列),其中主要依赖于网络攻击的离散模型,以马尔可夫模型和隐马尔可夫模型为代表。使用离散模型进行攻击预测可以从已经观察到的恶意事件开始,也可以从网络中某个特定漏洞将被利用的概率开始。基于连续模型的攻击预测方法的例子是时间序列预测,它表示在某一时间内对某一系统或网络的一系列攻击的数量或概率。时间序列预测可以用来预测攻击是否会发生。较为先进的方法可以根据攻击的类型、攻击者和受害者的特征进行计算,从而估计出将会发生哪种类型的攻击,谁将成为攻击者。最近的预测方法通常包括非技术数据来源,例如基于社交网络信息、用户行为变化,从而克服了网络攻击的不可预测性。

发明内容

本发明技术解决问题:克服现有技术的不足,提出一种基于LSTM模型和攻击者历史信息的攻击预测方法,弥补现有技术的不足,具有较高的预测精度,所需数据维度较易获取。

基于LSTM和攻击者信息的攻击阶段预测方法,其特征在于包括以下步骤:

步骤一:首先收集所需预测的资产的历史警告数据;并对历史警告数据中出现的攻击者的历史攻击信息进行收集;

步骤二:然后通过对收集到的历史数据进行归一化的预处理,构造待训练的LSTM模型的训练样本数据和测试样本数据;

步骤三:通过训练样本数据得到预先训练的LSTM模型,然后通过构造的验证样本数据和测试样本数据微调训练得到的LSTM模型参数,F1指标达到0.75时,停止参数的微调,将微调后的LSTM模型作为攻击预测模型;

步骤四:将预处理后的目标资产的一段时间的历史数据作为LSTM模型的输入数据,通过LSTM模型对输入数据进行学习,最终LSTM模型输出得到未来可能收到的攻击的阶段。

本发明技术解决方案:一种基于LSTM模型和攻击者历史信息的攻击预测方法,步骤如下:

步骤一:首先收集所需预测的资产的历史警告数据。并对历史警告数据中出现的攻击者的历史攻击信息进行收集,收集一年的目标资产所受攻击的警告数据。并对该警告数据中攻击者的历史攻击信息进行收集,其中攻击者缺失的历史信息均补0处理。因为要预测下一次出现的网络攻击所在的阶段,所以训练时y为下一次出现的警告在所处多阶段攻击链条中所处的步骤序号。 LSTM模型的输入特征向量为n×32的矩阵,矩阵的n行分别为目标资产近n次所受网络攻击的相关数据,每一行分别由32个维度组成。全部维度可以分为 3部分。

第一部分由目标资产警告数据组成;第二部分为攻击时网络流量数据;第三部分为攻击者历史信息的数据。第一部分由目标资产警告数据可以得到维度:攻击开始时间start_time、攻击结束时间end_time、警告在所处多阶段攻击链条中所处的步骤序号、警告的方法序号、攻击者IP地址的四部分。通常,警告中的攻击开始时间和攻击结束时间通常为时间戳的数据格式,即 10位或13位的整数,其中10位为秒为单位,13位为毫秒为单位。后续以10 位的时间戳作为标准。

第二部分由攻击者的历史信息数据可以分为以下多个维度:根据网络攻击开始时间start_time的前5天的历史数据,每天的数据可以统计为以下维度,该警告信息中的攻击者从时间start_time-24×60×60~start_time统计全部的攻击次数(即从网络攻击开始时间的1天前,到网络攻击开始时间的攻击次数累计数量),该警告信息中的攻击者从时间start_time-24×60× 60~start_time-16×60×60统计全部的攻击次数(即从网络攻击开始时间的1天前,到网络攻击开始时间的8小时前攻击次数累计数量),该警告信息中的攻击者从时间start_time-24×60×60~start_time-16×60×60统计全部的攻击次数(即从网络攻击开始时间的1天前,到网络攻击开始时间的16小时前攻击次数累计数量),该警告信息中的攻击者从时间start_time- 16×60×60到start_time-8×60×60统计全部的攻击次数(即从网络攻击开始时间的16小时前,到网络攻击开始时间的8小时前攻击次数累计数量),该警告信息中的攻击者从时间start_time-8×60×60到start_time统计全部的攻击次数(即从网络攻击开始时间的8小时前,到网络攻击开始时间的攻击次数累计数量)。

第三部分由警告相关数据中攻击时网络流量数据主要可分为以下维度:连接持续时间(以秒为单位,连续类型。范围是[0,58329]。它的定义是从TCP连接以3次握手建立算起,到FIN/ACK连接结束为止的时间;若为UDP 协议类型,则将每个UDP数据包作为一条连接。)、源地址到目标地址的数据流量(从源主机到目标主机的数据的字节数,连续类型,范围是[0, 1379963888])、目标地址到源地址的数据流量(从目标主机到源主机的数据的字节数,连续类型,范围是[0,1379963888])、错误碎片的数目(错误分段的数量,连续类型,范围是[0,3])、加急包的个数(连续类型,范围是[0,14])、访问系统敏感文件和目录的次数(访问系统敏感文件和目录的次数,连续,范围是[0,101]。例如访问系统目录,建立或执行程序等。)、尝试登录失败的次数(登录尝试失败的次数。连续,[0,5])、root权限访问的次数(root用户访问次数,连续,[0,7468])、文件创建次数(文件创建操作的次数,连续, [0,100])、shell指令使用次数(使用shell命令的次数,连续,[0,5])、访问控制文件的次数(访问控制文件的次数,连续,[0,9]。例如对/etc/passwd 或.rhosts文件的访问。)。此外,还需要基于时间的网络流量统计特征,过去两秒内,与当前连接具有相同的目标主机的连接数(连续类型,[0,511])、过去两秒内,与当前连接具有相同服务的连接数(连续类型,[0,511])、过去两秒内,在与当前连接具有相同目标主机的连接中,出现“SYN”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同服务的连接中,出现“SYN”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同目标主机的连接中,出现“REJ”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同服务的连接中,出现“REJ”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同目标主机的连接中,与当前连接具有相同服务的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同目标主机的连接中,与当前连接具有不同服务的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同服务的连接中,与当前连接具有不同目标主机的连接的百分比(连续类型,[0.00,1.00])。

步骤二:然后通过对收集到的历史数据进行预处理,构造待训练的LSTM 模型的训练样本数据和测试样本数据,构造待训练的LSTM模型的输入特征向量,并按照80%,10%,10%的比例划分为训练样本数据、验证样本数据、测试样本数据。

步骤三:通过训练样本数据得到预先训练的LSTM模型,然后通过构造的验证样本数据和测试样本数据微调训练得到的LSTM模型参数,通过进一步修正LSTM模型参数,提高LSTM模型精度,将该修正后的LSTM模型作为攻击预测模型。所使用的LSTM模型具有1个输入层、5个隐藏层,1个输出层。所述5个隐藏层使用LSTM单元,该单元具有三个门:输入门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻;输出们决定了单元状态的警告相关信息有多少输出到当前的输出值;遗忘门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻。所述5个隐藏层使用LSTM 单元,该单元具有三个门:输入门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻;输出们决定了单元状态的警告相关信息有多少输出到当前的输出值;遗忘门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻。所述LSTM单元具体公式表示如下:

ht=ottanh(ct)

其中σ为逻辑sigmoid函数。i,f,o,c,h分别为表示输入们、遗忘门、输出们、单元激活向量、隐藏层单元。分别为输入特征向量、隐藏层单元、单元激活向量与输入门之间的权重矩阵。分别为输入特征向量、隐藏层单元、单元激活向量与遗忘门之间的权重矩阵。分别为输入特征向量、隐藏层单元、单元激活向量与输出门之间的权重矩阵。分别为输入特征向量、隐藏层单元与单元激活向量之间的权重矩阵,所属权重矩阵均为对角矩阵;bi,bf,bc,bo分别为输入门、遗忘门、输出们、单元激活向量之间的偏差值,t作为下标时表示采样时刻,tanh作为激活函数。

此外预测目标是预测下一次产生的攻击类型,因此本专利选择分类交叉熵作为损失函数,此外输入的警告历史信息中包含时序信息,因此输出层的只取最后一个LSTM单元输出的矩阵:损失函数为

其中M代表类别的数量;代表变量(0或1),如果该类别和样本i的类别相同就是1,否则是0;表示观测样本i属于类别c的概率。

附图说明

图1为本专利的实现流程图

具体实施方式

如图1所示,本文具体实现如下:

警告相关数据采集:收集目标资产入侵检测系统反馈的网络攻击警告,获取目标资产一年的所受网络攻击的警告数据,其中LSTM模型的输入特征向量为n×32的矩阵,矩阵的n行分别为目标资产近n次所受网络攻击的相关数据,每一行分别由32个维度组成。因为要预测下一次出现的网络攻击所在的阶段,所以训练时y为下一次出现的警告在所处多阶段攻击链条中所处的步骤序号。训练集中X的全部维度可以分为3部分。

第一部分由目标资产警告数据组成;第二部分为攻击时网络流量数据;第三部分为攻击者历史信息的数据。第一部分由目标资产警告数据可以得到维度:攻击开始时间start_time、攻击结束时间end_time、警告在所处多阶段攻击链条中所处的步骤序号、警告的方法序号、攻击者IP地址的四部分。通常,警告中的攻击开始时间和攻击结束时间通常为时间戳的数据格式,即 10位或13位的整数,其中10位为秒为单位,13位为毫秒为单位。后续以10 位的时间戳作为标准。

第二部分由攻击者的历史信息数据可以分为以下多个维度:根据网络攻击开始时间start_time的前5天的历史数据,每天的数据可以统计为以下维度,该警告信息中的攻击者从时间start_time-24×60×60~start_time统计全部的攻击次数(即从网络攻击开始时间的1天前,到网络攻击开始时间的攻击次数累计数量),该警告信息中的攻击者从时间start_time-24×60× 60~start_time-16×60×60统计全部的攻击次数(即从网络攻击开始时间的1天前,到网络攻击开始时间的8小时前攻击次数累计数量),该警告信息中的攻击者从时间start_time-24×60×60~start_time-16×60×60统计全部的攻击次数(即从网络攻击开始时间的1天前,到网络攻击开始时间的16小时前攻击次数累计数量),该警告信息中的攻击者从时间start_time- 16×60×60到start_time-8×60×60统计全部的攻击次数(即从网络攻击开始时间的16小时前,到网络攻击开始时间的8小时前攻击次数累计数量),该警告信息中的攻击者从时间start_time-8×60×60到start_time统计全部的攻击次数(即从网络攻击开始时间的8小时前,到网络攻击开始时间的攻击次数累计数量)。

第三部分由警告相关数据中攻击时网络流量数据主要可分为以下维度:连接持续时间(以秒为单位,连续类型。范围是[0,58329]。它的定义是从 TCP连接以3次握手建立算起,到FIN/ACK连接结束为止的时间;若为UDP 协议类型,则将每个UDP数据包作为一条连接。)、源地址到目标地址的数据流量(从源主机到目标主机的数据的字节数,连续类型,范围是[0, 1379963888])、目标地址到源地址的数据流量(从目标主机到源主机的数据的字节数,连续类型,范围是[0,1379963888])、错误碎片的数目(错误分段的数量,连续类型,范围是[0,3])、加急包的个数(连续类型,范围是[0,14])、访问系统敏感文件和目录的次数(访问系统敏感文件和目录的次数,连续,范围是[0,101]。例如访问系统目录,建立或执行程序等。)、尝试登录失败的次数(登录尝试失败的次数。连续,[0,5])、root权限访问的次数(root用户访问次数,连续,[0,7468])、文件创建次数(文件创建操作的次数,连续, [0,100])、shell指令使用次数(使用shell命令的次数,连续,[0,5])、访问控制文件的次数(访问控制文件的次数,连续,[0,9]。例如对/etc/passwd 或.rhosts文件的访问。)。此外,还需要基于时间的网络流量统计特征,过去两秒内,与当前连接具有相同的目标主机的连接数(连续类型,[0,511])、过去两秒内,与当前连接具有相同服务的连接数(连续类型,[0,511])、过去两秒内,在与当前连接具有相同目标主机的连接中,出现“SYN”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同服务的连接中,出现“SYN”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同目标主机的连接中,出现“REJ”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同服务的连接中,出现“REJ”错误的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同目标主机的连接中,与当前连接具有相同服务的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同目标主机的连接中,与当前连接具有不同服务的连接的百分比(连续类型,[0.00,1.00])、过去两秒内,在与当前连接具有相同服务的连接中,与当前连接具有不同目标主机的连接的百分比(连续类型,[0.00,1.00])。数据预处理:在训练神经网络之前,需要对采集到的网络攻击警告向量进行归一化处理,就是将数据映射到[0,1]或[-1,1]区间,保证不同数据范围的输入数据发挥相同的作用。本发明中采用的归一化处理公式如下:

其中x为待归一化处理的原始数据,xmin,xmax分别为原始数据中的最小值和最大值,xnorm为归一化后数据。

归一化后,按照80%,10%,10%的比例划分为训练样本数据、验证样本数据、测试样本数据。

网络模型结构:通过训练样本数据得到预先训练的LSTM模型,然后通过构造的验证样本数据和测试样本数据微调训练得到的LSTM模型参数,通过进一步修正LSTM模型参数,提高LSTM模型精度,将该修正后的LSTM 模型作为攻击预测模型。所使用的LSTM模型具有1个输入层、5个隐藏层, 1个输出层。所述5个隐藏层均使用30个LSTM单元,该单元具有三个门:输入门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻;输出们决定了单元状态的警告相关信息有多少输出到当前的输出值;遗忘门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻。所述5个隐藏层使用LSTM单元,该单元具有三个门:输入门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻;输出们决定了单元状态的警告相关信息有多少输出到当前的输出值;遗忘门决定了上一时刻单元状态的警告相关信息有多少保留到当前时刻。所述LSTM单元具体公式表示如下:

ht=ottanh(ct)

其中σ为逻辑sigmoid函数。i,f,o,c,h分别为表示输入们、遗忘门、输出们、单元激活向量、隐藏层单元。分别为输入特征向量、隐藏层单元、单元激活向量与输入门之间的权重矩阵。分别为输入特征向量、隐藏层单元、单元激活向量与遗忘门之间的权重矩阵。分别为输入特征向量、隐藏层单元、单元激活向量与输出门之间的权重矩阵。分别为输入特征向量、隐藏层单元与单元激活向量之间的权重矩阵,所属权重矩阵均为对角矩阵;vi,bf,bc,bo分别为输入门、遗忘门、输出们、单元激活向量之间的偏差值,t作为下标时表示采样时刻,tanh作为激活函数。

此外预测目标是预测下一次产生的攻击类型,因此本专利选择分类交叉熵作为损失函数,此外输入的警告历史信息中包含时序信息,因此输出层的只取最后M个LSTM单元输出的矩阵:损失函数为

其中i代表样本,N代表样本总数,代表类别的数量;代表如果该类别和样本的类别相同就是1,否则是0;表示观测样本属于类别的概率,由LSTM 的输出经过Softmax函数计算得到。

网络训练:本专利训练时,初始化隐藏状态为0,将当前batch size的最终隐藏状态作为后续batch size的初始隐藏状态,每个batch size的尺寸均为 64。本发明中隐藏层参数在区间[-0.05,0.05]范围内随机初始化。dropout为0.2,降低过拟合的风险。优化器方面使用Adam更新参数。本发明中使用LSTM 模型训练1000epochs,学习率为0.001,训练每250epochs学习率乘系数1.1。在计算过程中采用上述分类交叉熵函数作为损失函数计算误差,并根据反向传播算法更新权重。训练时用训练集作为训练输入,验证集的数据在每迭代100epochs时,进行一次在验证集上的测试,当验证集上的损失值不再下降时,提前停止网络的训练。

最终将测试集按照30个样本为一组构建为矩阵,即可预测下一次可能发生的攻击步骤。

本发明所采用的方法利用、整合了警告的历史信息的时间序列关系和攻击在不同阶段发生的可能性的信息,此外我们引入了攻击者的历史信息通过攻击者的历史信息可以计算得到该攻击者后续继续进行攻击的可能性,提高了网络攻击预测的预测准确率,具有一定的使用价值。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电力系统输电断面极限传输容量预测方法、装置、电子设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!