SYN Flood是一种非常危险而常见的Dos攻击方式 。到目前为止 , 能够有效防范SYN Flood攻击的手段并不多 , SYN Cookie就是其中最著名的一种 。
SYN Flood攻击原理
SYN Flood攻击是一种典型的拒绝服务(Denial of Service)攻击 。所谓的拒绝服务攻击就是通过进行攻击 , 使受害主机或网络不能提供良好的服务 , 从而间接达到攻击的目的 。SYN Flood攻击利用的是IPv4中TCP协议的三次握手(Three-Way Handshake)过程进行的攻击 。
TCP服务器收到TCP SYN request包时 , 在发送TCP SYN + ACK包回客户机前 , TCP服务器要先分配好一个数据区专门服务于这个即将形成的TCP连接 。一般把收到SYN包而还未收到ACK包时的连接状态称为半打开连接(Half-open Connection) 。在最常见的SYN Flood攻击中 , 攻击者在短时间内发送大量的TCP SYN包给受害者 。受害者(服务器)为每个TCP SYN包分配一个特定的数据区 , 只要这些SYN包具有不同的源地址(攻击者很容易伪造) 。这将给TCP服务器造成很大的系统负担 , 最终导致系统不能正常工作 。
SYN Cookie
SYN Cookie是对TCP服务器端的三次握手做一些修改 , 专门用来防范SYN Flood攻击的一种手段 。它的原理是 , 在TCP服务器接收到TCP SYN包并返回TCP SYN + ACK包时 , 不分配一个专门的数据区 , 而是根据这个SYN包计算出一个cookie值 。这个cookie作为将要返回的SYN ACK包的初始序列号 。当客户端返回一个ACK包时 , 根据包头信息计算cookie , 与返回的确认序列号(初始序列号 + 1)进行对比 , 如果相同 , 则是一个正常连接 , 然后 , 分配资源 , 建立连接 。实现的关键在于cookie的计算 , cookie的计算应该包含本次连接的状态信息 , 使攻击者不能伪造 。
SYN Cookie算法
服务器收到一个SYN包 , 计算一个消息摘要mac 。
mac = MAC(A, k);
MAC是密码学中的一个消息认证码函数 , 也就是满足某种安全性质的带密钥的hash函数 , 它能够提供cookie计算中需要的安全性 。
【SYN Flood攻击原理,SYN Cookie算法】在linux实现中 , MAC函数为SHA1 。
A = SOURCE_IP || SOURCE_PORT || DST_IP || DST_PORT || t || MSSIND
k为服务器独有的密钥 , 实际上是一组随机数 。
t为系统启动时间 , 每60秒加1 。
MSSIND为MSS对应的索引 。
推荐阅读
- |DNF唯一的双修攻击职业,谁才是真幻神?他排名第一新版本幻神
- 美海军两栖攻击舰仍在燃烧-美军一两栖攻击舰爆炸起火
- 美首次承认对俄网络机构进行攻击-俄罗斯电网攻击始末
- 敌方水域潜艇与战舰,驱逐舰通过什么攻击水下潜艇-
- 最新网络攻击?ddos流量攻击源码
- 空调上的sync是什么意思?
- 鬼为什么不攻击躲在被窝里的人?
- 下 DDoS 攻击与防御:从原理到实践
- 汽车sync怎么关闭图解 sync是什么意思车上的
- 电影|海后悲惨:自曝被攻击后遭网友抵制 德普最终胜诉