2.7 过渡和共存技术
如预期那样,一些网络不会以纯IPv6模式运行,因此必须以安全的方式部署和运行过渡机制。本节为众所周知和已部署使用的过渡技术的操作指南。它还包含了针对过渡或共存场景的安全考虑事项。
2.7.1 双栈
双堆栈通常是网络运营商的首选部署选择。双堆叠网络比其他过渡机制有一些优势。首先,减少了对现有ipv4操作的影响。其次,在没有隧道或地址转换的情况下,ipv4andipv6的流量是本地的(更容易观察和安全),并且应该具有相同的网络处理(网络路径、服务质量等)。当ipv6网络准备就绪时,双堆栈可以逐步终止ipv4操作。另一方面,运营商必须管理两个网络堆栈,同时增加了复杂性。
从操作安全的角度来看,这意味着网络运营商有双重的暴露面。人们现在就需要考虑如何保护这两个协议。从安全策略的角度来看,双堆叠网络的ipv6部分至少应该与ipv4保持一致。通常,采用以下方法来保护ipv4网络。
- acl允许或拒绝流量;
- 有状态包检查的防火墙;
- 以及应用程序防火墙检查应用程序流量
建议另外配置这些acls和/或防火墙,以保护ipv6通信。强制执行的ipv6安全性必须与ipv4安全策略一致;否则,攻击者将使用具有更宽松的安全策略的协议版本。
维护安全策略之间的一致性可能具有挑战性(特别是随着时间的推移);建议使用防火墙或双栈的acl管理器,即,可以将单个acl条目应用到ipv4和ipv6地址的混合组的系统。
应用程序防火墙可以在应用程序层工作,并且忽略ip版本,也就是说,ip版本也适用于ipv6和ipv4,同样的应用程序安全策略将适用于两个协议版本。
注:一条安全策略同时在IPv4和IPv6生效,目前多数防火墙不具备这种能力。通常,IPv4和IPv6的安全策略是分开配置的。
此外,考虑到ipv6提供的端到端连接,建议主机加强威胁防护。一般的设备加强指南见第2.8节。
多年来,所有主机操作系统都默认启用ipv6,因此当攻击者提供流氓RAs或流氓DHCPv6服务时,甚至可以在仅限ipv4的网络中通过ipv6链接本地地址或全局ipv6地址攻击L2相邻的受害者。
【RFC7123】讨论了本地ipv6支持和ipv6支持ipv6过渡/共存技术的安全影响,并描述了上述问题可能的缓解措施。
2.7.2 封装机制
有许多隧道用于特定的用例。除非受其他隧道加密方法保护,所有这些隧道都有许多安全问题,如【RFC6169】所述:
隧道注入:
一个知道一些信息(例如,隧道端点和封装协议)的恶意参与者可以伪造一个看起来像合法的和验证封装的包,它很乐意被目的地隧道端点接受。这是欺骗的一个特殊案例。
流量劫持:
隧道协议不提供任何保密性(不使用ipsec或替代加密方法);因此,隧道路径上的任何人都可以拦截流量,并可以访问明文ipv6数据包。结合没有身份验证,还可以安装路径上的攻击。
服务偷窃:
由于没有授权,即使是未经授权的用户也可以免费使用隧道中继(这是隧道注入的特殊情况)。
反射攻击:
隧道注入的另一个特殊用例是,攻击者将数据包注入与ipv6地址不匹配的ipv4目标地址,导致第第一个隧道端点将数据包重新封装到目的地。因此,最终的ipv4目的地将不会看到原始的ipv4地址,而是只看到中继路由器的ipv4地址。
绕过安全策略:
如果防火墙或入侵预防系统(ips)在隧道的路径上,那么它就不能检查或检测到通过隧道传输的恶意ipv6流量。
了减轻安全策略的绕过,通常建议通过拒绝ipv4数据包匹配来阻止默认操作系统配置(如果不需要它们)中的所有自动隧道。
IP协议41:这将阻止站点内自动隧道寻址协议(isatap)、(Section 2.7.2.2), 6to4 (Section 2.7.2.7), 6rd (Section 2.7.2.3), and 6in4 (Section 2.7.2.1) tunnels.;
IP协议47:将阻止GRE隧道(Section2.7.2.1);
UDP端口3544:将阻止Teredo隧道默认封装(Section 2.7.2.8);
Ingress过滤【RFC2827】也应适用于所有隧道端点,如果适用,覆盖ipv6地址欺骗。
还应通过使用ipv6 ACL防止发卡流量来阻止上述反射攻击。
由于一些隧道技术共享相同的封装(即ipv4协议41),并将ipv4地址嵌入到ipv6地址中,因此在【RFC6324】中描述了一组众所周知的循环攻击。该委员会还提出了缓解技术。
2.7.2.1 site-to-site静态隧道
site-to-site静态隧道如【RFC2529】和GRE【RFC2784】描述。由于ipv4端点是静态配置的,并且不是动态的,所以它们稍微安全一些(双向服务偷窃大多是不可能的),但流量拦截和隧道注入仍然是可能的。因此,推荐使用IPSec传输模式【RFC4301】去保护封装的IPv4报文。隧道模式下的ipsec可以用于通过不可信的ipv4网络传输ipv6的流量。
2.7.2.2 ISATAP
isatap隧道【RFC5214】主要用于单个管理域内,并将单个ipv6主机连接到ipv6网络。这通常意味着这些系统通常由单个实体管理;因此,审计跟踪和严格的反欺骗通常是可能的,这提高了整体安全性。即使isatap不再经常被使用,它的安全问题也是相关的。
IPSec在运输或隧道模式下,可用于确保ipv4的安全,以提供ipv6的安全保密和防止服务盗窃。
2.7.2.3 6RD
虽然6RD隧道共享相同的封装,但它们被设计为在单个sp域内使用;换句话说,它们被部署在一个更受限的环境中(例如,反欺骗,协议41在边缘进行过滤),除了缺乏保密性之外,几乎没有什么安全问题。【RFC5969】section12描述了如何加强6RD隧道安全。
IPSec传输IPv6流量用于机密性保护,是一种重要手段。
2.7.2.4 6PE/6VPE和LDPv6
核心网使用MPLS的组织可以通过6PE【RFC4798】和6VPE【RFC4659】使能MPLS的IPv6访问。6PE/6VPE同BGP/MPLS IP VPN类似。网络的安全性在【RFC4381】中描述,他们依赖于:
- 在vrfs的帮助下,地址空间、路由和流量分离(仅适用于6vpe);
- 隐藏ipv4核心,从而消除对P-路由器的所有攻击;
- 保护客户边缘(ce)和提供者边缘(pe)之间的路由协议;
- 在6pe和6vpe的数据库中,可以使用链路本地地址(参见RFC7404),而且由于不能从链接外部访问这些地址,因此6pe和6vpe的安全性甚至高于ipv4bgp/mpls ip vpn
LDPv6本身并不会引发新的风险,见【RFC7552】。
2.7.2.5 DS-Lite
双栈Lite(DS-Lite)也是一种过渡机制,(Section 2.7.3.3)做了分析,因为它包括IPv4 NAPT。
2.7.2.6 地址和端口映射
2.7.2.7 6to4
2.7.2.8 Teredo
2.7.3 翻译机制
ipv4和ipv6网络之间的翻译机制是网络向ipv6过渡时的交替共存策略。【RFC6144】描述了一个框架,每个单独的机制都记录了特定的安全考虑。在大多数情况下,他们特别提到了对ipsec或dnssec部署的干扰,如何减少欺骗性的流量,以及一些有效的过滤策略可能是什么。
虽然这不是真正的向ipv6的过渡机制,但本节还包括了关于使用重ipv4-to-ipv4网络地址和端口转换来延长纯ipv4网络的寿命的讨论。
2.7.3.1 Carrier-Grade NAT(CGN)
Carrier-Grade NAT(CGN)也叫NAT444 CGN或大规模NAT(LSN)或SP NAT,在【RFC6264】中描述。被用作一种临时措施来扩展ipv4在大型服务提供者网络中的使用,直到提供者能够部署一个有效的ipv6解决方案。【RFC6598】请求一个特定的IANA分配/10 ipv4地址块,作为使用CGN的所有接入网络共享的地址空间。这已被分配为100.64.0.0/10。
【RFC6269】section13列举一些大规模地址转换导致的安全相关的问题。【RFC6598】安全考虑也列举了可能滥用共享地址空间的一些缓解技术。一些执法机构已经确认cgn阻碍了他们的网络犯罪调查。许多翻译技术(nat64,ds-lite等)当连接的一部分仅为ipv4时,存在与CGN相同的安全问题。
【RFC6302】建议面向互联网的服务器也记录传入连接的源tcp或udp端口,以帮助识别这种CGN背后的用户。
【RFC7422】建议使用确定性地址映射,以减少对CGN的日志记录需求。这个想法是有一个已知的算法来将内部用户映射到公共tcp和udp端口。
【RFC6888】列出了CGN的常见需求。分析了在使用地址共享时对行为不端的节点强制执行策略的一些解决方案。还可以更新nat的行为要求。
2.7.3.2 NAT64/DNS64 and 464XLAT
有状态的nat64转换【RFC6146】允许只有ipv6的客户端使用单播udp、tcp或icmp联系ipv4服务器。它可以与dns64一起使用,这是一种从现有的记录中合成aaaa记录的机制。还有一个无状态的nat64,它具有类似的安全方面,但增加了无状态的好处,因此不太容易受到状态耗尽攻击。
【RFC6146】和【RFC6147】的安全考虑部分,列出了综合问题;【RFC6147】中,有关于nat64和dnssec之间的交互的一些考虑。使用nat64的一个特殊问题是,除非使用udp封装,否则它会干扰大多数ipsecp部署。
另一种依赖于有状态翻译和无状态翻译的组合的翻译机制464XLAT【RFC6877】,可用于进行从ipv4到ipv6的主机本地转换,以及从ipv6到ipv4的网络提供者转换,即,通过仅ipv6的网络,允许仅ipv4的应用程序访问仅ipv4的服务器。464xlat与nat64和dns64具有相同的安全考虑因素;但是,它可以在没有dns64的情况下使用,避免了dnssec的影响。
2.7.3.3 DS-Lite
DS-Lite【RFC6333】是一种转换技术,通过结合服务提供商(ipip(ipv4-in-ipv6)和ipv4)在客户之间共享ipv4地址。
ds-lite而言,安全考虑主要围绕着记录数据,防止来自恶意设备的攻击(如地址族转换路由器(AFTR)。并限制只对注册客户的服务。
2.8 通用设备加固
由于几乎所有的设备都默认启用ipv6,并且许多端点都将ipv6连接到互联网,因此加强这些设备对ipv6的攻击也是至关重要的。
用于保护在ipv4上的设备免受攻击的相同技术应该用于ipv6,并且应该包括但不限于:
- 限制对授权个人的设备访问;
- 监控和审计对设备的访问;
- 关闭终端节点上任何未使用的服务;
- 了解使用哪些ipv6地址来获取流量,并在必要时更改默认值;
- 使用受加密保护的协议来进行设备管理(Secure Copy Protocol (SCP), SNMPv3, SSH, TLS, etc.);
- 使用主机防火墙能力来控制由上层协议处理的流量;
- 及时应用固件、操作系统和应用程序补丁/升级到设备;
- 使用多因素认证对设备进行身份验证;
- 使用病毒扫描器检测恶意程序。
3、企业独特安全考虑
企业通常都有健壮的网络安全策略来保护现有的ipv4网络。这些政策是从多年来保护ipv4网络的经验知识中提炼出来的。
至少,建议企业网络在两个协议版本的安全策略之间是等价的。本节也适用于所有SP网络的企业部分,即与SP员工相连接的网络部分。
企业中的安全考虑可以大致分为两类:外部和内部。
3.1 外部安全考虑
企业网络与服务提供商的网络结合的边缘处理外部安全性。通常是通过强制执行安全策略来实现的,要么通过实现具有有状态数据包检查的专用防火墙,要么通过实现具有ACLs的路由器。防火墙缺省的IPv4策略允许所有出方向流量,且只允许特定的入方向流量如会话建立。这种方式可移植到IPv6来操作。
这里还有一些可以增强默认策略的内容:
在边缘过滤内部使用的ipv6地址,这也将减轻【RFC7359】中列出的漏洞;
丢弃来自以及前往虚假(bogon)和预留空间的数据包;
接受某些icmpv6消息,以允许正确操作nd和路径mtu发现(PMTUD);
基于网络的使用,通过只接受所需的(允许列表方法)来过滤特定的扩展头,如esp,ah,并且不要忘记所需的传输层:icmp,tcp,udp等。这种过滤应该在边缘和可能在周边内部适用的地方进行;
过滤在边缘具有非法ipv6头链的数据包;
在边缘过滤不需要的IPv6服务;
在转发和控制平面上实现进出方向的防欺骗【RFC2827】和【RFC3704】;
基于流量基线设置正确的限速器和控制面策略。
在所有企业站点上拥有全局ipv6地址与ipv4不同,ipv4中的地址通常在内部使用,而不是通过互联网路由。【RFC7359】和【WEBER_VPN】解释了未经仔细设计,可能存在通过L3 VPN的IPv6泄露。
3.2 内部安全考虑
内部方面涉及在网络周边内提供安全性,包括终端主机。企业的内部网络往往是不同的,如大学校园、无线访客访问等,所以没有“毕其功于一役”的推荐。
这里最重要的关注点与邻居的发现有关。在网络层面,建议仔细审查第2.3节中讨论的所有安全考虑事项,并深入考虑这些建议。【RFC7381】也提供了一些建议。
如第2.7.2节所述,在运行自动ipv6-in-ipv4隧道时必须小心。
当使用站点到站点的vpn时,应该记住,考虑到ipv6全球地址的全球范围,而不是通常使用的ipv4私有地址空间,站点能够在互联网上相互通信,即使vpn机制不可用。因此,不执行流量加密,流量可以从互联网注入到站点。建议在具有属于站点内部前缀的源地址的互联网连接或目的地址的数据包上进行固定过滤,包括入方向和出方向流量。
必须清楚地了解主机防火墙的默认功能,通过安全策略直接加固主机,以防止安全威胁。在某些情况下,第三方防火墙不支持ipv6,而默认安装的原生防火墙支持ipv6。section2.8提供了一般设备安全加固指南。
应该注意到许多主机仍使用IPv4传输RADIUS、DIAMETER、TACAS+、syslog等日志,操作人员不能依赖仅有的IPv6策略来保护仍然使用IPv4的这些协议。
4、在此阶段需要考虑的一个重要设计范式是“可以时双栈,必须时隧道”
4.1、一个主要的问题是对nd的威胁。这意味着,例如,接入层的内部网络(其中主机通过有线或无线连接到网络)应实现ra保护[rfc6105]和saviwg[rfc6959]指定的技术;
RFC7934 host address availability recommendations
RFC8981 temporary address extensions for stateless adress autoconfiguration in IPv6
4、服务提供商安全考虑
4.1 BGP
IPv4和IPv6之间的威胁和缓解技术是相同的。从广义上来说,它们是:
- 验证TCP会话;
- TTL安全性(在IPv6中成为hop-limits安全);
- 虚假的AS域过滤;
- 前缀过滤。
section2.5有详细描述,【RFC7454】中的建议也应考虑。
4.1.1 远程触发的黑洞过滤
在IPv4和IPv6中远程触发黑洞的工作原理相同。IANA已经分配了100::/64前缀用作丢弃前缀。
4.2 过渡/共存机制
服务提供商(SPs)通常会使用过渡机制,如6RD、6PE、MAP和NAT64,在前面section2.7已经描述。
4.3 合法的拦截
IPv6和IPv4架构的合法拦截要求类似,并将服从在不同地理区域执行的法律。每个司法管辖区的地方问题可能使这具有挑战性,公司法律和隐私人员都应该涉及有关记录哪些信息以及这些信息的各自保留政策的讨论。
拦截的目标通常将是一个住宅用户(例如,他/她的ppp会话,物理线路,或CPE MAC地址)。在CPE上没有IPv6 NAT的情况下,IPv6有可能从单个主机(即/128目标)拦截流量,而不是从用户的整套主机(可以是/48、/60或/64)。
相比之下,在移动环境中,由于3gpp规范为每个设备分配了一个/64,它可能足以拦截来自/64的流量,而不是特定的/128(因为每次设备建立一个数据连接,它都会得到一个新的IID)
5. 居民用户安全考虑
IETF家庭网络(家庭网)工作组正在研究ipv6住宅网络的标准和指南;这显然包括操作安全方面的考虑,但这仍在进行中。【RFC8520】是一种有趣的方式,关于防火墙如何获取和应用特定的安全政策到一些住宅设备。
一些居民用户在安全或网络方面的经验和知识不如实验过的运营商。由于大多数最近的主机(例如,智能手机和平板电脑)都默认启用了ipv6,因此ipv6的安全性对这些用户来说非常重要。即使是只使用ipv4的isp,这些用户也可以在Teredo隧道的帮助下获得ipv6的互联网接入。一些点对点程序支持ipv6,这些程序可以通过ipv4住宅网关启动Teredo隧道,从而使内部主机可以从互联网上的任何ipv6主机访问。因此,建议所有主机安全产品(包括个人防火墙)都配置为双栈安全策略。
如果住宅cpe具有ipv6连接,【RFC7084】则定义了ipv6 CPE的要求,如【RFC6092】定义:
仅出站:
允许所有内部启动的连接并阻止所有外部启动的连接,这是一个由ipv4住宅网关强制执行的通用默认安全策略,但它也破坏了ipv6的端到端可达性承诺。
开放/透明:
因此,允许所有内部和外部启动的连接,恢复ipv6流量的互联网的终端性质,但对ipv6和ipv4有不同的安全策略。
6. 进一步阅读
---------------- ALL END------------------