纠正对ddos的错误认识及对国内厂商技术点评
本文档的Copyleft归skipjack所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。
邮箱: skipjack@163.com
来源:[url]http://skipjack.cublog.cn[/url]

以下链接是CU原文出处,里面有很多讨论:
[url]http://bbs.chinaunix.net/viewthread.php?tid=732960&fpage=1&highlight[/url]=
看了zjzf_1的《问绿盟黑洞》的文章好几天了,有点想法不吐不快。前两天正忙,现在闲下来了,说说我的想法,以前和zjzf_1也有过交流,主要感觉此人就是一个扛头,扛了又扛。扛上开花的那种。文章中会提到一些厂商的技术,有正有反,大家不要对号入座,主要是希望对你们的技术提高有帮助。我以原始的ddos的先行者syn flood来举例说明,cc我不打算评价,因为我认为syn flood的效果远远好于cc,而隐蔽性是cc远远达不到的。先点评一下关于DDoS话题方面的一些网友的错误认识和厂商的技术弱点。以下如果没有特殊指明,ddos我指的就是syn flood这种最原始、最有效、最简单、最可爱的东西。
1.只要一谈论ddos想到的就是大流量,就是无边无际、无际无边的带宽消耗战。
错了,syn flood可不是带宽消耗战,drdos才是!那是因为syn flood的使用者使用不当,才会有今天大家的错误认识。
2.天,我CPU都满跑了,为什么目标机一点事都没有?我用的可以Linux下开源的、大家都害怕的、网评第1的***软件呀。
检查一下你的网关是不是有NAT,如果有。不是你的包没出去,就是你的网关快阵亡了,您赶快住手吧。
去掉你前面的防火墙,因为防火墙在你发起***时,最先受到损害,更重要的是它是你财产的一部分。
你极有可能拿一款ether下的***程序在pppoe网络中使用了,为了提高效率***数据包都是自己填充的,所以程序本身可能把数据包进行了 ether_type的二层封装,如果你在pppoe环境中***,请自己修改源代码改为PPPOE封装。否则的话,你***的不是目标机,而是在自己的房间里大小便。要学会分析协议,下面才是二层PPPOE封装的正确格式:
88 64 11 00 0B D0 00 56 00 21
3.这个ddos设备没什么了不起,用的就是syn cookie和syn proxy。
我认为这两种方法是当前最有效的解决方法,就像***者必须联网才能发起***一样,这两种措施是必做的。如果您没用这两种方法就实现了ddos防御,以下的内容您就不用看了。因为您是我见过的第一牛人,我在您面前绝对是个晚辈的。在此就不浪费您的宝贵时间了。如果您感觉我还可救,给我留点面子传张纸条教侮我一番吧。
4.drdos比ddos时髦多了,可以四两拨千斤
真不好意思,syn ack这个数据包应该从内网口收到才对,从外网口收到时直接丢掉就可以了。它浪费的是你的宽带而不是内存或者大量的cpu。
你可能会说我后面的服务器是ftp并工作在主动模式,所以有时syn ack也是不能丢的。嗯…解决方案你自己已经说出来了,自己想个办法吧。
5.DDoS是最没有水准的***类型,菜鸟才用。
这只能说明你只是使用ddos工具的人,而不是一个编写ddos***类程序的人。大家知道一款好的ddos***软件,所发的包在各协议首部字段的合法范围内越随机越好。只要有一个字段该变但你没变的,特证过滤一下子就把你干掉了。如果***包是以多播、回环为源ip发送,我只能说***者在和你开玩笑,看看日历确认今天不是愚人节。
但满足随机就是好的***软件吗?喵~喵~俺家的小花猫都知道,远远不是滴,单纯发syn***包就不是好的***方式。浪费ddos设备资源的是握手的第三个 ack包。但第三个包构造上又很有讲究,举个例子:国内某某ddos厂商的主页,我小流量正常访问时抓包,可以发现他没有做syn proxy,但当我1000pps时,通过抓包就可以看出,他启用syn proxy了,并且syn cookie也随之打开了,你问我怎么知道的?看看它回复的syn ack包的tcp选项部分的变化你就明白了。这时是他启用防护的时机,也是它最脆弱的时候,细心的构造一个syn包,一个ack包,算准了它的 cookie,喂给它。喵~小花猫都知道5000pps足够了。我不是有意这么做的,是它在CU里叫大家帮忙做测试,我简单的分析了一下,是这个原理。没叫劲,睡觉了,第二天具说有3000台肉机参与了,不知是真是假,如果没有了解原理,你就算动用8000台也没用啊!
这里真正的技术是推算cookie,但我在市面上找不到一款ddos***软件有这个方面的功能,你可能会说这不就是cookie***吗,我不这么认为,我不会发大量的ack来消耗它的cpu资源,我只是想钻它算法的空子。因为一种cookie的算法就好比是一类ddos设备的指纹,推出这个cookie的参数与运算法则,以后遇到它的时候,它就死定了。当然厂商也不傻,算cookie的参数是个很大的数并且还是在不断变化,但不会经常变,每次启动的时候变一次就算很智能了。因为每天小花猫吃饭的时候,我都会便顺发送一个相同的syn包给它,它返给我的syn ack中的cookie一直都是一样的。哈哈…如果我有耐心,终有一天我会推出来的,注意:这个syn包源IP是真实的,所以我能观察到它的返回数据包,并且他根本就发现不了偶。一天才一个syn包嘛。
顺便问问版主,绿盟在测试黑洞的时候,肯定有一种***软件是他们自己写的,针对自己的产品的弱点、软肋、命门、死穴、扪门发送5000pps应该就可以挂了。喵~喵~喵~小花猫咽到了。
6.这个百兆ddos设备真牛呀,百兆的线路我都D满了,还可以正常访问保护的服务器
你的感叹用错对像了,你应该感叹于这条网线的质量很好,一条质量优秀的网线,百兆千兆的确都可以跑起来呀。另外一个设备适用于百兆还是千兆环境的瓶颈,你没有弄清楚。我用82559网卡,我的算法再好也不可能你把百兆线路D满了,后面的服务器你还可以访问。你的这种情况,我可以很负责任的告诉你,这个外表百兆ddos设备实际采用了千兆平台和千兆网卡,而流量的瓶颈在你测试中的其它结点上。仅此而己。
7.我们的算法不对syn包做回追处理,所以你的下行带宽没有被浪费。
这话也说的出口,真汗!小花猫甩甩尾巴跑去喝水了。你把10kpps的发包器真接插在百兆ddos设备上面试一下,看看是回复syn ack时CPU使用率高,还是只接受syn包不回复时CPU占用率高。告诉你,后者的cpu占用率更高一些。为什么呢?因为我回复syn ack时也是一种另类的保护策略,在局域网中,***者发的数据包也必须依照冲突检测载波监听的方式来发送***包,如果你回复等量的syn ack也就是在堵***者的嘴,他发包的速度会成倍的减下来。这意味这什么?意味着你用你的下行带宽换来了上行带宽,这么好的机会你为什么要放弃?这就好像一群人在用砖头拍你,拍的你上串下蹦,左躲右闪,累的你呼吃带喘,你心里还在想我TM怎么这么聪明呀,没有回拍他们,节约了不少力气,所以现在身行才能如此敏捷。
8.你看我们的设备连IP地址都没有,可以实现网络隐身,所以很安全
幸好小花猫不在身边,否则还不得被呛个半死呀。这个因果关系也说的出来?那我是不是可以说工作在桥模式下的设备都很安全?这是我见过的最大的拿缺点当优点忽忧人的说词。你把IP地址给我设上,我为什么要网络隐身啊,我光明正大!你不是防ddos***吗?你自己的ip为什么不敢暴露在公网上提供http管理控制?厂商会找出各种的手段来忽忧你,以下是最常见的托词:设置管理IP地址当然可以了,但要从另外的一个网口专门引出来,并且我们不对管理网口做防护,因为这样会增加我们系统的负载呀。呀~~呀~~呀~~,回想起测试性能的时候他们好像说自己的算法很牛,什么国际领先啦,什么可以抵御所有未知的ddos ***啦,什么算法CPU零负载啦,什么指纹啦,什么单向数据包一次检测啦,什么×××啦、什么syn包实名制啦、什么暂住证啦….什么这个,什么那个了,你都这么强了,暴露一下嘛。
    不想做过多技术分析,主机型syn proxy syn cookie和网关型syn proxy syn cookie的难度不是一个数量级,原因是厂家为了效率把syn proxy syn cookie都在驱动层实现了,你叫他们把数据包上送到系统的TCP/IP协议栈给系统自身,真的是很难为他们。但你实现不了可以直说,忽忧我家小花猫就不厚道了。
