收藏文章 楼主
CC攻击的思路及防范方法
网友【血蜘蛛】 2005-10-26 16:14:26 分享在【时代发展的印记】版块    1    1
适合读者:DDOS研究员、各大站长、网络管理员

前置知识:ASP基本阅读能力

蝴蝶:前段时间上海一家游戏娱乐公司的网站遭到了基于页面请求的DDOS分布式拒绝服务攻击,网站陷入完全瘫痪状态,并被黑客的匿名信勒索,金额高达10万元,而在勒索过程中,这群黑客还表示会对Tencent QQ等网站下手,随后QQ“服务器维护”几天。12月5号的时候,全球BitTorrent服务器也受到了很强烈的DDOS攻击,一度陷入瘫痪。而DDOS攻击中最流行的也是威力最大的就是基于页面的DDOS以及将这个攻击理论发挥得淋漓尽致的攻击工具CC,本文特邀CC作者和我们共同了解CC的相关攻击原理和防范方法,希望能让更多的朋友了解这样的攻击方式并能防范它。

我写CC的思路及防范方法

文/ kiki

很多朋友都知道木桶理论,一桶水的最大容量不是由它最高的地方决定的,而是由它最低的地方决定,服务器也是一样,服务器的安全性也是由它最脆弱的地方决定的,最脆弱的地方有多危险服务器就有多危险。DDOS也是一样,只要你的服务器存在一个很耗资源的地方,限制又不够,就马上成为别人DDOS的对象。比如SYN-FLOOD,它就是利用服务器的半连接状态比完全连接状态更耗资源,而SYN发动方只需要不停的发包,根本不需要多少资源。

一个好的DDOS攻击必须是通过自己极少资源的消耗带来对方较大的资源消耗,否则比如ICMP-FLOOD和UDP-FLOOD都必须和别人一样大的带宽,对方服务器消耗多少资源自己也得赔上多少资源,效率极其低下,又很容易被人发现,现在基本没有什么人用了。

攻击原理

CC主要是用来攻击页面的。大家都有这样的经历,就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为什么很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。

一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。

CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。很多朋友问到,为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。

使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。

可能很多朋友还不能很好的理解,我来描述一下吧。我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器的被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。

