Fraunhofer SIT 研究发现,DNS-over-TCP 并非如业界预期那般能规避 IP 分片攻击。攻击者可通过伪造 ICMP 差错报文或利用中间路由器的小 MTU,强制 TCP 报文分片,进而绕过序列号与源端口的熵保护,实施分片误关联攻击。至少 393 个额外域名的权威服务器及逾千个中间路由器构成扩大的攻击面。
分片误关联的攻击原理:
攻击核心在于干扰 IP 重组过程。攻击者向受害者发送伪造分片,使其与服务器的真实分片在重组时发生误关联:要么生成错误分片被丢弃导致 DoS,要么注入恶意载荷。DNS-over-TCP 时,TCP 序列号与源端口等熵值集中在首个分片,载荷落在后续分片,攻击者只需伪造后续分片即可绕过熵保护。原文未给出具体成功率数据。
强制 TCP 分片的两条路径:
一是源端分片:攻击者向权威服务器发送伪造的 ICMP "分片所需" 差错报文(类型 3、代码 4),携带原始 IP 头、前 8 字节载荷及伪造的下一跳 MTU,诱导服务器启用 PMTUD 并主动分片。二是中间路由分片:研究发现互联网上存在逾 1000 个下一跳 MTU 较小的中间路由器,即便源端不分片,经过这些节点的报文仍会被被动分片,进一步扩大攻击面。
行业建议与现实差距:
IETF 曾提议用 TCP 配合 PMTUD 替代 IP 分片,DNS Flag Day 2020 将默认 EDNS 缓冲区设为 1,232 字节,意图推动大包走 TCP。但研究表明,TCP 并未消除分片风险,反而引入了新的攻击向量。运维层面需关注 ICMP 差错报文的验证与过滤,以及中间链路 MTU 的可视性,而非单纯依赖传输层协议切换。
对网络工程师而言,该研究揭示了"TCP 天然抗分片攻击"的误区。部署 DNS-over-TCP 时,必须在边界设备严格校验 ICMP 差错报文合法性,监控链路 MTU 变化,并在权威服务器侧实施分片重组保护,才能实质降低缓存投毒与 DoS 风险。
原文: APNIC Blog(2021-11-09)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog