| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | 

您现在的位置: 中国X黑客小组 >> 技术文章 >> 安全防御 >> 专题文章 >> 文章正文 用户登录 新用户注册
  [组图]黑客张大民之大民治水-DDOS反击方法浅论       ★★★ 【字体:
黑客张大民之大民治水-DDOS反击方法浅论
作者:马丁    文章来源:CnXHacker.Net    点击数:    更新时间:2004-10-22    

前言:这篇文章是“黑客张大民在IPv6世界里的幸福与烦恼”与“黑客张大民的
小城奇遇”的姐妹篇,如果想了解一下黑客张大民的来龙去脉和背景,可以参考下
面这两篇文章。
    ,来借他的生活和研究来
传播一些比较乏味的网络安全的知识。



凌晨两点,黑客张大民的手机开始狂响起来。张大民睡眼惺忪,翻起身看了一下手
机号码,知道他必须得接这个电话。最近张大民换了个工作,新公司给一些主要的
网站做安全咨询和安全管理。几个主要的技术人员每一个人负责一些客户,这个电
话就是一个主要客户的网站管理员打来的。  “这么晚了,小子还在上班?”,张大
民心里嘀咕着,
“喂,小李”,张大民很不情愿的接了电话。
“大民兄弟,网站出事了!”,在电话的那边,小李的声音已经有点变形了。
“怎么出事了?”,张大民间?
“不知道啊,流量特别大,已经死机两回了!客户的电话都快把线打爆了”,小李
说。
“深更半夜的,谁还打你们的客服电话啊?”,张大民觉得小李有可能在蒙他。
“大民兄弟,你不知道啊,我们的网站海外客户很多,大概时差是十几个小时,现
在是他们哪里下午,正是用得时候!”。小李说。
“好,好,那我去看看”,张大民无可奈何,只好匆匆忙用冷水洗了把脸,尽快的
赶到机房。
到了机房,张大民才知道问题的严重性,通过分析网络流量日志,张大民查出这是
最普通的TCP的SYN洪水攻击,也就是攻击网站WEB服务器HTTP的TCP端口
80,流量很大,基本上每秒钟收到50万个TCP的SYN报文。每一个SYN报文都要
浪费WEB服务器的一定资源,几乎WEB服务器的所有资源都被这个洪水攻击所占
据了,正常的网页访问更本进不来。而且由于WEB服务器长时间超负荷运转,性
能很不稳定,已经崩溃两次了。
张大民不是没有见过类似的情况。这种洪水攻击大部分时候都是伪造IP报文的源地
址,有的时候挑RFCl918里面的私有IP地址,就是不让你发现攻击的源头。因为
这些攻击的源头一旦被发现了,网络管理员们会彼此通告,这些问题主机很快会被
管理员弄下线,这样黑客就少了一个可以控制的网上资源。
张大民希望这次攻击也是类似情况,因为这样的洪水攻击使反击的方法很简单,私
有地址只能在私有空间使用,不应该在公用的互联网上出现,他只要在这个网站的
网关路由器上配置一些访问控制列表,把IP报文中IP源地址是RFCl918的私有地
址报文过滤掉就行了,因为这些报文肯定不会是有效报文。
但再进一步分析网络流量日志,张大民发现这个攻击是分部式的洪水攻击。大部分
IP报文的源地址都是互联网上的真实地址。张大民试了几个地址,都是可以PING
的通的。用NMAP扫描了一下,发现大部分是微软的主机,看样子都是被OWN的
了“肉鸡”。张大民估计了一下,攻击源大概有四五万个不同的IP地址。日志里面
也搀杂了很多伪造的IP源地址报文,一时之间,张大民也无法判断哪些是真实的IP
地址,哪些是伪造的IP地址。估计真实的地址会在几百到一千台左右
“很牛X啊”,张大民暗自想。  “摆明了是不怕暴露被控制的主机(攻击源)的真实
身份,估计被控制的主机的数目比目前发动DDOS估计的数目还要多的多,所以这
个家伙也不在乎损失几千台肉鸡”。
“别光看日志啊”,小李等不急了,  “有没有办法啊
“给你上游的ISP打电话了么?”,张大民间。
“打了,跟本就没人接”,小李的声音里已经带了点哭腔。
“唉”,张大民叹了口气。发生这种情况,最好的办法就是同上游的ISP联系,让
ISP在他们的网络中找到DDOS网络进入ISP网络的入口,在ISP网络的入口出将其
掐断。虽然DDOS估计来自四面八方,但大多数情况下会汇集到一起,进入上游
ISP网络的入口点还是有限的。但如果紧急时刻找不到ISP的网络管理员,那就基
本上没有什么办法了。
“如果找不到他们,我也没什么折”,张大民一摊手。  “除非你想在你的网关路由
器上配置上万个访问控制列表,把这些DDOS攻击的源头一个一个的掐掉”。
“今晚我是没有了”,张大民说,看着自己客户一脸绝望的样子,张大民心里也不
是滋味,心中暗想,  “道高一尺,魔高一丈,一定会有好方法来反击这些DDOS
的家伙,也不一定非要向ISP的网管告急,我一定要好好研究一下怎么样能好好
的反击DDOS。

