跳到主要内容

11. 安全考虑

Neighbor Discovery 可能受到会扰乱网络运行或重定向流量的攻击. 本节分析针对 Neighbor Discovery 的威胁, 并说明缓解这些威胁的机制.

11.1. 威胁分析

11.1.1. 链路内威胁

Neighbor Discovery 的主要安全问题是, 同一链路上的节点可以发送伪造消息来攻击其他节点. 可能的攻击包括:

Redirect Attacks:

  • 攻击者向受害者发送 Redirect 消息, 使受害者通过攻击者而不是合法的第一跳路由器发送流量.
  • 然后攻击者可以拦截, 修改或丢弃被重定向的流量.

Router Solicitation/Advertisement Attacks:

  • 攻击者通过发送带有以下内容的 Router Advertisements 来冒充路由器:
    • 无效的前缀信息, 导致主机配置错误地址
    • 较短的 Router Lifetime 值, 导致主机认为没有可用路由器
    • 被修改的 hop limit,MTU 或可达性参数

Neighbor Solicitation/Advertisement Attacks:

  • 攻击者发送伪造的 Neighbor Advertisements, 污染受害节点的 Neighbor Cache.
  • 这可能会把原本发往另一个节点的流量重定向到攻击者.
  • 攻击者可以声称拥有实际上属于另一个节点的 IP 地址.

Duplicate Address Detection (DAD) Attacks:

  • 攻击者响应所有 DAD Neighbor Solicitations, 阻止任何节点配置地址.
  • 这构成针对地址配置的 denial-of-service 攻击.

11.1.2. Denial-of-Service 攻击

Neighbor Discovery 的若干方面可被用于 denial-of-service:

Cache Exhaustion:

  • 攻击者使用来自大量伪造地址的分组淹没某个节点, 迫使该节点创建 Neighbor Cache 条目并发送 Neighbor Solicitations.
  • 这会消耗内存和网络带宽.

Neighbor Discovery Message Flooding:

  • 攻击者用 Neighbor Discovery 消息淹没链路, 消耗带宽和处理资源.

Router Solicitation Flooding:

  • 多个攻击者或一个使用大量伪造地址的攻击者用 Router Solicitations 淹没路由器.
  • 这会使路由器不堪响应负担.

11.1.3. 链路外威胁

虽然 Neighbor Discovery 消息是 link-local 的, 且不应被路由器转发, 但能访问物理介质的攻击者 (例如通过被攻陷的基础设施) 即使没有直接连接到目标链路, 也可以发起攻击.

11.2. 保护 Neighbor Discovery 消息

11.2.1. SEcure Neighbor Discovery (SEND)

SEcure Neighbor Discovery (SEND) [RFC3971] 为 Neighbor Discovery 提供密码学安全. SEND 使用:

  • Cryptographically Generated Addresses (CGA): 以密码学方式将公钥绑定到 IPv6 地址的地址, 允许验证发送者拥有该地址.
  • RSA Signatures: 所有关键 Neighbor Discovery 消息都使用发送者的私钥签名.
  • Timestamp Options: 防止重放攻击.
  • Nonce Options: 为 solicitation/advertisement 交换提供新鲜性.
  • Authorization Delegation: 允许路由器证明自己被授权作为某个前缀的路由器.

SEND 对大多数 Neighbor Discovery 攻击提供强保护, 包括:

  • Redirect attacks
  • Neighbor/Router Advertisement 伪造
  • 前缀信息篡改

SEND 的限制:

  • SEND 需要公钥基础设施, 且计算开销较大.
  • 它不能防护所有 denial-of-service 攻击 (例如 message flooding).
  • 由于复杂性, 其部署一直有限.

11.2.2. 链路层安全

链路层安全机制可以为 Neighbor Discovery 提供保护:

IEEE 802.1X Port-Based Authentication:

  • 在允许网络访问之前认证设备.
  • 防止未授权设备发送 Neighbor Discovery 消息.

