什么是SYN包与SYN攻击原理

阅读: 评论:0

什么是SYN包与SYN攻击原理
什么是SYN包与SYN攻击原理.txt-//⾃私,让我们只看见⾃⼰却容不下别⼈。如果发短信给你喜欢的⼈,他不回,不要再发。看着你的相⽚,我就特冲动的想P成⿊⽩挂墙上!有时,不是世界太虚伪,只是,我们太天真。
什么是SYN包?SYN包是什么意思?
TCP连接的第⼀个包,⾮常⼩的⼀种数据包。SYN攻击包括⼤量此类的包,由于这些包看上去来⾃实际不存在的站点,因此⽆法有效进⾏处理。
当两台计算机在TCP连接上进⾏会话时,连接⼀定会⾸先被初始化。完成这项任务的包叫作SYN。⼀个SYN包简单的表明另⼀台计算机已经做好了会话的准备。只有发出服务请求的计算机才发送SYN包。所以如果你仅拒绝进来的SYN包,它将终⽌其它计算机打开你计算机上的服务,但是不会终⽌你使⽤其它计算机上的服务,如果它没有拒绝你发送的SYN包的话。
SYN攻击
最近对SYNFlood特别感兴趣,看到⼀个关于SYNcookiefirewall的⽂章,在google搜了⼀下,没中⽂的,翻译他⼀下
本⽂介绍了4个概念
⼀:介绍SYN
⼆:什么是SYN洪⽔攻击
三:什么是SYNcookie
四:什么是SYNcookie防⽕墙
C=client(客户器)
中软冠
npaS=Server(服务器)
FW=Firewall(防⽕墙)
⼀:介绍SYN
SYNcookie是⼀个防⽌SYN洪⽔攻击技术。他由D.J.Bernstein和EricSchenk发明。现在SYN COOKIE已经是linux内核的⼀部分了(我插⼀句,默认的stat是no),但是在linux系统的执⾏过程中它只保护linux系统。我们这⾥只是说创建⼀个linux防⽕墙,他可以为整个⽹络和所有的⽹
络操作系统提供SYNCOOKIE保护你可以⽤这个防⽕墙来阻断半开放式tcp连接,所以这个受保护的系统不会进⼊半开放状态(TCP_SYN_RECV)。当连接完全建⽴的时候,客户机到服务器的连接要通过防⽕墙来中转完成。
⼆:什么是SYN洪⽔攻击?(来⾃CERT的警告)
陆征祥
当⼀个系统(我们叫他客户端)尝试和⼀个提供了服务的系统(服务器)建⽴TCP连接,C和服务端会交换⼀系列报⽂。
这种连接技术⼴泛的应⽤在各种TCP连接中,例如telnet,Web,email,等等。
⾸先是C发送⼀个SYN报⽂给服务端,然后这个服务端发送⼀个SYN-ACK包以回应C,接
着,C就返回⼀个ACK包来实现⼀次完
整的TCP连接。就这样,C到服务端的连接就建⽴了,这时C和服务端就可以互相交换数据了。下⾯是上⽂的图⽚说明:)
apnicClientServer
------------
SYN-------------------->
<--------------------SYN-ACK
ACK-------------------->
Clientandservercannow
sendservice-specificdata
在S返回⼀个确认的SYN-ACK包的时候有个潜在的弊端,他可能不会接到C回应的ACK包。这个也就是所谓的半开放连接,S需要
耗费⼀定的数量的系统内存来等待这个未决的连接,虽然这个数量是受限的,但是恶意者可以通过创建很多的半开放式连接来发动SYN洪⽔攻击。
通过ip欺骗可以很容易的实现半开放连接。攻击者发送SYN包给受害者系统,这个看起来是合法的,但事实上所谓的C根本不会回应这个。
微血管SYN-ACK报⽂,这意味着受害者将永远不会接到ACK报⽂。
⽽此时,半开放连接将最终耗⽤受害者所有的系统资源,受害者将不能再接收任何其他的请求。通常等待ACK返回包有超时限制,所以半开放。
连接将最终超时,⽽受害者系统也会⾃动修复。虽然这样,但是在受害者系统修复之前,攻击者可以很容易的⼀直发送虚假的SYN请求包来持续攻击。在⼤多数情况下,受害者⼏乎不能接受任何其他的请求,但是这种攻击不会影响到已经存在的进站或者是出站连接。虽然这样,受害者系统还是可能耗尽系统资源,以导致其他种种问题。
攻击系统的位置⼏乎是不可确认的,因为SYN包中的源地址多数都是虚假的。当SYN包到达受
害者系统的时候,没有办法到他的真实地址,因为在基于源地址的数据包传输中,源ip过滤是唯⼀可以验证数据包源的⽅法。
三:什么是SYNcookie?
SYNcookie就是⽤⼀个cookie来响应TCPSYN请求的TCP实现,根据上⾯的描述,在正常的TCP实现中,当S接收到⼀个SYN数据包,他返回⼀个SYN-ACK包来应答,然后进⼊TCP-SYN-RECV(半开放连接)状态来等待最后返回的ACK包。S⽤⼀个数据空间来描述所有未决的连接,然⽽这个数据空间的⼤⼩是有限的,所以攻击者将塞满这个空间。在TCPSYNCOOKIE的执⾏过程中,当S接收到⼀
个SYN包的时候,他返回⼀个SYN-ACK包,这个数据包的ACK序列号是经过加密的,也就是说,它由源地址,端⼝源次序,⽬标地址,⽬标端⼝和⼀个加密种⼦计算得出。然后S释放所有的状态。如果⼀个ACK包从C返回,S将重新计算它来判断它是不是上个SYN-ACK的返回包。如果这样,S就可以直接进⼊TCP连接状态并打开连接。这样,S就可以避免守侯半开放连接了。
以上只是SYNCOOKIE的基本思路,它在应⽤过程中仍然有许多技巧。请在前⼏年的kernel邮件列表查看archiveofdiscussions的相关详细内容。简谱是由谁发明的
四,什么是SYNCOOKIE防⽕墙
SYNCOOKIE防⽕墙是SYNcookie的⼀个扩展,SYNcookie是建⽴在TCP堆栈上的,他为linux 操作系统提供保护。SYN
cookie防⽕墙是linux的
⼀⼤特⾊,你可以使⽤⼀个防⽕墙来保护你的⽹络以避免遭受SYN洪⽔攻击。
下⾯是SYNcookie防⽕墙的原理
clientfirewallserver
----------------------
1.SYN--------------------->
2.<------------SYN-ACK(cookie)
3.ACK--------------------->
4.-------SYN--------------->
5.<---------------------SYN-ACK
6.-------ACK--------------->
7.----------->relaythe------->
<-----------connection<-------
1:⼀个SYN包从C发送到S
2:防⽕墙在这⾥扮演了S的⾓⾊来回应⼀个带SYNcookie的SYN-ACK包给C
3:C发送ACK包,接着防⽕墙和C的连接就建⽴了。
4:防⽕墙这个时候扮演C的⾓⾊发送⼀个SYN给S
5:S返回⼀个SYN给C
6:防⽕墙扮演C发送⼀个ACK确认包给S,这个时候防⽕墙和S的连接也就建⽴了
7:防⽕墙转发C和S间的数据
如果系统遭受SYNFlood,那么第三步就不会有,⽽且⽆论在防⽕墙还是S都不会收到相应在第⼀步的SYN包,所以我们就击退了这次SYN洪⽔攻击。

本文发布于:2023-08-14 10:23:41,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/357349.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:连接   系统   受害者   不会   攻击   开放   发送   请求
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图