DDOS网络攻击定义

虽然张大民一向不太看得起这些DDOS的人的所作所为,
但易攻难守的特点,让张大民还是觉得有一定的挑战性,
千台“肉鸡”,发网络流量就是了,张大民不是没做过,
现在已经懒得做了。但防守起来可就难了。

IPv4网络设计上的一个特点(缺点)就是任何人在互联网上都可以向任何人发报文,
哪怕你不想让别人向你的主机发送报文,但只要你的IP地址是公用的IP地址,你也
没办法阻止他。而且TCP在设计的时候,设计的思想之一就是所有的在互联网上的
主机都要做个好人,  大家都是互联网上规规矩矩的老实人,如果哪里有网络的塞
车,TCP会自动的降低网络的发送流量,等网络的情况好点了,TCP再试着一点一
点的增加网络流量,  目的是尽量不给网络增加负担。当全世界的主机上的TCP都按
照这样的方式运作时,  就有了我们今天的互联网。大家都可以浏澜任何一个想浏
澜的网站。就像在一个高速公路上,  所有的司机都礼让三先,保证不要让高速公
路塞车的情况出现。
但黑客们可就不管这么多了,他们就像哪些在高速公路上飙车的小年轻一样,在互
联网的高速公路上横冲直撞。主机是我的,我想让它做什么都行,用不着礼让三
先,也用不着遵守TCP的协议规定,不按照TCP状态机规定的状态行事。
拒绝服务的攻击(DOS)就是这么发展而来的。在学校里学过网络基本原理的人都知
道TCP的三方握手协议,就是TCP客户要发一个SYN的报文,服务器回一个
SYNACK的报文,客户再回一个ACK的报文,两方面就建立起了TCP的连接。
在这个过程中,服务器要为每一个TCP连接分部一定的内存来跟踪TCP复杂的状
态,以便更好的保证TCP连接的正常工作。而拒绝服务的攻击不按照TCP的状态
转换图来工作,只象服务器发布TCP的SYN报文,服务器以为是一个将要建立的
TCP连接,因为它以为对面一定是一个遵纪守法的互联网公民,会为这个TCP连
接建立状态,分配内存。而网络那一端的客户可不按照规矩办事,它只向服务器发
布大量高速的TCP SYN报文。但服务器还是善良的相信每一个TCP SYN报文后
面都是一个遵纪守法的互联网公民,继续为他们分配内存,导致了大量的浪费。更
遭的是,由于这个不守法的主机的行为,导致其它守法的主机无法访问这台服务
器,因为几乎所有的资源都被这台不守法的主机所占用了,其它守法的主机已经享
受不到这台服务器提供的服务。这也是为什么这样的服务叫作拒绝服务的攻击。
等人们意识到了这个问题,发现最简单的解决办法就是把这些不负责任的主机屏蔽
掉。而能屏蔽这些主机的唯一方法就是根据这些主机的IP源地址,在IPv4的世界
里,这是决定一台主机的唯一标识。黑客们也有办法,好,  你不是要根据我的IP
源地址来屏蔽我吗?那我就伪造我的IP源地址,让你猜不出我是哪里来的,而且我
的源地址是随机的,每一个报文都在变,这样你就不知道我是哪里来的了。他们这
么一弄,  网站管理员就没有办法了,到底如何屏蔽呢?网站管理员就找到系统管
理员和网络管理员,他们一看,说这个很好解决,黑客可以伪造IP源地址,但这些
机器可都是在网络管理员和系统管理员管理之下的,不管IP地址怎么变,攻击源只
有一个,把攻击源屏蔽掉了就可以了。但道高一尺,魔高一丈,黑客们又说,好,
你是想屏蔽我的攻击源是吧,那我就弄它几百几千个攻击源,每个攻击源还在不同
的网络。每一个攻击源再用随机的IP源地址,这下看你怎么办。这样,不管是网站
管理员,系统管理员还是网络管理员都在挠脑袋了。
而且他们挠脑袋一直挠到今天。到今天,分部式拒绝服务攻击(DDOS)是让网络工程
界最为头疼的问题,因为攻击源分部在世界不同的角落,无法一一和他们的网络管
理员和系统管理员联系,你这边是下午,那边可能就是凌晨。而且现在的商务网
站,现金流量很大,每小时下线的损失可以到上百万美元。反应时间需要在几秒钟
的范围之内,和网络管理员和系统管理员联系,找到问题主机,再切断攻击源需要
至少几个小时,根本行不通。
正是因为没有可行的解决办法,一些恶意的黑客开始越来越肆无忌惮的使用这种攻
击方法,逐渐发展到使用这种攻击方法来敲诈勒索大型商业网站,不给钱,就让你
的网站下线,损失更大。给钱,那就更遭了,  所有的黑客都知道你好欺负,敲诈你
能拿钱,你就成了所有人的目标。

