戏说WEB服务器安全:发起DDOS反击(组图)
本文借张大民的生活和研究来戏说一些比较乏味的网络安全的知识。生动形象的介绍了对付一些DDOS攻击的具体招数,从实际例子出发,深入浅出,明白易懂.
序
凌晨两点,黑客张大民的手机开始狂响起来。张大民睡眼惺忪,翻起身看了一下手机号码,知道他必须得接这个电话。最近张大民换了个工作,新公司给一些主要的网站做安全咨询和安全管理。几个主要的技术人员每一个人负责一些客户,这个电话就是一个主要客户的网站管理员打来的。“这么晚了,小子还在上班?”,张大民心里嘀咕着。
“喂,小李”,张大民很不情愿的接了电话。
“大民兄弟,网站出事了!”,在电话的那边,小李的声音已经有点变形了。
“怎么出事了?”,张大民问?
“不知道啊,流量特别大,已经死机两回了!客户的电话都快把线打爆了”,小李说。
“深更半夜的,谁还打你们的客服电话啊?”,张大民觉得小李有可能在蒙他。
“大民兄弟,你不知道啊,我们的网站海外客户很多,大概时差是十几个小时,现在是他们哪里下午,正是用得时候!”。小李说。
“好,好,那我去看看”,张大民无可奈何,只好匆匆忙用冷水洗了把脸,尽快的赶到机房。
到了机房,张大民才知道问题的严重性,通过分析网络流量日志,张大民查出这是最普通的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源地址,这下看你怎么办。这样,不管是网站管理员,系统管理员还是网络管理员都在挠脑袋了。
转截请注明:文章来自 pc捍卫者 http://www.pchwz.com
本站发布此文为传递更多信息之目的,不表明pc捍卫者赞同其观点