首页 > 范文大全 > 正文

SYN拒绝服务攻击的检测及其防范研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇SYN拒绝服务攻击的检测及其防范研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:TCP/IP协议是目前使用最广泛的网络互连协议,但是由于TCP三次握手中不安全性,使得Internet具有先天性的不足。随着近几年Internet的迅猛发展,随之而来的网络安全事件开始频繁发生,各种攻击手段层出不穷。以syn Flood为代表的DDoS攻击方式,是近年来出现的一种全新的极具破坏力的拒绝服务攻击方式。本文首先介绍了DoS的定义,目前的拒绝服务攻击的原理和特点,重点对SYN Flood攻击方法的检测防范进行了分析。

关键词:TCP/IP协议;拒绝服务攻击;分布式拒绝服务攻击;SYN Flood

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)06-10ppp-0c

1 研究背景

Internet可以说是人类在二十世纪最伟大的成就之一,它在迅速发展的同时也在越来越深刻地影响着人们的生活。然而与其飞速发展相伴的是日益增长的对网上站点的安全威胁。许多统计数据都可以表明,当今网上“黑客”数量与安全相关的事件数的增长是相当惊人的。对网上众多的站点而言,在面临的诸多安全威胁中,网络远程攻击是最主要的方式。尤其是对于政府、商业、大学的重要站点,防范网络远程攻击更是一项经常性的任务。

2 拒绝服务攻击

拒绝服务攻击是多种网络攻击的其中一种,主要是通过消耗系统有限的不可恢复的资源从而使合法用户的服务性能降低或受到拒绝。它分拒绝服务DoS攻击和分布式拒绝服务DDoS攻击两大类,后者比前者更复杂,攻击更有效。拒绝服务攻击的工具和方法很多,并且不断地涌现。

DoS(Denial of Service)是一种特别的攻击方法,它不同与以往攻击方法,攻击目标和结果是使目标主机或网络不能提供正常的服务。攻击者不需要获得系统的帐户或管理员权限,不需要知道软件或系统的漏洞(bug),而且在现在的网络环境下,很难跟踪和发现攻击者,也没有有效的手段检测和防御,攻击方法简单,攻击效果明显。

分布式拒绝服务(Distributed Denial of Service,DDoS)攻击是由DoS发展而来的。传统的DoS攻击是攻击者和被攻击者是一对一的关系,而DDoS是在分布式环境下,在一定时间内通过许多台机器向某一目标主机或网络发送过载的攻击包使系统失去反应,从而不能提供正常的服务。这种攻击被证实是非常有效的,而且难以检测和防御,是一种危害很大的攻击手段。以SYN Flood为代表的DDoS攻击方式已经对计算机网络的保密性、完整性、可用性提出来了严峻考验。

2.1 DoS概述

DoS攻击是由人为或非人为发起的行动,使主机硬件、软件或者两者同时失去工作能力,使系统不可访问并因此拒绝合法的用户服务要求。这种攻击往往是针对TCP/IP协议中的某个弱点,或者系统存在的某些漏洞,对目标系统发起的大规模进攻致使服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致目标网络或系统不胜负荷以至于瘫痪而无法向合法的用户提供正常的服务。

DoS技术严格的说只是一种破坏网络服务的技术方式,具体的实现多种多样,但都有一个共同点,就是其根本目的是使受害主机或网络失去及时接受处理外界请求,或无法及时回应外界请求。DoS攻击广义上可以指任何导致你的服务器不能正常提供服务的攻击。这种攻击可能就是泼到你服务器上的一杯水,或者网线被拔下,或者网络的交通堵塞等等,最终的结果是正常用户不能使用他所需要的服务了,不论本地或者是远程。

DoS攻击是目前黑客常用的攻击手法,由于可以通过使用一些公开的软件进行攻击,它的发动便较为简单,能够产生迅速的效果,同时要防止这种攻击又非常困难。从某种程度上可以说,DOS攻击永远不会消失而且从技术上目前没有非常根本的解决办法。