DDOS的反击方法

作为在网络安全界黑白两道都有很多朋友的张大民来说,  他对这些情况是再熟悉
不过了。
让张大民感慨的是,建设容易破坏难,这个规律对网络协议的研发也适用。TCP
最大的特点就是它的可扩展性。在任何时候,全世界使用TCP的人不下几百万,
说上千万也不过分(考虑到那么多网站)。而这么多TCP连接在互联网上同时存在,
每个连接还可以保证一定的传输性能,不是一件很容易做到的事。
上大学的时候,  看到TCP的状态图,  觉得复杂的不得了,  现在才知道复杂的状态
是必须的,  是保证TCP要表现为互联网上的谦谦君子,避免网络的塞车,  让每一
个想用互联网的人都可以随时随地使用。  想当年调试TCP的时候,导致了整个互
联网全部下网几次,才把TCP调试成功,其中所有人付出的努力可想而知。而这么
大的一个努力,  居然就让一个不讲道理的TCPSYN洪水攻击给弄得不知如何是
好,真是让人感慨。

利用ISP来反击DDOS

有一个,把攻击源屏蔽掉了就可以了。但道高一尺魔高一丈
和很多网络管理员对DDOS的理解一样,  张大民也认为,  对DDOS的反击,使
用ISP的网络是有效的方法之一。ISP们在和DDOS进行斗争的同时,  也摸索出
了一些实用的方法。其中最常用的就是黑洞路由了。
越来越多的网络攻击开始从攻击终端系统(PC)向攻击网络本身发展。如何
预警,分析,反击针对网络本身的攻击,是互联网供应商(ISP)们要解决的.
防火墙,  IDS,  AV软件,主要都是针对企业网的用户,对於企业用户来说,最重
要的是如何让PC不染毒。但对於互联网供应商来说,网络设备就是他们的要保护
的对象,而对於互联网供应商的网络具有的网际网的性质,防火墙和IDS的
deploy几乎很困难,对网络的传输性能也会有影响。但是,现在针对ISP的网络
的攻击越来越多,现在的数据是,今天大概90%的针对ISP网络的攻击是“脚本
小子”script kiddie所为,  25%到27%的攻击针对路由的routing协议,但威胁性
还不大。有5%-3%的攻击,是非常复杂的攻击,这5%-3%是ISP最担心的。
现在ISP的防范技术还重要依赖于网络运行人员对网络网络流量的分析,毕竟,
于企业网的网络运行人员不同,  ISP的网络运行人员是ISP的核心雇员,是可以
为ISP产生利润的员工,他们有相对来说好的经验和好的设备来防备他们的网
络。
张大民知道一个北美网络运营商们常用的一个技术,
网络下水道技术。
大家可能都知道Honey Pot,也叫蜜罐技术,就是将一台PC机设置成陷阱,引诱
黑客来,让黑客误以为是有缺陷的系统,然后监视黑客的行为。网络下水道技术是
应用在网络上的Honey Pot是用来收集发向ISP网络的垃圾网络流量,然后加以
分析,对这些网络垃圾的分析,可以知道是否有人在扫描网络,或者在进行攻击,
可以用来预警,和防备。如果有黑客正在对ISP的网络展开攻击,网络下水道技
术也可以把攻击的网络流量导向下水道,使ISP的网络能正常工作,免受攻击。
ISP的网络是用BGP来交流的,下水道技术就是用一台路由,向ISP的网络
advertise一个route,可以的缺省的route,也可以是一个特定的子网。如果是一
个特定的route,那么所以送到ISP网络的网络流量,如果ISP不知道如何route
它,都会送到这个下水道的路由,对ISP来说,这些就是垃圾网络流量,但这些
垃圾网络流量中可以有很多有用的信息,可以在下水道路由后面加一个网络分析
器,可以就是一个最简单的PC,装个免费的IDS:  Snort,再加个tcpdump。也
可以是复杂的IDS。如果ISP检测到有黑客正在攻击一个子网的网段,这个下水道
路由可以用BGP通知其它路由,让它们把指向这个子网的网络流量都送到下水道
路由,等於是把攻击改变了方向。下面是一些图形演示:
这个为一个黑客正在对一个子网进行攻击,  网络流量经过ISP的网络