蝴蝶:我们假设服务器处理Search只用了0.01S,也就是10毫秒(这个速度你可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,可以想象可怕了吧,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大。

当然,CC也可以利用这里方法对FTP进行攻击,也可以实现TCP-FLOOD,这些都是经过测试有效的。

防范方法

说了攻击原理,大家肯定会问,那么怎么防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御。

1. 使用Cookie认证。这时候朋友说CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就可以了。

2. 利用Session。这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号。给些示范代码吧,Session:

程序代码:

代码:<%
if session(“refresh”)<> 1 then
Session(“refresh”)=session(“refresh”)+1
Response.redirect “index.asp”
End if
%>

这样用户第一次访问会使得Refresh=1,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么影响。

3. 通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP,这招完全可以找到发动攻击的人,当然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数。详细代码:

程序代码:

代码:<%
Dim fsoObject
Dim tsObject
dim file
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then
response.write "无代理访问"
response.end
end if
Set fsoObject = Server.CreateObject("Scripting.FileSystemObject")
file = server.mappath("CCLog.txt")
if not fsoObject.fileexists(file) then
fsoObject.createtextfile file,true,false
end if
set tsObject = fsoObject.OpenTextFile(file,8)
tsObject.Writeline Request.ServerVariables("HTTP_X_FORWARDED_FOR")&"["&Request.ServerVariables("REMOTE_ADDR")&"]"&now()
Set fsoObject = Nothing
Set tsObject = Nothing
response.write "有代理访问"
%>

这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了。将这个代码做成Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求就连接到这个文件上,然后马上就能发现攻击的人。

4. 还有一个方法就是把需要对数据查询的语句做在Redirect后面,让对方必须先访问一个判断页面,然后Redirect过去。

5. 在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法。

CC的防御要从代码做起,其实一个好的页面代码都应该注意这些东西,还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口,大家都应该在代码中注意。举个例子吧,某服务器,开动了5000线的CC攻击,没有一点反应,因为它所有的访问数据库请求都必须一个随机参数在Session里面,全是静态页面,没有效果。突然发现它有一个请求会和外面的服务器联系获得,需要较长的时间,而且没有什么认证,开800线攻击,服务器马上满负荷了。

代码层的防御需要从点点滴滴做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响,慎之!
meiguo.com 发布人签名/座右铭·有时你看似是一件很吃亏的事,往往会变成非常有得的事。
·凡事都留有余地,因为人是人,不是神,不免有错处,可以原谅人的地方,就原谅人。
·好的时候不要看得太好,坏的时候不要看的太坏。
大家都在看
回复/评论列表
默认   热门   正序   倒序
meiguo.com 创始人

emotion

1   2005-10-26 16:14:26  回复

回复/评论:CC攻击的思路及防范方法

暂无用户组 升级
退出
等级:0级
美果:
美过
精华推荐
  1. 风向有变?🇨🇳中央召开民企座谈会,寓意深刻!
  2. 美国房产的保值要点,但却被九成华人买家忽视了!
  3. 滞留太空的NASA宇航员即将返回地球
  4. 《纽约时报》刊登的中国父子文章:为何送儿子留学美国
  5. 滞留美国的华裔非法移民“遭遇流放”,首批119人已起飞!
  6. 谷歌地图和苹果地图已经都修改了美国湾(墨西哥湾)
  7. 23岁中国女留学生在南加州的住所内遇害,曾控诉白人男友“性虐待”!
  8. 大S【徐熙媛】病逝,享年48岁!
  9. 川普总统在开工首日就向1300万非法移民动手了
  10. 福布斯曝光了Deepseek 梁文锋的净资产
  11. 美国留学的政策大变?众多名校陷入财政危机,扩招中国学生?
  12. 男性精液质量和预期寿命“真有关系”
  13. 王毅定调了中国统一,马英九发出了战争预警!
  14. 华人害华人!涉及1500万美元的芝加哥“大型持枪绑架案”嫌疑人半数落网
  15. 在美国生活,这四证缺一不可!
  16. 遭遇“断粮”的BBC叛变了?
  17. 美国首都机场为何全美风险最高?川普总统“怒喷航管弱智”
  18. 重庆妹子“盯美国男人不放”,前后嫁给美国医生和美国律师!
  19. 中国电影市场的2025春节档 ~ 简直就是神仙打架
  20. 美签面签后的全面复盘:审核原因和拒签因素剖析
  21. 全美境内,非法移民“驱逐战”打响了!
  22. 川普总统首次公开回应“TRUMP”数字货币项目
  23. 时至2025年3月中旬,地球上最顶尖的五大芯片品牌,均由华人掌舵!
  24. 美国“H1B签证”新一轮抽签在3月份开启,新变化真不少!
  25. 泽连斯基和川普、万斯在白宫当众吵架,饭都没吃着!
  26. DeepSeek已经让成人玩具“率先受益”
  27. 在美国买房,看Open House时需要注意的问题汇总
  28. 陆地入境美国受阻,“华人偷渡客”已经改用快艇登陆了?
  29. 北美留学生注意,美国和加拿大即将共享所有移民和签证讯息!
  30. 赵本山在纽约:前排票价1400美元,团队聚餐画面曝光!
  31. “复活版”TikTok“拿捏了”美国人的软肋?
  32. SpaceX在13小时内3连发,全力拯救被困宇航员!
  33. 李嘉诚在全球的港口“几乎清仓”,套现190亿美元!
  34. 川普政府的“朝令夕改”最短纪录再次刷新
  35. DOGE让1.4万公务员失业?马斯克已经做好最坏心理准备!
  36. 赴美生子的中国人在纠结剖不剖?美国人在寻思“移民鹤岗”呢!

美国动态 美果转盘 美果商店

Your IP: 18.116.81.133, 2025-03-31 01:39:37

Processed in 0.07322 second(s)

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息
已有0次打赏
(1) 分享
分享
取消