基于S-Kohonen的DoS攻击检测算法研究
2018-10-18,
,
(1.广州城建职业学院 信息工程学院,广州 510925;2.广州工商学院 计算机科学与工程系,广州 510800)
0 引言
拒绝服务(DoS)攻击属于现代最为多见的网络攻击行为,此攻击的主要目的是打击计算机及网络的正常服务能力,包括:1)DoS攻击,利用对攻击目标发送攻击数据包,从而有效降低网络及主机的资源,此种攻击也可以称之为数据包洪泛攻击;2)分布式拒绝服务(DDoS),属于DoS攻击的一种延伸,其通过因特网分布式连接,利用控制分布在网络计算机中产生大量数据包洪泛,实现网络和计算机的攻击[1]。目前入侵检测系统一般使用亡羊补牢工作模式,也就是在网络和计算机受到多次攻击之后,通过安全专业人员花费较多时间对攻击数据包进行全面的分析,并且对攻击特点进行有效总结[2]。但是此种工作模式具有两种缺点:1)通过工作人员手工实现攻击特点的总结,要求消费大量物力及人力;2)无法在发生攻击之后及时获取攻击特点实现防御,不能够降低攻击导致的危害[3]。基于此,本文研究了以S-Kohonen为基础的DoS攻击检测算法及技术。
1 S-Kohonen网络模型分析
S-Kohonen网络模型指的是没有监督的学习网络,属于自组织竞争型的神经网络,能够实现环境特点的自动识别,还能够实现自动聚类。S-Kohonen神经网络使用自组织特点的映射,并且对权值进行调整,在输入模式中通过神经元和网络相互连接,之后神经元就能够实现攻击的检测[4]。图1为S-Kohonen网络的二维网格结构。
图1 S-Kohonen网络的二维网格结构
S-Kohonen网络在工作过程中的主要原理为:在样本到网络中输入的时候,竞争层神经元的计算和输入样本的欧式距离最小的就是获胜神经元,对相邻神经元和获胜神经元权值进行有效的调整,使其和周围的权值与输入的样本相互接近。通过反复的训练,要求同类的神经元能够和权系数相互接近。在学习过程中,权值的学习速率及神经元的领域都在不断的降低,以此集中相同的神经元[5]。
S-Kohonen网络有两层,包括竞争层及输入层,二维网格节点属于神经元,输入层具有多个输入节点,使用j进行表示。S-Kohonen神经网络通过神经元实现拓扑结构的创建,神经元网络位置之间的联系和其关系具有密切的联系。
S-Kohonen算法步骤:
S-Kohonen神经网络的输出层每个节点都代表一类数据,因此,有多少节点就代表有多少数据类别。输出层与竞争层节点的网络权值互相联系,当在S-Kohonen网络中输入训练数据时,输入层、竞争层之间的权值、竞争层、输出层之间的权值需要根据实际应用进行调整。
1)数据归一化。数据的归一化采用函数mapminmax处理完成。在进行数据的归一化之前,新建一个excel导入需要训练的数据,利用excel相关功能对训练数据进行分类,并添加相应的标签,共将训练数据分成5类,然后随机将训练数据和测试数据实现排序,排序之后利用公式(1)实现训练数据和测试数据的归一化处理。
(1)
公式(1)中,ymin和ymax均为参数,没有定值,可以自行设置,通常默认为-1,1;
2)初始化。根据输入的数据的具体情况设置输入层、竞争层和输出层节点个数,设置节点个数之后,对竞争层的节点进行排序及设置相关的参数。输入向量X(k)=[x1(n),x2(n),…,xN(n)]T之后作为训练数据。权值向量为Wij(k)=[wi1(n),wi2(n),…,wiN(n)]T,i=1,2,…,M,j=1,2,…,N。令L为迭代总次数,设置初始学习速率α(0),选择邻域半径Nc(0)。
3)计算优胜节点。dj代表输入向量X(k)=[x1(n),x2(n),…,xN(n)]T与竞争层神经元j之间的距离。
(2)
用最小距离输入向量X(k)的竞争层神经元作为最佳输出神经元。根据公式(2)得到样本的最优节点,也就是和输入样本距离最短的竞争层节点。
4)权值调整。调整包含在其领域Nc(t)内的节点权系数和节点c,即:
Nc(t)=(t|find(norm(post,posc) t=1,2,…,n (3) Wij=Wij+η(Xi-Wij) (4) 公式(3)中,post代表神经元t的位置,posc代表神经元c的位置;norm计算不同神经元间的欧式距离;r为领域半径;η为学习速率,η随着进化次数的不断增多而呈现出线性下降的趋势。根据公式(4)对需要的优胜节点权值进行调整,改变学习速率和领域半径的值,使它们随着进程逐渐减小,从而不断拉近输入数据与节点的距离,最终完成神经网络的聚类功能。 5)判断算法是否结束,如果没结束则返回3)。 6)分类检测。随机对测试数据进行排序,再利用mapminmax函数实现归一化处理,数据处理好之后传输至训练好的S-Kohonen神经网络实现分类检测。 图2 DOS的攻击过程结构 DoS攻击方法在不断的发生变化,通过图2可以看出来,攻击发动人员对大量网络防御脆弱主机进行了控制,此主机没有防火墙的安装,还存在一定的软件安全漏洞,这致使其容易被攻击发动人员所控制,控制网络通过伪造源地址等多种方法还能够对受害的主机实现攻击流量的发送,另外,还可借助反射技术对其他的主机朝着目标主机进行攻击[6]。 在DoS攻击过程中,一般使用三种手段:第一种,使用虚假源IP地址;第二种,利用对僵尸网络进行控制,从而对目标主机进行请求的发送;第三种,实现反射攻击。完整DoS攻击主要由多种或者一种项目构成。 图3为分布的网络流量目的IP地址,通过图3可以看出来,在网络中,大部分的目的IP少次出现,并且分布并不均匀,以此就出现了网络流量目的IP地址重尾特点,也就是大量属性值只是出现了很少的次数,其中的源端口、源地址及目的端口都具有相同的重尾分布规律。网络流量分布特点能够对网络异常及工具进行有效的检测,考虑到异常会对网络流量端口及IP地址分布特点进行有效的检测,所以还要使用熵描述[7],图4为目的IP地址熵值的曲线。 图4 目的IP地址熵值的曲线 图3 分布的网络流量目的IP地址 表1为不同类型异常对于属性分布的特点,通过表1可以看出,不同类型攻击都会对目的IP地址分布特点产生一定的影响,由此,目的IP地址指的是实现网络流量攻击检测的良好属性,为了能够对此影响直观的表现出来,就选择网络入侵检测攻击较多的数据集实现不通过类型攻击对于网络流量的影响[8],详见图5。 表1 不同类型异常对于属性分布的特点 图5 属性不同熵值的变化曲线 通过图5可以看出,在受到DoS攻击的时候,目的端口属性就会具有集中性,从而降低目的IP地址熵值,而且还会出现大量的虚假源地址,以此分散源端口的属性,提高IP地址的熵值。 DoS攻击检测是一种异常检测算法,其主要就是对正常数据进行分析,得到正常数据模型,对需要检测的数据进行判断,从而对异常数据进行确定。因为DoS攻击检测使用自适应的检测模型[9],图6为自适应检测模型的工作原理。 图6 自适应检测模型的工作原理 在图6中,数据收集模块是根据数据收集策略实现网络数据的收集,之后对特征提取模块进行提交。特征提取模块使检测数据能够利用特定算法实现流量特点的转换,流量特点属于检测数据高层的抽象化。攻击检测模块以流量模型的判断是否正常为基础,以此出现检测的结果。自适应模型通过被保护网络环境中实现数据的收集,从而产生一开始检测模型,并且在积累大量数据之后,利用自学习能力模型的产生算法产生全新的检测模型[10]。 DoS检测的过程主要包括产生检测模型及检测攻击,在产生检测模型过程中,网络中原始数据就会被收集,并且得到相应的处理,而且还产生通过特征创建的聚类检测模型,在检测攻击过程中,就会产生流量特征,之后通过检测模型实现检测。图7为检测过程中的检测模型,其属于攻击检测基础。 图7 检测过程中的检测模型 DoS检测模型主要是将时间窗作为单位处理,实现记录的连接,也就是让网络数据以发生时间为基础,按照时间窗的形式进行相应的划分,使某个时间窗中的原始网络数据实现连接记录的恢复。DoS在所有时间窗中都实现检测,以此达到实时检测的目的。之后DoS通过关联算法使连接记录能够转变成为流量特点,DoS攻击属于群体网络的行为,从单一TCP连接记录来看较为正常,但是在短时间内会出现大量相同TCP连接,通过关联算法能够得到此种群体网络行为[11]。 在产生流量特点之后,就要使用聚类算法对正常流量特点聚类进行计算,之后以距离为基础实现异常判断。聚类算法将流量特点作为向量,服务类型等一系列属性属于向量分量。聚类处理结果就是将大量数据组合成为多个数据集合,其中的攻击数据就是小数据集合,详见图8: 图8 聚类的模型示意图 聚类算法能够产生模型,其算法为: d(i,j)= 其中的每个子集都表示一个聚类,每个聚类中数据距离比较近,不同聚类数据间距比较远,不同聚类通过中心值表示,利用聚类数据计算平均值得到中心值[12]。 为了验证本文方法的有效性,需进行仿真实验,本文实验测试在 Windows 7 操作系统上,处理器为AMD A10-5750M APU with Radeon(tm) HD Graphics 2.50 GHz,内存为 4.00 GB。实验在Matlab R2010 b 环境创建网络模型,对DoS、U2R、Probe、Data、R2L五种数据进行分析,它们属于现代攻击检测过程中使用最为全面的数据集。 为了分析本文提出的算法的有效性检测Smurf攻击。当Smurf攻击出现时大量主机会同时向受害主机发送ICMP报文,由于该段时间内源地址数目会显显著增多,因此,会使系统的原有秩序会被打乱,使某一时段目的IP地址数目相对集中,产生新的大量的源IP地址或者原有的大量目的IP地址消失,影响受害主机的IP地址出现概率,最终改变网络流量的分布结构。 目前攻击过程检测方法中熵值的使用最为广泛,其属于对网络特点的有效描述,也是不确定特点的度量。熵值越大,随机性分布会越明显。熵值越小,便更加表现为集中式分布。在实验过程中使用三折较差验证,使样本集数据分成三组,每个子集数据中具有一次验证集,其他的子集数据为训练集[13]。 网络Smurf攻击的采集数据样本来自于KDP网络病毒数据库,采集相关的攻击数据构成测试集,在采样过程中测试集的采样率为fs=10 kHz ,网络攻击数据的特征分解带宽B=1000 Hz。 自相关匹配滤波器的参数为:初始步长μ0=0.001,θ2=0.45π,θ1=-0.3π,即 500 Hz。根据上述仿真环境和参数设定,得到的四组实验结果具体如下: 第一组实验中的结果详见图9,通过图9可以看出,在收集窗口一样的背景下,不同比例滑动窗口对于ABA算法检测性能不存在影响,并且具有一定的算法稳定性。该算法的检测率不高,处于90%~90.5%之间。 图9 不同滑动窗口的平均检测数 第二组实验的结果详见图10,通过图10可以看出,不同采样窗口对于算法都具有不同的影响,采样窗口越大,平均检测率越低,因为攻击突发网络信号流量在短时间中具有明显的抖动,影响了积累量特征值,对检测率有所降低 [14] 。 图10 不同收集窗口中算法的平均检测数 第三组实验的结构详见图11,通过图11可以看出,在1 s时间窗口中的sport检测率是最高的,在5 s和10 s时间窗口中的dip检测率最高。 图11 第三次的实验结果 通过以上分析可以看出,本文所研究的算法具有较高的精准度,正确率和运行时间上都较优,能够为网络管理工作人员提供可靠的响应时间,从而有效阻止网络攻击,具有良好的分类检测性能。 本文对S-Kohonen神经网络流程及缺点进行了全面的研究,并且实现了算法的优化,之后创建模型,能够有效提高攻击检测算法的检测效率。最后,本文使用试验验证的方法进行分析,通过结果表示,基于S-Kohonen网络的DoS攻击检测算法能够有效提高分类正确率,并且缩短训练时间,提高模型精度。2 DoS的攻击检测算法
3 基于S-Kohonen的DoS攻击检测
3.1 检测的原理
3.2 检测的过程
4 实验结果与分析
5 结束语