(图T1.BMP)



SP可以用网络下水道技术,  向别的BGP的邻居发布这个子网
这个子网的攻击转移到了下水道路由。

(图T2.BMP)



张大民对ISP的这些伎俩都很了解,  但让张大民不满意的是,这些技术都需要ISP
的帮助。如果真的出了事情,打电话的时间就要几分钟,和现在网站要求的几秒中
的反应时间还是有相当的差距。而且如果碰上不负责任的ISP的网络管理员,或者人
家不上班,这个办法还是不行。“独立自主,  自力更生”。张大民暗自想,  
“一定有办法可以不用麻烦ISP的网络管理员,又可以在几秒钟之内对DDOS进行反击”。
“到底如何才能达到几秒钟的反应速度呢”?,张大民心里很清楚,这不是一个很容易回答的问题,  “看样子我
又要进入闭关状态了”,张大民想。
作为一个酷爱钻研网络技术黑客,张大民在遇到了技术难题时,最喜欢的办法就是
要闭关,要排除一切干扰,一天24小时什么也不想,就是要把难题解决出来。有
点象一休要挠脑袋打坐一样。
这次张大民也不例外,他上网订了一个酒店房间,要在这个周末全心全意考虑
这个问题。入住酒店后,张大民关掉手机,切断电话,只叫服务生来送饭,开
自己对于DDOS的思考。

正常与异常网络流量建模

如果需要在几秒钟内作出反应,不但要预警,还要对DDOS进行反击,任何有人工
参与的过程都是不可能的了。张大民想。整个过程需要自动化。需要能自动探测到
被保护的网站是否受到了DDOS攻击。需要但能自动化的对DDOS进行反击。而整
个过程要在几秒钟的范围内完成。
作为一个网络安全工程师,张大民也知道任何问题都需要把它分解成几个模块,然
后每个模块各个击破。那首先就看看如何能自动探测到DDOS的攻击吧,张大民
想。
很快,张大民就意识到,自动探测DDOS攻击的本质就是对正常与异常网络流量的
建模过程。如果系统能够对正常的网络流量建立模型,找到平均值。那么如何高过
这个平均值的网络流量都可以认为是异常网络流量。当然,到底高过多高才算作是
异常的网络流量,那就要看每个网站管理员的定义了。但如果一个网站日常访问的
网络流量是每秒钟100次,突然上升到了每秒钟一万次,那基本上肯定就是拒绝服
务的攻击了。
而且张大民还意识到,这种探测方式对分布式拒绝服务攻击还是原始的拒绝服务攻
击都是适用的。因为对不管是那种攻击,所有的网络流量最终都要汇总到网站本身.
如果能够对正常网络流量进行建模,然后一直监视随后的网络流量,那么如果发现
异常,就能够实现自动预警了。张大民想。但这个建模的过程也应该是一个很费时
间的过程,至少需要几个星期的时间吧。而且还要保证这几个星期内不受到DOS
的攻击,否则建立的模型就不会精确的反应网站正常的访问流量。
对于网站访问流量进行建模的方法应该有很多种,这里面应该也有很多学问可以
做,也包涵了一些数学问题。统计学,概率论和神经网络什么的。从这里面出来一
个博士论文也不会稀奇。张大民想。但作为工程师的他来说,张大民觉得并不需要
对网站的访问流量进行精确的建模,因为据他所知,所有的DDOS洪水攻击的网
络流量都差不多是正常网站访问流量的十几倍,甚至几十倍。探测起来并不是很困
难。

DDOS网络流量源地址校验

