本文整理并总结了IPv6可能存在的安全威胁,从IPv4安全威胁延续、IPv6相关附属协议和相关机制可能带来的安全威胁、IPv6对安全硬件的影响及过渡技术的安全威胁四个方面进行了分析与梳理。
一、 IPv4 安全威胁延续
(1) 报文监听
IPv6中可使用IPSec对其网络层的数据传输进行加密保护,但RFC6434中不再强制要求实施IPSec,因此在未启用IPSec的情况下,对数据包进行监听依旧是可行的。
(2) 应用层攻击
IPv4网络中应用层可实施的攻击在IPv6网络下依然可行,比如SQL注入、缓冲溢出等,IPS、反病毒、URL过滤等应用层的防御不受网络层协议变化的影响。
(3) 中间人攻击
启用IPSec对数据进行认证与加密操作前需要建立SA,通常情况下动态SA的建立通过密钥交换协议IKE、IKEv2实现,由DH(Diffie-Hellman)算法对IKE密钥载荷交换进行安全保障[1],然而DH密钥交换并未对通信双方的身份进行验证,因此可能遭受中间人攻击。
(4) 泛洪攻击
在IPv4与IPv6中,向目标主机发送大量网络流量依旧是有效的攻击方式,泛洪攻击可能会造成严重的资源消耗或导致目标崩溃。
(5) 分片攻击
在IPv6中,中间节点不可以对分段数据包进行处理,只有端系统可以对IP数据包进行分分段与重组,因此攻击者可能借助该性质构造恶意数据包。
在RFC8200中声明禁止重组重叠的IPv6分片,且其限制最小MTU为1280字节[2],因此处理时将丢弃除最后分片外小于1280字节的分片,在一定程序上也缓解了分片攻击。
(6) 路由攻击
在IPv6下,由于部分路由协议并未发生变化,因此路由攻击依旧可行。
(7) 地址欺骗
IPv6使用NDP协议替代了IPv4中的ARP协议,但由于实现原理基本一致,因此针对ARP协议的ARP欺骗、ARP泛洪等类似攻击方式在IPv6中依旧可行。
二、 IPv6 引入的安全隐患
1. IPv6扩展首部威胁
(1) 逐跳选项报头
- 安全威胁:可利用逐跳选项报头发送大量包含路由提示选项的IPv6数据包,包含有路由提示选项的数据包要求所有路由器对该数据包进行处理并仔细查看该数据包的报头信息[3],当攻击者发送大量此类IPv6数据包时,将消耗链路上路由器大量资源,严重可造成DoS攻击。
- 应对方式:应当限制路由器对包含路由提示选项的数据包的处理数量。
(2) 目的选项报头
- 安全威胁:移动IPv6协议的数据通信以明文进行传输,因此其本身便是不安全的,攻击者可对MIPv6数据包进行嗅探进而识别其通信节点、转交地址、家乡地址、家乡代理等信息,并利用这些信息伪造数据包。攻击者可通过拦截类型为消息绑定更新的数据包,修改绑定关系中的转交地址。此外,移动节点标识符选项揭示了用户的家乡从属关系,攻击者可利用该选项确定用户身份,锁定特定的攻击对象[4]。
- 应对方式:可尝试开启IPSec保证数据包不会被窃听[4]。
(3) 路由报头
- 安全威胁:在RH0路由类型(即type 0)下,攻击者可利用路由报头选项伪装成合法用户接收返回的数据包。同时,RH0提供了一种流量放大机制,攻击者可利用该类型进行拒绝服务攻击[5]。虽然RH0已被正式弃用并启用RH2[2],但旧的或未升级设备依然可能遭受RH0攻击。
- 应对方式:应当尽快更新安全设备并升级至最新的IPv6协议版本,同时对所有的RH0数据包进行丢弃。
(4) 分段报头
- 安全威胁:如若将关键的报头信息切分在多个片段中,安全防护设备对关键信息进行提取与检测处理会耗费大量资源,构造大量该类数据包可能对目标主机造成DoS攻击。攻击者可向节点发送大量不完整的分段集合,强迫节点等待片段集合的最后片段,节点在超时时间内由于只接收到部分IPv6片段进而无法完成重组,最终只能将数据包丢弃,在超时等待期间,会造成存储资源的消耗。
- 应对方式:防火墙应该丢弃除最后分段外所有小于1280字节的所有分段。
Cisco ASA防火墙的FragGuard功能可以将所有的分片组装并进行整个数据包检查用以确定是否存在丢失的分段或重叠分段。
根据RFC8200,IPv6节点已不能创建重叠分段,且在对IPv6报文进行重组时,如若确定一个或多个片段为重叠片段,则必须对整个报文进行丢弃[2]。
2. 协议威胁
(1) ICMPv6协议
安全威胁:
- 可通过向组播地址FF02::1发送Echo Request报文,通过接收Echo Reply报文实现本地链路扫描,或以目标节点作为源地址向组播地址FF02 :: 1发送ICMPv6 EchoRequest消息实现Smurf攻击。
- 可通过向目标节点发送ICMPv6 Packet too big报文,减小接收节点的MTU,降低传输速率。
- 可通过向目标节点发送过多的ICMPv6包以及发送错误消息,导致会话被丢弃,从而破坏已建立的通信,实现DoS攻击[6]。
- 可通过向主机发送格式不正确的消息刺激主机对ICMPv6的响应,从而通发现潜在的攻击目标[6]。
应对方式:
- 可在交换机的每个物理端口设置流量限制,将超出流量限制的数据包丢弃。或在防火墙或边界路由器上启动ICMPv6数据包过滤机制,也可配置路由器拒绝转发带有组播地址的ICMPv6 EchoRequest报文。
- 可尝试关闭PMTU发现机制,但其会影响到网络数据的传输速率。
(2) 邻居发现协议(NDP)
安全威胁:
- 中间人攻击:由于NDP协议基于可信网络因此并不具备认证功能,因此可通过伪造ICMPv6 NA/RA报文实现中间人攻击。攻击者可以伪造NA报文,将自己的链路层地址并启用覆盖标志(O)作为链路上其他主机的地址进行广播。攻击者可伪造RA报文发送至目标节点修改其默认网关。
- 重复地址检测攻击:当目标节点向FF02 :: 16所有节点发送NS数据包进行重复地址检测时,攻击者可向该节点发送NA报文进行响应,并表明该地址已被自己使用。当节点接收到该地址已被占用消息后重新生成新的IPv6地址并再一次进行重复地址检测时,攻击者可继续进行NA响应实现DoS攻击。
- 泛洪攻击:攻击者可伪造不同网络前缀RA消息对FF02 :: 1进行进行泛洪攻击,接收节点将会根据不同的网络前缀进行更新,从而消耗大量的CPU资源。
应对方式:
- 安全邻居发现(SEND)[7]协议是邻居发现协议中的一个安全扩展,其工作原理为使网络中每个IPv6节点都有一对公私钥以及多个邻居扩展选项。采用SEND协议后,各个节点的接口标识符(IPv6地址低64比特)将基于当前的IPv6网络前缀与公钥进行计算产生,而不能由各个节点自行选择。安全邻居发现协议通过时间戳和Nonce选项抵御重放攻击,并引入了CGA(密码生成地址)与RSA签名对数据源进行验证以解决邻居请求/邻居通告欺骗的问题。SEND虽然可以解决一定的安全问题,但目前系统与设备对SEND的支持十分有限。
- RFC7113提出了IPv6安全RA方案RA-Guard[8],其通过阻断非信任端口RA报文转发来避免恶意RA可能带来的威胁,在攻击包实际到达目标节点之前阻塞二层设备上的攻击数据包。
- 使用访问控制列表或空路由过滤对地址空间中未分配的部分的访问,用以防止攻击者迫使路由解析未使用的地址。
(3) DHCPv6
安全威胁:
- 地址池耗尽攻击:攻击者可以伪装为大量的DHCPv6客户端,向DHCPv6服务器请求大量的IPv6地址,耗光IPv6地址池。
- 拒绝服务攻击:攻击者可向DHCPv6服务器发送大量的SOLICIT消息,强制服务器在一定时间内维持一个状态,致使服务器CPU与文件系统产生巨大负担,直至无法正常工作。
- 伪造DHCPv6服务器:攻击者可伪造成DHCPv6服务器向目标客户端发送伪造的ADVERTISE与REPLY报文,在伪造报文中携带虚假的默认网关、DNS服务器等信息,以此实现重定向攻击。
应对方式:
- 对客户端所有发送到FF02::1:2(所有DHCPv6中继代理与服务器)和FF05::1:3(所有DHCPv6服务器)的消息数量进行速率限制。
- DHCPv6中内置了认证机制,认证机制中的RKAP协议[9]可以对伪造DHCPv6服务器的攻击行为提供防范。
三、 IPv6 对安全硬件的影响
1. 防火墙
(1)IPv6报头的影响
针对IPv6报文,防火墙必须对IPv6基本报头与所有的扩展首部进行解析,才能获取传输层与应用层的信息,从而确定当前数据报是否应该被允许通过或是被丢弃。由于过滤策略相比IPv4更加复杂,在一定程度上将加剧防火墙的负担,影响防火墙的性能。
(2) IPSec的影响
如若在IPv6数据包中启用加密选项,负载数据将进行加密处理,由于包过滤型防火墙无法对负载数据进行解密,无法获取TCP与UDP端口号,因此包过滤型防火墙无法判断是否可以将当前数据包放行。
由于地址转换技术(NAT)和IPSec在功能上不匹配,因此很难穿越地址转换型防火墙利用IPSec进行通信。
2. IDS&IPS
面对IPv6数据包,倘若启用了加密选项,IDS与IPS则无法对加密数据进行提取与分析,无法通过报文分析获取TCP、UDP信息,进而无法对网络层进行全面的安全防护。即便只允许流量启用AH认证报头,但认证报头内部具有可变长度字段ICV,因此检测引擎并不能准确地定位开始内容检查的位置。
四、 过渡技术的安全性
1. 双栈技术
倘若双栈主机不具备IPv6网络下的安全防护,而攻击者与双栈主机存在邻接关系时,则可以通过包含IPv6前缀的路由通告应答的方式激活双栈主机的IPv6地址的初始化,进而实施攻击。
2. 隧道技术
(1) 隧道注入
攻击者可通过伪造外部IPv4与内部IPv6地址伪装成合法用户向隧道中注入流量。
(2) 隧道嗅探
位于隧道IPv4路径上的攻击者可以嗅探IPv6隧道数据包,并读取数据包内容。
3. 翻译技术
利用翻译技术实现IPv4-IPv6网络互联互通时,需要对报文的IP层及传输层的相关信息进行改动,因此可能会对端到端的安全产生影响,导致IPSec的三层安全隧道在翻译设备处出现断点。
翻译设备作为网络互通的关键节点,是DDoS攻击的主要攻击目标。同时,翻译设备还可能遭遇地址池耗尽攻击,若IPv6攻击者向IPv4服务器发送互通请求,但每条请求都具有不同的IPv6地址,则每条请求都将消耗一个地址池中的IPv4地址,当出现大量该类请求时,便会将地址池耗尽,使得翻译设备不再接受进一步的请求。
五、 参考文献
- [1]Kaufman C,Hoffman P, RFC7296: Internet Key Exchange Protocol Version 2(IKEv2)[EB/OL], https://tools.ietf.org/html/rfc7296,2014.
- [2]Deering S, Hinden R, RFC8200: Internet Protocol, Version 6 (IPv6) Specification[EB/OL], https://tools.ietf.org/html/rfc8200,2017.
- [3]Le Faucheur F, RFC6398: IP Router Alert Considerations and Usage [EB/OL], https://tools.ietf.org/html/rfc6398,2011.
- [4]Patel A, Leung K RFC4283: Mobile Node Identifier Option for Mobile IPv6 (MIPv6)[EB/OL], https://tools.ietf.org/html/rfc4283,2005.
- [5]Abley J, Savola P, RFC5095: Deprecation of Type 0 Routing Headers in IPv6 [EB/OL], https://tools.ietf.org/html/rfc5095,2007.
- [6]Davies E, Mohacsi J, RFC4890: Recommendations for Filtering ICMPv6 Messages inFirewalls [EB/OL], https://tools.ietf.org/html/rfc4890,2007.
- [7]Arkko J, Kempf J, Zill B, Nikander P,RFC3971: SEcure Neighbor Discovery (SEND) [EB/OL], https://tools.ietf.org/html/rfc3971,2005.