免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 19292 | 回复: 57
打印 上一主题 下一主题

关于SYN FLOOD攻击原理的一点探讨 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-25 21:58 |只看该作者 |倒序浏览
SYN FLOOD是一种比较常见的DoS攻击手段,它的特点就是防不胜防。
TCP握手要经过3种状态的迁移才能完成,SYN FLOOD的策略就是发出SYN后对这个套接字置之不理,服务器的这个套接字就只能苦苦等待最后一个永远不会到来的ACK。服务器上这样的套接字就是所谓的“半连接”套接字。由于服务器的半连接数量有限,如果一个恶意的客户机不停地在服务器上制造半连接,就会把服务器的TCP资源耗尽。
由此可见,SYN FLOOD的一些特性:
1 源地址的不确定性。因为客户机根本就不想创建连接,也就根本没必要在源IP字段写上真实的地址,甚至可以为每一个包随机生成一个IP,所以使用任何包过滤手段都没有效果,除非攻击者比较笨。
2 序列号的不确定性。同样因为客户机根本就不想创建连接,也就根本没必要使用真实的序列号,根据TCP序列号判断数据包是否来自同一个TCP层也是不可靠的,除非攻击者比较笨。
3 攻击行为的隐蔽性。SYN FLOOD攻击实际上就是TCP的第一次握手,从这一个数据包上根本无法看出它是合法还是非法。

那么我们应该怎么办呢?我们的策略只能是在目标机上抵抗DoS,防止服务器当机,但是,我们并不能预先阻止SYN FLOOD的DoS。
对于Linux来讲,方法还是挺多的:
1)  echo 1 >; /proc/sys/net/ipv4/tcp_syncoocies
这是Linux上最基本的抵抗方法。很简单,但是很有效。
2) 改变TCP参数,缩短TCP半连接的保留时间,也就是说对于最后一个ACK不要等待太久。
google似乎就是这么处理的。他的缺点就是重载时可能会影响连通率。
3) 限制SYN数据包的进入速率。
Linux有很强大的流量控制机制,而且可以控制数据包进入网络接口的速率,我们只要限制一下网卡的ingress qdisc就可以了。
……
n) 最后也是最重要的就是:非技术手段。抵抗DDoS不是一个人的事情,俗话说一个巴掌拍不响,我们应该尽自己所能把自己的网络保护好,不要让自己成为别人攻击的跳板。网管们(尤其是骨干网的网管们)要团结起来,不给网络上的小流氓们可乘之机。

详细资料可以参考:
http://lartc.org/LARTC-zh_CN.GB2312.pdf
(Linux的高级路由和流量控制)
http://ipsysctl-tutorial.frozentux.net/
(对于/proc/sys/*的详细解释)

论坛徽章:
1
金牛座
日期:2014-05-29 15:55:47
2 [报告]
发表于 2003-02-26 08:22 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

很老的文章了。

论坛徽章:
0
3 [报告]
发表于 2003-02-26 13:35 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

syn的基本操作是向目标服务器发送成千的连接请求(syn或者同步包)。等待目标服务器对syn做回映,timeout消耗目标机器的内存。
w2k的默认时间是189秒。
syn攻击一般采用伪造的ip address,通过大型isp在入口和出口进行过滤可以降低syn攻击。
防火墙一般是拦截syn网络包,完成路握手,仅将连接转发到真正的目的断。

论坛徽章:
0
4 [报告]
发表于 2003-02-26 15:29 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

现在很多防火墙都声称可以阻止SYN FLOOD攻击,大家知道用的是什么原理吗?

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2003-02-26 15:46 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

都没用,所谓防火墙可以阻止synflood也是骗人的,最多做个类似syn cookie的东西,有的只是简单的处理,遇到大量的随机性强的syn洪水就挂了

防止synflood dos攻击是一个长期课题,据我所知目前效果最好的是绿盟的防dos产品黑洞,大概原理是修改bsd的tcp/ip协议栈,基本原理就是6次握手,大致的框架其实还是syncookie,只不过中间算法效率比较高

论坛徽章:
0
6 [报告]
发表于 2003-02-26 17:45 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
7 [报告]
发表于 2003-02-26 20:08 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

[quote]原帖由 "iceblood"]很老的文章了。[/quote 发表:


老大,您真成仙啦?我刚刚写的文章您就说很老?
这篇文章我就是辟谣用的。DDoS没有根本的技术手段可以防止,只能在目标主机上抵抗。

论坛徽章:
0
8 [报告]
发表于 2003-02-26 20:17 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

[quote="adrianke"]
防火墙一般是拦截syn网络包,完成路握手,仅将连接转发到真正的目的断。[quote]

这种方法就是所谓的“TCP代理”,实际上用SQUID做一个反向代理服务器也有相同的功能,但是仍然不能解决上述问题:
既然TCP代理要完成TCP连接后才能知道一个SYN报文是否合法,就等于一切问题又都出现了——TCP代理本身的半连接耗尽怎么办?归根结底又回到了单主机的防护上。

论坛徽章:
0
9 [报告]
发表于 2003-02-27 09:35 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

原帖由 "JohnBull" 发表:
SYN FLOOD是一种比较常见的DoS攻击手段,它的特点就是防不胜防。
TCP握手要经过3种状态的迁移才能完成,SYN FLOOD的策略就是发出SYN后对这个套接字置之不理,服务器的这个套接字就只能苦苦等待最后一个永远不会到来..........


echo 1 >; /proc/sys/net/ipv4/tcp_syncoocies 大家都说这个可以,我没测过。那这个用的是什么原理呢?从理论上来说,SYN flood根本没有办法阻止,因为进入包的IP/MAC都是伪造的,没有办法区分是否是用户真正发来的请求,也就没有办法进行过滤。

我想,如果internet上的每个边缘路由器都设置一下,本地网络出来的数据包都检查包的源IP看是否是本地IP(因为边缘路由器的管理员可以知道本地IP包的分布),如果不是,则认为是不合理的数据包不进行转发。可以限制了攻击者源IP的范围,服务器的防火墙+IDS就可以根据策略对该IP范围内的包进行阻止了,可以减少损失。大家觉得如何呢?

论坛徽章:
0
10 [报告]
发表于 2003-02-27 09:52 |只看该作者

关于SYN FLOOD攻击原理的一点探讨

Cisco路由器上可以监视半打开连接,达到限值后就不允许新的请求通过,这种方式有效吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP