摘要
- SYN 洪泛利用的是一个时间差:服务器在发起方完成握手之前就占用有限的半开连接状态,于是廉价请求可以塞满队列。
- RFC 4987 给出的两种主要端点防线,一种是在有界 SYN 缓存中只记较小状态,另一种把可恢复信息编码进 SYN Cookie,等有效 ACK 返回后再建立完整连接。
一个 SYN 到达监听端时,服务器会做出一个看似微小的决定:记住这次尝试,发出 SYN-ACK,然后等待。对正常客户端,这是 TCP 的日常礼节;对攻击者,这却像一笔提前授信。服务器先花掉内存与定时器,而所谓客户端还没有证明自己能听见回复。
RFC 4987 分析的正是这份先付款的义务。传统实现会在三次握手尚未完成时保存 SYN-RECEIVED 状态。半开连接队列容量有限,只要新请求进入的速度长期高于旧状态被回收的速度,合法连接就会无位可用。RFC 的边界很明确:它讨论主机 TCP 状态和监听应用被拖垮,不声称解决流量先把网络链路打满的另一类问题。
伪造源地址可以让 SYN-ACK 找不到真正答复者,却不是攻击成立的唯一条件。受控主机完全可以使用有效、可路由的地址持续施压。真正必要的只有三点:每个 SYN 会触发状态分配,半开状态总量有限,请求速度足以超过回收速度。在 RFC 描述的机制中,直接受影响的是目标端口上的新入站连接,而不是已经建立的连接或主动发起的出站连接。
几种直觉式修补只是移动门槛。扩大 backlog 让服务器多买一些内存,也把攻击者要填的数字变大;它没有改变双方成本的不对称。缩短 SYN-RECEIVED 超时能更快腾位置,却会淘汰被正常网络时延拖慢的客户端,攻击者也可以相应提高发送速率。回收最旧的半开控制块,是用年龄决定牺牲谁,却并不知道谁是攻击者。入口过滤能削弱依赖源地址欺骗的流量,但无法假定全球都已部署,也挡不住从真实地址发包的僵尸网络。
少记一些,但把边界记清楚
SYN 缓存改变了第一条消息的价格。监听端不立即创建完整的 TCP 控制块,只保存足以继续握手的小型记录。缓存有明确上限。RFC 还讨论了以秘密哈希把记录分散到多个桶中:如果分桶函数公开可预测,攻击者即使不填满整个缓存,也能集中打满某一个桶;加入秘密后,这种定向拥塞更难实施,同时容量上限仍能约束内存与查找工作。
缓存并不是无状态。它仍要处理过期,也应保留重传 SYN-ACK 的能力。若服务器只发一次回复便忘记后续责任,一次普通丢包就会变成连接失败。SYN 缓存的价值不是删掉 TCP 行为,而是暂缓昂贵对象,同时保留走到最终 ACK 所需的最小协议记忆。
把收据放进回复里
SYN Cookie 把同一原则推进到无状态路径。服务器不为这次请求保留 SYN-RECEIVED 记录,而是构造自己的初始序列号,使最终 ACK 能带回验证交换并重建连接所需的信息。只有确认 ACK 有效后,服务器才分配完整控制块。
RFC 4987 附录 A 给出一种示例构造:它使用发起方的初始序列号、最大报文段长度编码、时间计数器、双方地址与端口,以及秘密函数。ACK 返回时,服务器用秘密和近期计数值检查结果。这个数值是某一次握手的紧凑收据,不是对人、应用或长期主机身份的认证。它证明 ACK 发送者拥有来自 SYN-ACK 的信息——前提是构造本身足以抵抗猜测——却不建立持久身份。
不保存状态也会丢失语义。SYN 与 ACK 之间本来可以记录协商出的 TCP 选项,而 Cookie 可编码的空间有限。常见方案因此可能限制窗口缩放、选择确认或未来选项状态。RFC 还提醒数据随 SYN 到达的情形。若最终 ACK 丢失,而服务器应用又要等客户端数据后才开口,它可能没有可用于正常重传 SYN-ACK 的状态。资源承诺被推迟了,一部分协议记忆也随之推迟。
两条道路不必互斥。监听端可以在正常压力下使用 SYN 缓存,缓存满时才切换 Cookie。混合方案在有容量时保留更丰富的协商,把无状态收据留给过载时刻。防火墙或代理也能代办握手,但那只是转移状态负担,并可能改变端到端语义。资源决定没有消失,只是换了付款人。
RFC 4987 发布于 2007 年 8 月,属于 Informational 文档,并非 Standards Track 强制要求。它在当时把 SYN 缓存和 SYN Cookie 视作可行的端点修改,同时更倾向于在可行时把缓存作为常态方案。这个历史判断不能拿来证明任何当前操作系统的默认设置。
真正耐久的是一条控制原则:若廉价、可逆的表示足以让交换继续,就不要在第一条未经验证的消息到达时,立刻投入昂贵、稀缺且可由攻击者定向消耗的资源。等待发起方带回回复中的信息,可以增加“回程可达”的证据,却不等于身份认证;延迟状态也可能丢掉有价值的上下文。好的防线必须同时说明它省下了什么,以及它牺牲了什么。
本文唯一资料是 RFC 4987《TCP SYN Flooding Attacks and Common Mitigations》。所有结论都限定在 RFC 分析的端点状态、缓解机制与明确代价之内,不推断当前部署比例、默认配置或攻击频率。
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
