微信公众号:渊龙Sec安全团队
为国之安全而奋斗,为信息安全而发声!
如有问题或建议,请在公众号后台留言
如果你觉得本文对你有帮助,欢迎在文章底部赞赏我们
经过多年的研究和发展,互联网已经逐渐从IPv4迈向IPv6,让我们从团队成员starkxun写的相关论文中,认识并学习IPv6下的安全漏洞与应对措施。
IPv6的全称是 Internet Protocol version 6
,意为“互联网协议第6版”,是由国际互联网工程任务组(IETF)在1998年12月发布的最新版本互联网协议。相较于传统的IPv4协议,IPv6不仅扩展了原有的地址空间,还对网络层的通信机制进行了优化,使得报文处理过程在性能与安全性方面得以大幅提高。
从20世纪80年代起,一个很明显的问题是IPv4地址在以比设计时的预计更快的速度耗尽。这是创建分类网络、无类别域间路由,和最终决定重新设计基于更长地址的互联网协议IPv6的诱因。
一些市场力量也加快了IPv4地址的耗尽,如:
互联网用户的急速增长;
总是开启的设备:ADSL调制解调器、缆线数据机等;
移动设备:笔记型电脑、PDA、移动电话等。
随着互联网的增长,各种各样的技术随之产生以应对IPv4地址的耗尽,如:
网络地址转换(NAT);
专用网络的使用;
动态主机设置协议(DHCP);
基于名字的虚拟主机;
区域互联网注册管理机构对地址分配的控制;
对互联网初期分配的大地址块的回收。
随著IANA
把最后5个地址块分配给5个RIR
,其主地址池在2011年2月3日耗尽。许多地址分配和消耗的模型都预测第一个耗尽地址的RIR
会在2011年的下半年出现。ARIN
在2015年用完可用的供应,APNIC
、LACNIC
和AFIC
根据其社区政策定量供应。
广泛被接受且已被标准化的解决方案是迁移至IPv6。IPv6的地址长度从IPv4的32位增长到了128位,以此提供了更好的路由聚合,也为最终用户分配最小为264个主机地址的地址块成为可能。
当前,在世界范围内IPv4与IPv6的应用仍处于“共存”状态,但从IPv4向IPv6的全面迁移已成为一种不可逆转的趋势。在2023年3月,通过IPv6使用Google服务的用户百分率首次超过40%。
然而,IPv6的大规模应用,也必定带来一些列的挑战,在网络安全方面就存在不少的漏洞,这需要我们及时发现并采取对应的修补措施。
IPv6与IPv4相比,在设计之初,就对安全问题做出了更多的考虑。借助IPSec(Internet协议安全性),IPv6的安全性能确实得以改善。但是,近来发生的网络攻击事件显示,IPSec并不能处理IPv6网络中的所有漏洞问题。而对比IPv4,新的网络环境要更为复杂,所产生的网络漏洞也更难预料。
所以,面对新的环境,我们更需要积极挖掘发现IPv6下的安全漏洞,同时给出合理的治理方案。
(1) 报文监听
IPv6中可使用IPSec
对其网络层的数据传输进行加密保护,但RFC6434
中不再强制要求实施IPSec
,因此在未启用IPSec
的情况下,对数据包进行监听依旧是可行的,具体我们可以通过Wireshark工具接获报文,然在本地进行分析。
(2) 应用层攻击
IPv4网络中应用层可实施的攻击在IPv6网络下依然可行,比如SQL注入、缓冲溢出等,IPS、反病毒、URL过滤等应用层的防御不受网络层协议变化的影响。
(3) 中间人攻击
中间人攻击是指攻击者能够在两个通信方之间的通信链路上拦截、篡改或者窃听通信内容。攻击者可以通过欺骗的方式,使通信方误以为他们在直接通信,而实际上攻击者已经介入其中,从而窃取敏感信息或者进行其他恶意行为。
启用IPSec
对数据进行认证与加密操作前需要建立SA,通常情况下动态SA的建立通过密钥交换协议IKE
、IKEv2
实现,由DH(Diffie-Hellman
)算法对IKE
密钥载荷交换进行安全保障,然而DH密钥交换并未对通信双方的身份进行验证,因此可能遭受中间人攻击。
(4) 泛洪攻击
在IPv4与IPv6中,向目标主机发送大量网络流量依旧是有效的攻击方式,泛洪攻击可能会造成严重的资源消耗或导致目标崩溃。另外,由于IPv6网络通常包含更多的设备和更复杂的路由路径,因此对于网络管理员来说,识别和缓解IPv6网络上的DDOS攻击可能会更具挑战性。
(5) 分片攻击
在IPv6中,中间节点不可以对分段数据包进行处理,只有端系统可以对IP数据包进行分分段与重组,因此攻击者可能借助该性质构造恶意数据包。
在RFC8200
中声明禁止重组重叠的IPv6分片,且其限制最小MTU
为1280字节[2],因此处理时将丢弃除最后分片外小于1280字节的分片,在一定程序上也缓解了分片攻击。
(6) 路由攻击
在IPv6下,由于部分路由协议并未发生变化,因此路由攻击依旧可行。
攻击者篡改路由表,将通信流量导向攻击者所控制的路由器,然后在路由器上进行中间人攻击。这种攻击可以通过IPv6的加密和身份验证来防范,但是这需要网络管理员和网络设备厂商共同协作,实现IPv6的安全性。
(7) 地址欺骗
攻击者伪造IPv6地址,使得通信双方误认为他们在直接通信,实际上攻击者在中间拦截并篡改了通信内容。这种攻击在IPv6网络中比IPv4更容易实现,因为IPv6地址空间更为广阔,而且IPv6地址可以通过随机生成来避免被识别和防御。
IPv6逐跳选项报头(Hop-by-Hop Options Header
)是IPv6数据包中的一部分,它可以携带额外的选项信息,如路由控制、流标识等。然而,逐跳选项报头也可能存在一些安全威胁,如下所述:
过多的选项导致拒绝服务攻击(Denial-of-Service,DoS
):攻击者可以在逐跳选项报头中添加大量无用的选项,从而导致数据包变得异常庞大,影响网络性能,甚至造成拒绝服务攻击。
选项欺骗攻击:攻击者可以通过修改逐跳选项报头中的选项字段,来欺骗路由器或者其他网络设备,从而使得数据包被发送到错误的目的地,或者遵循错误的路由路径,导致数据泄露或者信息篡改。
数据包欺骗攻击:攻击者可以在逐跳选项报头中添加虚假的选项,从而让数据包伪装成合法的IPv6数据包,绕过网络安全措施,进入内部网络,对内部网络造成攻击。
为了防止这些安全威胁,建议采取以下措施:
限制逐跳选项报头的使用:尽量避免在逐跳选项报头中携带敏感信息,尽量减少逐跳选项报头中的选项数量,以防止攻击者利用逐跳选项报头进行攻击。
使用加密技术:对于包含敏感信息的IPv6数据包,可以使用加密技术对数据进行保护,防止数据泄露或者信息篡改。
进行流量监控:通过对网络流量进行监控,及时发现并阻止异常的IPv6数据包,可以有效地防止攻击者利用IPv6逐跳选项报头进行攻击。
IPv6目的选项报头(Destination Options header
)是一种IPv6协议的扩展头部,它允许发送端在数据包中添加一些选项,以便在传输过程中对数据包进行不同的处理。
然而,攻击者可以利用IPv6目的选项报头来实施各种威胁,包括:
网络扫描和探测:攻击者可以使用IPv6目的选项报头在网络中扫描和探测漏洞,获取目标主机的敏感信息。
DoS攻击:攻击者可以发送带有大量IPv6目的选项报头的数据包,占用网络带宽或导致目标主机崩溃,从而实现DoS攻击。
IP欺骗:攻击者可以伪造IPv6目的选项报头中的源IP地址和其他字段,以实现IP欺骗攻击,从而破坏网络安全。
为了减少IPv6目的选项报头的威胁,需要采取一些防御措施,例如:
网络过滤:网络管理员可以设置网络过滤规则,阻止带有特定IPv6目的选项报头的数据包进入网络。
更新和升级:操作系统和应用程序的更新和升级可以修复已知的IPv6目的选项报头漏洞,并提高网络安全性。
安全认证:为网络中的主机和设备设置安全认证机制,如IPSec
等,来验证IPv6目的选项报头中的路由信息的真实性和完整性,从而防止路径欺骗攻击。
安全威胁
IPv6路由报头(Routing Header
)是IPv6数据包中的一个可选字段,用于指定数据包在传输过程中要经过的路由路径。攻击者可以利用IPv6路由报头的一些特性进行攻击,以下是一些威胁:
路由扰乱攻击:攻击者可以在IPv6路由报头中添加多个路由选项,使得数据包在传输过程中经过不必要的路由路径,增加网络的负担,降低网络的性能。
DOS攻击:攻击者可以通过IPv6路由报头的重复使用来发动拒绝服务攻击(DOS攻击)。攻击者可以在IPv6路由报头中设置一个无限循环的路由选项,这将导致目标主机陷入死循环,耗尽网络资源。
IP欺骗攻击:攻击者可以利用IPv6路由报头来伪装自己的源IP地址,从而实现IP欺骗攻击。攻击者可以通过IPv6路由报头中的源地址选项来设置一个虚假的源IP地址,使得目标主机无法准确地确定数据包的真实来源。
应对措施:
加强网络边界安全防护:在网络边界设备上设置ACL
,限制IPv6数据包中路由报头的信息,防止恶意路由信息的传递。同时,部署入侵检测系统(IDS)和入侵防御系统(IPS),及时发现和阻止恶意数据包的传递。
实现路由协议的安全认证:路由协议如OSPFv3
、BGP
等支持加密和认证机制,可通过实现安全认证机制来防范路由信息的篡改和恶意插入。可以使用MD5
、SHA
等算法对路由信息进行加密和认证,确保信息的真实性和完整性。
开启IPv6防火墙:防火墙可以帮助过滤恶意IPv6数据包中的路由信息,及时发现和拦截虚假的路由信息。
加强网络监控和日志记录:及时监控网络流量,发现异常流量和路由信息的变化,同时记录日志信息,以便在事件发生后进行追溯和调查。
及时升级补丁和更新设备:及时升级路由设备和协议补丁,确保设备的安全性和可靠性。同时定期对设备进行安全漏洞扫描和评估,发现并修复潜在的安全漏洞。
安全威胁
如若将关键的报头信息切分在多个片段中,安全防护设备对关键信息进行提取与检测处理会耗费大量资源,构造大量该类数据包可能对目标主机造成DoS攻击。
攻击者可向节点发送大量不完整的分段集合,强迫节点等待片段集合的最后片段,节点在超时时间内由于只接收到部分IPv6片段进而无法完成重组,最终只能将数据包丢弃,在超时等待期间,会造成存储资源的消耗。
应对方式
防火墙应该丢弃除最后分段外所有小于1280字节的所有分段。
Cisco ASA防火墙的FragGuard
功能可以将所有的分片组装并进行整个数据包检查用以确定是否存在丢失的分段或重叠分段。
根据RFC8200
,IPv6节点已不能创建重叠分段,且在对IPv6报文进行重组时,如若确定一个或多个片段为重叠片段,则必须对整个报文进行丢弃。
安全威胁
可通过向组播地址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
发现机制,但其会影响到网络数据的传输速率。
安全威胁
中间人攻击
由于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可能带来的威胁,在攻击包实际到达目标节点之前阻塞二层设备上的攻击数据包。
使用访问控制列表或空路由过滤对地址空间中未分配的部分的访问,用以防止攻击者迫使路由解析未使用的地址。
安全威胁
地址池耗尽攻击
攻击者可以伪装为大量的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报头的影响
针对IPv6报文,防火墙必须对IPv6基本报头与所有的扩展首部进行解析,才能获取传输层与应用层的信息,从而确定当前数据报是否应该被允许通过或是被丢弃。由于过滤策略相比IPv4更加复杂,在一定程度上将加剧防火墙的负担,影响防火墙的性能。
IPSec的影响
如若在IPv6数据包中启用加密选项,负载数据将进行加密处理,由于包过滤型防火墙无法对负载数据进行解密,无法获取TCP与UDP端口号,因此包过滤型防火墙无法判断是否可以将当前数据包放行。
由于地址转换技术(NAT)和IPSec在功能上不匹配,因此很难穿越地址转换型防火墙利用IPSec进行通信。
面对IPv6数据包,倘若启用了加密选项,IDS与IPS则无法对加密数据进行提取与分析,无法通过报文分析获取TCP、UDP信息,进而无法对网络层进行全面的安全防护。即便只允许流量启用AH认证报头,但认证报头内部具有可变长度字段ICV,因此检测引擎并不能准确地定位开始内容检查的位置。
倘若双栈主机不具备IPv6网络下的安全防护,而攻击者与双栈主机存在邻接关系时,则可以通过包含IPv6前缀的路由通告应答的方式激活双栈主机的IPv6地址的初始化,进而实施攻击。
IPv6隧道技术是一种将IPv6数据包封装在IPv4数据包中传输的技术,用于在IPv6网络之间或IPv6网络和IPv4网络之间进行通信。这种技术可以带来许多优点,如扩展IPv6覆盖范围、解决IPv4地址枯竭等问题。然而,IPv6隧道技术也带来了一些安全问题,包括以下几点:
隧道端点的安全性:IPv6隧道技术需要两个端点之间建立连接,如果其中任何一方存在安全漏洞,则整个隧道都会受到攻击。攻击者可以通过攻击其中一方来窃取或篡改隧道中传输的数据。
隧道本身的安全性:IPv6隧道技术本身也存在一些安全漏洞,比如隧道中的IPv6地址可能被伪造或欺骗,攻击者可以通过这种方式轻松地欺骗IPv6网络。
隧道过渡机制的安全性:IPv6隧道技术是一种IPv6过渡技术,用于在IPv6和IPv4之间进行互通。然而,隧道过渡机制本身也存在一些安全风险,比如攻击者可以利用这种机制穿透网络边界,并攻击内部网络。
隧道加密的安全性:隧道中的数据可能被窃听或篡改,因此需要进行加密保护。然而,隧道加密本身也存在一些漏洞和弱点,比如算法的安全性、密钥管理和分发的问题等。
利用翻译技术实现IPv4-IPv6网络互联互通时,需要对报文的IP层及传输层的相关信息进行改动,因此可能会对端到端的安全产生影响,导致IPSec的三层安全隧道在翻译设备处出现断点。
翻译设备作为网络互通的关键节点,是DDOS攻击的主要攻击目标。同时,翻译设备还可能遭遇地址池耗尽攻击,若IPv6攻击者向IPv4服务器发送互通请求,但每条请求都具有不同的IPv6地址,则每条请求都将消耗一个地址池中的IPv4地址,当出现大量该类请求时,便会将地址池耗尽,使得翻译设备不再接受进一步的请求
[1] https://www.google.com/intl/en/ipv6/statistics.html#tab=ipv6-adoption)
[2] Kaufman C,Hoffman P, RFC7296: Internet Key Exchange Protocol Version 2(IKEv2)[EB/OL], https://tools.ietf.org/html/rfc7296,2014.
[3] Deering S, Hinden R, RFC8200: Internet Protocol, Version 6 (IPv6) Specification[EB/OL], https://tools.ietf.org/html/rfc8200,2017.
[4] Le Faucheur F, RFC6398: IP Router Alert Considerations and Usage [EB/OL], https://tools.ietf.org/html/rfc6398,2011.
[5] Patel A, Leung K RFC4283: Mobile Node Identifier Option for Mobile IPv6 (MIPv6)[EB/OL], https://tools.ietf.org/html/rfc4283,2005.
[6] Abley J, Savola P, RFC5095: Deprecation of Type 0 Routing Headers in IPv6 [EB/OL], https://tools.ietf.org/html/rfc5095,2007.
[7] Davies E, Mohacsi J, RFC4890: Recommendations for Filtering ICMPv6 Messages inFirewalls [EB/OL], https://tools.ietf.org/html/rfc4890,2007.
[8] Arkko J, Kempf J, Zill B, Nikander P,RFC3971: SEcure Neighbor Discovery (SEND) [EB/OL], https://tools.ietf.org/html/rfc3971,2005.
[9] Gont F, RFC7113: Implementation Advice for IPv6 Router AdvertisementGuard (RA-Guard),2014.
[10] Mrugalski T, Siodelski M, Volz B,RFC8415: Dynamic Host Configuration Protocol for IPv6 (DHCPv6),2018.
我是starkxun,我在渊龙Sec安全团队等你
微信公众号:渊龙Sec安全团队
欢迎关注我,一起学习,一起进步~
本篇文章为团队成员原创文章,请不要擅自盗取!