课题研究 IPv6演进安全 子课题01 · 第03页 / 共8页
01子课题 · IPv6攻击面与威胁建模

IPv6攻击面与威胁建模第03页:ICMPv6信任依赖与消息治理

在IPv4中ICMP是辅助协议,"全部丢弃"网络尚可运转;在IPv6中这一前提彻底崩塌——邻居发现(NDP)、组播侦听者发现(MLD)、路径MTU发现(PMTUD)全部由ICMPv6承载。RFC 4890存在的理由,就是为"哪些ICMPv6消息必须放行、哪些限速、哪些丢弃"给出权威分级基线。本页系统梳理ICMPv6消息族分类、RFC 4890三档过滤基线、PMTUD信任依赖与"Packet Too Big"伪造攻击(TCP黑洞与MTU极化)、被低估的重定向信任面、洪泛与反射面,并给出分场景治理基线与五步法实施流程。

ICMPv6RFC 4443RFC 4890PMTUDPacket Too BigMLD重定向攻击分级过滤TCP黑洞研究状态:研究中
所属专题互联网基础设施安全 › IPv6演进安全
目标受众防火墙策略工程师、网络运维、SOC监测团队
前置知识建议先读第2页(协议架构差异);NDP消息伪造的专项分析见第5页

01 · ICMPv6的职能全景:与ICMPv4的本质区别

在IPv4中,ICMP是辅助性诊断协议,"全部丢弃"虽不明智但网络尚可运转;在IPv6中这一前提不复存在——邻居发现(NDP)、组播侦听者发现(MLD)、路径MTU发现(PMTUD)全部由ICMPv6承载(RFC 4443定义消息本体,RFC 4861/2710/3810定义上层用途)。错误处理不当不仅是性能问题,而是正确性问题:阻断ICMPv6即阻断IPv6网络的运转。RFC 4890(2007年5月)存在的全部理由,就是为"哪些ICMPv6消息必须放行、哪些可以限速、哪些应当丢弃"给出权威分级基线。

1.1 ICMPv6消息族分类(按RFC 4443及上层规范)

消息族类型值代表消息安全敏感点
错误消息1—41目的不可达、2包过大(Packet Too Big)、3超时、4参数问题PTB伪造可操纵PMTUD;参数问题可被用于异常探测反射
信息消息128/129Echo请求/应答(ping6)经典反射放大源,需限速;诊断必要性与滥用风险并存
邻居发现(NDP)133—137133 RS、134 RA、135 NS、136 NA、137 Redirect本课题第5页专题:链路配置权威,伪造即劫持
组播侦听者发现(MLD)130—132、143130查询、131报告、132完成、143 MLDv2报告(MLDv1:RFC 2710;MLDv2:RFC 3810)组播组成员关系管理;伪造可干扰组播分发与组播安全策略
实验/扩展100—101等实验性分配(RFC 4443 §2.1)非常规类型可用于实现指纹探测
ICMPv6消息族构成(按RFC 4443类型族分类计数)
错误消息4类、信息消息2类、NDP 5类、MLD 4类——错误消息与NDP合计9类为安全治理核心关注面
数据来源:RFC 4443消息类型注册表与RFC 4861/2710/3810(IETF参数登记,可查证);按"消息类型类数"统计而非流量占比。

02 · RFC 4890分级过滤基线

RFC 4890将ICMPv6消息按职能分为三档处理建议。下表为基线摘要(细节以RFC原文为准),任何组织在制定ICMPv6过滤策略时应以此起步而非从零设计:

档位消息类别处理建议
必须放行PTB(类型2);NDP消息(RS/RA/NS/NA/Redirect,限链路范围);部分目的不可达子码在链路范围内放行并保障可达;阻断即破坏PMTUD/NDP基本运转。例外:对边界外进入的RA/Redirect按链路策略处理
建议限速放行Echo请求/应答(128/129);类型1部分子码(如地址不可达);MLD消息保留诊断能力的同时限速防反射滥用;MLD按二层组播治理策略处理
应丢弃路由重定向(来自非链路可信源的137);参数问题(入方向);实验类型入方向按源认证过滤;出方向错误消息生成应限速(RFC 4443 §2.4要求实现限速)

常见误配置模式:①"安全基线模板"一刀切丢弃全部ICMPv6——后果是间歇性TCP卡顿(PMTUD黑洞)且极难排查;②边界设备放行Echo但丢弃PTB——外部路径MTU变化时长连接静默中断;③对MLD不加治理——组播泛滥与伪组成员影响二层域。RFC 4890的价值在于把每类消息的处理决策从"经验猜"变为"查表执行"。

03 · PMTUD信任依赖与"Packet Too Big"伪造

3.1 机制

IPv6禁止中间节点分片,最小链路MTU规定为1280字节(RFC 8200 §5)。当报文超过路径某段MTU时,该段路由器必须回ICMPv6 Packet Too Big(类型2)并携带下一跳MTU,源节点据此缩小后续报文——这就是PMTUD(Path MTU Discovery)。整个机制的可靠性完全建立在"ICMPv6错误消息可信"之上。