MACsec (IEEE 802.1AE):

  • 提供链路层加密和认证.
  • 保护所有流量, 包括 Neighbor Discovery, 免受窃听和篡改.

Wireless Security (WPA2/WPA3):

  • 加密并认证无线流量.
  • 防止攻击者通过无线链路注入伪造的 Neighbor Discovery 消息.

链路层安全的优点:

  • 对高层协议透明.
  • 可以比 SEND 更高效.
  • 能防护范围更广的攻击.

限制:

  • 并非总是可用 (例如在共享 Ethernet 段上).
  • 不能防护来自已获得合法链路访问权限的被攻陷设备的攻击.

11.2.3. Router Advertisement Guard (RA Guard)

RA Guard [RFC6105] 是一种基于交换机/路由器的机制, 用于过滤 Router Advertisement 消息:

  • 交换机被配置为识别哪些端口连接到合法路由器.
  • 来自其他端口的 Router Advertisements 会被丢弃.
  • 防护 rogue router 攻击.

限制:

  • 只防护 rogue Router Advertisements.
  • 可通过 IPv6 extension headers 绕过 (RFC 7113 对此作了缓解).
  • 需要正确配置网络基础设施.

11.2.4. 源地址验证

实现源地址验证可以缓解某些攻击:

Ingress Filtering:

  • 路由器应实现 ingress filtering (BCP 38 / RFC 2827), 以防止带有伪造源地址的分组进入网络.

Reverse Path Forwarding (RPF) Checks:

  • 可以帮助检测并防止某些形式的地址伪造.

限制:

  • 主要防护链路外攻击.
  • 对链路内伪造不太有效.

11.3. 实现考虑

11.3.1. 速率限制

实现应该对以下操作实施速率限制:

  • 处理 Neighbor Discovery 消息
  • 创建新的 Neighbor Cache 条目
  • 响应流量而发送 Neighbor Solicitations

这可缓解基于资源耗尽的 denial-of-service 攻击.

11.3.2. Neighbor Cache 管理

实现 应该:

  • 为 Neighbor Cache 条目实现垃圾回收, 防止耗尽.
  • 当缓存空间有限时, 优先保留 reachable 条目, 而不是 stale 或 incomplete 条目.
  • 限制从不可信来源创建 Neighbor Cache 条目的速率.

11.3.3. Router Advertisement 处理

主机 应该:

  • 忽略带有可疑参数的 Router Advertisements (例如极短的 lifetimes, 无效的前缀长度).
  • 对从 Router Advertisements 学到的前缀, 路由和其他信息的数量实施限制.
  • 记录异常 Router Advertisement 模式, 供管理员审查.

11.3.4. Redirect Message 验证

主机 必须:

  • 验证 Redirect 消息来自当前第一跳路由器.
  • 验证目标地址是 on-link.
  • 不处理试图将流量重定向到 off-link 的 Redirect 消息.

11.4. 运行考虑

网络管理员 应该:

  1. 部署链路层安全: 在可能的情况下, 使用 802.1X,MACsec 或无线安全来保护 Neighbor Discovery.

  2. 实施 RA Guard: 在交换机和路由器上实施, 以防止 rogue Router Advertisements.

  3. 监测异常: 使用网络监测工具检测 Neighbor Discovery 流量中的异常模式.

  4. 网络分段: 使用 VLAN 和其他分段技术限制潜在攻击的范围.

  5. 考虑 SEND: 对于高安全环境, 尽管 SEND 复杂, 仍应评估部署 SEND.

  6. 保持系统更新: 应用针对 Neighbor Discovery 漏洞的安全补丁和更新.

  7. 培训用户: 培训网络人员识别并响应 Neighbor Discovery 攻击.

11.5. 未来方向

IETF 中正在进行的工作持续改进 Neighbor Discovery 安全性:

  • 轻量级 SEND 替代方案
  • 增强的 RA Guard 机制
  • 与网络访问控制系统集成
  • 改进的 denial-of-service 防护

网络管理员应持续关注这些发展, 并在新的安全机制完成标准化且可用时进行部署.