Techyou labs
真正的爱应该超越生命的长度、心灵的宽度、 灵魂的深度
常用标签
您正在查看:标签 ddos 下的文章

一、攻击情况介绍
最近HTTP上的DOS(Deny Of Service:拒绝服务攻击)攻击方式被提出来(http://isc.sans.org/diary.html?storyid=6601)。虽然这 种攻击不算新颖,据说以前也被提出过(http: //www.securityfocus.com/archive/1/456339/30/0/threaded),但是没有得到重视。

这种针对HTTP服务器的攻击很简单,就是不断发送没有完成的HTTP头,直到你的服务器耗尽所有的资源。攻击的方式如下:
1、首先向服务器发出如下HTTP头部:
GET / HTTP/1.1\r\n
Host: host\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n
Content-Length: 42\r\n
2、然后每隔一定时间继续发出一个自定义的头部:
X-a: b\r\n

须知根据HTTP协议,HTTP请求头部与请求主体的分隔是多一个\r\n。也就是说上述的HTTP头部一直没有发送完成,HTTP服务器会等在那里准备接受余下的内容,一直到接受超时,然后关闭连接。默认的apache读取头部的超时据说是3000秒。

Apache的情况是,每接受一个连接新开一个进程或线程,这样新接受一个连接的资源消耗很大,我测试的过结果是,一般apache只需在超时时间内,持续发送500个以上的包,apache就不会再接收新的连接了。

二、攻击工具介绍及结果

一朋友的香港空间昨天挂了,起初是数据库连接出错,后来干脆不能访问了,出现Service Unavailable。

询问空间商,说是:

這個域名是由於有太多的連接連到這域名,已超出這個域名的連線上限,所以才會出現無法顯示或連不到數據庫。這個域名的網站連線限制是 500。

我查了站长统计,发现IP和PV数和以前皆无甚出入。

找空间商要了近两日的空间访问日志,发现前天的日志文件只有22M左右,而昨天的日志(未满24小时)竟达169M,相差甚大。

分析了昨天的日志,发现有500多个不同IP共100多万次访问都是针对 /xxx.asp ,这个页面是产品的详情页面, 而正常情况下,用户是不可能访问到这个页面的,而只能通过其他页面的链接访问到/xxx.asp?id=xxx(必须带ID)。

而恰恰朋友用的这套程序居然没对这种不带ID的情况做处理,直接让数据库查询失败而出错。这样的错误达到一定量必然引起数据库挂掉,后来我修复这个错误后,但随着攻击力度的加大,突破了IIS分配给空间连接数的上限,还是彻底挂掉了。

从技术上分析,这应该算是DDOS攻击,近年常有发生,一些大型网站都屡屡遭殃,这小小的虚拟空间又如何禁受得起?!

今日空间商帮忙更换了IP,我也是灵机一动,想到一个绝妙的办法,竟然可以利用GFW来防御DDOS :
若当访问者未带ID时,认为是非法访问,自动跳转到/?minghui。

September 24, 2009

一,拒绝服务攻击的发展:
从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS。那么什么是Dos和 DdoS呢?DoS是一种利用单台计算机的攻击 方式。而DdoS(Distributed Denial of Service,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,比如一些商业公司、搜索引擎和政府部门的站点。DdoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。如果说以前网络管理员对抗Dos可以采取过滤IP地址方法的话,那么面对当前DdoS众多伪造出来的地址则显得没有办法。所以说防范DdoS攻击变得更加困难,如何采取措施有效的应对呢?下面我们从两个方面进行介绍。
二,预防为主保证安全
DdoS攻击是黑客最常用的攻击手段,下面列出了对付它的一些常规方法。
(1)定期扫描
要定期扫描现有的网络主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是黑客利用的最佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到网络主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。
(2)在骨干节点配置防火墙
防火墙本身能抵御DdoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。