51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

楼主: fishy
打印 上一主题 下一主题

我谈软件测试(圆满结束!!!)

 关闭 [复制链接]

该用户从未签到

1001#
发表于 2007-4-26 14:38:16 | 只看该作者
序号乱刀之二:攻击采用静态syn cookie的ddos设备防护下的服务器

        所谓静态syn cookie就是以客户端请求之syn包为参数计算回复syn ack中的seq值,并在ack包回传时判断连接合法性的方法,这种方法被ddos厂商大量采用,并且获得数量可观的国家发明专利,呵呵….。你经常会听到ddos厂商的人说他们的设备比防火墙“牛”多了,可轻松达到百兆线速syn防御,但百兆防火墙30M攻击流量就可以干掉,说这种话的ddos厂商,我可以打赌他们的设备80%采用了这种syn cookie算法。
Syn cookie算法的好处是只在synflood攻击时消耗CPU资源,这对于X86下强悍的通用CPU来说,正适用。
读者可能会感到很奇怪,为什么如此成熟的技术防火墙不采用,而让ddos厂商成天挤对?这有如下几个方面的原因:
1:防火墙也用syn cookie进行synflood防御的,但大多不是静态syn cookie,而是严格记录连接状态采用动态syn cookie,所以当syn flood攻击时不光消耗CPU,还要消耗大量内存。这也就是我本文开头提及的本方法可以攻击大部分ddos厂商和小部分防火墙厂商的原因。
2:syn cookie/syn proxy是bsd系统内核源码的一部分,在Linux最新版的2.6内核中syn proxy还没有被包含。所以ddos设备也大多由bsd系统组成。当然bsd是开源的,移植也不是什么大问题喽。
3:防火墙大多以Linux下的开源软件netfilter为基础,但netfilter中hash算法和连接表设计不是很优秀,防火墙转发性能的瓶颈就在于此,如果再加入syn proxy表项,会进一步降低对数据包的处理能力或加大连接表体积。高端防火墙大都支持数百万的连接数,这百万的表项就够防火墙喝一壶的了,再加一个syn proxy表项,性能还不得掉的稀里哗拉的?
4:防火墙很重要的一个网络功能就是DNAT,在没有DNAT操作前,防火墙不知道这些syn包的最终目的地是自身还是DMZ区的服务器,所以syn包必须DNAT后才知道是否要进行syn cookie保护。但这时就已经进入到netfilter处理框架了,性能当然就跟不上了。你见过几个ddos设备支持NAT的?如果支持了,他的性能也会下降不少。如果防火墙工作在桥模式下,不经过netfilter处理框架,防火墙就可以摇身一变成为性能卓越的抗ddos设备了,吗功能都没有,当然一身轻松了。呵呵…但您买的是防火墙,会这么大材小用吗?
言归正传,采用静态syn cookie的ddos设备,我们只需要重放一个ack包就可以达到与服务器的三次握手效果,因此可以做到源IP地址伪装。(这个伪装的源IP地址是你以前用过的,并且与ddos设备通讯过,并保存下来的,现在将它重放而己。如果你看不懂我在说什么,参照我写的《对国内ddos厂商技术点评》一文,抓包分析一下就知道了)。第二步就是发送一个正常的http request请求,随后就是大量的虚假ack请求重传。
天知道,谁在用我们伪装的源IP地址,做为一个连带的牺牲品。
你可能会认为受害服务器B会回复rst包给受害服务器A。这是有可能,但如果服务器B前面加装了一个“状态检测”防火墙,就会直接丢弃这个反射的http response数据包。
回复 支持 反对

使用道具 举报

该用户从未签到

1002#
发表于 2007-4-26 14:38:18 | 只看该作者
999
回复 支持 反对

使用道具 举报

该用户从未签到

1003#
发表于 2007-4-26 14:38:28 | 只看该作者
在这里学了很多东西,谢谢51testing!
在公司天天做性能测试,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

1004#
发表于 2007-4-26 14:38:38 | 只看该作者
原帖由 任道远 于 2007-4-26 14:36 发表
我想做白盒