而真正困难的是,当探测到了DDOS的洪水攻击后该怎么办呢?张大民也开始挠脑
袋了。因为当有了分布式的洪水攻击后,网站的网络流量内容就变得非常复杂。张
大民想了一下,大概包涵一下几种网络流量
1 正常的客户来访问网站的访问流量
2 DDOS网络流量,IP源地址是真实IP地址
3 DDOS网络流量,IP源地址是伪装(假冒)IP公有地址
4 DDOS网络流量,IP源地址是假冒的IP私有地址
对于DDOS正确的反击应该是让正常的客户来访问网站的访问流量还能正常访问网
站,而让DDOS网络流量2,3,4在到达网站之前就被拒绝掉。张大民想。但说的
容易,到底如何才能实现呢?问题是这样的,虽然大家都是在讲网络流量,但每一
个到达网站的其实都是离散的报文。通过分析这些离散报文的内容,是无法知道这
个报文是是来自DDOS的源头,还是由正常访问网站的客户发过来的。必须要把离
散的报文集合成网络流量。但是如果为每一个源地址都建立一个网络流量的概念,
那就要使用很多系统的内存资源来跟踪这些状态,那实际上就很网站处理TCP连接
的方法一样了,根本不能应付大流量的DDOS攻击。而且根据网络流量来分析,不
能解决的问题是,如果真的是一个网站很流行,象一个时装网站要网络实时直播泳
装模特的表演,而几百万人同时登录网站,网站的流量还是很大,几乎可以和
DDOS时的网络流量相比,但这些访问都是正常的访问。根据网络流量的分析如何
能把它们和DDOS的网络流量区别开来?
但到底怎么样才能自动区分正常的网站访问流量和DDOS的网络流量,而同时又不
根据IP源地址保存网络流量的状态呢?张大民知道思考到现在,他已经几乎抓到了
问题的本质,但就是找不到解决的方法。
“他奶奶的,老子想不出来解决方法,今天就不睡觉了!”,张大民的狠劲儿上来
了。但作为工程师的他同时也知道,对一个问题,如果没有解决方法,是因为对
这个问题的本质还是没有一个清晰的认识,没有找到问题的根本原因,而被围绕在
问题外部的一些表明现象所迷惑。
“不要想网络流量,也不要想什么DDOS的”,张大民强迫自己,  “应该想一下一
个正常的网站访问过程和一个异常的网站访问过程的不同之处”。毕竟,DDOS的
网络流量不是要实现一个正常的网页访问过程,而只是要占用服务器的资源。  “那
我先分析一下一个正常网站访问的过程”,张大民想。
正常网站访问过程
.客户:TCP SYN
.服务器:TCP SYNACK
.客户:TCP ACK
.客户:HTTP GET/POST网站网页
.服务器:HTTP网页
那么异常网站的访问过程呢?在通常情况的TCP SYN洪水攻击时,过程如下:
.客户:TCP SYN
.服务器:TCP SYNACK
.服务器:TCP SYNACK
.服务器:TCP SYNACK
.服务器:TCP SYNACK
.服务器:TCP RST
而且张大民注意到,在大多数的DDOS攻击,攻击服务器主机都是被OWN的肉
鸡。攻击的工具在这些肉鸡上并不建立一个有效的TCP状态,它们只是拼命向服
务器发送TCP SYN的单一报文。所以当服务器发过来TCP SYN ACK时,这些肉
鸡上根本没有相应的TCP连接来接收这个服务器发回来的报文,并根据这个报文
找到相应的TCP连接状态而发任何有效的报文回去。
“有点意思”,张大民想,张大民敏锐的意识到对TCP状态的理解对于确定是否是
有效的TCP链接的重要性。他开始后悔当初在学校读书是没有把TCP的状态图好好
理解透彻。
张大民赶紧下载了TCP的状态表。而且在下载过程中,  他又发现了一个非常有效
的技术,来保存TCP的状态信息在TCP的系列号(SEQUENC NUMBER)中,叫
TCP COOKIE。TCP COOKIE是一个特别的TCP序列号。服务器通过这个序列
号,可以恢复这个TCP链接的整个状态信息。这这个发现让张大民有点大喜过望
了。这正是他所要的。一个可以判断TCP是否是有效的链接,但又不必保存TCP的
状态信息。这样,  一个系统可以验证一个TCP链接是否是有效的链接,但同时又
不保存任何TCP的状态信息,等系统验证这个TCP链接是有效的,它可以把这个
COOKIE转发给WEB服务器,让WEB服务器从这个COOKIE里面构建原始的TCP
状态信息,完成有效的TCP链接。  “而且也可以用某种方法让客户端从新建立一个
新的TC

[1] [2] 下一页

文章录入:IceRiver    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    美国最大黑客盗窃案 美国密情
    微软推新计划打击黑客帮助安
    无ARP欺骗的嗅探技术
    赛门铁克:谨防黑客借奥运发
    瑞星公司07月03日发布 每日计
    黑客入侵花旗银行ATM 窃取用
    XSS漏洞另一个攻击趋势
    “伪颗粒”变种后台秘密监视
    灰鸽子变种NH远程控制用户偷
    06月27日病毒播报
      网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    Powered by ICE RIVER - STUDIO
    » CnXHacker.CoM   © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved.