SYN(synchronous)是TCP/IP建立连接时使用的握手信号
来源:互联网 发布:行知幼儿园地址 编辑:程序博客网 时间:2024/06/10 09:44
SYN
编辑锁定SYN(synchronous)是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。
TCP连接的第一个包,非常小的一种数据包。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。
- 英文缩写
- SYN
- 英文名
- synchronous
- 词语分类
- 计算机专业术语
- 解 释
- TCP/IP建立连接时使用的握手信号
- 用 途
- 黑客的一种攻击手法
- 攻击性质
- DDoS攻击的一种
目录
- 1 攻击性质
- 2 攻击原理
- 3 攻击器
- 4 检测攻击
- 5 防范技术
- ▪ 注册表设置
- ▪ 丰富带宽资源
- ▪ 防火墙
SYN攻击性质
编辑在黑客攻击事件中,SYN攻击是最常见又最容易被利用的一种攻击手法。
SYN攻击属于DDoS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。SYN攻击除了能影响主机外,还可以危害路由器、防火墙等网络系统,事实上SYN攻击并不管目标是什么系统,只要这些系统打开TCP服务就可以实施。服务器接收到连接请求(syn= j),将此信息加入未连接队列,并发送请求包给客户(syn=k,ack=j+1),此时进入SYN_RECV状态。当服务器未收到客户端的确认包时,重发请求包,一直到超时,才将此条目从未连接队列删除。配合IP欺骗,SYN攻击能达到很好的效果,通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,并等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求被丢弃,目标系统运行缓慢,严重者引起网络堵塞甚至系统瘫痪。
SYN攻击原理
编辑关于SYN攻击防范技术,人们研究得比较早。归纳起来,主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固TCP/IP协议栈防范
SYN Flood利用TCP协议缺陷,发送了大量伪造的TCP连接请求,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求。一个正常的TCP连接需要三次握手,首先客户端发送一个包含SYN标志的数据包,其后服务器返回一个SYN/ACK的应答包,表示客户端的请求被接受,最后客户端再返回一个确认包ACK,这样才完成TCP连接。在服务器端发送应答包后,如果客户端不发出确认,服务器会等待到超时,期间这些半连接状态都保存在一个空间有限的缓存队列中;如果大量的SYN包发到服务器端后没有应答,就会使服务器端的TCP资源迅速耗尽,导致正常的连接不能进入,甚至会导致服务器的系统崩溃。
SYN攻击器
编辑SYN攻击实现起来非常的简单,互联网上有大量现成的SYN攻击工具。
windows系统下的SYN工具
以synkill.exe为例,运行工具,选择随机的源地址和源端口,并填写目标机器地址和TCP端口,激活运行,很快就会发现目标系统运行缓慢。如果攻击效果不明显,可能是目标机器并未开启所填写的TCP端口或者防火墙拒绝访问该端口,此时可选择允许访问的TCP端口,通常,windows系统开放tcp139端口,UNIX系统开放tcp7、21、23等端口。
SYN检测攻击
编辑检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。我们使用系统自带的netstat 工具来检测SYN攻击:
# netstat -n -p TCP
tcp 0 0 10.11.11.11:23 124.173.152.8:25882 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.15.133.204:2577 SYN_RECV -
tcp 0 0 10.11.11.11:23 127.160.6.129:51748 SYN_RECV -
tcp 0 0 10.11.11.11:23 222.220.13.25:47393 SYN_RECV -
tcp 0 0 10.11.11.11:23 212.200.204.182:60427 SYN_RECV -
tcp 0 0 10.11.11.11:23 232.115.18.38:278 SYN_RECV -
tcp 0 0 10.11.11.11:23 239.116.95.96:5122 SYN_RECV -
tcp 0 0 10.11.11.11:23 236.219.139.207:49162 SYN_RECV -
...
上面是在LINUX系统中看到的,很多连接处于SYN_RECV状态(在WINDOWS系统中是SYN_RECEIVED状态),源IP地址都是随机的,表明这是一种带有IP欺骗的SYN攻击。
我们也可以通过下面的命令直接查看在LINUX环境下某个端囗的未连接队列的条目数:
#netstat -n -p TCP | grep SYN_RECV | grep :22 | wc -l
324
显示TCP端囗22的未连接数有324个,虽然还远达不到系统极限,但应该引起管理员的注意。
SYN防范技术
编辑关于SYN攻击防范技术,人们研究得比较早。归纳起来,主要有两大类,一类是通过防火墙、路由器等过滤网关防护,另一类是通过加固TCP/IP协议栈防范
SYN注册表设置
在“开始->运行->键入regedit”
启用 SYN 攻击保护的命名值位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters之下。值名称:SynAttackProtect。推荐值:2。
以下部分中的所有项和值均位于注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters 之下。
指定必须在触发 SYN flood 保护之前超过的 TCP 连接请求阈值。值名称:TcpMaxPortsExhausted。推荐值:5。
启用 SynAttackProtect 后,该值指定 SYN_RCVD 状态中的 TCP 连接阈值,超过 SynAttackProtect 时,触发 SYN flood 保护。值名称:TcpMaxHalfOpen。推荐值数据:500。
启用 SynAttackProtect 后,指定至少发送了一次重传的 SYN_RCVD 状态中的 TCP 连接阈值。超过 SynAttackProtect 时,触发 SYN flood 保护。值名称:TcpMaxHalfOpenRetried。推荐值数据:400
SYN丰富带宽资源
不难看出syn攻击时消耗大量带宽资源,所以要想防御syn洪水攻击,一个丰富的带宽资源是非常有必要的,通常的流量攻击,攻击者也是利用肉鸡的带宽资源来堵死目标网络的,所以这个也是一个重要的防御前提。
SYN防火墙
利用防火墙来进行防护攻击是目前最有效的方法,当然前提是攻击在防护带宽范围之内,也就是为什么第二条推荐带宽资源,这是保证在防火墙前面不会造成堵塞,来达到防火墙的防护目的。
0 0
- SYN(synchronous)是TCP/IP建立连接时使用的握手信号
- TCP/IP的三次握手建立连接
- TCP/IP的三次握手连接和四次握手关闭【问题:为什么建立连接协议是三次握手,而关闭连接却是四次握手?】
- TCP建立连接时的三次握手
- TCP连接的建立(三次握手)
- TCP的连接建立(三次握手)
- TCP/IP协议的三次握手和四次挥手(建立连接和断开连接)
- TCP/IP协议三次握手建立连接
- TCP建立连接为什么是三次握手?
- TCP 三次握手是一个Syn+Ack的过程
- TCP 连接的三次握手 以及 SYN攻击防范
- TCP建立连接为什么是三次握手而不是两次握手
- TCP三步握手建立连接(1)-----主动连接syn包发送
- TCP三步握手建立连接(2)-----被动连接方发送SYN/ACK
- TCP的连接(三次握手,SYN泛洪)与终止(三次握手和四次挥手,time_wait)
- TCP建立连接的三次握手
- TCP建立连接的三次握手
- 建立TCP连接的三次握手
- iOS小问题--判断设备是否静音
- LeetCode 133. Clone Graph
- C语言文件读写操作详解
- mysql开启慢查询方法
- Android开发之java代码中获取当前系统的时间工具类
- SYN(synchronous)是TCP/IP建立连接时使用的握手信号
- opencv Ptr源码分析
- Xcode一键添加类前缀
- [转]from wiki.ubuntu.org.cn
- Android中获取apk文件包名,名称,图标等信息
- MFC树控件
- PHP优化---opcache的配置说明
- getHitRect的作用
- 页面载入时,自动调用js函数