2.2 SYN Flood介绍

1996年9月以来,许多Internet站点遭受了一种称为SYN洪水(SYN flooding)的DoS攻击。它是通过创建大量“半连接”来进行攻击,任何连接到Internet上并提供基于TCP的网络服务的主机或路由器都可能成为这种攻击的目标,并且跟踪攻击的来源十分困难。SYN Flooding是当前最流行的DoS(拒绝服务攻击)与DDoS(分布式拒绝服务攻击)的方式之一。

SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。从图1可看到,服务器接收到连接请求(syn=j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

图1 目标服务器遭受SYN洪水攻击

3 拒绝服务攻击的检测与防范

对于拒绝服务攻击而言,目前还没有比较完善的解决方案。拒绝服务攻击是与目前使用的网络协议密切相关的,它的彻底解决即使不是不可能的,至少也是极为困难的。此外安全具有整体、全面、协同的特性,这一特性在拒绝服务攻击方面体现得尤为突出,没有整个网络社会的齐心协力,共同对付,拒绝服务攻击始终是摆在我们面前的难题。虽然如此,我们也不是对拒绝服务攻击一点办法没有,研究人员也在不断地寻求新的解决方案。拒绝服务攻击的对策主要可以分为三个方面:检测、增强容忍性和追踪。下面以SYN Flooding攻击为例介绍拒绝服务攻击的检测与防范的方法。

3.1 SYN Flooding攻击检测

检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat 工具来检测SYN攻击:

# netstat -n -p TCP

tcp0 0 10.11.11.11:23124.173.152.8:25882 SYN_RECV-

tcp0 0 10.11.11.11:23236.15.133.204:2577 SYN_RECV-

tcp0 0 10.11.11.11:23127.160.6.129:51748 SYN_RECV-

tcp0 0 10.11.11.11:23222.220.13.25:47393 SYN_RECV-

tcp0 0 10.11.11.11:23212.200.204.182:60427 SYN_RECV-

tcp0 0 10.11.11.11:23232.115.18.38:278 SYN_RECV-

tcp0 0 10.11.11.11:23239.116.95.96:5122SYN_RECV-

tcp0 0 10.11.11.11:23236.219.139.207:49162 SYN_RECV-

……

上面是在LINUX系统中看到的,很多连接处于SYN_RECV状态(在WINDOWS系统中是SYN_RECEIVED状态),源IP地址都是随机的,表明这是一种带有IP欺骗的SYN攻击。

我们也可以通过下面的命令直接查看在LINUX环境下某个端囗的未连接队列的条目数:

# netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l

324

显示TCP端囗22的未连接数有324个,虽然还远达不到系统极限,但应该引起管理员的注意。

3.2 增强容忍性

这类对策的目的主要在于缓解拒绝服务攻击对受害者的影响,增强受害者在受到攻击时的承受能力,这种方法是终端系统最广泛使用的方法。我们可以采取两种方法达到此目的,一是增强受害者的容忍性,二是在攻击性数据流到达受害者之前将其丢弃(过滤)掉。

当遭受到SYN 洪水攻击时,如果半开连接堆栈已用完,来自于合法用户的连接请求将会被拒绝(SYN包被丢弃),除非此时有半开连接因为超时或者连接完成而释放。由于攻击者通常采用的是伪造的源IP地址,连接一般不会完成,这样一来,攻击者发送的数据包会最大限度的发挥其预定的作用。为了使得在半开连接堆栈用完时,服务器还能提供连接。这时,可以随机释放一些未完成的半开连接,然后服务器就可以接受新的连接请求。

除了以上方法外,缩短TCP握手的超时设置、增大TCP的半开连接栈的大小等均属于增强容忍性的方法。资源的重新分配如负载均衡、使用热备份等也属于增强容忍性一类。通过增强容忍性来对付拒绝服务攻击是非常局限的,因为资源有限,所以这种措施的效果也很有限的。同时,一些方法如采用热备份等还是很昂贵的。

3.3 SYN Flood的追踪

研究表明很多入侵者常常会因为责任追究的危险而受到威慑,他们非常害怕失去匿名性。如果我们能追踪到攻击者,则攻击事件的发生会减少很多。追踪的理想目标是找到真正的攻击者,以便追究其责任,这同时也达到了威慑的效果。然而,就目前而言,由于攻击者通常都是利用傀儡机发起攻击的,要找到真正的攻击者并不是总能做到的。因此,在拒绝服务攻击的追踪方面,我们主要关心的是追踪到攻击的发出点,即攻击性数据包的源头。追踪的结果既可以作为继续追踪真正攻击者的基础,也可以为其他的对策如过滤提供信息,增强防范效果,还可以作为从法律上追究攻击者责任证据。

3.4 SYN Flood防御策略

关于SYN攻击防范技术,人们研究得比较早。归纳起来,主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固TCP/IP协议栈防范。但必须清楚的是,SYN攻击不能完全被阻止,我们所做的是尽可能的减轻SYN攻击的危害,除非将TCP协议重新设计。

4 结束语

随着近几年Internet迅猛的发展,其网络规模迅速膨胀,网络安全事件开始频繁发生,各种攻击手段层出不穷。DDoS是常见的一种攻击手段,其中尤其以SYN Flood攻击方式为代表,它利用了传统TCP/IP协议中三次握手的不安全性,对互联网服务器发送大量的SYN报文,致使服务器由于接受大量无效的SYN报文而使得正常的SYN报文无法得到及时响应。并且当SYN Flood攻击强度增大时,服务器要为大量的SYN报文在TCP/IP协议栈分配空间,导致协议栈的溢出而使服务器崩溃。以SYN Flood为代表的DDoS攻击方式已经对计算机网络的保密性、完整性、可用性提出来了严峻考验。如何检测这种攻击发生以及如何降低这种攻击所带来的后果以成为目前Internet安全界研究的热点问题。

网络安全和网络攻击是事物的两个方面,不存在绝对的安全,由于IPv4协议存在的缺陷,彻底杜绝SYN Flood攻击是非常困难的。随着网络技术的发展,网络攻击手段和攻击技术进一步变化发展,使得网络安全问题显得更至关重要。只有深入研究网络安全问题,通过对各种攻击技术的深入研究,不断加强抵抗各种攻击手段的能力。当检测到DDoS攻击时,启动应付策略,尽可能的追踪攻击包,并要及时向网络服务提供商ISP和有关应急组织报告并紧密合作,确定攻击源,从而进一步采取行之有效的措施,并积极采取法律武器的帮助,对一些恶意发动DDoS的个人与组织予以法律制裁,从源头上扼杀攻击的产生。

参考文献:

[1]赵英, 倪铮, 张莹莹. TCP SYN分布式拒绝服务攻击分析[J]. 微型计算机, 2006,22(11):19-25.

[2]连洁, 王杰. 入侵检测系统在计算机中的应用研究[J]. 微计算机信息, 2005,10(3):31-35.

[3]胡尊美, 王文国. DDoS攻击技术发展研究. 网络安全技术与应用[J]. 2005,6(5):24-25.

[4]郝桂英, 李志勇. 基于SYN漏洞的DDoS攻击防御算法实现[J]. 微型计算机,2006,22(8):18-21.

[5]陈波, 于泠. DoS攻击原理与对策的进一步研究[J]. 计算机工程与应用, 2001,37(10):23-26.

[6]陈波, 于泠. SYNflooding攻击对策研究[J]. 计算机工程, 2001,27(7):18-20.

收稿日期:2007-01-07

作者简历:谢廷俊(1980-),男,中学二级教师,本科,主要从事计算机信息技术教学。