9.我们的设备是透明接入,不会修改你的拓扑
嗯…这要看你对透明接入的了解程度了,我翻了翻所有ddos厂商的手册,吃惊的发现,都是一个模子,不知是谁抄谁的。上画三张用户常用拓扑,一个保护服务器、一个保护防火墙,一个保护网络,就认为自己可以全透明接入了?下面这张图你能透明接入吗?内网为三个VLAN网段,服务器放在VLAN2中,每个网段互相访问都必须通过防火墙内网口的三个对应VLAN网卡(各网段默认网关),防火墙通过DNAT后对外映射VLAN2网段服务器。我的要求是即要求你防外网的ddos还要你防止内网对VLAN2的ddos,敢问您,您打算怎么个透明进入法?
1)        透明接入在防火墙外网口?
2)        透明接入在防火墙内网口?
你八成会修改我的拓扑,把VLAN2转到DMZ,然后透明接入在防火墙DMZ网口上
外网
                    |
                  防火墙
                    |
                    |交换机trunk口
                    |
                switch
        |            |            |
      VLAN 1      VLAN2      VLAN3
10.利用超时重传来判断syn包是否合法
这种方法是相当的有效啊,远处传来小花猫的声音:“给它在三秒钟之内发第二个syn包”
11.可能您感觉本文写的不错,但要转载的时候,请注明原作者是skipjack,仅些而己,谢谢了
很不幸,年初时给国家某某一级刊物投稿,先开始写了8000字,后来叫我一删再删,删了再删,图是左减一个,右减一个,上减一个,下减一个,前减一个,后减一个。本来是一个从浅入深的分析过程,后来成了个半掉子,没几个人可以读懂了。稿费汇给我时,我都快哭了,4000多字才给俺103元,从邮局走出来的时候,手里握着这103元钱,心里想:“今儿中午我是请老婆吃饭呢,还是请小花猫吃饭呢?”。
                                
                                                                                                                        2006-4-6
                                                                                                                        23:33 skipjack 