3.2 两类典型攻击

  • TCP黑洞:攻击者在路径上(或通过伪造源地址)阻断/丢弃PTB消息——源节点永远收不到"太大"信号,大包被静默丢弃,TCP表现为连接建立后数据阶段卡死。由于症状与丢包相似,此类故障的平均排查成本极高。
  • MTU极化DoS:攻击者伪造PTB消息,将下一跳MTU压至1280字节下限——TCP会话被强制分片化,吞吐下降一到两个数量级;若伪造信号持续存在,连接长期劣化且难以归因。

3.3 缓解要点

  • 入口方向按RFC 4890基线过滤伪造ICMPv6:来自外网的"PTB针对内网发起流量"等语义不一致消息应丢弃;
  • 监测PMTUD黑洞特征:重传模式异常+大包失败小包成功;
  • 应用层保底:长连接业务设置合理MSS/报文分块策略,降低对PMTUD瞬时故障的敏感度(工程兜底,非替代PMTUD)。

04 · 重定向(Redirect)消息:被低估的信任面

ICMPv6 Redirect(类型137)允许路由器告知主机"对某目的有更优下一跳"。RFC 4861 §8.1规定了主机接受重定向的严格条件(如必须与当前默认路由器同链路、目标必须与报文目的同链路等)——但条件判断的正确性完全依赖主机实现质量。实际风险表现为:

  • 链路内伪造重定向:同链路攻击者发送伪造Redirect,诱导主机将特定流量先发往攻击者——与Rogue RA互补的精细化劫持手段(仅劫持选定目的,隐蔽性高于全局RA劫持);
  • 边界重定向泄漏:误配置使重定向消息跨越不应到达的范围,破坏路由一致性;
  • 缓解:主机侧核查RFC 4861 §8.1条件;网络侧在接入层识别"非路由设备发送Redirect"的异常;Windows等主流系统对重定向的学习有额外限制(具体行为以各系统文档为准,纳入核查问卷)。

05 · ICMPv6洪泛与反射面

  • Echo反射:IPv6形态的smurf类攻击(THC-IPv6工具包中的smurf6即演示此向量)——以受害者为源地址发送Echo请求至组播地址,应答洪流涌向受害者。缓解:边界过滤"外网源地址的Echo请求进入内网组播域"、按RFC 4890限速。
  • 错误消息风暴:触发目标产生大量参数问题/不可达消息(如向关闭端口高频发送),消耗目标与沿途的ICMPv6生成资源。RFC 4443 §2.4要求实现端对错误消息生成限速——核查设备与主机的该限速生效状态是低成本的防御验证项。
  • NDP类洪泛:NS/NA洪泛撑爆邻居缓存表(RFC 6583分析的NDP耗尽),单列于第5页。

与"过滤一切"的边界:以上滥用面不构成"丢弃全部ICMPv6"的理由——正确路线是RFC 4890的"分级放行+限速+语义校验",使诊断可用性与抗滥用性同时成立。任何组织级防火墙模板应将ICMPv6策略单独成章评审,而非复用IPv4 ICMP模板。

06 · ICMPv6治理基线五步法

ICMPv6分级治理实施流程
本课题建议的实施顺序(概念流程)
说明:流程为治理方法论示意;具体设备配置命令不在本课题范围(属子课题06基线落地内容)。

6.1 分场景基线摘要

场景要点
边界(互联网侧)外网RA/Redirect不得入内;Echo限速;PTB语义校验;内部地址空间源过滤(uRPF/BCP 38思路对v6同适用)
接入链路(内网段)NDP消息必须放行但应受RA-Guard/SAVI治理(第5页、子课题02);MLD按二层组播策略治理
数据中心内部除运维诊断所需外收紧Echo;服务器默认网关静态化,降低重定向学习面

本节参考来源(第3页)

[1]

IETF RFC 4443《Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification》(2006年3月,消息类型与错误消息限速要求见§2):rfc-editor.org/rfc/rfc4443。

[2]

IETF RFC 4890《Recommendations for Filtering ICMPv6 Messages in Firewalls》(2007年5月,消息分级基线):rfc-editor.org/rfc/rfc4890。

[3]

IETF RFC 4861《Neighbor Discovery for IP version 6 (IPv6)》(2007年9月,§8.1主机重定向接受条件):rfc-editor.org/rfc/rfc4861。

[4]

IETF RFC 2710《Multicast Listener Discovery (MLD) for IPv6》(1999年10月):rfc-editor.org/rfc/rfc2710;RFC 3810《Multicast Listener Discovery Version 2 (MLDv2) for IPv6》(2004年6月):rfc-editor.org/rfc/rfc3810。

[5]

IETF RFC 8200《Internet Protocol, Version 6 (IPv6) Specification》(2017年7月,§5最小MTU 1280字节与中间节点禁止分片):rfc-editor.org/rfc/rfc8200。

[6]

IETF RFC 9098《Operational Implications of IPv6 Packets with Extension Headers》(2021年8月,ICMPv6治理与扩展头处理章节):rfc-editor.org/rfc/rfc9098。

[7]

THC-IPv6攻击套件(smurf6等ICMPv6演示工具,2005年发布并持续开源维护):github.com/vanhauser-thc/thc-ipv6。