网管秘籍 防御DDoS攻击的实时监测模型
2017-11-30 来源:
拒绝服务攻击(DoS)和分布式拒绝服务攻击(DDoS)已经成为网络安全最大的威胁之一,如何防御DDoS攻击是当前人们关注的热点。然而目前的防御机制几乎没有实现DDoS攻击的实时监测。阐述了一种基于径向基函数的神经网络的实时监测模型,能够实时监测出DDoS攻击,不用增加网络流量,而且可以监测出目前所存在的所有类型的DDoS攻击。
1、前言
随着Internet的应用越来越广泛,随之而来的网络安全问题成了Internet发展的主要障碍,特别是分布式拒绝服务攻击对因特网构成了巨大的威胁。目前,由于黑客采用DDoS攻击成功地攻击了几个著名的网站,如雅虎、微软以及SCO,mazon.com、ebuy、CNN.com、BUY.com、ZDNet、Excite.com等国外知名网站,致使网络服务中断了数小时,造成的经济损失达数百万美元。DDoS攻击由于破坏性大,而且难于防御,因此它已经引起了全世界的广泛关注。阐述的DDoS实时监测模型,能够快速监测出主机或服务器是否在遭受DDoS攻击,如果监测出突然增加的数据流是攻击流的话,能够快速给网络管理员发出警报,采取措施从而减轻DDoS攻击所带来的危害。
2、DoS攻击原理
2.1、DoS攻击概念与原理
WWW安全FAQ[1]给DoS攻击下的定义为:有计划的破坏一台计算机或者网络,使得其不能够提供正常服务的攻击。DoS攻击发生在访问一台计算机时,或者网络资源被有意的封锁或者降级时。这类攻击不需要直接或者永久的破坏数据,但是它们故意破坏资源的可用性。最普通的DoS攻击的目标是计算机网络带宽或者是网络的连通性。带宽攻击是用很大的流量来淹没可用的网络资源,从而合法用户的请求得不到响应,导致可用性下降。网络连通性攻击是用大量的连接请求来耗尽计算机可用的操作系统资源,导致计算机不能够再处理正常的用户请求。
2.2、DDoS攻击的概念与原理
WWW安全FAQ[1]给DDoS攻击下的定义是:DDoS攻击是用很多计算机发起协作性的DOS攻击来攻击一个或者多个目标。用客户端/服务器模式,DDoS攻击的攻击者能够获得很好的效果,远比用多个单一的DOS攻击合起来的效果要好的多。它们利用很多有漏洞的计算机作为攻击平台和帮凶来进行攻击。DDoS攻击是最先进的DOS攻击形式,它区别于其它攻击形式是它可以在Internet进行分布式的配置,从而加强了攻击的能力给网络以致命的打击。DDoS攻击从来不试图去破坏受害者的系统,因此使得常规的安全防御机制对它来说是无效。DDoS攻击的主要目的是对受害者的机器产生破坏,从而影响合法用户的请求。
DDoS攻击原理如图1所示。
图1 DDoS攻击原理图
从图1可以看出,一个比较完善的DDoS攻击体系包括以下四种角色:
(1)攻击者:指黑客所用的机器,也叫做攻击主控台。它控制着整个攻击过程,向主控端发送攻击命令。
(2)主控端:是攻击者非法侵入并控制的一些机器,这些主机则控制大量的代理攻击主机。并在这些主控端上面安装特定的程序,以便使它可以接受攻击者发来的特殊命令,并且能够把这些命令发送到代理攻击端主机上。
(3)代理攻击端:同样也是攻击者侵入并控制的一批主机,其上面运行攻击程序,接受和运行主控端发来的命令。代理攻击端主机是攻击的执行者,真正的向受害者主机发送攻击。
(4)受害者:被攻击的目标主机或者服务器。
为了发起DDoS攻击,攻击者首先在互联网上扫描出有漏洞的主机,然后进入系统后在并在上面安装后门程序。接着在攻击者入侵的主机上安装攻击程序,其中的一部份主机充当攻击的主控端,另一部份则充当攻击的代理攻击端。最后各部分主机在攻击者操作下对攻击目标发起攻击。因为攻击者在幕后操纵,所以在攻击时攻击者不会受到监控系统的跟踪,攻击者的身份更不易被发现。
2.3、DDoS攻击的工具
Trinoo[2]是第一个分布很广的DDoS攻击工具而且应用也很广泛。Trinoo[3]是一个消耗带宽的攻击工具,用一个或者多个IP地址来发起协作性的UDP洪水攻击。攻击用同样大小的UDP数据包,攻击的目标是受害机器上的随机端口。早期版本的Trinoo支持源IP地址欺骗。典型的是,Trinoo代理安装在能够使得远端的缓冲区溢出的系统上。软件中的这个漏洞允许攻击者用受害者系统的二级缓存来进行远端编辑和安转运行代理。操作者用UDP或者TCP来和代理端进行通信,因此入侵检测系统只能通过对UDP流量进行嗅探才能够发现它们。这个通道能够加密而且密码也可以受到保护。然而当前的密码不是以加密的方式传送,因此它可以被嗅探,或者被检测出来。现在的Trinoo工具没有提供源IP地址欺骗,因此它的攻击能力可以进一步扩展。
Tribe Flood Network (TFN)[4]也是一种DDoS攻击工具,它提供给攻击者可以同时发起损耗带宽和损耗资源的攻击。它使用命令行界面在攻击者和控制主程序之间进行通信,但是在代理端和主控端间或者在主控端和攻击者之间提供的通信是没有加密的。TFN发起协作性的拒绝服务攻击,是非常难于计算出来因为它能产生多种类型的攻击,能产生欺骗的源IP地址的数据包而且能够使目标端口随机化。它能够欺骗一位或者是32位的源IP地址,或者是后8位。TFN发起的一些数据包攻击包括:smurf,UDP洪水攻击,TCP SYN洪水,ICMP 回复请求洪水攻击和ICMP定向广播。
TFN2K[5]是一种基于TFN结构的DDoS攻击工具。TFN2K攻击增加了对构成攻击的所有组成部分之间的通信消息进行了加密[6]。真正攻击者和控制主程序之间的通信用基于密钥的CAST-256算法进行加密。控制者可以通过TCP,UDP,ICMP来发送攻击命令,可以用这三种中随机的一种,或者是把这三种全用上,则通过网络扫描就更难发现TFN2K攻击了。
Stacheldraht[7]是基于TFN并去掉TFN工具中的一些缺点发展起来的。它结合了Trinoo(操作者/客户端结构)的特征,而这些特征是从TFN得出的。在代理端它也可以自动升级。Stacheldraht也提供了在攻击者和操作者的系统之间用对称加密技术进行安全的远程连接。新版本的Stacheldraht程序增加了很多新的特征和不同的数字签名。
Mstream[8]工具通过改变TCP数据包的ACK标志来攻击目标。Mstream是一个简单的点对点TCP ACK洪水攻击工具。它通过TCP和UDP数据包来传输,通信过程是没有经过加密的,主攻击者通过远程登录到受害者的机器,而且访问操作是经过密码保护的。在其它的DDoS攻击工具中都没有这个特征。
Sharft[9]是Trinoo的一个派生的工具。它用UDP在操作者和代理端之间进行通信。攻击者通过TCP远程连接来和操作者进行通信。Sharft攻击可以独立的运行,也可以联合UDP/TCP/ICMP洪水攻击中的一种发起攻击。数据包中的源IP地址和源端口号都被设置成随机的。在攻击中数据包的大小是固定。一个新的特征是在攻击中可以实时改变操作者的IP地址和端口,使检测工具很难检测出来。Shaft的另一个与众不同的特征是它可以实时改变控制的主服务器和端口,因此使的入侵检测工具就更难检测出来,更重要的是shaft提供了在洪水攻击中的统计特征。这个统计特征对攻击者来说是非常有用的,通过这些特征,攻击者可以查出受害者的系统何时彻底崩溃,以便于知道何时停止增加机器来进行DDoS攻击。
在分析完上述有效的DDoS攻击的工具后,我们可以发现DDoS攻击具有如下的特征:
①数据包的源IP地址被设成随机的;
②数据包的源端口和目的端口被设成随机的;
③一些标志位(URG,ACK),片断,TCP属性,TTL和客户端的SEQ序列号由伪随机数生成器产生。
DDoS攻击不需破解密码,也不要窃取系统资料,只要在网络上的任一角落都可以发动攻击。DDoS攻击由来自不同的源地址的数据包流组成,这类攻击控制Internet上合作的主机来耗尽目标机一些关键资源使得服务器合法用户的请求被拒绝。更重要的是,DDoS攻击流没有很明显的特征能够用来直接和大规模的检测和过滤。
3、基于RBF-NN的实时监测DDoS攻击的模型
3.1、模型概述
实时监测模型包括三个模块:
1)数据采集器
因为TCP协议是应用最广泛的协议而且WWW是Internet上应用最广的服务。所以这个模型是针对TCP洪水攻击的,当然这种模型也可以用到UDP和ICMP协议中。
TCP数据报格式如图2所示。
图2 TCP数据报格式
数据采集器用sniffer嗅探器抓到每个数据包的如下字段:源端口号,客户端的SEQ序列号,窗口大小,和SYN,ACK,FIN,PSH,URG,RST六个标志位。同时把每个数据包的时间戳也记录下来以便把数据包分到重叠的时间帧中。不同的源端口和窗口大小的数目用来评估每一个时间帧。SEQ序列号是由客户端产生的32位的随机数作为TCP连接的认证。估算出不同的SEQ序列号需要很大的存储空间和计算能力。实验结果显示,尽管客户端的SEQ序列号不同,但是用高16位足够可以估算出SEQ序列号的特征。16位可以存储65535字节长的信息。
每一时间帧的统计信息是来自下面六个标志出现时被设置的频率:SYN,ACK,FIN,PSH,URG,RST。实验显示,这些标志在DDoS攻击的出现时提供了重要的信息。
需要强调的是尽管源IP地址提供了重要的信息,但在采集过程中没有用到,主要是基于以下几方面的原因:
①它需要很高的计算能力来存储每个地址;
②它不能够提供有关包长度的信息;
③IP源地址可能已经被更改,而被设置成随机的地址;
由TCP/IP传输的数据包中的其它一些域例如Time- To-Live域,就没有包含关于DDoS攻击出现时的信息,所以也不记录。
2)特征估计器
用六个标志位出现的频率,源端口的地址,SEQ序列号和窗口大小来评估每个时间帧。六个标记的每个时间帧的统计特性是每个标记被设置的概率。用源端口,SEQ序列号和窗口大小的每个时间帧的数据包的总数来划分不同的值。
3)DDoS检测器
每个时间帧用9个特征向量来激活有两个输出的基于RBF的神经网络。最活跃的输出神经元检测出DDoS攻击的出现,或者判断出时间帧是常规的流量。研究显示,少量的隐单元用来检测DDoS攻击就能够获得很高的检测效率。评价RBF-NN区分是DDoS攻击流量还是常规的数据流的分类的能力,用一个仅包含三个特征的输入向量来实现。
3.2、RBF?NN的学习过程
收集来的数据用来产生两个不同学习场景。在第一个场景中,DDoS监测器用常规的WWW和纯粹的DDoS攻击流量来学习。在第二个场景中把纯粹的DDoS流量换成正在发起DDoS攻击时,正在提供正常服务的服务器时的混合的数据流。在这两个学习场景中,分别用单一种类的数据流和混合的数据流用来估计RBF-NN的效率。
混合的高斯函数用来作为RBF的非线性函数。高斯函数的阀值和变量用K-means聚族算法来获得。K-means初始中心的选取将会严重影响学习过程的质量。选择好的初始中心对不同的网络拓扑都能够获得很好的分类效率。因此,用不同的初始值和K-means算法可以得到多个局部的K-means中心。在从多个局部的K-means中心中选取出最适当的一个中心作为最终K-means中心,以便使分类错误率达到最小。
在重新估计K-means中心的过程中,K-means算法中一些标记的变量为0(例如,RST,URG标志)或者非常接近于零,这样就会造成局部最小化问题.为了解决这个问题,我们可以从具体的实验中获得一个小的数值,作为估计变量的值,这样将会得到很好的分类速率。
3.3、特征集的描述
用两个不同的特征集来评价RBF-NN监测DDoS攻击的效率,这两个特征集是由建立输入向量的特征的数目来决定的。在很多情况下用最初的9个统计特征就能够进行正确分类,而且正确率超过98%。进一步的研究,发现到许多输入向量的域,例如Time-To?Live,窗口大小和一些标记没有包含很多可以用来监测DDoS攻击的信息。这就预示好的系统可以减少输入向量,所以我们设计的这个监测模型可以把输入向量集减少到3个,即只运用源端口,SEQ序列号,SYN标志作为输入向量。这个特征的集用常规的低性能的计算机系统就能够用来评价实时的监测情况。我认为这三个特征是除了源IP地址之外最重要的,我们在基于RBF-NN的网络检测DDoS攻击中没有用IP源地址是为了节省计算资源,减少在存储方面的需求。
4、总结
本文阐述的这种实时监测DDoS攻击的模型,能在受害者机器受到DDoS攻击发生时或者发生后来追查攻击源,并且响应速度快,不需要增加任何网络流量,并可以监测出当前存在的所有类型的DDoS攻击。今后的工作是在模型的基础上进一步改进和实现。最后应该强调的是,安全是所有的网络用户共同努力的目标,不仅仅是网络管理员的事情,更是每个网民的问题,一旦自己的机器不幸成为DDoS攻击中的一员,我们有义务去及时关闭机器(或者离线),进行杀毒清除DDoS攻击程序,不要成为控制端或代理端,更不要成为攻击者。
标签: ddos 安全 防御ddos 服务器 互联网 计划 漏洞 通信 网络 网络安全 网络安全问题 网站 问题 选择 用户
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
下一篇:DOS.VCLBased