转载于:https://blog.51cto.com/wzhj132/385822

【技术转载】DDOS深入讨论相关推荐

  1. 换肤 技术 (转载)

    揭秘换肤技术(转载) 转载几篇别人写的皮肤类控件的技术文章 原连接:http://blog.sina.com.cn/s/blog_4c3538470100ezhu.html 实现控件的透明背景 很多情 ...

  2. IT人不要一直做技术[转载]

    IT人不要一直做技术 [引子]感觉这篇文章很有深意,正是我所想说的话.希望大家有借鉴. [原文] 我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/ ...

  3. 我们应学的11项技术[转载]

    1. XML 首先,你要了解XML.我不是说仅仅是XML规格本身,还包括一系列相关的基于XML的语言:最重要的是 XHTML.XSLT.XSL.DTDs.XML Schema (XSD).XPath. ...

  4. IT人不要一直做技术(转载)

    [引子]感觉这篇文章很有深意,正是我所想说的话.希望大家有借鉴.  [原文]       我现在是自己做,但我此前有多年在从事软件开发工作,当回过头来想一想自己,觉得特别想对那些初学JAVA/DOT. ...

  5. 那些年,追过的开源软件和技术[转载]

    转载 : http://dongfei.baijia.baidu.com/article/48626 前沿 笔者也是在互联网软件行业里面摸爬滚打十年多了,回头想想青葱岁月,很多时间都花在各种技术热潮的 ...

  6. 技术转载:八款开源 Android 游戏引擎 (巨好的资源)

    作者: iamsheldon 链接:http://software.intel.com/zh-cn/blogs/2012/01/13/android-4/ 初学Android游戏开发的朋友,往往会显得 ...

  7. B/S结构的一机多屏的技术论证及可行性讨论

    简单介绍:通常情况一机只接一个屏幕,但在特殊岗位上一个机器可能接多个屏幕,一机多屏就是要能自动识别客户端屏幕数量以及屏幕分辨率,自动为用户打开多个屏幕并展示. 实现方式:对于B/S系统来说,困难在于对 ...

  8. 轻量级的网页Rank算法,365Rss.cn的Rank技术解释以及算法讨论(一)

    写这片文章,是想讨论一下轻量级(相对于Google那种重型复杂的PageRank而言)的网页Rank算法. 一般而言,一个网页是否受欢迎,365Rss.cn所能想到的,应该涉及到3个分子因素:&quo ...

  9. Android实现XML解析技术 (转载http://www.cnblogs.com/hanyonglu/archive/2012/02/28/2370675.html)...

    本文介绍在Android平台中实现对XML的三种解析方式. XML在各种开发中都广泛应用,Android也不例外.作为承载数据的一个重要角色,如何读写XML成为Android开发中一项重要的技能. 在 ...

最新文章

  1. 内置函数sorted的10个小tips
  2. NOtePad++快捷键大全
  3. 如何测试 ASP.NET Core Web API
  4. 追求卓越追求完美规范学习_追求新的黄金比例
  5. Git在windows环境下的使用教程
  6. 如何才能成为一个成功的项目经理
  7. 如何用 Bash 创建一个二进制发布包
  8. Capture One Pro 22 for Mac(RAW图像处理软件)
  9. 增强版的RecycleViewAdapter,能够直接使用
  10. 【Python】Qt国际化ts文件转excel文件(xml转excel)
  11. 科技爱好者周刊(第 149 期):新能源汽车,谁会是赢家?
  12. 一个简洁美观的静态网页登陆页面(css+html)
  13. Ubuntu ssh-keygen远程登录
  14. STM32操作增量式编码器(一)----使用外部中断实现测速
  15. HTML的id选择器类选择器
  16. 2023税务师DA考点抢先学
  17. 练习---打印出电影天堂中电影的下载链接
  18. Scrapy Tutorial
  19. SSL/TLS高强度加密
  20. phpstudy打不开localhost

热门文章

  1. 微信开发sdk_二次开发微信API更新日志
  2. nginx php 403 js,Nginx 跨域 add_header 403状态下无效
  3. NetSuite 中国财务常用报表功能包
  4. matlab 创建双y轴坐标图形
  5. js禁用浏览器 pdf 打印、下载功能(pdf.js 禁用打印下载、功能)
  6. 全球及中国防腐涂料市场十四五供需前景与产值状况分析报告2022版
  7. ubuntu20.04安装opencv4.3.0中出现的问题
  8. 如何测试微信好友是否删除或者拉黑了自己
  9. 计算机常见的智能终端有哪些,2019年中国智能终端行业市场规模,及主要细分领域出货量情况 [图]...
  10. 解决dreamweaver代码提示失效的问题