做白盒需要会编程吧?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2014-12-29 12:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    1005#
    发表于 2007-4-26 14:38:42 | 只看该作者
    原帖由 ppent 于 2007-4-26 14:38 发表


    今天你是不是也想坚持到最后一个啊


    呵呵,今天我就不和大家抢了。。。sdlkfj6
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1006#
    发表于 2007-4-26 14:38:45 | 只看该作者
    51Testing论坛积分制全新改版!新手不再无助,高手不再孤独!
    你孤独吗
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1007#
    发表于 2007-4-26 14:38:52 | 只看该作者
    有破解版的vista吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1008#
    发表于 2007-4-26 14:39:03 | 只看该作者
    其实工具每样会用一种就行了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1009#
    发表于 2007-4-26 14:39:08 | 只看该作者
    转:wangfeng25
    5、ping检查法

      这种方法就是利用“ping”命令,来检查当前计算机是否能与对方好友的网站连通,在检查的过程中该地址能自动获得对方网站的IP地址。比方说,要是你想搜查天极网站的IP地址时,可以先打开系统的运行对话框,然后在其中输入“ping www.xxx.com.cn”字符串命令,再单击“确定”按钮,在弹出的窗口中,就能知道网站的IP地址了。同样地,你也可以搜查其他网站的IP地址


    确实好东西,受益匪浅,谢谢:)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-29 12:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    1010#
    发表于 2007-4-26 14:39:11 | 只看该作者
    原帖由 任道远 于 2007-4-26 14:38 发表
    秋天来了啊 !~


    我今天已经坐了SF了。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1011#
    发表于 2007-4-26 14:39:17 | 只看该作者
    原帖由 superls 于 2007-4-26 14:38 发表
    有破解版的vista吗?

    没发现
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1012#
    发表于 2007-4-26 14:39:21 | 只看该作者
    四至七层性能测试


      作为防火墙来说, 最大的特点就是对4-7层的高层流量可以进行一定的控制。所以在一定程度上讲,性能是肯定要受到影响的。而这种影响有多大,会不会成为整个网络的瓶颈, 从而使用户难以忍受, 就成为人们所关心的问题。 由于大部分防火墙的结构是软硬结合的, 所以功能上的要求较容易满足--只要可以想得到, 基本上实现起来困难不大。 但是落实到性能上,才可以看到产品的真品质。下面我们就浅析一下这方面的性能测试。 我们可以大致分为以下两类: 基准测试和真实环境测试。


      基准测试


      (Base Line Testing)


      首先是在防火墙配置规则情况下的性能测试。


      这个测试和上篇中的二层/三层的测试是比较接近的。 但是此时需要在防火墙上配置规则。在一些防火墙的结构中,设置规则与透明模式相比, 将调用另外的例程,从而表现得大相径庭。我们在测试中应该考虑到这一点,所以建议可根据自己的需要设置数量不等的规则,再进行性能比较。 例如, 可采用1, 50, 100, 500, 1000甚至更多的规则, 然后再重复进行二层/三层的测试。 在这其中又分两种情况: 1.将所有发送的流量设置为可以通过该设备,此时可以直接和透明模式测试结果做比较,查看规则对性能的整体影响。2.将流量配置成含有“阻塞/通过”的多样化, 这样就需要使用的测试仪表能够提供强大的数据流发送功能, 而且在接收时将不同数据流区分出来。 在检查了“通过数据流”的性能的同时,亦可验证“阻塞数据流”是否生效。 这种测试的优势在于同时检查了被测设备的功能和性能, 而且更加符合实际的情况。


      防攻击性能测试(DoS/DDoS)


      攻击测试是很重要的一部分。 此时我们可采用一些典型的攻击方式如:Syn Flood, Ping Flood,Smurf等。 主要的目的是看看防火墙是不是能够成功的将其挡住。 当我们将合法流量混合攻击流量时,我们更可以看到防火墙在处理攻击的同时,对于高速的合法流量如何处理。一般来讲, 攻击测试既可以使用测试仪表实现, 也可以使用软件实现, 如一些黑客程序等, 但是象Syn Flood这样的攻击则对速度要求很高, 故使用测试仪表发送才能测出有意义的结果。 使用仪表时, 应注意对将来不断涌现的攻击方式做通盘考虑。 最好是能够对包的填充内容做完全控制, 而且有较好的脚本编程的功能。 在使用软件做攻击模拟时最好有仪表同时模拟背景流量。


      另外需要指出的是: 并非所有攻击都应该被全部挡在外面。 如Syn Flood的攻击至少用满足某个门限值才能够被防火墙确认, 然后实施拦截。 再如Tear Drop攻击也能够被防火墙发现然后重组转发出去。 所以要根据攻击类型特别注意加以分析。 为确保所下结论正确, 建议在内网旁路一个协议分析仪进行捕获和分析。


      TCP连接性能测试


      人们一提到L4-L7的测试, 就自然想到了TCP 连接(TCP Connection)。 关于连接的测试一般有两个方面。


      1. 并发连接总数的测试。 并发连接是一个很重要的指标。 它主要反映了被测设备维持多个会话的能力。关于此指标的争论也有很多。一般来说,它是和测试条件联系紧密的。 但是这方面的考虑有时会被人们忽略。 比如,测试的时候采用的传输文件大小就会对测试结果有一定的影响。 可以这样考虑:如果在传输中高层流量很大的话, 被测设备将会占用很大的系统资源去处理包检查,导致无法处理新请求的连接,引起测试结果偏小。 反之则测试结果会大一些。 所以没有测试条件而只谈并发连接数是难以定断的。 从宏观上来看, 这个测试的最终目的是比较不同设备的“资源”。也就是说处理器资源和存储资源的综合表现。中国市场上出现了大家盲目攀比并发连接数的情况。事实上,并发几十万的连接数应该足可以满足一个电信级的数据中心服务网络了,对于一般的企业来讲, 甚至可能并发几千个连接数已经绰绰有余。 并发连接总数应能由仪表自动测试结果, 以减少测试所用的时间和人力。


      2. 并发连接处理速率。这个指标主要体现了被测设备对于连接请求的实时反应能力。对于中小用户来讲,这个指标就显得更为重要。 可以设想一下,当被测设备每秒可以更快的处理连接请求,而且可以更快的传输数据的话,网络中的并发连接数就会倾向于偏小,从而设备的压力也会减小,用户看到的防火墙性能也就越好。所以并发连接处理速率的确是个很重要的指标。 理想的测试工具可以帮助使用者搜索到被测设备能够处理的峰值, 减轻其工作的负担。


      有效吞吐量测试(TCP GoodPut)


      当我们谈起吞吐量时,大多都是指二层/三层的测试结果。但是随着测试面向的流量转为四层以上, 有效吞吐量的概念就显得重要起来了。这个概念通俗点讲, 就是除掉TCP因为丢包和超时重发的数据, 实际的每秒传输有效速率。 计算的方式也很简单明了:用所传输的文件大小除以传完这个文件的时间, 得到一个平均速率, 称为“有效吞吐量”。 不难看出,这个概念实际上和前面所提到的“吞吐量”是完全不同的。请注意避免混淆。在RFC2647中也对此概念有所说明。那么通过这个测试我们能够得到什么信息呢?首先,我们可以知道测试中的延迟和丢包对最终用户的影响有多大。因为最终用户是不关心二层三层的。他们的大部分应用都是运行在四层以上。如果有效吞吐量性能不好(即使二/三层的转发性能不错),则会导致整个主机看起来运行缓慢。其次,这个测试也有助于帮助厂商定位问题及找到系统的未来可发展空间。可以将此结果和基准测试中的结果做一对比,确定是第三层的转发引擎还是第四层的状态检查影响了系统性能。在做此测试的时候, 应该注意采用多个模拟的主机进行混合测试。原因是由于TCP是采用“滑动窗口”的状态相关的协议,所以理论上讲, 模拟单个主机是无法使链路的最大性能发挥出来的。


      TCP连接建立的延迟


      RFC2647中提出了测量这个指标。 理想的情况是测量出每个连接从发起到确认连接建立的时间差, 给出最大、最小和平均的测试值。 事实上, 做到这点是相当困难的, 因为测试工具必须能够跟踪上万个连接, 而且能够实时的将它们的相应报文挑出来, 分别进行统计。 而目前来看还没有一个这么强大的工具能做到这点。 所以在多数情况下可采用几种方式代替, 如测量单位时间内实际建立的连接数(排除缓冲区的影响), 或测量客户端收到第一个字节数据的时间等等。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1013#
    发表于 2007-4-26 14:39:28 | 只看该作者
    原帖由 wangfeng25 于 2007-4-26 14:38 发表
    序号乱刀之二:攻击采用静态syn cookie的ddos设备防护下的服务器

            所谓静态syn cookie就是以客户端请求之syn包为参数计算回复syn ack中的seq值,并在ack包回传时判断连接合法性的方法,这种方法被dd ...

    sdlkfj3 开始复制水了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1014#
    发表于 2007-4-26 14:39:35 | 只看该作者
    这么快冲破1k  看来下次要到3k了~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1015#
    发表于 2007-4-26 14:39:52 | 只看该作者
    学习!学习!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1016#
    发表于 2007-4-26 14:40:03 | 只看该作者
    真实环境测试


      (Real World Testing)


      限于篇幅, 本文将主要介绍一下所谓“真实环境测试”的概念。 这种测试是最近比较热门的一种提法。 其主要特点是尽可能地把测试的流量和测试的环境接近于真实, 甚至有可能就将真实的流量捕获之后重放到网络上面。为了区别前面讨论的“基准测试”, 我们举一个小例子: 当我们的防火墙在网上运行的时候, 在某一时间面内, TCP连接可能存在着三种情况: 有的正在建立, 有的正在传输数据, 有的正在关闭。 这是一个“真实”的情况。 但是我们在做“基准测试”的时候并没有考虑这样一个复杂而混乱的情况, 而选择了相对来说比较“纯净”的测试流量模型, 即不断的建立连接, 然后传输数据, 而后依此关闭连接。 从而我们得到一个好处: 测试结果比较稳定, 流量模型可控。


      但是我们失去了一些真实性。 有可能会造成一些问题难以在测试中发现。 再举一个例子: 用户上网的时候都有各自的接入速率, 在到达网站的路径上都会有丢包, 在看网页的时候可能有自己的思考时间, 在网页下载缓慢的时候也有自己的容忍限度等等, 这些都是一些现实问题, 都可能对选择设备和网络设计产生影响, 而这些问题在“基准测试”中是被忽略的, 被认为是理想的, 而恰恰是“真实环境测试”需要考虑的。 从这两个例子中我们可以简单总结出一条结论: “真实环境测试”实际上是一种绝对测试, 即对测试个体在网络的真实运行状态的一个绝对的评价; “基准测试”则是一种稳定的相对测试, 侧重点在于不同产品之间的比对。 二者各有其优势。 而“真实环境测试”由于在以前的测试中重视不够, 所以目前发展空间比较大, 值得关注。 以后我们将另文深入探讨该测试, 但这里需要指出的是, 不要简单的认为使用真实的捕获的流量的测试就是“真实环境测试”。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2014-12-29 12:55
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    1017#
    发表于 2007-4-26 14:40:11 | 只看该作者
    原帖由 ppent 于 2007-4-26 14:38 发表
    51Testing论坛积分制全新改版!新手不再无助,高手不再孤独!
    你孤独吗


    那么多朋友在,大家应该都不孤独了sdlkfj5
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1018#
    发表于 2007-4-26 14:40:26 | 只看该作者
    刚抽出点空来!
    彻底晚了!哎。。。。。。

    做测试到现在已经差不多两年了!
    从俺立志做测试以来,51testing就一直陪伴着俺
    帮助俺从对测试一无所知,到一知半解,到现在的有些熟练
    真的不得不说声感谢感激感动啊!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1019#
    发表于 2007-4-26 14:40:27 | 只看该作者
    谁会webload呀????
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1020#
    发表于 2007-4-26 14:40:28 | 只看该作者
    我的状态怎么也是离线呢?为何???
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-6-5 00:06 , Processed in 0.076893 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表