01 · NDP信任模型:消息级风险图谱
邻居发现协议(RFC 4861)承担地址解析(替代ARP)、路由器发现、前缀发现、下一跳确定、DAD与重定向六大职能——其共同前提是链路内ICMPv6消息默认可信。下表按消息逐一枚举伪造后果(重定向消息的深度分析见第3页§04):
| 消息 | 职能 | 伪造/滥用后果 | 先决条件 |
|---|---|---|---|
| RA(134) | 宣告路由器存在、前缀、MTU、RDNSS/DNSSL | 劫持默认路由;DNS投毒(RDNSS);批量主机配置污染——链路级最高权限消息 | 链路内可达(物理接入或已立足的二层位置) |
| RS(133) | 主机请求路由器宣告 | 本身低风险;可被用于发现在线主机与触发RA(配合伪造RA使用) | — |
| NS(135) | 地址解析请求/DAD探测 | 伪造应答实现中间人(流量牵引);DAD拒绝(第4页§04) | 链路内可达 |
| NA(136) | 地址解析应答 | 邻居缓存投毒——目标主机的邻居表指向攻击者MAC,流量被截获;与ARP欺骗同构但无认证缓解 | 链路内可达 |
| Redirect(137) | 更优下一跳提示 | 选择性流量劫持(仅劫持指定目的,隐蔽性高) | 链路内可达+目标主机未严格实现RFC 4861 §8.1条件 |
02 · Rogue RA:从伪造宣告到流量中间人
2.1 攻击链(概念推演)
2.2 为什么这是"协议级"而非"漏洞级"攻击
Rogue RA不依赖任何软件缺陷:任何符合RFC 4861的主机收到合法格式的RA都会按规则处理——这是协议设计的固有信任假设,也因此RFC 6104(2011年2月)以专门的问题陈述(Problem Statement)文档将其确立为标准治理对象,RFC 6105随即定义RA-Guard作为首代交换机侧防护。工具化成熟(见§05)使该攻击的实操门槛极低,属于攻防演练中的"必考科目"。
2.3 组合链:Rogue RA+WPAD自动代理劫持
攻防演练中反复演示的更高阶组合利用链:Rogue RA使主机获得IPv6连接→主机按WPAD(Web Proxy Auto-Discovery)机制自动发现代理配置→攻击者在IPv6侧提供恶意PAC文件→主机HTTP流量被静默导向攻击者代理→明文凭据与内容被截获。该链条的威慑力在于"无漏洞、无恶意软件"——纯协议与配置机制叠加。防御要点:禁用/受控WPAD、RA-Guard覆盖、明文HTTP最小化(纵深冗余)。
03 · NDP资源耗尽与DAD拒绝(拒绝服务谱系)
- 邻居缓存耗尽(RFC 6583,2012年3月):以大量随机源地址发送NS/NA,迫使路由器为主机建立大量邻居缓存条目直至资源枯竭——路由器的邻居表规模与创建速率是核心暴露参数;缓解要点包括逐源速率限制、未完成探测(INCOMPLETE)状态条目的超时与上限治理;
- DAD拒绝:持续伪造NA应答使新主机无法获得地址(第4页§04的机制细节与本节联动);
- RA洪泛:高频RA本身即可造成主机处理负担与邻居缓存异常(与RA-Guard的限速维度对应);
- 共同缓解面:接入层NDP速率限制+RA-Guard+SAVI绑定——三者在子课题02作深度机制评估,本节提供威胁需求输入。
04 · 密码学方案失败史:SeND/CGA为何未获部署
NDP的无认证问题在早期即被识别,IETF于2005年标准化了密码学解决方案——SeND(Secure Neighbor Discovery,RFC 3971)与CGA(Cryptographically Generated Addresses,RFC 3972)。近二十年过去,该方案几乎未获任何生产部署,其失败原因本身就是重要的研究结论:
| 失败因素 | 说明 |
|---|---|
| 信任锚分发困境 | SeND要求主机持有验证路由器签名的信任锚(证书路径),全球性的地址/证书分发体系从未建立——与BGPsec路由器证书(RFC 8209)的部署困境同构 |
| CGA计算成本 | CGA地址生成需寻找满足哈希条件的密钥对,Sec值越高计算成本越大——主机实现意愿低 |
| 生态缺位 | 主流操作系统与网络设备未内置SeND支持,无部署即无互操作,形成死锁 |
| 替代路线成熟 | RA-Guard(RFC 6105)+SAVI(RFC 7039)以纯工程手段覆盖了主要风险面,成本远低于密码学方案 |
研究结论:SeND/CGA的失败说明:链路层协议安全方案若依赖全球性信任基础设施与终端生态协同,将大概率重蹈"标准化成功、部署失败"覆辙。这一教训对评估任何"重协议"安全方案(含未来NDP改良提案)具有范式意义——优先选择可在单组织内闭环落地的工程方案。
05 · 攻击工具生态(防御研究用途)
以下工具均为公开开源项目,本课题将其用于授权环境下的防御验证与检测规则校准:
| 工具 | 维护方/起源 | 覆盖能力(概念级) |
|---|---|---|
| THC-IPv6 | Marc "van Hauser" Heuse,2005年发布 | RA伪造、NA/NS欺骗、RA洪水、smurf6、地址枚举等数十个IPv6攻击演示模块——IPv6安全测试的事实标准工具集 |
| SI6 Networks IPv6 Toolkit | Fernando Gont主导的开源项目 | ra6/na6/icmp6等精细构造工具,支持逐字段报文定制与异常扩展头构造——协议解析面测试常用 |
| Chiron | Antonios Atlasis发布的IPv6安全评估框架 | NDP攻击、扩展头 fuzz、地址扫描一体化评估,输出结构化报告 |
| Scapy / Nmap | 开源通用网络工具 | IPv6报文手工构造与目标扫描(Nmap全面支持IPv6主机发现与服务识别) |
使用边界:上述工具仅可在自有或获得书面授权的网络环境中使用;本课题不提供攻击配置与操作指引,仅在概念层面描述其覆盖的能力域,用于指导防御方建立检测规则(如"非信任端口出现RA"的交换机告警基线)。
06 · 检测思路概览(输入至子课题02)
- 被动监测基线:记录链路内RA源(路由器端口白名单)、RA频率、RDNSS内容变更、NA与DAD交互异常——四项即可覆盖本章主要攻击的检测面;
- 交换机侧:RA-Guard违规计数、SAVI绑定冲突告警——作为SOC的一级告警源;
- 主机侧:默认路由/新增IPv6路由的变更事件、DNS配置变更事件纳入终端检测(EDR)采集范围;
- 验证方式:授权环境下以THC-IPv6类工具回放概念攻击链,逐项校准检测规则检出率(演练设计属攻防演练平台范畴)。
本节参考来源(第5页)
IETF RFC 4861《Neighbor Discovery for IP version 6 (IPv6)》(2007年9月):rfc-editor.org/rfc/rfc4861。
IETF RFC 6104《Rogue IPv6 Router Advertisement Problem Statement》(2011年2月):rfc-editor.org/rfc/rfc6104;RFC 6105《IPv6 Router Advertisement Guard》(2011年2月):rfc-editor.org/rfc/rfc6105。
IETF RFC 6583《Operational Neighbor Discovery Problems》(2012年3月,NDP耗尽等运营安全问题分析):rfc-editor.org/rfc/rfc6583;RFC 7113《Implementation Advice for IPv6 Router Advertisement Guard (RA-Guard)》(2014年2月,RA-Guard绕过面与加固建议):rfc-editor.org/rfc/rfc7113。
IETF RFC 3971《SEcure Neighbor Discovery (SEND)》(2005年3月):rfc-editor.org/rfc/rfc3971;RFC 3972《Cryptographically Generated Addresses (CGA)》(2005年3月):rfc-editor.org/rfc/rfc3972。
IETF RFC 7039《Source Address Validation Improvement (SAVI) Framework》(2013年10月):rfc-editor.org/rfc/rfc7039。
Rogue RA+WPAD组合链的公开工具基础:THC-IPv6(含fake_router6等RA伪造演示模块,github.com/vanhauser-thc/thc-ipv6,2005年发布);相关攻击机理亦见RFC 6104问题陈述。
THC-IPv6工具包(开源):github.com/vanhauser-thc/thc-ipv6;SI6 Networks IPv6 Toolkit:si6networks.com/tools/ipv6toolkit。