黑客张大民之大民治水-DDOS反击方法浅论
马丁martin@cnsea.org
http://www.cnsea.org
前言:这篇文章是“黑客张大民在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的网络

