1.基于长短期记忆和注意力模型的分布式拒绝服务攻击检测方法,包括以下步骤:
1)构建面向分布式拒绝服务攻击检测问题的网络结构;
2)对目标主机进行不同种类的DDoS攻击,包括ICMP Flood、Smurf Attack、SYN Flood、SYN‑ACK Flood;
3)抓包转发,获得受攻击主机的全部输入数据包并转发到检测主机;
4)预处理数据,检测主机将得到的数据包制作成模型输入的格式;
5)训练模型,将制作好的数据集输入模型进行训练;
6)进行攻击检测,将模型部署在检测主机上,并对网络数据流进行网络攻击检测。
2.如权利要求1所述的基于长短期记忆和注意力模型的分布式拒绝服务攻击检测方法,步骤1)所述的面向分布式拒绝服务攻击检测问题的网络结构包含交换机、目标主机、反射放大主机、攻击主机、客户主机和检测主机,由以上设备构成局域网,所有的主机均通过与交换机直接相连接入局域网,且主机之间互不相连。检测主机和目的主机连接同一个交换机,该交换机在这个网络结构里面除了实现将物理连接的设备进行网络互联的功能之外,还要把通过该交换机转发到目标主机的数据包进行抓包并发送到检测主机。而目标主机经过配置向其它主机提供服务,其它主机可以对目标主机发送报文达到访问的目的,目标主机充当了受害者的角色,受到其它主机的攻击。攻击主机具备运行攻击脚本的能力,反射放大主机可配置为攻击过程中的服务器(例如:域名服务器、时间服务器、网站服务器),为DDoS攻击提供反射放大的作用;客户主机负责在攻击的时候对目的主机进行特定的访问,以检验攻击是否成功,检测主机通过部署的检测算法对由交换机发送的数据进行检测。
3.在如权利要求2所述的基于长短期记忆和注意力模型的分布式拒绝服务攻击检测方法,其特征在于:步骤2)中,对步骤1)搭建的网络结构的目标主机进行DDoS攻击;首先根据DDoS的攻击类型,编写出对应的攻击脚本并在部署在攻击主机上,在同一时间段内所有的攻击主机向目标主机进行攻击;对目标主机进行DDoS攻击的具体步骤如下:
21)网络部署完成后,设置好所有的设备的IP地址及子网掩码,并关闭自动获得IP的功能;
22)针对所需要检测的DDoS攻击编写出对应的攻击脚本:对一种攻击编写出对应的一个攻击脚本,在编写完成之后在先在一个攻击主机上运行脚本,观察目标主机上的性能状况(cpu负荷、流量输入、服务相应时间),根据目标主机的表现对脚本进行调试,以达到最佳的攻击效果;
23)配置反射放大主机:在运行基于反射放大的DDoS攻击脚本之前,根据攻击的需要配置好所需要的反射放大主机。例如:在运行域名服务器放大攻击(DNS Amplification Attack)时,将反射放大主机配置为域名服务器;
24)在攻击主机上运行DDoS攻击脚本:将调试好的DDoS攻击脚本部署在每一个攻击主机上。所有攻击主机同一时间仅运行同一种攻击,目标IP地址设置为目标主机的IP地址,在进行每种攻击的同时,客户主机通过与攻击类型相同的协议对目标主机进行访问,只有达到客户主机无法访问目的主机或者目的主机响应具有明显的时延现象才能算攻击成功。
4.如权利要求3所述的基于长短期记忆和注意力模型的分布式拒绝服务攻击检测方法,其特征在于:所述步骤3)中,交换机中通过tcpdump软件对转发至目的主机的数据包进行抓包,并将数据包打包转发至检测主机,数据包采集包括:
31)建立交换机与检测主机的通信:开启交换机的SSH服务功能并配置IP,生成加密密钥,配置SSH管理的登入口令;在检测主机中安装Xshell软件,通过交换机中开启的SSH服务实现将交换机抓到的包传输至检测主机;
32)配置交换机和检测主机软件:在交换机中安装tcpdump软件,在检测主机中安装wireshark工具,通过Xshell软件远程连接交换机,并获取交换机的root权限;
33)对正常数据包进行抓包:在检测主机上的Xshell软件中输入在交换机抓包并回传至本地的命令,实现通过安装在交换机上的tcpdump软件对输入至目的主机的数据包进行抓包,并通过SSH服务传输至检测主机中的wireshark软件并保存在检测主机中指定文件夹。在抓包过程中所有的攻击主机和客户主机以正常的方式对目标主机所提供的服务正常访问,整个抓包持续时间由数据需求量决定;
34)对目标主机发动攻击:断开以交换机为局域网与外界的物理连接,以避免外部网络对攻击过程产生干扰以及防止攻击的运行干扰到外部网络。在完成步骤33)对正常数据包进行抓包之后,将步骤2)中的攻击按照一轮攻击仅实施一种攻击,且所有攻击主机同时向目的主机进行攻击的规则发动,每种攻击的过程将持续1小时再进行下一种攻击;
35)对异常数据包进行抓包:在攻击的同时,使用与步骤33)对正常数据包进行抓包时相同的命令对异常数据包进行抓包,并保存好的包进行记录,确定对应的攻击种类。
5.如权利要求4所述的基于长短期记忆和注意力模型的分布式拒绝服务攻击检测方法,其特征在于:步骤4)中将由步骤3)采集得到的数据包制作成模型输入的格式,并划分出训练集和测试集,具体步骤如下:
41)将数据包分类:将抓包得到的正常和异常数据包按照IP报文协议中的协议类型(ICMP、UDP、IP‑in‑IP、TCP等)进行划分,并将协议相同的数据包按照抓包的时间进行排序放在同一个文件夹,并附上是否为异常数据包的信息,记为yij,其中yij仅有0和1两个值,0代表正常数据包,1代表异常数据包;i表示第i种协议;j表示这种协议下的第j个包;
42)对数据包核心协议的首部进行处理:对每一类协议的数据包进行信息提取处理,按照IP数据包中的协议类型为标准,将使用该协议(ICMP、UDP、IP‑in‑IP、TCP等)的每个报文的首部提取出来,以二进制数进行保存(不同的协议首部数据长度可能不同,但是相同协议的首部数据长度相同),记为xij0,其中xij0表示的是每个数据包在这个步骤中保存的二进制值,i表示第i种协议;j表示这种协议下的第j个包;
43)对数据包的以太网帧头和IP报文进行处理:将每个数据包以太网的帧头中的目的MAC地址(48位)和源MAC地址(48位)总共96位以二进制数的形式提取出来;将每个数据包IP报文中的服务类型(8位)、标识(16位)、标志(3位)、片偏移(13位)、生存时间(8位)、源IP地址(32位)、目的IP地址(32位)总共112位以二进制数的形式提取出来;将以上两部分数据分别保存,记为xij1、xij2,其中xij1表示的是每个数据包在以太网帧头中保存的二进制值,xij2表示的是每个数据包在IP报文中保存的二进制值,i表示第i种协议;j表示这种协议下的第j个包;
44)对数据包核心协议的数据部分进行处理:对每一类协议的数据包进行信息提取处理,按照IP数据包中的协议类型为标准,对使用该协议(ICMP、UDP、IP‑in‑IP、TCP等)的每个报文的数据部分进行统计;统计数据部分按照十六进制的编码方式时0~F的数量,并保存为如下所示的矩阵:其中xij3表示每个数据包在这个步骤中保存的矩阵,该矩阵由4行4列构成,i表示第i种协议;j表示这种协议下的第j个包;x0~xF代表数据部分以十六进制的编码方式时,0~F的数量(例如x0代表的是数据部分以十六进制的编码方式时,十六进制数0的个数);
45)将数据卷积处理:将步骤42)、步骤43)中对应保存的数据xij0、xij1和xij2分别转换为n×16、12×8、14×8的二维矩阵。然后将以上的三个二维矩阵分别进行不同的卷积计算得到三个4×4的矩阵,并将卷积后的矩阵替换xij0、xij1和xij2;
46)将数据融合:将步骤44)和步骤45)对应保存的数据xij0、xij1、xij2和xij3以及对应的标签yij融合,得到如下形式:(xij,yij)
其中 表示第i种协议的第j个包中的所提取出来的的数据,为一个4×4×
4的矩阵;而标签yij表示这第i种协议的第j个包是否为异常数据包;
47)制作数据集:将步骤46)中融合后的数据(xij,yij),按照抓包的时间顺序进行排列,并归为正常和异常两类,然后将异常的数据和正常的数据(xij,yij)在保证同类数据顺序不变的条件下,对两类数据进行随机交叉以达到混合的目的,在保证得到对应的该协议下的数据集:Di=(Xi,Yi)
其中Xi={xij},Yi={yij},i表示第i种协议。
6.如权利要求5所述的基于长短期记忆和注意力模型的分布式拒绝服务攻击检测方法,其特征在于:步骤5)中使用步骤4)处理得到的数据集对模型进行训练,并根据测试的结果调试模型参数,具体步骤如下:
51)划分数据集:将步骤4)得到的每一类协议产生的数据Di,在不扰乱顺序的情况下按照80%为训练集 和20%为测试集 进行划分;
52)构建模型:将LSTM和AM算法以并联的方式进行连接,连接的方式为:二者的输入层共同使用作为整个模型的输入层,但是二者输出层对应进行相加得到模型的输出,而模型的隐藏层为LSTM和AM的隐藏层并行得到;
53)训练模型:初始化第i种协议数据集Di的模型mi,自定义设置训练epoch次数、批次大小、优化器、学习率和损失函数,其中优化器采用随机梯度下降,学习率设置为初始0.1的cos余弦学习率、损失函数在交叉熵函数基础上添加了正则化参数为λ、模型训练目标表示为以下公式:其中p(·)表示样本的真实标签,q(·)表示模型的预测概率,xij表示i种协议输入的样本,φ表示模型参数,λ表示正则化系数;
训练结束后保存原始模型mi;
54)调试模型:将该协议对应的测试数据集 输入训练后的初始模型mi,通过计算得到对应的预测值的准确率;调整模型的参数,每次仅调整一项参数,调整后对模型进行训练,再进行测试得到这组参数下的准确率;不断重复这样的调参数、训练、测试的方式,得到一组准确率最高的参数,并获得该组参数下的模型mi;
55)获得所有协议种类的模型:对所有抓包并处理的数据集,重复步骤53)和步骤54),得到完整的针对DDoS攻击的检测模型M,其中M={mi}。
7.如权利要求2、3、4、5、6所述的基于长短期记忆和注意力模型的分布式拒绝服务攻击检测方法,其特征在于:步骤6)中,将模型进行部署在交换机中,并对网络数据流进行网络攻击检测,具体的步骤为:
61)配置目标主机流量警报系统:在交换机中安装Nagios软件并安装其附加程序NRPE,在检测主机中安装Nagios软件及用来实现网页展示的依赖软件;通过Nagios软件,将交换机配置为客户端,检测主机配置为服务端,对交换机中的各个端口进行监控;设定流量警报阈值,当流量超过阈值时,进行警报;
62)建立数据保存机制:将检测主机的wireshark设置为自动保存文件,且设置为每捕获1秒的数据就自动产生新的数据包文件,并在每生成两个这样的数据文件后自动删除最早的一个文件;
63)建立数据预处理程序:每隔一秒自动获取wireshark自动保存文件的文件夹中第一个文件,并按照步骤4)中的流程将最新抓到的1秒之内产生的所有数据包进行处理,得到能输入模型的数据Xi,并通过对每个数据包IP报文的协议部位进行数据提取,得到每个数据包对应的协议编码cij,得到数据集(Xi,Ci),其中Ci={cij},i表示的是第i个协议,j表示这种协议下的第j个包,并将数据保存在检测模型的输入数据存放的文件夹中;
64)模型优化:编写协议匹配函数,并在协议匹配后执行对应的检测操作,具体操作为:
以1秒循环一次的方式循环获取输入数据存放的文件夹中的最新数据(Xi,Ci),并作为该检测模型的输入。对输入的数据集(Xi,Ci)中的每一个cij做匹配,找到该数据(xij,cij),并将xij输入到第i类协议的检测模型mi中进行判断,得到对应的检测结果yij,由此可以判断这个数据是否为基于第i类协议下产生的异常数据,由此达到检测效果;
65)检测模型的自动化执行:通过编写python脚本程序,调用模块,打开步骤61)的目标主机流量警报系统,检测是否有报警事件发生,如果发生了报警事件,则在与交换机建立好SSH服务的检测主机的Xshell软件中输入预设定在脚本中的命令,实现将输入目标主机的流量进行抓包并传回检测主机。接着打开wireshark的数据自动保存,运行数据预处理程序,开启步骤64)优化后的模型。